-
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
モデル構造変更(フレームレベルピッチの調整可能化)に伴うバージョン・エディション管理に関する議論 #26
Comments
ちょっと目的が議論したい対象と違っているかもと思いました。 エディションの定義ですが、「あるキャラのあるスタイルの音声が生成できる別手法」かなと思ってます。 |
コアが過去のモデルをずっと読み込めるよう互換性を保たないといけない点が問題だと感じています。 となると挙げられていたデータフロー以外にも、将来的にはライブラリやデータ構造などでも問題に直面しそうです。
これは現状でもできる方法でお手頃ではあると思いますが、完全に別物になってUIで区別付けられないのが不便になるかもと思いました。
まあなんだかんだこれが妥当なのかなぁと思いました。 |
よくよく考えてみたのですが、やっぱり2.(別コアとして扱う)ですかね。 現在VOICEVOX COREは
という二つの役割があります。 AudioQueryとOpen JTalkが扱え、PyO3によるAPIもでき、APIのasync/await化とvvm読み込みも実装されようとしており、辞書更新も現実味を帯びてくることで2.の要素も充実してきました。そのため2.として過去のモデルのロードもできないかなと考えていました。 しかし1.の領域(≒ モデルを読む部分)にはtorchやonnxruntimeや将来移行するかもしれないランタイムが全部必要となり、とどめに暗号化の必要があります。今後の状況によってはRust以外の言語(GoとかZigとか?)に移行することになるかもしれません。Rust APIとかNode.js APIとかJava APIとかの直接提供を考えていた私としては出来ない事が一つ増えてちょっと残念なことではありますが、互換性の維持は困難でしょう。 1.の方に今からでも別の名前(仮に (追記) "loader"というより、"runtime"とかの方がいいかも flowchart TD
models_and_ort["vvm × (voicevox_)onnxruntime.dll"] --> voicevox_loader["voicevox_loader (cdylib) (プロプライエタリかどうかはここではどうでもよい)"]
voicevox_loader -->|vvlib| voicevox_core["voicevox_core (rlib)"]
voicevox_loader -->|vvlib| voicevox_engine["VOICEVOX ENGINE"]
voicevox_core -->|Cargo| voicevox_core_c_api["voicevox_core_c_api (cdylib)"]
voicevox_core -->|Cargo| voicevox_core_python_api["voicevox_core_python_api (whl)"]
voicevox_core -->|Cargo| etc["…"]
voicevox_core_python_api -->|pip| voicevox_engine_["VOICEVOX ENGINE?"]
ただこれも"VOICEVOX CORE"という名前が既にユーザーに十分知られている以上、開発者にもユーザーにも混乱を招くかなと思っています。何よりVOICEVOX全体としてはそんなに利点がない。 |
なるほどです。runtime部分が新のコア部分っぽいなぁと思いました。 実はエンジンの機能をコアに移しているとき、エンジンから該当機能をなくそうとしていました。AudioQueryとか。 仮にvvlibにruntime部分だけ持たせると、またそれがなにかの制約になってしまうかもです。なのでとりあえず現コアの大多数の機能をvvlibにしておいて、バージョン1.0.0になるときに設計を見直すのが良いのかなと思いました・・・!! |
に「エンジン・コア・runtime・ライブラリの役割分離を見直す」というのを追加しておきました。 |
目的
長音・フレームレベルピッチ対応のコアをエディションとして分けたい
理由
今までと音質や声質に変化が生じ、その上モデルが一つ増えてデータフローに変化が生じるため、新しいデフォルトにしたくない
解決策
vvm
形式によるモデル読み込みを活用vvlib
の中にvvm
を内包する感じvvm
を読めるようにならないといけない(仕様の確定とかも含め)model_config.json
なんてものを用意していますが、使えるかは不明vvm
とかは考えず、vvlib
の中にコアを入れて音声ライブラリ管理機能で管理するイメージVOICEVOX
で音声ライブラリ機能を使う場合はこの形の想定だった問題
その他
The text was updated successfully, but these errors were encountered: