OpenAI、6 ヶ月で構築したレスポンシブ音声 AI のリアルタイムシステムについて解説
本文の状態
日本語全文を表示中
詳細モードで約21分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
OpenAI News
OpenAI は音声 AI の応答性を革新する「GPT-Live」を発表し、従来のターン検出器を廃止したフルデュプレックス型システムで、人間のような自然な会話を実現した。
AI深層分析を開く2026年8月4日 05:46
AI深層分析
キーポイント
ターン検出器の廃止とフルデュプレックス化
GPT-Live は音声パスからターン検出器を除去し、同時に聴取と発話ができるフルデュプレックス構造を採用することで、会話のリズムを損なわない即時性を実現した。
低遅延のための新システムアーキテクチャ
音声ストリーミングの流入と出力、非同期経路での委譲処理を最適化し、6 か月でモデル推論、コンテキスト管理、メディア転送を再構築してエンドツーエンドのスムーズな動作を確保した。
コア音声パスとアプリケーションロジックの分離
コア音声処理経路とアプリケーションロジックの境界を明確にすることで、応答性を損なわずに PC 操作やエージェント調整などの機能を実装可能にした。
大規模モデルとの連携による知能向上
深い推論やツール使用が必要な場合でも、GPT-5.5 などのフロンティアモデルを非同期で参照しながら会話の流れを中断させることなく処理を行う仕組みを備えた。
音声フローと論理の分離
音声データの流れとアプリケーション・ビジネスロジックを明確に分離し、遅延が発生してもメディアフローが停止しないように設計した。
重要な引用
GPT‑Live, our third-generation voice system, removes the turn detector from the audio path.
Its voice model is full-duplex, which means it can listen and speak at the same time.
When deeper reasoning or tool use is needed, GPT‑Live can also consult our frontier models, such as GPT-5.5, without interrupting the flow of the conversation.
A slow tool call or backend service can delay its own result, but cannot stall the flow of media.
編集コメントを表示
編集コメント
ターン検出器を廃止し、フルデュプレックス化を実現した GPT-Live の登場は、音声 AI の実用性を飛躍的に高める転換点となる。OpenAI は単なる速度向上だけでなく、深い推論能力との統合も図り、対話型 AI の未来像を示している。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
音声 AI において、いつ話すべきかを判断することは、案外難しい課題です。人間は数秒のうちに自然に会話のリズムを切り替えていますが、これまでの音声 AI システムはその速さについていけませんでした。
従来のシステムはターンベース(ターン制)のアーキテクチャを採用しており、ターン検出器と呼ばれる小型モデルに依存していました。この検出器には過酷な任務が課せられていました。判断を早すぎるとユーザーの話が途中で切れてしまい、遅すぎると応答が遅延しているように感じられるからです。
検出器が判断を下した後にのみ、はるかに大きな LLM が処理を開始できる仕組みでした。
GPT‑Live は、当社の第 3 世代音声システムです。このシステムではオーディオパスからターン検出器を排除しました。音声モデルがフルデュプレックス(双方向同時通信)であるため、同時に聴取と発話が可能になっています。
これにより、独立した検出器の必要性がなくなり、会話がより即座で自然なものになります。深い推論やツールの使用が必要な場合でも、GPT‑Live は会話の流れを中断することなく、GPT-5.5 などの最先端モデルに相談することができます。
これらの機能を組み合わせることで、GPT‑Live は会話の応答性と知能という点で、かつてない組み合わせを実現しています。
この体験を大規模に提供するには、低遅延に最適化された新しいシステムアーキテクチャが必要でした。一般的なリクエストレスポンス型の推論とは異なり、当社のシステムは入力されるオーディオを音声モデルにストリーミングし、生成された音声をユーザーへストリーミングしながら、委任処理は非同期パスで並行して実行します。過去 6 ヶ月間、私たちはモデル推論、コンテキスト管理、メディア転送を見直し、音声のフローがエンドツーエンドで途切れることなく流れるようにしました。
このアーキテクチャにより、コアとなる音声経路とアプリケーションロジックの間には明確な境界線が引かれます。これにより、応答性に影響を与えることなく、アプリケーションの動作を容易にカスタマイズすることが可能になります。この基盤は、ChatGPT Voice の機能拡大を支えており、特に最近リリースされた「デスクトップアプリでコンピュータを制御し、エージェントを調整する」機能もその一部です。
本稿では、なぜ従来のターンベース(交互応答)方式のシステムが私たちの要件を満たせなかったのか、そして各レイヤーで応答性を高めるためにどのように新システムを設計したのかを解説します。状態保持型の推論、動的なコンテキスト管理、非同期委任、プロトコルレベルでの最適化について取り上げます。これらが連携して、GPT‑Live を真に「ライブ」なものにしています。
ターンベースからストリーミングへ
以前の音声アーキテクチャは、テキスト LLM のターンベース(交互応答)の性質を引き継いでいましたが、各ターンがテキストではなく、個別のオーディオデータとして扱われていました。カスケード型システムでは、音声認識、LLM、音声合成が順次実行されていました。この順序処理が遅延を生み、トーンや話速といった重要な手がかりを見逃す原因となっていました。
音声対話モデルは、このアプローチを改善し、オーディオを直接処理することで進化しました。モデルにネイティブな音声の理解と生成を学習させることで、文字起こしで失われる詳細情報を保持し、より迅速に応答できるようになりました。しかし、システムはまだ「ターン検出器」に依存しており、推論を開始するタイミングを決定していました。モデルが対話の多くを処理するようになりましたが、依然としてターンベース(交互応答)の形式でした。
GPT‑Live では、音声モデルが会話の主導権を握ります。オーディオはモデルから流入し、流出します。一方、深い推論やツール使用は非同期で行われます。システムの主な役割は、途切れないメディアループを維持することです。他の処理、例えば最先端モデルの呼び出しや会話の永続化などは、ライブパスの外側で実行されます。
継続的な推論の実現
このメディアループを途切れなく保つことは、必ずしも簡単ではありません。転送、処理、または推論におけるわずかな遅延でも、聴こえる一時停止やアーティファクト(ノイズ)の原因となります。以前のターンベースシステムでは、オーディオデータが到着するタイミングに多少のばらつきがあっても許容できました。しかし、ライブメディアシステムでは、すべてのオーディオフレームをスケジュール通りに配信する必要があります。
ChatGPT Voice や Realtime API に関する先行研究が、重要な基盤となりました。すでに 音声インフラを再構築 し、オーディオやビデオをシステム内へ直接ストリーミングして、より低く予測可能なレイテンシを実現していました。GPT‑Live はこの設計をさらに発展させ、新しいステートフルな推論システムを通じてメディアをモデルまでストリーミングし、継続的な対話に対応しています。
しかし、ストリーミング推論は解決策の一部に過ぎません。本番環境で安定して動作させるには、クライアントから推論スタックへの信頼性の高いオーディオ配信を保証するだけでなく、ステートフル化に伴う課題にも取り組む必要がありました。
私たちが早期に行った重要な判断の一つが、メディアフローとアプリケーション・ビジネスロジックを明確に分離することです。オーディオは、クライアントと音声モデルの間で専用の高速パスを通じて移動します。一方、委譲処理やツール利用、その他のアプリケーション関連の作業は、非同期 RPC の境界線の内側で行われます。遅延するツール呼び出しやバックエンドサービスがあっても、その結果が返されるまでの間はメディアの流れを止めることはありません。
この分離により、システムにはカスタマイズのための明確な境界線が生まれます。アプリケーション側でツールやポリシー、バックエンドの動作を変更しても、オーディオの流れを維持するメディアフロントエンドへの影響はありません。ライブパスは小さく予測可能に保たれ、リアルタイムで行わなければならない作業に集中しています。
メディアフロントエンドと推論ロジックは Go で実装し、以前の Python asyncio 実装を置き換えました。これによりフレーム配信の滑らかさが大幅に向上し、新システムの p95 が旧システムの p50 に匹敵するレベルになりました。
WebRTC は転送基盤として機能します。低遅延メディア向けに設計されており、パケットロスやクロックドリフト、クライアント接続の変化があっても動作を継続できます。パケットが到着するのが遅れた場合でも、WebRTC は音声を微妙に伸長してギャップを防ぎ、その後一時的に再生速度を上げてリアルタイムに追いつかせます。
システム全体でバッファリングとブロッキングを最小限に抑えることで、人間が会話から期待するサブ秒単位のレスポンスを実現しています。
状態保持された会話を継続する
状態保持推論には独自の運用上のトレードオフが存在します。音声セッションは長時間アクティブなままになることもありますが、そのコンテキストは連続的に成長し、モデルインスタンスは需要に応じて起動・停止を繰り返します。
これらの課題に対処するため、モデルインスタンス間でのシームレスなハンドオフ機構を構築しました。移行が必要な場合、既存のインスタンスと並行して代替モデルインスタンスをウォームアップし、現在のセッションコンテキストでプリフィルしてから両方で推論を実行します。新しいインスタンスが完全に準備でき次第、切り替えを行います。
同じ基本メカニズムは、動的なコンテキストの圧縮(compaction)も支えています。会話が進行すると、蓄積されたコンテキストが最終的にモデルの制限を超えてしまいます。圧縮によってコンテキストサイズを制限内に収めることは可能ですが、この処理には時間がかかります。さらに、過去のコンテキストを変更するため、以前に処理したトークンからのアテンションキーと値を保存するモデルの KV キャッシュ(key-value cache)が無効化されてしまいます。その状態を再構築するには新しいプリフィル(prefill)が必要となり、追加の遅延が発生します。
そこで私たちは、圧縮を別の管理された遷移として扱います。元のモデルインスタンスが会話を続ける一方で、システムはコンテキストを圧縮し、新しいコンテキストを持つ代替のモデルインスタンスを用意します。このインスタントが準備できたら、メディアの中断なしに切り替えが可能です。これにより、システムは長時間続く通話にも対応でき、必要な時にいつでも圧縮を行えます。
重負荷な処理はライブパスから外すため、ハンドオフ中であっても会話は途切れることなく続きます。
会話のブロックをしない委譲機能
GPT-Live が既存の最先端モデルを呼び出す能力は大きな力を発揮し、「対話」という行為と深い「思考」を効果的に切り離しています。しかし、この 2 モデル構成をあたかも一つのシステムのように感じさせるためには、関連する 2 つのエンジニアリング課題を解決する必要がありました。
より深い作業のための委譲
GPT-Live は高速で自然な応答を提供し、GPT-5.5 は背景で検索処理を担当します
トランスクリプト
GPT-Live-1(GPT-5.5 Instant を使用)との会話例
まず、結果は会話の流れの中で役立つために十分な速度で返される必要があります。そのため、ルーティングやプロンプト処理から推論、ツール呼び出しに至るまでのすべての経路で遅延を最小化しなければなりませんでした。同時に、製品内の他のシステムでは依然として個別のメッセージが必要であるため、継続的な会話をそれらが理解できる形式で表現する必要がありました。
自然に感じるほど高速な委譲の実現
委譲が実行された際、私たちは「対話に役立つものが frontier モデルから出力されるまでの時間」を最適化の対象としました。音声モデルは、frontier モデルが推論を行ったりツールを使用したりしている間、一時的に対話を進行させることはできますが、任意の長さの遅延を隠すことはできません。そのため、ルーティング、プロンプト処理、推論、そしてツール呼び出しを含む委譲ループ全体を、応答性の予算の一部として扱いました。
最初の最適化手法は、委譲リクエストが出る前に frontier モデルと必要なツールをセットアップしておくことです。音声セッションが始まると、アプリケーションサーバーが frontier モデル用の推論セッションを作成し、初期の会話コンテキストでプレフィルします。これにより、最初の委譲リクエストが届く時点でプロンプト処理が完全に完了していることを保証しています。
その後、その推論セッションは音声会話の継続期間中も利用可能に保ち、連続するリクエストに対して安定したセッションアフィニティを適用します。プロンプトキャッシュと組み合わせることで、これらの手法は遅延を改善しつつ、ワーカー障害が発生した場合でも容易に復旧できるようにしています。
推論の負荷、出力制限、ツールのスキーマ定義、そしてモデルとツールの往復通信回数も、会話に有用な結果が返ってくるタイミングに影響します。私たちはこれらの調整可能な要素を最適化し、より高速な応答を実現しました。特に、委任パスでの処理を最小限に抑えることで、音声モデルが最先端のモデルからの結果を迅速に取り込むことを可能にしています。
連続する音声から個別のターンを導き出す
音声モデル自体は連続した音声ストリーム上で動作していますが、その周囲の多くのシステム(ChatGPT の会話 UI や分析・安全インフラの一部など)は依然としてユーザーとアシスタントの「ターン」単位で動作しています。そのため、アプリケーションサーバーが重なり合い、場合によっては曖昧な会話を個別のメッセージに分解する必要があります。
音声データが入力されると、サーバーは部分的な文字起こし結果とタイミング信号を用いて、現在発言権を持っている話者を推定し、メッセージキューを構築します。最新のメッセージはまだ仮の状態であり、新しい音声が入ってくるにつれて、そのテキスト内容、タイミング、話者割り当てが変更される可能性があります。ある話者が一定時間以上発言を継続し、話者の特定が確実になった時点で、対応するメッセージは確定されます。
話者間の重なり合いはこのプロセスをさらに複雑にします。ユーザーが発話している最中にアシスタントから短い相槌(「うん」「はい」など)が入った場合、それが必ずしも独立したメッセージになる必要はありません。しかし、内容のあるアシスタントの割り込みであれば、別々のメッセージとして扱うべきです。同様に、ユーザーが途中で発言しても、表示されるアシスタントの応答には一貫性を優先します。
セグメンテーションポリシーには、常に鮮度と確実性のトレードオフが存在します。コミットを早めすぎると履歴が断片化し順序が不安定になり、遅らせすぎると文字起こしが遅れ、それに依存する機能も遅延します。そのため本システムでは会話に対して2つの関連ビューを維持しています。1 つは現在の状態に関する推測的なビュー、もう 1 つは発言内容を記録した権威ある記録です。
アプリケーション UI の会話ビューは更新に対応できるため、推測的なビューを使用します。一方、分析パイプラインへのログ出力には最終的な文字起こしが必要です。
これにより、ChatGPT の残りの部分は、ライブ音声パスにターン制を課すことなく、安定した交換履歴のビューを得ることができます。
高速プロトコルによるセッション開始
応答性はユーザーがボタンをクリックした瞬間から始まります。GPT‑Live では、会話を始める前にメディア経路を確立し、モデルへの音声供給を開始しなければなりません。つまり、起動シーケンスのすべての部分がクリティカルパス上にあります。
前述の通り、WebRTC は堅牢なリアルタイム基盤を提供しますが、標準的な WebRTC セッションを開始するには、予想以上に多くのプロトコルハンドシェイクとネットワーク往復が必要になります。WebRTC は、後の QUIC などのプロトコルで重視されるようになった「往復時間の最小化」という焦点よりも先に登場しました。その結果、組み合わせて使用すると基盤となるプロトコル間で重複した処理が発生することがあります。例えば、各プロトコルには独自の DoS 防止機構が含まれていましたが、WebRTC スack全体の文脈では不要な場合でも実装されていました。
WARP は、WebRTC コミュニティの協力者と連携して設計されたオープン仕様のセットです。これにより、より広いエコシステム全体がこの成果から恩恵を受けられます。現在、この提案は IETF の TSVWG ワーキンググループを通じて推進されており、libwebrtc と Pion にはすでに WARP サポートが実装されています。また、他の WebRTC 実装における対応も進行中です。
メディアハンドシェイクの最適化後、残る大きな遅延要因として浮き彫りになったのが、WebRTC の接続前に SDP パラメータを共有するために必要なシグナリング交換です。このプロセスをクリティカルパスから外すため、「Instant Connect」と呼ぶ仕組みを開発しました。これはサーバーリソースを確保することなく、既存の WebRTC 実装に一切の変更を加えることなく、事前にパラメータのネゴシエーションを行います。
Instant Connect は標準的なシグナリングフローと並行して動作します。事前ネゴシエートされたパラメータが有効であれば、サーバーは最初のメディアパケットが届いた瞬間にセッションを確立できます。もしパラメータが古くなっていたり無効だったりする場合は、その時点でシグナリングフローは既に進行中なので、クライアントは追加の遅延なくフォールバック処理を実行できます。
Instant Connect と WARP を組み合わせることで、ユーザーの意図からライブメディアフローまでの時間を劇的に短縮できました。SDP 交換をクリティカルパスから外し、WARP でトランスポートハンドシェイクを圧縮した結果、クライアントは単一の UDP パケットでセッションを開始できるようになりました。サーバーも即座に応答できるため、システム全体がユーザーにとって真に重要な「聴取と応答」の処理に直ちに着手できます。
実データを用いて GPT‑Live を本番環境で安全にテストする
システムは紙面上では高速に見えても、実際の音声トラフィック下で立ち往生することがあります。GPT‑Live がユーザーとチャットを開始する前に、私たちはサイレントテストを実施しました。このテストでは、本番環境の ChatGPT Voice セッションの一部を徐々に増やしながら、既存の「Advanced Voice Mode」体験と新しいシステムの両方にルーティングしました。
既存の Advanced Voice Mode は通常通りユーザーにサービスを提供し続けました。一方、シャドウパス(影の経路)では推論が読み取り専用モードで実行されました。これにより、ユーザーが聴く内容を変更することなく、実際のクライアント、ネットワーク、セッション長さ、地理的な分布といった要素をシステムに曝すことができました。
得られた最初の教訓の一つは、容量を GPU のスループットだけで評価できないということです。音声セッションは接続を開いたままフレームを連続的に送信するため、推論処理と並行して CPU 側のストリームハンドラ、キュー、ネットワーク経路もスケールする必要があります。実際の負荷下では、サポートコンポーネントのいずれかが、ロードテストの見積もりよりも早く飽和し、推論リクエストが蓄積してレイテンシが増幅する事態が発生しました。
そこで私たちは容量に関する問いを「*GPU はどれだけのリクエストを処理できるか?*」から、「*すべてのフレームをスケジュール通りに保ちながら、システムはどの程度の同時セッションを維持できるか?*」へと変更しました。
このテストにより、地理的な要素も最優先課題となりました。セッションを遠隔地のキャパシティにルーティングすると、起動時やストリーミング中に複数のポイントで遅延が発生する可能性があります。私たちはモデルのロールアウトを地域ごとのキャパシティとトラフィック制御設定とともに検証し始め、遅延をソース別の地理情報ごとに分解して分析しました。推論処理をユーザーに近い場所で行うことで改善は見られましたが、同時に重要な教訓も浮き彫りになりました。つまり、エンドツーエンドの応答性はモデルサーバーだけでなく、その経路にあるすべてのサービスに依存するということです。
他の障害は、現実的なセッションライフサイクルにおいてのみ顕在化しました。長時間稼働するセッションではメモリや永続性の負荷が露呈し、再接続では圧縮と状態復元のプロセスが試されました。通常のクライアント切断では、シャットダウンハンドシェイクにおける競合条件が発見されています。これらの問題は、時間経過や蓄積された状態、サービス境界をまたぐ挙動に依存するため、短時間の負荷テストではほとんど現れませんでした。
最後に、本番環境でのテストにより、観測性の向上とロールアウト制御の強化が迫られました。異なる遅延要因を混同するメトリクス、個々の不健全なエンジンを隠す集計値を持つダッシュボード、テスト済みシステムと展開済みシステムの間の設定ドリフトなど、課題は山積でした。これに対応し、より細粒度のテレメトリーを追加し、既知の良好な構成との検証を行い、段階的なロールアウトを実施するとともに、特定の経路を迅速に隔離または無効化する機能を備えました。この「沈黙のテスト」は、システムが受け入れられるトラフィック量だけでなく、障害を検出し、封じ込め、復旧するまでのスピードを rehearse する初期のリリース練習へと進化したのです。
クライアントからモデルまで、レスポンシブに
GPT‑Live を ChatGPT のスケールで実現するには、「音声は途切れることなく流れる」という根本的な原則に基づいた全く新しいシステムを構築する必要がありました。ストリーミング推論により、フルデュープレックスのモデルが常にオーディオを受け取れるようにしています。専用のメディアパスによって、フレームの確実な配信を保証します。非同期の委譲機能により、深い思考処理を並列で実行できます。最適化された転送プロトコルが、ユーザーに届くまで一貫してレスポンシブな体験を提供します。
GPT‑Live のアーキテクチャはすでに、リアルタイム対話を支えるより広範なプラットフォームへと進化しつつあります。これは会話からエージェントによる調整へ拡張される ChatGPT Voice を支えており、今後登場する GPT‑Live API の基盤にもなります。長期的には、音声の即時性を損なうことなく、より多くのデバイスやアプリ、そして多様なモダリティにまたがる音声体験を可能にしていきます。
もしあなたがこうしたエンジニアリング課題に取り組むことに興味があれば、私たちと一緒に働いてください。
原文を表示
For voice AI, knowing when to speak is harder than it sounds. Human speakers effortlessly hand off to each other in a fraction of a second, but previous voice AI systems couldn’t keep up with this rhythm. Their turn-based architecture relied on tiny models known as turn detectors, which faced an unenviable task: guess too soon, and the user gets cut off; guess too late, and the response feels sluggish. Only after the detector made its decision could the much larger LLM get to work.
GPT‑Live, our third-generation voice system, removes the turn detector from the audio path. Its voice model is full-duplex, which means it can listen and speak at the same time. That eliminates the need for a separate detector and makes conversation feel more immediate and natural. When deeper reasoning or tool use is needed, GPT‑Live can also consult our frontier models, such as GPT‑5.5, without interrupting the flow of the conversation. Together, these capabilities give GPT‑Live an unprecedented combination of conversational responsiveness and intelligence.
Delivering this experience at scale required a new system architecture optimized for low latency. Unlike typical request-response inference, our system streams incoming audio into the voice model and outbound speech back to the user, while handling delegation on a separate asynchronous path. Over the last six months, we reworked model inference, context management, and media transport to keep speech flowing smoothly from end to end.
The architecture also creates a clean boundary between the core voice path and application logic. This makes it easy to customize application behavior without affecting responsiveness. This foundation powers a growing range of capabilities in ChatGPT Voice, including the newly launched ability to control your computer and coordinate your agents in the ChatGPT desktop app.
In this post, we’ll explain why earlier turn-based systems couldn’t meet our needs and how we engineered the new system for responsiveness at every layer. We’ll cover stateful inference, dynamic context management, asynchronous delegation, and protocol-level optimization, all working together to make GPT‑Live feel truly *live*.
Moving from turn taking to streaming
Earlier voice architectures inherited the turn-based nature of text LLMs, but with each turn represented as a discrete audio blob rather than text. In cascaded systems, speech-to-text, the LLM, and text-to-speech each ran in series. This sequencing added latency and ignored cues such as tone and pacing.
Speech-to-speech models improved on this approach by processing audio directly. Training the model to natively understand and generate speech allowed it to preserve details lost in transcription and respond more quickly. But the system still relied on the turn detector to decide when inference could begin. The model handled more of the interaction, but the interaction remained turn-based.
GPT‑Live puts the voice model in control of the conversation: audio flows in and out of the model, while deeper reasoning and tool use happen asynchronously. The system’s primary job is to sustain an uninterrupted media loop. Other work, such as invoking frontier models and persisting the conversation, happens off the live path.
Enabling continuous inference
Keeping this media loop uninterrupted is not always straightforward. Any delay in transport, processing, or inference can become an audible pause or artifact. A previous turn-based system could tolerate some variation in when an audio blob arrived. However, a live media system needs to deliver every audio frame on schedule.
Earlier work on ChatGPT Voice and the Realtime API gave us an important foundation. We had already rebuilt our voice infrastructure to stream audio and video directly in and out of our systems with lower and more predictable latency. GPT‑Live pushed that design further, streaming media all the way to the model through a new stateful inference system built for continuous conversation.
Streaming inference was only part of the solution though. To make it work well in production, we also had to ensure reliable audio delivery from the client to the inference stack and deal with the challenges of statefulness.
An early decision we made was to specifically separate media flow from application and business logic. Audio moves between the client and the voice model on a dedicated fast path. Delegation, tool use, and other application work happen behind an asynchronous RPC boundary. A slow tool call or backend service can delay its own result, but cannot stall the flow of media.
This separation also gives the system a clean boundary for customization. Applications can change their tools, policies, and backend behavior without affecting the media frontend responsible for keeping audio moving. The live path stays small, predictable, and focused on the work that must happen in real time.
We wrote the media frontend and inference logic in Go, replacing a previous Python asyncio implementation. This significantly improved the smoothness of frame delivery, with the new system’s p95 matching the previous system’s p50.
WebRTC provides the transport foundation. It’s designed for low-latency media, and can continue operating through packet loss, clock drift, and client connection changes. If packets arrive late, WebRTC can subtly stretch audio to prevent gaps, and then briefly accelerate playback to catch back up to real time.
By minimizing buffering and blocking throughout the system, we can deliver the sub-second responsiveness that humans expect from conversation.
Keeping the (stateful) conversation going
Stateful inference has its own operational tradeoffs. A voice session may remain active for a long time, but its context continuously grows, and model instances spin up and down based on demand.
To address these concerns, we built a seamless handoff mechanism across model instances. When a transition is needed, we can warm a replacement model instance alongside the existing one, prefill it with the current session context, run inference against both in parallel, and cut over when the new instance is fully ready.
The same basic mechanism also supports dynamic context compaction. As a conversation goes on, its accumulated context can eventually exceed the model’s context limit. Compaction can reduce the context size to fit within the limit, but the operation takes time. And because it changes past context, it also invalidates the model’s key-value (KV) cache, which stores attention keys and values from previously processed tokens. Rebuilding that state requires a new prefill, introducing additional delay.
Instead, we treat compaction as another managed transition. While the original model instance keeps chatting, the system compacts the context and prepares a replacement model instance with the new context. Once that instance is ready, we can switch over without any media interruption. This allows the system to support long-running calls, compacting whenever necessary.
The heavy lifting stays off the live path, so even during a handoff, the conversation never misses a beat.
Delegation without blocking the conversation
GPT‑Live’s ability to invoke existing frontier models gives it a lot of power, effectively decoupling “talking” from deeper “thinking”. But making this two-model architecture feel like one system required solving two related engineering problems.
Delegation for deeper work
GPT-Live provides fast, natural responses, while GPT-5.5 handles search in the background
Transcript
Example conversation with GPT-Live-1, using GPT-5.5 Instant
First, results must return quickly enough to be useful in the ongoing exchange, so we had to minimize latency across the entire delegation path, from routing and prompt processing through inference and tool calls. At the same time, systems elsewhere in the product still need discrete messages, so we had to represent the ongoing conversation in a form they could understand.
Making delegation fast enough to feel natural
When a delegation is dispatched, we optimize for the time until the frontier model produces something useful for the conversation. The voice model can briefly keep the exchange moving while a frontier model reasons or uses tools, but it cannot hide an arbitrarily slow response. We therefore treated the full delegation loop—routing, prompt processing, inference, and tool calls—as part of the responsiveness budget.
The first optimization is to set up the frontier model and any tools it needs before delegation is requested. When a voice session starts, the application server creates an inference session for the frontier model and prefills it with the initial conversation context, ensuring the prompt has been fully processed prior to the first delegated request.
We then keep that inference session available for the duration of the voice conversation and use stable session affinity for successive requests. Together with prompt caching, these techniques improve latency while a worker failure remains easily recoverable.
Reasoning effort, output limits, tool schemas, and model-tool round trips also affect when the conversation receives a useful result, and we adjusted these levers to get faster responses. By minimizing the work needed on the delegation path, we enabled the voice model to quickly incorporate results from our frontier models.
Deriving discrete turns from continuous speech
Even though the voice model operates on continuous streams of speech, many of the systems around it still operate on user and assistant turns, including ChatGPT’s conversation UI and parts of our analytics and safety infrastructure. So the application server teases apart the overlapping, occasionally ambiguous conversation into discrete messages.
As audio arrives, the server uses partial transcripts and timing signals to infer which speaker has the floor and build a queue of messages. The newest message remains provisional; its text, timing, and speaker assignment can all change as more speech arrives. Once a speaker has sustained the floor long enough for the attribution to be reliable, the server finalizes the corresponding message.
Speaker overlap makes this more complicated. A brief acknowledgement from the assistant while the user is talking (e.g. “mm hmm,” or “okay”) should not necessarily become its own message. However, a substantive assistant interjection often should. Similarly, we prioritize coherence in the displayed assistant responses even when the user speaks in the middle.
Every segmentation policy trades freshness for certainty. Committing too early produces fragmented history and unstable ordering; waiting too long delays transcripts and the features that depend on them. The system therefore maintains two related views of the conversation: a speculative view of the current state and an authoritative record of what was said. The conversation view in the application UI can handle updates, so it uses the speculative view. But logging to the analytics pipeline requires a final transcript.
This gives the rest of ChatGPT a stable view of the exchange without imposing turn-taking on the live voice path.
Starting sessions with a faster protocol
Responsiveness starts as soon as the user clicks the button. With GPT‑Live, the system must establish the media path and begin feeding audio through the model before the conversation can begin. That puts every part of the startup sequence on the critical path.
As noted above, WebRTC provides a strong realtime foundation, but starting a vanilla WebRTC session requires a surprising number of protocol handshakes and network round trips. WebRTC predates the focus on minimizing round trips that shaped later protocols such as QUIC. As a result, its underlying protocols sometimes repeat work when used together. For example, each protocol included its own anti-DoS mechanism, even when it wasn’t needed in the context of the full WebRTC stack.
We designed WARP as a set of open specifications, working with collaborators from the WebRTC community, so the broader ecosystem can benefit from this work. We’re advancing the proposals through the IETF’s TSVWG working group, and WARP support has already been added to both libwebrtc and Pion, with efforts underway in other WebRTC implementations.
After optimizing the media handshake, one remaining delay stood out: the signaling exchange used to share SDP parameters before WebRTC can connect. To remove that exchange from the critical path, we developed what we call Instant Connect. It negotiates these parameters ahead of time without reserving server capacity and without any changes to existing WebRTC implementations.
Instant Connect runs alongside the standard signaling flow. If the pre-negotiated parameters are valid, the server can materialize the session when the first media packet arrives. If they are stale or invalid, the signaling flow is already underway, so the client can fall back with no additional latency.
Together, Instant Connect and WARP dramatically reduce the time from user intent to live media flow. With the SDP exchange off the critical path and WARP collapsing the transport handshake, the client can now start a session with a single UDP packet. The server can respond immediately, letting the rest of the system begin doing the work the user actually cares about: listening and responding.
Safely testing GPT‑Live in production with real data
A system can look fast on paper and still stall under real voice traffic. Before letting GPT‑Live chat with users, we ran a silent test that routed a small, gradually increasing share of production ChatGPT Voice sessions to both the existing Advanced Voice Mode experience and our new system. Advanced Voice Mode continued serving users as usual, while the shadow path ran inference in read-only mode. This exposed the system to real clients, networks, session lengths, and geographic distribution without changing what users heard.
One of the first lessons was that capacity could not be reduced to GPU throughput. Voice sessions stay open and send frames continuously, so CPU-side stream handlers, queues, and network paths must scale alongside inference. Under real load, a supporting component saturated earlier than our load test estimates predicted, causing inference requests to accumulate and latency to compound. We changed the capacity question from “*How many requests can a GPU handle?*” to “*How many concurrent sessions can the system sustain while keeping every frame on schedule?*”
The test also made geography a first-order concern. Routing a session to distant capacity can add delay at several points during startup and streaming. We began validating model rollouts together with regional capacity and traffic-steering configuration, then breaking latency down by source geography. Moving inference closer to users helped, but it also reinforced the broader lesson: end-to-end responsiveness depends on every service in the path, not only the model server.
Other failures appeared only across realistic session lifecycles. Long-running sessions exposed memory and persistence pressure. Reconnects exercised compaction and state restoration. Ordinary client disconnects revealed races in the shutdown handshake. These problems rarely appeared in short load tests because they depended on time, accumulated state, and behavior across service boundaries.
Finally, production testing forced us to improve observability and rollout controls. We found metrics that conflated different sources of latency, dashboards whose aggregates hid individual unhealthy engines, and configuration drift between tested and deployed systems. In response, we added more granular telemetry, validation against known-good configurations, staged ramps, and the ability to isolate or disable individual paths quickly. The silent test became an early launch rehearsal, not only for how much traffic the system could accept, but for how quickly we could detect, contain, and recover from failure.
Responsive, from client to model
Bringing GPT‑Live to ChatGPT scale required a whole new system built around one fundamental principle: the voice must flow. Streaming inference keeps the full-duplex model supplied with audio. A dedicated media path ensures reliable frame delivery. Asynchronous delegation lets deeper thinking run in parallel. Optimized transport keeps the experience responsive all the way to the user.
The architecture behind GPT‑Live is already becoming a broader platform for realtime interaction. It powers ChatGPT Voice as it expands from conversation into agentic coordination, and will underpin the upcoming GPT‑Live API. Over time, it will allow voice experiences to span more devices, apps, and modalities without sacrificing the immediacy that makes voice conversation feel live.
If these are the kinds of engineering problems you want to solve, come work with us.
AI算出
技術分析ainew評価高い
OpenAI が GPT-Live の構築プロセスで採用した具体的な技術的アプローチ(非同期委任、ストリーミング推論など)を詳述しており、開発者にとって実装や理解の参考となる深い分析が含まれている。ただし、日本固有の情報や企業事例は含まれていないため、日本の関連性は低めとする。
6つの評価軸を見る
- AI関連度
- 100
- 情報源の信頼性
- 100
- 新規性
- 75
- 調べる価値
- 75
- 重複の少なさ
- 100
- 日本での有用性
- 25
今日のまとめ
AIデイリーブリーフで今日の重要ニュースをまとめ読み