VOICEVOX / voicevox_core

無料で使える中品質なテキスト読み上げソフトウェア、VOICEVOXのコア
https://voicevox.hiroshiba.jp/
MIT License
871 stars 117 forks source link

feat!: liberate VOICEVOX CORE #825

Open qryxip opened 2 months ago

qryxip commented 2 months ago

内容

  1. manifest.jsonの"…_filename"部分を変更し、.binを認識できるようにします。.binの場合、https://github.com/VOICEVOX/ort/pull/8で追加されるSessionBuilder::commit_from_vv_binを用います。

        "predict_duration": {
          "type": "onnx",
          "filename": "predict_duration.onnx"
        },
        "predict_intonation": {
          "type": "onnx",
          "filename": "predict_intonation.onnx"
        },
        "decode": {
          "type": "onnx",
          "filename": "decode.onnx"
        },
        "predict_duration": {
          "type": "vv-bin",
          "filename": "pd.bin"
        },
        "predict_intonation": {
          "type": "vv-bin",
          "filename": "pi.bin"
        },
        "decode": {
          "type": "vv-bin",
          "filename": "d.bin"
        },
  2. Onnxruntime::LIB_NAME"onnxruntime"から"voicevox_onnxruntime"にします。

    compatible_engineの場合だけ、"voicevox_onnxruntime"で失敗すると"onnxruntime"にフォールバックするようにしています。 (モック目的で使えるように)

  3. https://github.com/VOICEVOX/ort/pull/8でログのフィルタリングをやめる代わりに、C APIのログフィルタのort=infoort=warnにします。

    (現行のONNX Runtime v1.17.3とsample.vvmだとログが大量に出てしまいました)

  4. build_and_deployのis_production周りを吹き飛ばします。

関連 Issue

Resolves VOICEVOX/voicevox_project#24. Resolves #388. Resolves #722.

その他

qryxip commented 2 months ago

a5f009c (#825) .binの呼び方をbinからvv-binとしました。

      "type": "vv-bin",
qryxip commented 2 months ago
qryxip commented 2 months ago

voicevox_onnxruntime自体の用意ができていませんが、多分時間がかかりそうであることを考えるとこのPRはさっさとマージした方がよいですかね? (その場合 VOICEVOX/voicevox_project#24 と #388 のlinkを外した上でdraftを外します)

Hiroshiba commented 2 months ago

@qryxip ちょっと迷いどころですが、 @qryxip さんの都合に合わせてマージしてもいいと思います!

というのも、多分このプルリクエストをマージすると、製品版をビルドしてもVVMがロードできなくなるんですよね~~ 別に必ずビルドする必要はないと思うので問題はないのですが、ちょっと後ろ髪を引かれる部分があるなと。

ただこのプルリクエストがマージされていないと進められないタスクもあると思うので、マージするのに反対ではないです。 本当に都合次第だと思います。

まあもしmainブランチで製品版ビルドしたものが動かない状態が微妙というところでしたら、一旦projectブランチを作ってそちらにマージするとかはありかもです。 コンフリクトが発生していくので早くなんとかしたい気持ちもありますが。

ということで、ちょっと問題は生じそうです+とはいえ進めやすい方法でいいと思います、って感じです!

qryxip commented 2 months ago

そうですね… このPRによってブロックされるというタスクは多分そんなに無い気がするので、draftのままでいいのかなと思ってます。ダウンローダーもVVMについては別で進められるかと。

(projectブランチも作らなくていいのではと思ってます。結局コンフリクト解消の手間をいつ取るのかという話になりそう。)