-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
Description
内容
VOICEVOXは学習更新や調整で、「同じスタイルでも音が変わる」ことがあります。そのため「古い音を利用したい」という需要が発生しうります(例1, 例2)。この需要に対応する機能として、ENGINEにはコアの差し換え及び複数コアの読み込みがありますが、これには後述する難点があります。そこで voice version という概念を導入し、過去版の固定や再現を簡単にできるようにする案です。
現在「声」の識別子は、例えばエディタ視点だとこうなっていると思います。
(EngineId, SpeakerUuid, StyleId)ここに"voice version"という概念を導入し、
(EngineId, SpeakerUuid, StyleId, Optional VoiceVersion)のようにします。具体的には、metasにおけるスタイルの下にvoice_versionというプロパティを追加します。またキャラクター下のversionはdeprecated扱いにします。
今のENGINEにある"core version"では駄目な理由
- 「コア」ではなくVVMで区別する方が利便性が高い。コアのバージョンにしておくメリットもユーザーには無いはず
- "core version"は現在「コアが出すmetasにおける、先頭の
CharacterVersion」という意味になっている。これが不便であることは明らかとして、これを別の意味で置き換えることも混乱を招きうる
voice versionの具体的なデータ構造はまだ議論していません。個人的には、エディタレベルでユーザーにvoice versionの値を直接見せることも視野に入れた方がよいかなと思ってます。
- 連番による整数か?それとも"yyyy-mm"のような文字列か?それともUUIDか?
- 先行配布のときは
"n-beta.1"にしておく、という手もありそう
- 先行配布のときは
OpenAPIの事情を一旦脇に置いておくと、実質的にオプショナルであるべきか?オプショナルの場合、デフォルトではどういう扱いにするべきか?- VOICEVOX以外のエンジンのことを考えるとオプショナル一択
- ストリーミングでは「声は全く変わらない」といった感じだが、このときvoice versionは変化するべきか?
これまでの議論:
Pros 良くなる点
- 「古い声の復刻版」のVVMを提供できる
- それにより、エディタレベルでの声のバージョン切り替えの話が進みやすくなる
Cons 悪くなる点
実現方法
VOICEVOXのバージョン
OSの種類/ディストリ/バージョン
その他
Reactions are currently unavailable