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

モデルを外部ファイルから読み込める形にする #363

Closed
Hiroshiba opened this issue Jan 3, 2023 · 5 comments
Closed

モデルを外部ファイルから読み込める形にする #363

Hiroshiba opened this issue Jan 3, 2023 · 5 comments
Labels
優先度:高 機能向上 要議論 実行する前に議論が必要そうなもの

Comments

@Hiroshiba
Copy link
Member

内容

今はonnxなどのモデルファイルをライブラリ内に埋め込んでいるのですが、モデル数が多いとビルド時にエラーが出ることがわかりました。

ビルド方法を頑張って対応するのもありなのですが、モデル数は線形に大きく増えていく可能性もあるためいずれ限界が来る気がしています。
であれば、モデルを外部ファイルから読み込む形にする(あるいは形にもする)ことで、抜本的解決になるのでは、という提案です。

付随効果として、モデルを実行時に差し替えたり、モデルファイルだけをアップデートしたりもできるようになるので柔軟性が上がるという利点もありそうです。

Pros 良くなる点

モデル数が多くなることによるビルドエラーを回避できる。
モデルファイルだけ配布したりできるかも。

Cons 悪くなる点

アーキテクチャなどを変更する必要がある。

実現方法

とりあえず動かす案と、取り回ししやすいようファイル構造も考える案があります。

  • とりあえず動かす
  • ファイル構造も考える
    • ファイルは全部くっつけて1ファイルにしたほうが取り回ししやすそう
      • ここであったvvmファイルみたいな
      • 雑にzipで良さそう?
    • metas.jsonはそのまま外にあったほうが何かと便利そうだけど、vvm内と外で重複させたほうがコードが楽そう

可能なら最初から後者だとかっこいい気がしています。

その他

以前VOICEVOXはモデルを外部ファイルから読み込む形だったのを、埋め込む形に変更しています。

もしこのissueの解決が実行されれば、元に戻すという形になります。

当時の考えが及ばないほどVOICEVOXが成長してキャラクターが増え、1年越しに別の課題・要求が生じました。
当時積極的に取り組んでくださった @Oyaki122 さんには申し訳ないのですが、今の形に合うように進められればと思っています!
@Oyaki122 さん、改めてありがとうございました・・・!

@Hiroshiba Hiroshiba added 機能向上 優先度:高 要議論 実行する前に議論が必要そうなもの labels Jan 3, 2023
@Hiroshiba
Copy link
Member Author

discordのやり取りをこちらに反映すると、「include_bytesをやめること」を最優先にして一旦issueを解決するのに集中するのが良さそうに感じました!

@qwerty2501
Copy link
Contributor

暫定対応のmerge終わりました

@Hiroshiba
Copy link
Member Author

ありがとうございます!!追従作業してリリース作ってみようと思います!!

@Hiroshiba
Copy link
Member Author

作ってみました! 🎉
https://github.com/VOICEVOX/voicevox_core/releases/tag/0.14.0-preview.3

@Hiroshiba
Copy link
Member Author

こちら完了だと思うのでcloseします!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
優先度:高 機能向上 要議論 実行する前に議論が必要そうなもの
Projects
None yet
Development

No branches or pull requests

2 participants