-
Notifications
You must be signed in to change notification settings - Fork 3
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
音声ライブラリを管理する機能をサポートする #21
Comments
issue作成ありがとうございます!! インポートとインストールは意味合いが似てるので混乱しそうですね! 「ユーザーモデルのサポート」とか・・・? あと今のところ @sevenc-nanashi さんがPRを出してくださっていますが、そこにコメントをして機能を追加していくよりも、ちょっとずつ機能を区切ってPR・マージを高速に行うのが良いのかなと思いました! |
確かに、ちょっと意味合いが似ているかもですね... 今の状況であれば、特定の人にタスクが偏ってしまいそうなので、これを分散させたいのは同意です。 |
なるほどです。 |
良いと思います! 後でちょっとフローを図に起こしてみたいと思います:eyes: |
良いと思います! 段取りなどおまかせします・・・!(判断困ったらいつでも頼っていただければ!) |
こちらそろそろ動かしていけるかも? |
すみません...! とりあえずは設計かなと思っています! |
前回の返信からまた時間が空いてしまいました、申し訳ないです.... flowchart TB;
subgraph ネットワーク;
server;
end;
subgraph ディスク;
library_folder[ライブラリフォルダ];
end;
subgraph エディタ;
file_select[エディタ上でのvvlibファイル選択];
download[エディタ上でのvvlibダウンロード];
library_select[エディタ上でのインストール済みライブラリ選択];
end;
subgraph エンジン;
dl(downloadable_libraries);
il(install_library);
il2(installed_libraries);
uil(uninstall_library);
end;
dl-->download;
file_select-->il;
download-->il;
il2-->library_select;
library_select-->uil;
server-->dl;
server-->download;
il-->library_folder;
library_folder-->il2;
uil-->library_folder;
ついでに、インストール時のユーザーフローも作成してみました。 flowchart TD;
start[ライブラリ管理画面を開く];
select_file[vvlibファイルを選ぶ];
select_from_list[ダウンロード可能なライブラリを選ぶ];
details_library(ライブラリ内の立ち絵や音声サンプル提示);
view_tos(ライブラリ利用規約提示);
install[インストール];
start-->select_file;
start-->select_from_list;
select_file-->details_library;
select_from_list-->details_library;
details_library -->|次へ|view_tos;
view_tos-->install;
|
@y-chan 眺めてみました!!
アプデフローも一応あると良いかもと思いました!
賛成です! このこと忘れちゃいそうですね。。
ここの決めが次の工程って感じしますね! rootで あー あとvvlibからインストールするとなると、エンジンが持っている話者情報は全部必要かもです。。
たしかに。パスを渡す感じでしたっけ、バイナリを渡す感じでしたっけ。 まあ、なんかvvlibだいぶ大変そうに思えてきました。。。
賛成です! |
いろいろ決めるべきことが決まってないことに今気づきました...遅くなってすみません... あまりにも分かりづらい全体図ができたのでとりあえず隠しておきます... flowchart TB;
subgraph ネットワーク;
server;
end;
subgraph ディスク;
library_folder[ライブラリフォルダ];
end;
subgraph エディタ;
file_select[エディタ上でのvvlibファイルの選択];
download_select[エディタ上でのダウンロードするvvlibの選択];
confirm_download[エディタ上でのサンプルボイスや立ち絵と利用規約の確認];
confirm_install[エディタ上でのサンプルボイスや立ち絵と利用規約の確認];
library_select[エディタ上でのインストール済みライブラリ選択];
download[エディタ上でのvvlibダウンロード];
end;
subgraph エンジン;
dl(downloadable_libraries);
il(install_library);
il2(installed_libraries);
uil(uninstall_library);
vl(validate_library);
end;
dl-->download_select;
il2-->library_select;
library_select-->uil;
server-->dl;
il-->library_folder;
library_folder-->il2;
uil-->library_folder;
file_select-->vl;
vl-->confirm_install;
download_select-->confirm_download;
vl-->il;
dl-->confirm_download;
confirm_download-->download;
download-->vl;
download-->il;
confirm_install-->il;
server-->download;
file_select-->confirm_install;
il2-->|downloadable_librariesと照らし合わせてアップデート可能か確認|download_select;
エディタ上でインストール済みのものとバージョンと比較してインストール可能か判断する方式が良いかなと思いました。 flowchart TB;
subgraph ネットワーク;
server;
end;
subgraph エディタ;
download_select[エディタ上でのダウンロードするvvlibの選択];
confirm_download[エディタ上でのサンプルボイスや立ち絵と利用規約の確認];
download[エディタ上でのvvlibダウンロード];
end
subgraph エンジン;
dl(downloadable_libraries);
il(install_library);
il2(installed_libraries);
vl(validate_library);
end;
subgraph ディスク;
library_folder[ライブラリフォルダ];
end;
dl-->download_select;
server-->dl;
il-->library_folder;
library_folder-->il2;
download_select-->confirm_download;
vl-->il;
dl-->confirm_download;
confirm_download-->download;
download-->vl;
download-->il;
server-->download;
il2-->|downloadable_librariesと照らし合わせてアップデート可能か確認|download_select;
良さそうです!
vvlibファイル周りが若干ネックなのは変わりないのですが、 validate以外のことをするという点で、名前は変えたほうがいいとは思いますが、いい名前が思い浮かばず... |
まとめてくださったの助かります、ありがとうございます!! ここはエディタも絡むので @sevenc-nanashi さんの意見も聞いてみたいかもです。
validateでデータが降ってくるというのはかなり挙動として謎ですが、ありかもと思いました。 あとvvlibに話者関連情報を持たせない場合、エンジン側が知らないvvlibは追加できない、という感じになっちゃますね。VOICEVOXみたく全モデル把握してる場合は良いけど、ユーザーモデルの場合は不都合かも。(VOICEVOXの場合もNemoみたいなのは別途インストール可能にしたいかも)
持たせたい値、良さそうに思いました! |
これは、グラフ上で
私も、Web APIとしては変かなと思ったので、キャッシュ方式を考えていました。
うーん、これは特に問題ないのではと思っています。
これは確かにそうですね!エンジンが未対応のライブラリはインストールできないようにしないと、未対応の仕様に対応できずに変な動作が起きる可能性があると思うので、追加する必要はありそうだと思いました! |
まあそうですよね・・・。
あれ、ちょっとわかってないので認識合わせしたいです。 VOICEVOXエディタはそもそも話者情報(SpeakerInfo)が必須なので、それをvvlib内かエンジン内に含める必要があるはず。 |
まあPoCを作ってみてどういうふうになるか見てみるのはわりとありだと思います!
うーん、たしかにちょっと認識の齟齬がありそうです。 なので、vvlib内に あと、思ったのですが |
あ、なるほどです!
うーん! でもエンジン側と共通化できるのは大きいし、ファイル構造定める方針で良い気がしました! エディタ側であるvvlibから情報得るの、良い気がしました!
どちらでも良いかなと思いました! どちらかというとvvlib_manifestが良さそうかなと。 |
今までファイル構造が変わったことは、スタイルごとに立ち絵が変更できる点ぐらいだったので、あまり神経質にならなくてもいいかなと思っています...!
そうですね、存在確認と、ファイル形式が問題ないかを検証するだけで、エディタ側で情報の表示が出来ると思うので、これでいいかなと思いました!
|
全体像がある程度まとまったと思うので、検証APIをなくした全体図を再掲しておきます。 flowchart TB;
subgraph ネットワーク;
server;
end;
subgraph ディスク;
library_folder[ライブラリフォルダ];
end;
subgraph エディタ;
file_select[エディタ上でのvvlibファイルの選択];
extract_data[vvlibファイルの検証];
download_select[エディタ上でのダウンロードするvvlibの選択];
confirm_install[エディタ上でのサンプルボイスや立ち絵と利用規約の確認];
library_select[エディタ上でのインストール済みライブラリ選択];
download[エディタ上でのvvlibダウンロード];
end;
subgraph エンジン;
dl(downloadable_libraries);
il(install_library);
il2(installed_libraries);
uil(uninstall_library);
end;
dl-->download_select;
il2-->library_select;
library_select-->uil;
server-->dl;
il-->library_folder;
library_folder-->il2;
uil-->library_folder;
download_select-->confirm_install;
confirm_install-->|ダウンロードしてインストールの場合|download;
download-->il;
confirm_install-->|ファイルからインストールの場合|il;
server-->download;
file_select-->extract_data;
extract_data-->confirm_install;
il2-->|downloadable_librariesと照らし合わせてアップデート可能か確認|download_select;
この方向で不足しているAPIから実装していこうと思います...!
|
良いと思います!! 音声ライブラリのアプデの議論ってしてましたっけ。installと全く同じ経路にして、uuidが既存だったら上書きが良いのかなと思いました! |
これで良いと思います! |
メモです。 |
@y-chan
|
VOICEVOX ENGINE での議論場所: VOICEVOX/voicevox_engine#536 |
経緯・目的
目標
uninstall library
APIの追加 voicevox_engine#692supported_features
に音声ライブラリ管理機能について追加する Add: ライブラリのダウンロードAPIを実装 voicevox_engine#616vvlib_manifest.json
をバリデートするようにする voicevox_engine#694vvlib
を投げる仕様にする、インストール機能の実装が前提音声ライブラリの検証API(インストールしようとしている音声ライブラリは正しい形式であるかなどの検証処理)vvlib
)の設計を決めるvvlib_manifest.json
の仕様策定vvpp
のように、engine_manifest.json
みたいなものが欲しい(インストール先のエンジンブランドの指定や、ライブラリのバージョン値などを埋め込んでおくため)library_manifest.json
のところに書いた通り、構造はすべて製作者のお任せにして、library_manifest.json
に必要なファイルの情報をすべて書き込んでもらうのもいいかもlibrary_manifest.json
が必ず存在することぐらいにしておいて)、各エンジンに処理をお任せしてしまう方針でもいいかもvvlib_manifest.json
とディレクトリ構造: 音声ライブラリを管理する機能をサポートする #21 (comment)The text was updated successfully, but these errors were encountered: