AIボイスエージェントの挑戦

9,297 文字

The Challenge with AI Voice Agents
Agents in Production Series - Episode Two// AbstractDemetrios, Paul, and Floris explore the latest in Voice AI agents. T...

みんなくそおおきにな、ほんま久しぶりにこの限定シリーズで戻ってきたで。今回はprocessチームと一緒に、彼らがAIエージェントでやってきた仕事についてガッツリ話すつもりや。今日のテーマは「ボイス」やで。ボイスAIエージェントを作ってきた経験を深掘りしていくわ。最初にPaulとちょっとだけ全体の状況について語り合って、俺が見てきたこと、彼が見てきたことを話し合った後、Floresと一緒に戦術的な部分に突っ込んでくで。具体的には、彼がOpenAIのリアルタイムAPIをどう使ってきたか、その学びがどんなもんやったかを聞いていくわ。

ボイスってのは全然別次元の獣やねんで、これから分かると思うけどな。さあ、始めようか!

ほんで、2話目に戻ってきたで。ここまでたどり着けたわ。昨日話した流れから、今回はボイスAIエージェントで熱くスタートするで。実は2話目って最初は「エージェント作る時に使ったフレームワーク全部話そうぜ、良かった点も悪かった点もな」って考えてたんや。でも、フレームワークってこの2年くらいずっとあって、ネット上でもめっちゃ語られてるやん。好きな人もおれば、嫌いな人もおるし、いろんな意見がある。

せやけど、ボイスAIエージェントを作ってる人の経験談とかコンテンツってあんまりないねんな。せやから、長年見てきたのは、ボイスで合成コンテンツ作る能力や。テキストを取ってきて、それをボイスに変えるってのは、AIシステムと関わる新しい方法やねん。特にB2Cの世界やと、エージェントを消費者につなげる大事なステップになるわ。

ずっとボイスクローニングとかアバターとかで実験してたで。Synthesiaとか11 Labsとか、他にもいろんなもん使って、どう見えるか、どう感じるか試してきたんや。けど、いつも制限やったのは、これがリアルタイムでできへんかったことや。ボイスは作れても、オフラインでのやりとりやったから、テキスト渡して、ちょっと待って、そんで戻ってくる感じやった。リアルタイムちゃうかったねん。

せやけど、1年くらい前やったかな、急に状況が変わり始めたんや。Grokのチームとデモやった時、めっちゃ鮮明に覚えてるわ。彼らの目的は加速することや。ほんまに速いねん。推理を最適化してて、それでリアルタイムのボイス対話ができるようになったんや。そんで、もちろんOpenAIのリアルタイムボイスAPIも出てきた。

Grokでやっとることは、2つのやり方があるってハッキリ分かるな。最近はスピーチ・トゥ・スピーチモデルがめっちゃ進んでる。モデルが全部やってくれるんや。スピーチ入れて、スピーチで出てくる。けど、そのトレンドになる前は、Grokの速さが活きてた。推理が早いから、パイプライン組んで、ボイス入れて文字起こしして、それをGrok上の大規模言語モデルに送ったら、めっちゃ速く処理できる。トークンのストリーミング速度が300トークン毎秒とかやで、めっちゃ速いねん。そんで、それをテキスト・トゥ・スピーチモデルで出力する。

このパイプラインやと、3ステップあるねん。違うモダリティの橋を別々のモデルで渡す感じや。それがOpenAIのリアルタイムボイスAPIとかで変わってきて、俺らもテストしてたんや。そしたら急に、エージェントと話せて、ボイス入れてボイスで返ってくるようになった。iFoodともテストしたで。世界最大級のフードデリバリー企業やね、ブラジルでやってる。ライダーが配達中に使えるか試してみたんや。

ちょっと考えてみてや。一つは俺らでデモやってるだけやけど、同じモデルをサンパウロの街中でフードデリバリーのパートナーに持たせてみてくれ。ブラジル訛りのポルトガル語で、雑音だらけの交通の中で、急いでて、レストランどこやねんとか道が閉まってるとか分からん時に、ボイスモデルがちゃんと動くか試すんや。めっちゃええテストやったわ。ラボで動くもんをリアルで試すわけやから、いろんな理由で複雑やねん。

レストランに電話して「注文どこや?」って聞くんや。普段やったらiFoodに電話して聞くけど、普通はバイク止めて、スマホ出してテキスト打つやろ。時間ロスせんと安全にやるために、リアルタイムでボイスでやりとりできるケースを試したんや。技術的にできるか、ちゃんとアプリに組み込めるか、ライダーにとって使いやすいか、iFoodが早く質問に答えられるかとか、いろんなことテストしたで。

そしたら、全然新しい複雑さの世界に入るねん。オーディオってどんなフォーマットでストリーミングするんや?バッチ処理やなくてストリーミングやで。普段のエージェントツール呼び出しのワークフローからリアルデータ取ってこなあかんし、前回話したメモリーの部分もめっちゃ大事や。どうやって大事なこと見失わんとコンテキスト保つんや?

ボイスエージェントのメモリーってどうなってるか分からんねん。パイプラインやと、新しいもんをプロンプトに突っ込むか、会話全部をコンテキストウィンドウにぶち込むんか、どうやってるんやろな。いろんなやり方あるで。システムプロンプトあって、コンテンツをストリーミングして、使うモデルによるけど、今回は全部コンテキストウィンドウに入れたんや。けど、それにも限界あるしな。

内部でいろんなユースケース試したで。特定のトピックの専門家になれるか、内部教育コース使って、トークンって内部アシスタントに電話して質問できるようにしたんや。そしたら、単純なテキスト・トゥ・テキストのやりとりやと、コンテキストに何入れるかでどう動くか分かるけど、ボイスやと全然ちゃう動きするねん。違う言語でテストして、ポルトガル語から始めて英語の単語言うたら、英語で返してきて、システムプロンプトにポルトガル語って書いてても戻らんねん。

ハルシネーション(幻覚)もめっちゃ起こりやすいわ。LLMで解決したと思ってたことが、ボイスモデルの世界やとまた爆発するねん。勝手に作り話始めるしな。このボイスAIの全体像で、いろんなプレイヤーがいろんなことやってるで。11 Labsはテキスト・トゥ・スピーチやし、Deepgramはボイス・トゥ・テキストやってて、最近はテキスト・トゥ・スピーチも始めた。未来がそこにあるってみんな分かってるからな。

xAIはスピーチ・トゥ・スピーチモデルやってるし、OpenAIもリアルタイムでやってる。この分野で注目されてる他のモデルあるか思う?アプリ作るための土台やねん。ボイスをモデルにどうやって届けるか、Zoomか電話かで情報入れなあかん。モデルがそれで何かして、スピーチ・トゥ・スピーチで返すか、パイプラインでやってくかや。

あと、Humeってのもあるで。感情検知とかやってて、ツールキット作ってる。他にあるか?ボイスクローニングも大事やね。昔は高品質なオーディオいっぱい必要やったけど、今は数十秒で高精度なクローン作れる。文字起こしも高精度でやって、言語検知もいる。会議や客との会話なら話者検知も必要や。システムに組み込むと、いろんな要素が一緒にならなあかん。

Prosはグローバルやから、英語だけやなくて、ヒンディー語とか南米や東欧の言語で、どうやって精度測るかベンチマークしてるで。翻訳もできなあかん。教育コンテンツ作るなら、UdemyとかSkillsoftとか、企業学習の会社が翻訳やダビングしたいやろ。それも高品質でやれるけど、オフラインでええから、俺らみたいに今会話してる感じやなくてもええねん。

B2Cやと、iFoodとかマーケットプレイスで、消費者やドライバー、レストランとリアルタイムでやりとりしたい。チャットの文字よりリッチなメディアやから、話者や感情、イントネーション、アクセントとか検知して、もっとええ答え作れる。それをどう使うかは、また新しい課題やねん。人が苛立ってるか分からなあかんし、「うん」って一言でもいろんな言い方あるやろ。学習やと、ちゃんと集中してるか、アクセントどうやって直すかとか、リッチなメディアから信号取れるから、それをどう使うかが問題や。

2つのカテゴリーあって、最初のダビングとかはあんまりエージェントっぽくないけど、2つ目はめっちゃエージェントやねん。俺、ブラジルのポッドキャスト出て、最初はボロボロのポルトガル語でMLOps語って汗かいてたわ。後半は英語で話して、後でブラジルポルトガル語にダビングしてくれた。エージェントっぽいのは、行ったり来たりして情報取ったり、エージェントに何かさせたりする時やねん。

今まさにその最前線やろ。ボイスモデルでリアルタイムに機能呼び出し使いたいけど、まだ苦労してるわ。ハルシネーションなくすには必要やし、システムプロンプトや指示の従い方もユースケース次第やけど、まだ完璧ちゃう。でも、進化してるからな。この12ヶ月でめっちゃ良なってるし、機能呼び出しがちゃんとできたら、エージェントのワークフローでツール使って高精度な会話できるで。

ユースケース見てみよか。Eコマースにフォーカスしてて、B2Cの世界やと、客とのタッチポイントがボイスで変わってくる。俺らはアムステルダムにおるけど、プラットフォーム使う人はブラジル、インド、東欧とかで、技術の使い方が全然ちゃうねん。WhatsAppのボイスメッセージの割合とか、ブラジルやとオランダよりめっちゃ高いわ。ボイスってそういう市場やと自然な能力やねん。

レストランや不動産のパートナーと確認したり、メニューチェックしたり、シームレスなタッチポイントに使える。まだ未開拓やと思うのは、ユーザーがボイスでプラットフォームとやりとりする時、どうやって意図を検知して助けるかや。Paulが「今夜は軽いもん欲しい」って言うて、苛立ってるかもしれんから、すぐ割引で注文確定してあげるとか、リッチなメディアやからいろんな使い方あるで。

フード注文だけやなくて、最近南米の旅行プラットフォームbigrと提携するって発表したから、旅行のユースケースも増えるで。まだまだ未開拓で、試して作るべきもんがいっぱいあるわ。面白いユースケースで、規制の厳しいヘルステックで見たな。医者や心理士が管理業務減らして早く仕事できるようにしてる。俺ら医者ちゃうけど(実は俺、変な工学の博士やけど役に立たんわ)、医者って保険とか患者の状態とか処方箋とかで管理業務に時間かかるやん。

それやとあんまりエージェントっぽくないけど、医者がスマホで会話録音して、後でフォーム埋めるのを助けたり、エージェントが医者に「これどう思う?」って聞いて、看護師みたいに話せたりする。グループにCordiaって会社あって、ヘルスケア分野でやってるで。AIネイティブで賢いチームや。ボイスも含めて新しい能力使って、医者や救急部門の電話対応する人にインターフェース提供して、電話の相手を助けてる。

通話中にモデルが聞いてて、医者に正しい質問提案したり、「これ緊急やろ、この質問聞いてみ」とかコード化して、次のベストアクション導いてくれる。めっちゃ助ける形でリアルタイムや。ヘルスケアやからミスは許されんし、モデルの精度評価も凝った仕組みでやってる。ヘルスケア特有の用語取れるように、独自の訓練もしてるわ。毎日何千人ものヘルスケアワーカーに使われてるで。

面白いのは、俺らが話したフルパイプラインやなくて、ボイス入れてエージェントが助けるけど、ボイスは出さん方式やねん。エージェントワークフローやし、ボイスAI使ってるけど、全部やなくて、創造的やな。もう一つ話題やけど、特に賢いエージェント考えると、適切なタイミングで自分から連絡する能力やね。今のシステムって、質問かタスク持ってこんと動かんで、運良かったらエージェントが уточ質問してくるくらいや。

でも大抵はすぐ実行するだけや。前の話で分かったけど「ノー」とか言えんしな。税金申告とか何時間もかかるタスクやと、適切なタイミングでシステムが「これ考えた方がええで」とか「忘れてへんか?」って介入してほしい。ボイスはその接続方法の一つやけど、それだけやないで。Eコマースで俺のエージェントが俺のために動いてほしいねん。特にボーダフォンとか電話でたらい回しにされて、各人間エージェントが何で電話したか分からん時とか。

俺のエージェントに「ボーダフォンに電話して、なんで余計に請求されたか調べて」って言いたい。日々向き合う会社のボイス対応って大抵ロボットで最悪やし、エージェントが代わりにやってくれたらええな。ほんま非対称やね。大企業のコールセンターはIVRとかちょっと賢いエージェントおるけど、俺らはまだ自分の時間使ってる。俺らのコールエージェント欲しいわ。実はそんな難しくないで。Floresがテストした話聞くと、エージェントにボイスで指示してEコマースで動かせるんや。

2025年はエージェントを自分に代わって送り出せるええ年になりそうやな。せやったらFlores呼んで、彼がボイスエージェント作って何見つけたか話そうや。リアルタイムAPIでめっちゃ遊んでるし、壁に頭ぶつけた経験から、他の開発者が同じことせんように助けたいわ。

おおきにな、また来てや。ボイスとテキストの違い、どうやったか教えてくれ。いやあ、旅やったで。初めてオーディオエージェントが動くって聞いた時、「おお、あるエージェントのプロンプトをコピペしてリアルタイムAPIに突っ込んだら動くやん、簡単や!」って思ったんや。それが夢やったけど、現実はちゃうかったわ。

まず、俺が何かタイプして、お前がタイプしても同じやろ。でも喋ったら、お前と俺で全然ちゃうねん。間とかイントネーション、単語の発音とか、変数が多すぎるわ。それが積み重なって、最初が曖昧やと次も曖昧になって、段落丸ごとエージェントに超曖昧に聞こえる。テキストやとない次元で、最初から対処するのむずいわ。

面白いな、エージェントでいろんなイベントが発火するって言うてたやん。テキストやと「メッセージ送って解釈する」だけやなくて、もっと細かいピースがあるんやろ?マッピングしてくれへんか。テキストやとメッセージ送って、構造化されてるやん。ツールあって、ユーザーがこう言うて、アシスタントがこう言うて。でもリアルタイムやと全部非同期や。websocketで繋がってて、「これがメッセージや、返事くれ」ちゃうねん。ずっと返事来て、ずっと送れる。

それがセッションでどう処理されて保存されるか知るのが大事や。俺が喋ってて、お前が途中で割り込んだら、俺はまだ何言うか覚えてるやろ。昔のテキスト・トゥ・スピーチやスピーチ・トゥ・テキストからLLMやと、LLMがその記憶持ってたけど、リアルタイムAPIで変わったんや。割り込みイベントがあって、LLMの出力をトリムして、どこで割り込まれたか分かって、お前がその部分知らんことも分かる。質問しても「前に言うたやん」とか言わんねん。

APIリファレンスページにええビジュアルあるから、見てみてな。アクセントとか言い方で変えられるし、レイテンシーの要件もある。言うたことが質問に関係あるかも大事や。リアルタイムで難しいのはターン検知やね。俺が喋ってて、自然な間はあるやろ。考える時間や次の単語探す時とか。でも「喋り終わった」もあるやん。終わったらエージェントに返してほしい。

ターン検知は、沈黙を最小限にして、考える間も残したいんや。割り込まんとね。でもこれ、めっちゃ個人差あるで。俺用にエージェント作ったら、俺の喋り方に完璧に合わせるわ。お前に渡したら「すげえ、割り込まん!」ってなるけど、お前のスタイルやと割り込んでまう。俺は間長く取るし、お前はちゃうから調整せなあかん。

友達がエージェント作ってて、ユーザーが何か言うと、エージェントが「喋りたいんか?」って思うて止まるって言うてたわ。人間やと頷きながら「うん」とか言うけど、エージェントはそれで止まる。パラメータ変えられて、何ミリ秒以上喋ったら「喋ってる」とみなすか設定できる。「うん」は検知せんようにできるけど、個人差やねん。

友達のもう一つの気づきやけど、エージェントをちょっと下手にしたら製品が良くなったって。完璧やなくて下手やと、人間が同情して我慢して、ゆっくりハッキリ喋るから、製品にええ結果になる。最高にしたら、客が過大評価して、結果が悪なるって。人間って相手に合わせて喋るからな。初めて聞いたわ、メモっとくで。

Evalで何が動いて何がアカンか試したんやろ?カスタムEval教えてくれ。めっちゃ面白かったで。いきなり野に放つわけにいかんやん。「電話で動くアシスタントや、頑張ってな!」ってならん。限界知らなあかん。リアルタイムAPIが1ヶ月しか経ってなくて、テストフレームワークなかったから、「リアルタイムAPIでリアルタイムAPI試そうぜ!」って狂ったアイデア出たんや。

ドイツ訛りで喋ったり、めっちゃ遅くや速く喋ったり、感情込めたり、いろんな実験できた。ランダムにキャラ作って、遅く喋るか、アクセントありなし、イギリスかアメリカか、悲しいか嬉しいか、フルでやったわ。自動化したら何でも試せるやん。数百の実験やって、同じこと言わせて、電話エージェントがどう反応するか見た。

ピザ注文やけど、いろんなスタイルでやった。結果、イタリア語とスペイン語がごっちゃになって、どっちか分からんくなると入れ替わってた。ハイブリッド言語やな。俺も「Amigo」ってイタリア語やと思う時あるけど、賢いモデルも同じミスするんや。ドイツ訛りやとドイツ語で返してくるし、イタリア訛りは平気やけど、ドイツ語になると反応変わるねん。アクセントで言語の壁越えるんや。

ターン検知は、遅く喋るとランダムに発火してた。ゆっくり喋る人は一貫性保つのが難しかった。間が数ミリ秒長すぎると実験吹っ飛ぶ。それを合成データで見たんや。1ヶ月しか経ってないのに、俺らが最初なんちゃうかって興奮したわ。ターン検知って後で個人化してリアルタイムで適応すると思う?どう解決すると思う?

難しいで。まずみんなが普通に使うの学ぶのが早いけど、チャンスはあると思う。リアルタイムAPIで自分でターン検知できるし、OpenAIのはただのモデルや。オープンソースで適応型のターン検知モデル作れたらええな。声10秒でクローンできるんやから、ターン設定も10秒で検知できんかな。

オープンソースやと、Koguraってモデル出てきたやろ?ちょっと遊んだんやろ?うん、Koguraや。名前苦手やけど、リアルタイムAPIのオーディオやないけど、吹っ飛んだわ。11 Labsはテキスト・トゥ・スピーチで最高やけど、これはリアルタイムちゃう。でもこのエピソードで叫びたいくらいすごい。8200万パラメータで高性能やで。他はビリオン単位やのに。

MacBookでリアルタイムの5倍速で生成できる。GPUあったら100倍超えるって。テキスト・トゥ・スピーチが民主化されて、誰でもダウンロードして遊べる。11 Labs焦ってるんちゃうか。終わる前に、ボイスAIエージェントのフローをどう思うか、TokonのウェブやSlackボットと比べて教えてくれ。Paul言うてたけど、リアルタイムでやるのむずいし、レイテンシー高なるし、まだ無理っぽいな。

実現性ってデカい言葉やけど、考え直さなあかんことはあるわ。初めてラップトップでツール付きのエージェント動かした時、「すげえ!俺が作ったボイスエージェント動くで!」って思った。喋りかけて、ツール呼んだ時は嬉しかったけど、そっから沈黙や。気まずいねん。お前ならログ見て分かるかもしれんけど、電話の向こうやったら「何してるんや?」ってなる。

ツール実行中で喋るの止まるんや。論理的な次のステップやからな。プロンプトで「これ言うたらツール呼べ」ってしてたから、ツールの出力待って、「ツールからこれ来たで」って読み上げる。でもそれ、クソ体験やったわ。「これアカン」って気づいたんや。考え直さなあかん。ツール呼ぶ時、テキストやとテキストとツールコールできるし、オーディオも同じや。「ツール呼んでるで、パラメータはこれや」って言わせて時間稼げる。

でも、ツールを速くするのが大事や。リアル会話で遅いツール入れん方がええ。「それやってるで、処理始まったらメールかテキスト送るわ」って分けるんや。リアルタイムで扱えんことは分離する。最初の気づきやね。速いツールだけ残して、ジョブは分ける。例えばフード注文はジョブや。「注文するで、それだけや」って。ピザ屋に電話してピザできるまで待たせんやろ。

2つ目はフローの考え直しや。綴りを避けなあかん。「俺、Floresや。医療記録取ってきて」って言うたら、名前20通りも綴れる。英語の普通の単語でも、綴り間違えると次進めん。回避する方法あるで。HR設定やと「どのチームや?」「AIチームや」「名前は?」って聞くと、25人のリストあって、「Flores」言うたら一番近い綴り分かる。ワークフローをやり直して綴り問題克服や。

最初「実現できるか?」やったけど、できないことも回避策ある。もっとクリエイティブにならなあかん。綴りが解決するかは分からんけどな。Canonical AIって会社あって、ボイスAIエージェントの製品分析やってる。どこで失敗してるか見えて、作った人として「名前言う時に盲点ある」とか「このフローで離脱多い」って分かる。

時間がかかりすぎたか、答え間違えたか、考えてる反応なかったか、いろんな要因あって、フローが壊れるとこ見つけて調整できる。めっちゃ価値あるで。特に今、誰もどこで壊れるか分からんから、リアルタイムでインサイト得られたらすぐ反応できる。コールセンターで20、50、500件が同じステップで切れて、1分の電話が3秒で終わるなら、アラート欲しいやん。

DatadogやPrometheusみたいなソフトのリアルタイムインサイト必要や。ログ見て気づいたのは、過信しすぎやねん。発音間違えたり言い間違えても「もう一回言うて?」って聞かへん。人間やと普通やのに、テキストと同じで過信して「ノー」とか言わん。最初の「もう一回言うて?」って言うオーディオモデル楽しみやわ。それが次のフロンティアやね。

今日はここまでや。Processチームの透明性にでっかい拍手やで。AI分野でこんなデカい会社が失敗語るの珍しいし、俺らが苦労したこと学べる。また募集してるらしいから、このチームと一緒にカッコいいことしたい奴は連絡してや。ショーノートにリンク置くで。創業者でええデザインパートナー探してるなら、ぜひ連絡してな。全部ショーノートにリンク置くわ!

コメント

タイトルとURLをコピーしました