OpenAI、GPT-Live で音声 AI の応答タイミングを改善
本文の状態
日本語全文を表示中
詳細モードで約21分の本文を読めます。
同じ出来事の情報源
この情報源を基点に整理
TLDR AI
OpenAI は音声 AI の遅延を解消するため、ターン検出器を排除した完全双方向(フルデュプレックス)の GPT-Live を発表し、対話の即時性と推論能力を同時に実現する新アーキテクチャを導入した。
AI深層分析を開く2026年8月4日 23:05
AI深層分析
キーポイント
ターン検出器の排除とフルデュプレックス化
従来のターンベース型システムで遅延の原因となっていた「話者切り替え検出器」を音声パスから削除し、同時に聴取と発話が可能になるフルデュプレックスモデルを採用した。
低遅延を実現する新アーキテクチャ
音声ストリーミングの流入・流出と非同期経路での委譲処理を最適化し、エンドツーエンドで滑らかな対話フローを維持するシステム基盤を構築した。
コアパスとアプリケーションロジックの分離
音声処理のコアパスとアプリケーションロジックの境界を明確にすることで、応答速度を損なうことなく PC 制御やエージェント調整などの高度な機能を追加可能にした。
大規模モデルとの連携による知能向上
深い推論やツール使用が必要な場合でも対話の流れを中断せず、GPT-5.5 などのフロンティアモデルに委譲して処理を行う仕組みを実装した。
音声モデルによる会話制御と非同期処理の分離
GPT-Live は音声モデルが会話を直接制御し、深い推論やツール呼び出しは非同期で実行する。これによりメディアループを中断せず、遅延要因が音声フローを妨げないように設計されている。
重要な引用
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.
The system's primary job is to sustain an uninterrupted media loop.
編集コメントを表示
編集コメント
ターン検出器の排除は、音声 AI の遅延問題を解決する決定的な技術的転換点である。このアーキテクチャ変更により、対話の自然さと推論能力を両立させる新たな基準が示されたと言える。
Source Article
元記事を日本語で読む
本文に関係しない購読案内、埋め込み通知、サイト内プロモーションは除いています。
音声 AI において、いつ話すべきかを判断することは、一見すると簡単そうに見えて実は難しい課題です。人間は数分の一秒のうちに自然に会話の順番を譲り合いますが、これまでの音声 AI システムはこのリズムについていけませんでした。従来のシステムはターンベースのアーキテクチャを採用しており、小さなモデルである「ターン検出器」に依存していました。この検出器には過酷な任務が課せられていました:判断が早すぎればユーザーの話が途中で切れてしまい、遅すぎれば応答が遅延しているように感じられるのです。検出器が判断を下すまで、はるかに大きな大規模言語モデル(LLM)は待機状態でした。
GPT‑Live は、当社の第 3 世代音声システムです。このシステムではオーディオパスからターン検出器を排除しました。GPT‑Live の音声モデルはフルデュプレックスであり、同時に聴取と発話を行うことが可能です。これにより、専用の検出器が不要となり、会話がより即座で自然なものになります。深い推論やツール利用が必要な場合でも、GPT‑Live は会話の流れを中断することなく、GPT‑5.5 などの最先端モデルに相談することができます。これらの機能を組み合わせることで、GPT‑Live は会話への応答性と知能という点で前例のない性能を実現しています。
この体験を大規模に提供するには、低遅延に最適化された新しいシステムアーキテクチャが必要でした。通常のリクエスト・レスポンス型推論とは異なり、当社のシステムは入力される音声を音声モデルへストリーミングし、出力される発話をユーザーへ戻しながら、委任処理は非同期パスで並行して実行します。過去 6 ヶ月間、私たちは音声の途切れのない流れを維持するために、モデル推論、コンテキスト管理、メディア転送のすべてを見直しました。
このアーキテクチャにより、コアとなる音声経路とアプリケーションロジックの間には明確な境界線が設けられます。これにより、応答性を損なうことなくアプリケーションの動作をカスタマイズしやすくなります。この基盤は、ChatGPT Voice の機能拡張を支えており、特に最近導入された「デスクトップアプリ上でコンピュータを操作したりエージェントを調整したりする」能力もその一部です。
本稿では、なぜ従来のターンベース方式では要件を満たせなかったのか、そして各レイヤーで応答性を確保するためにどのように新システムを設計したのかを解説します。状態保持型の推論、動的なコンテキスト管理、非同期の委任処理、プロトコルレベルでの最適化など、これらが連携して GPT‑Live を本物の「ライブ」体験へと進化させました。
ターンベースからストリーミングへ
以前の音声アーキテクチャは、テキスト LLM のターンベースという性質を引き継いでいましたが、各ターンをテキストではなく離散的な音声データとして扱っていました。カスケード型システムでは、音声認識(Speech-to-Text)、LLM、音声合成(Text-to-Speech)が順次実行されていました。この逐次的な処理が遅延を生み、トーンや話速といった重要な手がかりを見逃す要因となりました。
音声から音声への変換モデルは、音声を直接処理することでこのアプローチを改善しました。モデルにネイティブな音声の理解と生成を訓練させることで、文字起こしで失われる詳細を保持し、より迅速に応答できるようになりました。しかし、システムはまだ推論を開始するタイミングを決定するためにターン検出器に依存していました。モデルは対話の多くを処理しましたが、対話自体は依然としてターンベースのままです。
GPT‑Live は音声モデルが会話の主導権を握る仕組みです。音声がモデルから出入りし、深い推論やツール使用は非同期で実行されます。システムの主な役割は、途切れないメディアループを維持することです。最先端モデルの呼び出しや対話の永続化などの他の作業は、ライブパスの外側で行われます。
継続的な推論の実現
このメディアループを途切れさせることなく維持することは、必ずしも簡単ではありません。転送、処理、または推論におけるわずかな遅延でも、聴こえる一時停止やアーティファクトとして現れる可能性があります。以前のターンベースのシステムでは、音声データが到着するタイミングに多少の変動があっても許容できました。しかし、ライブメディアシステムでは、すべてのオーディオフレームをスケジュール通りに配信する必要があります。
ChatGPT Voice や Realtime API に関するこれまでの取り組みが、重要な基盤となりました。私たちはすでに 音声インフラを再構築 し、オーディオやビデオをシステムに直接ストリーミングして、より低く予測可能なレイテンシを実現しています。GPT‑Live はこの設計をさらに推し進め、新しいステートフルな推論システムを通じて、連続的な会話のためにメディアをモデルまでストリーミングします。
ただし、ストリーミング推論は解決策の一部に過ぎません。本番環境で安定して動作させるためには、クライアントから推論スタックへの信頼性の高いオーディオ配信を保証し、ステートフル化に伴う課題に対処する必要がありました。
私たちが早期に行った重要な判断の一つが、メディアの流れとアプリケーション・ビジネスロジックを明確に分離することです。オーディオは、クライアントと音声モデルの間で専用の高速パスを通じて移動します。一方、委譲やツール利用、その他のアプリケーション処理は、非同期 RPC の境界の背後で行われます。ツールの呼び出しが遅くなったりバックエンドサービスが応答を遅らせたりしても、メディアの流れ自体が止まることはありません。
この分離により、システムにはカスタマイズのための明確な境界線が生まれます。アプリケーション側でツールやポリシー、バックエンドの動作を変更しても、オーディオの流れを維持するメディアフロントエンドに影響を与えることはありません。ライブパスは小さく予測可能に保たれ、リアルタイムで行わなければならない作業に集中します。
メディアフロントエンドと推論ロジックは、以前の Python asyncio 実装に代わり Go で記述しました。これによりフレーム配信の滑らかさが大幅に向上し、新システムの p95 が旧システムの p50 に匹敵するレベルになりました。
WebRTC は転送基盤として機能します。低遅延メディア向けに設計されており、パケットロスやクロックドリフト、クライアント接続の変化があっても動作を継続できます。パケットが到着した場合、WebRTC は音声を微妙に伸長してギャップを防ぎ、その後一時的に再生速度を上げてリアルタイムに追いつきます。
システム全体でバッファリングとブロッキングを最小限に抑えることで、人間が会話から期待する 1 秒未満の応答性を提供できます。
状態保持型の会話を継続する
状態保持型推論には独自の運用上のトレードオフが存在します。音声セッションは長時間アクティブなままですが、そのコンテキストは連続的に成長し、モデルインスタンスは需要に応じて起動・停止を繰り返します。
これらの課題に対処するため、モデルインスタンス間でのシームレスなハンドオフ機構を構築しました。移行が必要な場合、既存のインスタンスと並行して代替モデルインスタンスをウォームアップし、現在のセッションコンテキストでプリフィルした上で、両方のインスタンスに対して並列推論を実行します。新しいインスタンスが完全に準備できた時点で切り替えます。
同様の基本メカニズムは、動的なコンテキストの圧縮(compaction)にも活用されています。会話が進むにつれて蓄積されたコンテキストが最終的にモデルの制限を超えてしまうことがあります。圧縮によってコンテキストサイズを制限内に収めることは可能ですが、この処理には時間がかかります。さらに、過去のコンテキストを変更するため、以前に処理したトークンからのアテンションキーと値を格納するモデルの KV キャッシュ(key-value cache)が無効化されてしまいます。その状態を再構築するには新しいプリフィル(prefill)が必要となり、追加の遅延が生じます。
そこで私たちは、圧縮を管理された遷移の一つとして扱っています。元のモデルインスタンスが会話を続ける一方で、システム側でコンテキストの圧縮を行い、新しいコンテキストを持つ代替となるモデルインスタンスの準備を進めます。このインスタンスが準備できたら、メディアの途切れなく切り替えることができます。これにより、システムは必要なときに随時圧縮を行いながら、長時間続く通話にも対応可能になります。
重負荷な処理はライブパス(実時間経路)から外しておくため、ハンドオフ中であっても会話は途切れることなく続きます。
会話のブロックを解消する委譲機能
GPT-Live が既存の最先端モデルを呼び出す能力は大きな力を発揮し、「対話」という行為と、より深い「思考」を効果的に切り離すことに成功しました。しかし、この 2 モデル構成をあたかも一つのシステムのように感じさせるためには、関連する 2 つのエンジニアリング課題を解決する必要がありました。
より深い作業のための委譲
GPT-Live は高速で自然な応答を提供し、背景では GPT-5.5 が検索処理を担当します
トランスクリプト
GPT-Live-1(GPT-5.5 Instant を使用)との会話例
まず、結果は継続的な対話の中で役立つ程度に素早く返さなければなりません。そのため、ルーティングやプロンプト処理から推論、ツール呼び出しに至るまでの全経路で遅延を最小限に抑える必要がありました。同時に、製品内の他のシステムでは依然として個別のメッセージが必要となるため、継続的な対話をそれらが理解できる形式で表現する必要がありました。
自然に感じられるほど高速な委譲の実現
委譲が実行された際、私たちは「対話に役立つものがフロントモデルから出力されるまでの時間」を最適化の対象としました。音声モデルは、フロントモデルが推論を行ったりツールを使用したりしている間、一時的に対話を進行させることができますが、任意の長さの遅延を隠すことはできません。そのため、ルーティング、プロンプト処理、推論、そしてツール呼び出しを含む委譲ループ全体を、「応答性の予算」の一部として扱いました。
最初の最適化手法は、委譲のリクエストが出る前にフロントモデルと必要なツールをセットアップしておくことです。音声セッションが開始されると、アプリケーションサーバーはフロントモデル用の推論セッションを作成し、初期の対話コンテキストで事前充填(prefill)を行います。これにより、最初の委譲リクエストが届く前にプロンプト処理が完全に完了していることを保証します。
その後、その推論セッションを音声会話の全期間にわたって利用可能に保ち、連続するリクエストに対して安定したセッションアフィニティ(session affinity)を活用します。これらとプロンプトキャッシュを組み合わせることで、遅延を改善しつつも、ワーカー障害が発生した場合でも容易に復旧できる体制を維持しています。
推論の強度や出力制限、ツールのスキーマ定義、モデルとツールの往復回数なども、会話に有用な結果が得られるタイミングに影響します。これらパラメータを調整して、より高速な応答を実現しました。特に委譲パスでの処理量を最小限に抑えることで、音声モデルが最先端モデルからの結果を迅速に取り込むことを可能にしています。
連続する音声から離散的なターンを導き出す
音声モデル自体は音声の連続ストリーム上で動作しますが、その周囲のシステム(ChatGPT の会話 UI や分析・安全インフラの一部など)は依然としてユーザーとアシスタントの「ターン」単位で動作しています。そのため、アプリケーションサーバーが重なり合い、場合によっては曖昧な会話を個別のメッセージに分解します。
音声が入力されると、サーバーは部分的な文字起こし結果とタイミング信号を用いて、現在発言権を持っている話者を推定し、メッセージキューを構築します。最新のメッセージはまだ仮の状態であり、新しい音声が入ってくるにつれて、そのテキスト内容やタイミング、話者割り当てが変更される可能性があります。ある話者が十分に長く発言を続け、話者の特定が確実になった時点で、対応するメッセージは確定されます。
話者の重なり合いはこのプロセスをさらに複雑にします。ユーザーが発話している最中にアシスタントから短い相槌(「うん」「はい」など)が入った場合、それが独立したメッセージになる必要はありません。しかし、本質的な内容を持つアシスタントの割り込みであれば、別々のメッセージとして扱うべきです。同様に、ユーザーが途中で発言しても、表示されるアシスタントの応答には一貫性を優先します。
セグメンテーションポリシーには、鮮度と確実性のトレードオフが存在します。早期にコミットしすぎると履歴が分断され順序が不安定になり、待機しすぎると文字起こしが遅れ、それに依存する機能も遅延します。そのため、システムは会話に対して2つの関連ビューを維持しています。1つは現在の状態に関する推測的なビュー、もう1つは実際に何が行われたかを示す権威ある記録です。アプリケーションUIの会話ビューは更新に対応できるため、推測的なビューを使用します。一方、分析パイプラインへのログ出力には最終的な文字起こしが必要です。
これにより、ChatGPTの残りの部分は、ライブ音声パスにターン制を課さずに、安定した交換履歴を維持できます。
より高速なプロトコルでセッションを開始する
応答性はユーザーがボタンをクリックした瞬間から始まります。GPT‑Liveでは、会話を開始する前にメディア経路を確立し、モデルへの音声供給を開始する必要があります。このため、起動シーケンスのすべての部分がクリティカルパス上にあります。
前述の通り、WebRTC は堅牢なリアルタイム基盤を提供しますが、標準的な WebRTC セッションを開始するには、予期せぬほど多くのプロトコルハンドシェイクとネットワーク往復が必要になります。WebRTC は、QUIC などの後続のプロトコルを形作った「往復時間の最小化」という焦点よりも前に登場しました。その結果、組み合わせて使用される際、基盤となるプロトコルが重複した作業を行うことがあります。例えば、各プロトコルには独自の DoS 防止機構が含まれていましたが、WebRTC スタック全体としての文脈では不要な場合でもです。
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デイリーブリーフで今日の重要ニュースをまとめ読み