Skip to content
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

project-s ブランチをmainブランチにマージしたい #737

Open
Hiroshiba opened this issue Jan 28, 2024 · 3 comments
Open

project-s ブランチをmainブランチにマージしたい #737

Hiroshiba opened this issue Jan 28, 2024 · 3 comments

Comments

@Hiroshiba
Copy link
Member

内容

長い間別ブランチになっていたproject-s ブランチが役目を果たしました。今はrelease-0.15ブランチになっています。

なのでmainブランチにマージしたいのですが、あまりにも API 構成が変わりすぎているので、どうしていくべきかを考えられる場を作ってみました・・・。

実現方法

とりあえず問題になりそうな箇所を列挙してみます。

style_typeが違う場合の扱い

スタイルごとのタイプが今まで1つだったのが、4つになりました。

  • talk: 今までと同じ、TTS用のスタイル。TalkModelに対応。
  • sing_teacher: 歌い方を生成できるスタイル。SingTeacherModelに対応
  • sf_decode: 歌い方から音声を生成できるスタイル。原理上、別に歌じゃなくても良いので名前にsingが入ってない。SfDecodeModelに対応。
  • sing: sing_teacherとsf_decodeの機能を持つスタイル。

これ関連でややこしいことが3つ思いつきます。

  • singスタイルはモデルが2つ必要
    • 可能であれば1つのVVMに2種類のモデルを持てるようにしたい
    • metas.jsonやmanifest.jsonで、typeをsingにするのかsf_decodeとsing_teacher2つを持たせるのか、どっちがいいかわからない
      • まあ互換性がなくなったらmanifest_versionを上げれば良いだけなので、どっちでもいいっちゃ良い
  • 同じスタイルID・別のスタイルTypeがありえる
    • A.vvmにはsing_teacherが、B.vvmにはsf_decoderが、みたいな
  • 1つのvvmの中に複数のスタイルTypeを含めたい
    • 例えば、sf_decodeしかないスタイルと、singも持ってるスタイルを同じvvmに含めたい
      • もうちょっというとmodel.onnxを共有できるため
    • あと将来的なことも考えると、1つのキャラの全スタイルが入った vvm が作れるようになるので嬉しいかも
      • namine_ritsu.vvm(トーク・ハミング・ソングがある、みたいな)
    • これは最悪切っても良い(容量が非効率的だったり、複数の vvm に分散するだけなので)

InferenceDomainが増えそう

style typeごとに一つdomainを作るのか、sing domainは作らないのか、どっちが良いかパッとわかりませんでした・・・。

使い方・サンプル

それぞれ追加が必要そう

その他

もし何か問題がありそうだったら、破壊的変更しちゃってもいい気がします。
かなり説明が曖昧なところがあると思うので、不明な点があれば何も聞いてください 🙇

@qryxip
Copy link
Member

qryxip commented Mar 16, 2024

@Hiroshiba さん、 @y-chan さん、 @qryxip の3名で行った2024-03-04のミーティングから:

  • 0.16にはcompatible_engineだけでも入れる (優先度を高くする)

ただし、ミーティング中に話した次の2点についてはミーティング後に気付いたことがあります。

@Hiroshiba
Copy link
Member Author

どの概念が3種持つべきかぱっとわからないんですよねぇ…。

is model loadedはたしか今世に出てる製品版コアだと、そのスタイルで扱うモデルが全部読み込まれてたらtrueとかだったと思います!

qryxip added a commit to qryxip/voicevox_core that referenced this issue Oct 9, 2024
 VOICEVOX#737 に向け。また VOICEVOX#851 の後にdecode.onnx入りのVVMに対応するときも同様に
役に立つはず。
qryxip added a commit to qryxip/voicevox_core that referenced this issue Oct 9, 2024
 VOICEVOX#737 に向け。また VOICEVOX#851 の後にdecode.onnx入りのVVMに対応するときも同様に
役に立つはず。
qryxip added a commit that referenced this issue Oct 10, 2024
#737 に向け。また #851 の後にdecode.onnx入りのVVMに対応するときも同様に
役に立つはず。
@qryxip
Copy link
Member

qryxip commented Nov 2, 2024

現段階で私が考えている手順をメモします。

  1. mainの先頭でgit merge release-0.15を試み、コンフリクトしたら一旦main側にrestoreする。
  2. mod singing_teachermod frame_decodeを実装する。
  3. crates/voicevox_core/src/infer/domains.rsに、singing_teacherframe_decodeという概念を追加する。qryxip@6939915のようにするとコンパイルエラーは次の画像の範囲で収まるはずなので、これを解消していく。
    (私以外の人がやる場合は私をco-authorに入れるという流れになると思います。著作性あるかわからんけど)
    image
  4. release-0.15の内容を移植していく。
  5. git mergeを完了したらそのマージコミットでPRを作る。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants