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

音声認識による自動調整 #231

Closed
Tracked by #1106
Patchethium opened this issue Dec 11, 2021 · 7 comments
Closed
Tracked by #1106

音声認識による自動調整 #231

Patchethium opened this issue Dec 11, 2021 · 7 comments
Labels
優先度:低 (運用中止) 機能向上 要議論 実行する前に議論が必要そうなもの

Comments

@Patchethium
Copy link
Contributor

内容

ちょっと伝えにくいかもしれませんが、たとえば、この動画にあるユーザー音声>>合成音声の機能を実装してみていきたいと思います。

議論したいことについてですが、まずその可能な仕組みが2つあることです。

  1. ユーザー音声>音声認識>モーラごとの音素&ピッチ&長さ>GUI>synthesis>合成音声
  2. ユーザー音声>音声認識>フレームごとの音素&ピッチ>decode_forwarder>合成音声

1つ目にはユーザーの調整空間が広くなりますが、精度は下がるかもしれません。2つ目のは逆に精度が高いですけど、ユーザーは音声の他に何も調整できなくなります。両方を実装して、2つ目の仕組みを高精度モードという名前をつける手もあるんですが、これ書くコードが多くて面倒になりそうです。

そして音声認識/合成を触ることは初めてですが、ここでこの実装は可能であるのかどうかわかりません。ご意見があればぜひ。

Pros 良くなる点

ユーザーの調整空間を広くなる

ボイスチェンジャーとして使えることになる

Cons 悪くなる点

やることが多い

実現方法

音素の抽出はJulius、音高の抽出はWORLDでできると思います。

ちょっと長さをどうすればいいのかよくわかりません。。。

@Hiroshiba
Copy link
Member

面白いアイデアだと思います!
音素の長さはJuliusのalignmentを使えば実装できるかもしれません。

が、この機能をエンジンに実装すべきかどうかは疑問です。
エンジンはTTS機能があれば十分で、声変換機能はなくても良いはずなためです。

とはいえ面白い試みだとは思います。
エンジンは抽出された音素や音高から、音声を合成できます。
音素や音高を抽出するコードを @Patchethium -san が別リポジトリ(もしくはエンジンをforkしたリポジトリ)で実装し、完成したらVOICEVOXでメンテナンスするか考える、というのはどうでしょう?

とりあえず一旦closeします。
開発の助けになるようなヒントはお伝えできると思うので、聞いて頂ければできる限りお答えします!

@Patchethium
Copy link
Contributor Author

I don't think there could be a better place than engine for this feature. We can access the decoder_forwarder right here and we have pyworld already, we just need to maybe link some Julius libs and we're good to go. I was not considering it as just a voice changer, but also an assistance for tuning referencing user's voice, as in the first plan we can return an AccentPhrase json to GUI. In my opinion it should be considered as more like the morphing feature.

@Patchethium
Copy link
Contributor Author

開発の助けになるようなヒントはお伝えできると思うので、聞いて頂ければできる限りお答えします!

As a matter of fact, I do have some questions:

Julius turns out to be pretty inaccurate, any advice in improving the quality of output?

@Hiroshiba
Copy link
Member

なるほど。
確かにエンジンに実装されていても良いかもしれないと思いました!

Julius turns out to be pretty inaccurate, any advice in improving the quality of output?

ESPNetに音声認識機能があります。Juliusよりは制度が良いかもしれません。
https://github.com/espnet/espnet/tree/9e98e430dca60ce746cb68b3786d6d4be825b94b#asr-automatic-speech-recognition

もしくは、音声認識(音素認識)はせず、ユーザーにテキストを入力してもらうという手もあるかもしれません(Seiren Voiceのように)。

@tarepan
Copy link
Contributor

tarepan commented Mar 5, 2024

前提条件の変化

2024年3月時点の VOICEVOX ENGINE はモーラ単位・フレーム単位どちらの入力からも波形合成が可能になりました。

本 issue の状況

現時点でアイデアが共有され、その意義や必要性は議論中との認識です。
本 issue にリンクされた open pull request は 0 個で、最後の議論から2年以上経過しています。

@Hiroshiba
当時とはかなり状況が変わっているため、改めて議論を再開するか、あるいは issue としては一旦 close するか、様々なやり方が有り得そうです。
本 issue の方向性はどのような感じでしょうか?

@Hiroshiba
Copy link
Member

Hiroshiba commented Mar 5, 2024

どうするべきかかなり迷っています!

というのも、有用だしどちらかといえば賛成なのですが、手が回らずかつすぐに手を回せる人もいないというタスクになっていそうです。
チャレンジャーがいたら応援したいけど、率先してやれないようなタスクをどう扱うべきかで迷っています。

なにか他のOSSプロジェクトや製品で良い例があれば真似したいですね…。

@tarepan tarepan mentioned this issue Mar 6, 2024
3 tasks
@tarepan
Copy link
Contributor

tarepan commented Mar 6, 2024

チャレンジャーがいたら応援したいけど、率先してやれないようなタスクをどう扱うべきか

ひとまずの対応として ENGINE の Roadmap を issue として用意しました(#1106)。
ここの Future(実装意向あり・時期未定枠)に登録しました。

本 issue の状態 for Future

本 issueは「意義はあるが、設計と実装を主導する人がまだいないため現状維持」の状態です。
新機能実装に興味のある方がいれば是非こちらの issue にコメントください!

@tarepan tarepan closed this as not planned Won't fix, can't repro, duplicate, stale Mar 6, 2024
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

3 participants