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

人間が喋り始めたら読み上げを一時停止する #184

Open
cm-ayf opened this issue Jan 28, 2024 · 5 comments
Open

人間が喋り始めたら読み上げを一時停止する #184

cm-ayf opened this issue Jan 28, 2024 · 5 comments
Labels
enhancement New feature or request

Comments

@cm-ayf
Copy link
Collaborator

cm-ayf commented Jan 28, 2024

ってアリ?

@phenylshima
Copy link
Contributor

phenylshima commented Jan 28, 2024

あってもよさそうですが,きりの良いところまでは言い切ってほしいです.

@phenylshima
Copy link
Contributor

「話し中」フラグ

  • 人ごとの「話し中」フラグと,全体の「話し中」フラグがある.全体の「話し中」フラグは,人ごとの「話し中」フラグのorである.
  • ある人が喋り始めて200ms経過するとその人の「話し中」フラグが立つ
  • ある人が喋らなくなって500ms経過するとその人の「話し中」フラグを解除する

ボットが喋る条件

  • 全体の「話し中」フラグがtrueなら,話し始めない.
    • 合成は行う.この際,音声データは読点(というかBreathGroup)で区切っておく(jbonsaiなら可能だがAPIは要検討).
  • 全体の「話し中」フラグがfalseかつ,再生キューに音声があれば次のBreathGroupまで読む.
    • 読んでいる間に「話し中」フラグがtrueになっても無視する.

@cm-ayf
Copy link
Collaborator Author

cm-ayf commented Feb 24, 2024

「次のBreathGroupまで」とかいうのは難しそうだな player.on('BreathGroup')

@phenylshima
Copy link
Contributor

フルコンテキストラベルと音声との対応はjbonsaiにしかないので,jbonsaiに何かしら実装するしかないと思います.

jbonsaiの側でBreathGroupで分割してしまい,結合することなく音声をjs側に流せば,BreathGroupで分割されたPCM音声の配列(Vec<Vec<i16>>?)が手に入りますから,既存の枠組みでうまいことできるのではないかということです.
ただ,jbonsaiのAPIとして正しいのかという問題はあります.

@phenylshima
Copy link
Contributor

SStreamとPStream/GStreamを分割し,voicevoxに似たAPIにするのは一つの方策としてあるかもしれません.
(voicevox_engine互換になったらそれはそれで面白いかも?)

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

3 participants