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

RFC: vutd-shovelから音声合成部分を(別リポジトリなどに)分離 #197

Open
phenylshima opened this issue Jul 17, 2022 · 0 comments
Labels
enhancement New feature or request

Comments

@phenylshima
Copy link
Collaborator

phenylshima commented Jul 17, 2022

現在vutd-shovelには音声合成部分(openjtalk)が内蔵されています。
このIssueでは、openjtalkをvutd-shovel本体から分離し、HTTPで音声合成サーバーを叩く形式に変更することを提案します。

詳細

  • speaker.tsでnode-openjtalk-bindingを呼び出す代わりに音声合成サーバーを叩く
    • 音声モデルなどのオプションとpreprocessor.tsを通した発話内容を渡す
    • 音声合成サーバーは音声合成をして、opusにエンコードして返す
  • 音声合成サーバーは別のリポジトリを建て、(願わくばrustで、無理ならC++で)openjtalkのラッパーとして開発する
  • 音声合成サーバーでもDockerイメージを作成する。ライセンスの問題がなければ音声モデルも辞書も同梱したい

Pros

  • Dockerイメージに入っている辞書が不要になるので、vutd-shovelのDockerイメージが小さくできる
    • その代わり新しく作る音声合成サーバーのDockerイメージは大きなものになる
  • vutd-shovelの実行にパワーが要らなくなるため、「常時起動の非力なサーバー」+「リクエストに応じて起動する強いサーバー」に分割できる
  • node-openjtalk-binding-discordjsやnode-openjtalk-bindingといった間に挟まっているブラックボックスが減る

Cons

  • VUTDだけで使う分には意義が薄い
  • 音声合成サーバーとvutd-shovelサーバーとの通信によりレイテンシが増大する

今後、openjtalk以外も使えるようになったらいいなあというのもあり、今回提案しました。
まだ結構粗削りなのですが、ここで詰めていけたらと思います。

@phenylshima phenylshima added the enhancement New feature or request label Jul 17, 2022
@phenylshima phenylshima changed the title vutd-shovelから音声合成部分を(別リポジトリなどに)分離 RFC: vutd-shovelから音声合成部分を(別リポジトリなどに)分離 Jul 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant