usagi / virtual-avatar-connect

配信支援アプリ Virtual Avatar Connect; VAC AI疑似人格共演者、VRM制御、音声認識、画像認識、字幕、翻訳、読み上げ、Twitchチャットなどなど
MIT License
5 stars 1 forks source link

《OS-TTS》の再生終了判定が正しく行われず複数回または複数種類のTTSあるいは《CoeiroInk》との同時使用に問題が発生します #13

Closed usagi closed 9 months ago

usagi commented 9 months ago

再現手順

次の何れかで発生を確認:

期待した挙動

実施の挙動

サウンドデバイスの再生判定か何かが共有されてしまっているのか、デッドロック的に《OS-TTS》が一度音声合成を再生すると他の音声再生系が動作しない状態になります。

VAC Version

0.0.0-alpha.0

conf.toml

《OS-TTS》を定義すれば100%再現性するため省略。

usagi commented 9 months ago

調査の結果、《CoeiroInk》などの波形合成を受け取って音声データを再生するために使用している rodio が OutputStream を開いていると、《OS-TTS》 の tts のWindows実装の WinRT での is_speaking() が常に true を返す状態となり、事実上のデッドロックのような状態を呈することがわかりました。

解決方法として次のアイデアがあります:

usagi commented 9 months ago

tts 本家では対応する気持ちはあっても実質1年以上放置されてしまっています。とりあえずコメントで期待している人がいることは伝えておきました。しかし、私はVACを実用製品としてリリースしたいので、さしあたり開発中の synthesize 対応ブランチを直接取り込む事にします。