https://x.com/getuka_0401_/status/1858764432308109646
Parler-TTSは、特定話者の音声を再現することを目的とはしてないTTSモデルだという理解。大量の音声データを機械学習して作製した合成音声AIとしては、建前的にまっとうなアプローチだと思われる。ちょっと試してみようね。
Whisper large-v3、実はチャット用の音声認識としては、十分な性能とは言えない面もある。というのもあれは相槌とかの短文に弱い。コンテキストが不足するせいだろう。
だったら、ユーザーの発声の前のボット発声もコンテキストとして入力すれば、それは「会話文の書き起こし」になるので精度上がるのかもしれないな。まあ富豪的なのでやりたくはない。
とはいえ、キャラチャット程度ならそこそこ使えるのも確か。正確に認識されなくても、そのままLLMに入力しても、何となく会話は成立するのだ。
あまりに変な音声認識結果だと、キャラが「お前何わけわからんこと言ってるの?」と煽ってくるけど、それはそれで味だと思う。結構おもろいよ。言い間違えた、とか、お前の聞き間違いじゃボケ、とか、そういう風にそのやり取りも楽しめばいいんです。
AIキャラチャットで一番大切なのは、応答速度ではない、という結論に至りつつある。チャットをターン制バトルじゃなくて、アクティブタイムバトルにするのが、たぶん一番大事だ。
チャットをターン制としてpull的、同期的に処理しようとするから、応答速度が気になってしまうんだろう。でも、会話って必ずしも「応答」するもんじゃないし、即座の「応答」があると会話っぽいかというと、そんなことも無い。応答速度を気にするあまり、フィラーを機械的に挿入して、いかにも機械との会話っぽくなってしまって本末転倒状態まである。
任意のタイミングで、こちらの話がそれなりの時間内に相手に伝わり、任意のタイミングで相手の話がこちらに伝われば、会話は成立するんだ。我々は普通にそれくらいの遅延があるボイスチャットを人間同士でもやってるわけで。
キャラチャットで同じプロンプトで3つ台詞だして、良いのをfunction calling的に選択させるプロンプト、効果が多少あるかな程度で、応答速度を犠牲にするまでのものかは疑問。結局は評価も同じモデルでやるから、うまく最良の選択ができてない感じ。論理エラーの検出が一番したいことなのに、それが一番苦手な感じ。ちょっと戦略を立てよう。