Skip to content

「コア」という概念を消滅させる? #78

@qryxip

Description

@qryxip

内容

#24 を完遂できたことにより、今の「コア」の役割をすべてエンジン内のPythonで実装することが可能になりました。つまり、「コア」という概念を消すことができるようになりました。

「コア」という概念を本当に消すかどうかと、消すとして段取りで進行していくかを議論したいです。

Pros 良くなる点

  • 現VOICEVOX COREの役割を明確にできる。位置付けとしては、Gitに対するlibgit2のようなものになる (現在も半分以上はそう)。
    • 現VOICEVOX COREは改名することになるが、それについては別途議論したい。
  • 音声合成処理の大半部分が現在Pythonになっている理由としては、読み書きできる人が圧倒的に多く貢献も受けやすいため。今のコアの役割においてもこの恩恵を受けられるようになる。特にONNX Runtimeのオプション設定などが、Rustの読み書きをせずとも試せるようになる。
    • Rustと比べて貢献のハードルを下げることができる、と言い換えることもできるかもしれない。現在まで(非rustaceanでありながら)COREを弄ることによりエンジン・エディタレベルの新機能を作ろうとした人は、私が覚えている限りではYちゃんさんとYosshi999さんしかいなかったような記憶。
  • おまけとしてではあるが現COREのcompatible_engineと、ENGINEのコアハンドリング関係を不要にできる。

Cons 悪くなる点

  • ENGINEの開発を主導する人が現状ヒホさんしかいない。そのためPython化したとしても、新機能の導入が爆速になるとは言えないかもしれない。

実現方法

今のVOICEVOX/voicevox_core/crates/voicevox_core/src/core/の実装を、抽象化を剥がしてENGINEに実装する。

ただし前もって次の2点は行っておく必要がある。

  • 「古い声」のVVMを配布することで、古い「コア」が不要になるようにする (cf. voice versionという概念を導入する #77)
  • VOICEVOX ONNX RuntimeのPython APIをビルドし、PyPIにアップロードする

VOICEVOXのバージョン

OSの種類/ディストリ/バージョン

  • Windows
  • macOS
  • Linux

その他

Metadata

Metadata

Assignees

Labels

機能向上要議論実行する前に議論が必要そうなもの

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions