-
Notifications
You must be signed in to change notification settings - Fork 310
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
エンジンを切り離し、初回起動時にVVPPをダウンロードするような機構を備える #1194
Comments
すみませんissue化していませんでした! ありがとうございます!!
これは
これ今思えばそもそも現状でもVVPPインストールエンジン全部残りますね 😇 |
アンインストールしても残るのは一旦仕方ないとして、案内をしっかりしつつもう進めちゃっても良いのかなと思いました!! 追加の問題として、エンジンアップデートをどうエディタ側で行うのかがありました。 |
これとあとインストール周りも含めてですが、いいアイデアが思いついたのでメモです。 インストール時ではなく、electronが起動した後、今のレンダラープロセスを表示する前にダウンロードするのがいい気がしました! シーケンスはこんな感じ・・・? アプリ起動、初回sequenceDiagram
actor User
participant Renderer1
participant Renderer2
participant Electron
participant VVPP
participant Engine
User ->> Electron: 起動
Electron -) Renderer1: 起動
Renderer1 ->> User: 表示
Electron ->> Electron: VVPPダウンロード
Electron ->> +VVPP: インストール
VVPP -->> -Electron: 完了
Electron -) Engine: 起動
Electron -) Renderer1: 終了
Electron ->> Renderer2: 起動
Renderer2 ->> User: 表示
アプリ起動、2回目以降、アップデートがある場合sequenceDiagram
actor User
participant Renderer1
participant Renderer2
participant Electron
participant VVPP
participant Engine
User ->> Electron: 起動
Electron ->> Electron: アップデート情報取得
Electron ->> Renderer1: 起動
Renderer1 ->> User: 意思確認
alt 更新する
User -->> Renderer1: OK
Renderer1 ->> +Electron: VVPP更新
Electron ->> Electron: VVPPダウンロード
Electron ->> +VVPP: インストール
VVPP -->> -Electron: 完了
Electron ->> +VVPP: アンインストール
VVPP -->> -Electron: 完了
Electron ->> +VVPP: リネーム(アップデート)
VVPP -->> -Electron: 完了
else 更新しない
User -->> Renderer1: NO
Renderer1 ->> Electron: 続行
end
Electron -) Engine: 起動
Electron -) Renderer1: 終了
Electron ->> Renderer2: 起動
Renderer2 ->> User: 表示
|
段取りを考えてみました!
|
最新版のVVPPを取ってくるときのデータ構造electron-builderの自動アプデ用のlatest.ymlの仕様を見るに、
などがあれば良さそう。 ちなみにwindowsはarm64環境でもx64のexeが動くらしく、持ってくるVVPPのアーキテクチャは注意が必要。 将来的にwindows arm64版VVPPができることを見越すと、ホストのアーキテクチャに合うものを探し、なければ実行中のNodeのアーキテクチャ(process.arch)に合うものを探すと良さそう・・・? |
This comment was marked as off-topic.
This comment was marked as off-topic.
zip版特に特別扱いせず、エンジンを同梱しない形が良さそう! Discordでのやりとり
ネット環境がない場合公式サイトのダウンロードボタンの近くに「エンジンは追加インストールが必要」な旨の案内をすると良さそう。 |
デフォルトエンジンのVVPPの展開先を、追加エンジンのvvpp展開先と同じにするか、別のディレクトリにするかで迷ってます。 一旦実装見てから判断しようと思います! |
進捗です。 デフォルトエンジンのVVPPの展開先は、とりあえず今のvvppインストール先と同じとこにしてみようかなと思います。 .envでvvpp指定できるようにする前に、先にエンジン情報周りのリファクタリングをしようと思います。
|
ここのリファクタリングをしようとしたのですが、色々あって諦めました。 まず実行ファイルを指定する形になっているので、ディレクトリを指定する形に変えたいのですが、ビルド周りにも影響が出てくるのでちょっと手間そうでした。 総合的に考えて、.envのエンジン情報を整理するのは一番最後あたりに回そうかなと思います。 |
5番目の |
とりあえず設計を考えたんですが、VVPPファイルからエンジンIDを簡単に得る方法がないことに気づきました 😇
手っ取り早いのは1だけど、残り2つの方法もそんなにしんどくないので1は避けて良さそう? |
.env周りメモ: |
と思ってたけど、VITEの仕組みで
だいぶ複雑だけど完成したら片方だけの経路になるはずなので、まあ許容できる・・・・・かなぁ。 |
ちなみに多分これはdist/main.js(backend/electron/main.tsの出力先)が競合するのも注意かも |
確かにdistが衝突して問題が発生しそうですね・・・・・・。 となるともう、経路が2つある間は |
に取り組もうとしてます。
実装方針のメモ:
ちょっと実装してみます! |
内容
VOICEVOXは、コアに含まれているキャラクターの各モデルや深層学習エンジンが大きな容量を占めるので、初期ダウンロード容量がとても多くなっています。
そこで、0.14.0から実装されたVVPP機能を使い、初回起動時にダウンロードするような仕様にするのが良いのでは、という提案がなされました。
https://discord.com/channels/879570910208733277/893889888208977960/1073951061271912478
このような実装をしていくにあたり、いくつか問題がありそうです。
Pros 良くなる点
インストール時の容量が少なくて済む
Cons 悪くなる点
取り組むまでに様々問題がありそう
実現方法
起動時にVVPPをダウンロードするようにする
VOICEVOXのバージョン
0.14.0
OSの種類/ディストリ/バージョン
The text was updated successfully, but these errors were encountered: