徹底解説 · 小互

OpenAIの開発舞台裏:GPT-Liveリアルタイム音声システムを6カ月で構築した方法

AIの会話を途切れさせないには、モデルが速いだけでは足りません。ボタンを押してから音声が耳に届くまで、すべての工程を滞りなく動かす必要があります。

1分で要点
  • 従来の音声AIは、小型モデルが「ユーザーは話し終えたか」を推測していました。判断が早ければ話を遮り、遅ければ反応が鈍くなります。今回はこのモデルを丸ごと削除しました。
  • 難しい問題はバックグラウンドのGPT-5.5へ委任し、GPT-Liveは会話を続けます。記事内の実録音声では、バックグラウンド処理中の十数秒も会話が止まりません。
  • さらにWebRTCの接続ハンドシェイクも刷新しました。6往復を1往復に短縮し、変更案をIETFへ提出。主要な2実装がすでに対応しています。
⚑ 本稿は、OpenAIのエンジニアリングブログと同時期のGPT-Live発表ページに基づきます。システム設計と効果は、いずれもOpenAIの説明です。WARPの実測値のみIETFの公開ドラフトから引用しており、本文中で個別に明記しています。
核心的な課題

従来の音声AIがぎこちなく聞こえる理由

OpenAIは珍しく詳細な開発回顧を公開しました。GPT-Liveのリアルタイム音声システムを6カ月でどう構築したのか、「話し終えたか」を推測する小型モデルの撤去から、WebRTC接続ハンドシェイクの再設計まで、各工程を明らかにしています。プロダクト開発者にとっては発表資料以上に価値のある内容です。「高速な応答」を単なるモデル性能ではなく、ボタンから耳までを結ぶエンドツーエンドの仕組みとして捉え直しているからです。

まずはアーキテクチャより、次の3つの音声を聴いてみてください。違いは耳ではっきり分かります。

第1世代 · カスケード方式
遅く、ぎこちなく、発話の間に目立つ空白があります。出典:OpenAI GPT-Live発表ページ
第2世代 · ターン方式
少し速く滑らかになりましたが、交互に発言する硬さが残ります。出典:OpenAI GPT-Live発表ページ
第3世代 · 連続対話(GPT-Live)
自然に応じ、相づちを打ち、話し方にも生気があります。出典:OpenAI GPT-Live発表ページ

最初の2つが不自然に感じられる原因は、大きく2つあります。

原因1:「話し終えたか」を推測する小型モデル

従来の音声AIは、トランシーバーのようなターン方式でした。ユーザーが話し、終わってからAIが答えます。その間にはturn detector(ターン検出器)という小型モデルがあり、ユーザーの発話が本当に終わったかを判定していました。

この判定はどちらに転んでも厄介です。早すぎれば話の途中で遮られ、遅すぎれば話し終えてもAIが黙ったままで、反応が鈍く感じられます。しかも主に「無音」で判断するため、考えるための間、周囲の話し声、道路を通る車まで「発話終了」と誤認する可能性があります。

さらに問題なのは処理順です。小型モデルが判定を終えなければ、後段のはるかに大きなモデルは処理を始められません。2つの遅延は並列ではなく、直列に積み上がります。

原因2:3つのモデルが順番待ち

さらに前の世代は、もっと遅い仕組みでした。初期のChatGPT音声は、音声認識、大規模モデルによる回答生成、音声合成という3モデルを直列につないでいました。各工程が順番に処理されるため、遅延が重なります。加えて、声の調子、話す速さ、間の取り方はテキスト化の時点ですべて失われ、後段のモデルには味気ない文字列しか届きません。

関連記事 · このシステムの発表内容
OpenAIがGPT-Liveを発表:AIと交互に話す必要なし、難問はGPT-5.5へ自動連携
本稿では開発の舞台裏を扱います。機能、利用方法、旧版との違いは関連記事をご覧ください。
核心的な進歩

GPT-Liveの2つの改革:検出器を外し、会話と思考を分離

OpenAIは、この2つの問題を別々の手段で解決しました。

第1の改革:聞きながら話せるモデル

GPT-Liveの音声モデルはfull-duplex(全二重)です。電話のように、聞くことと話すことを同時に行えます。相手がボタンを離すまで発言できないトランシーバーとは違います。

モデル自身が毎秒何度も「今話すべきか、聞き続けるべきか」を判断できるため、ターンを推測する専用の小型モデルは不要になりました。音声経路から完全に取り除かれています。考えるために間を置いても話を奪われず、途中で口を挟んでも対応できます。

第2の改革:「会話」と「深い思考」を別モデルへ

ただし、応答の速いモデルが必ずしも賢いとは限りません。ウェブ検索が必要な質問に、反応速度重視の音声モデルだけでは十分な回答を返せない場合があります。

そこで、リアルタイム会話を担うGPT-Live-1をフロントに、検索、コーディング、情報取得を担うGPT-5.5をバックグラウンドに配置しました。調査が必要な質問を受けると、フロントが処理をバックグラウンドへ委任し、自身は会話を続けます。結果が届いた時点で自然に会話へ織り込みます。これが委任です。

GPT-Liveのシステム構成図:白はリアルタイムメディア経路、青は非同期の委任経路
公式の構成図です。白線はリアルタイムメディア経路で、ユーザー ↔ メディアフロントエンド ↔ GPT-Live-1を結びます。青線は非同期の委任経路です。メディアフロントエンドがアプリケーションサーバーへ要求を渡し、サーバーがGPT-5.5を呼び出します。GPT-5.5は検索、コード、情報取得の3種類のツールを使い、結果は同じ経路を戻ります。2つの経路は独立しているため、青線が遅くても白線は詰まりません。出典:OpenAI

抽象的に聞こえるかもしれませんが、効果は実際に耳で確認できます。次は公式の実会話音声です。ユーザーの発話、GPT-Live-1の応答、GPT-5.5によるバックグラウンド検索という3トラックで構成されています。

委任の実録 · GPT-Live-1 + GPT-5.5 Instant
フロントが即座に応じる一方、バックグラウンドでは検索が進みます。後半に注目してください。検索結果を待つ十数秒も、会話は止まりません。出典:OpenAI GPT-Live発表ページ