次の方法で共有


WebSocket 経由で GPT-4o Realtime API を使用する方法 (プレビュー)

現在、この機能はパブリック プレビュー段階にあります。 このプレビューはサービス レベル アグリーメントなしで提供されており、運用環境ではお勧めしません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「 Microsoft Azure プレビューの追加使用条件」を参照してください。

音声とオーディオ用 Azure OpenAI GPT-4o Realtime API は、GPT-4o モデル ファミリの一部であり、低待機時間の "音声入力、音声出力" の会話をサポートします。

WebRTC または WebSocket を介して Realtime API を使用して、オーディオ入力をモデルに送信し、リアルタイムでオーディオ応答を受信できます。

この記事の手順に従って、WebSocket 経由で Realtime API の使用を開始します。 待機時間が短く要件ではないサーバー間シナリオでは、WebSocket 経由で Realtime API を使用します。

ヒント

ほとんどの場合、Web アプリケーションやモバイル アプリなどのクライアント側アプリケーションでリアルタイムオーディオ ストリーミングを行う場合は、 WebRTC 経由の Realtime API を使用することをお勧めします。 WebRTC は、待機時間が短くリアルタイムのオーディオ ストリーミング用に設計されており、ほとんどのユース ケースに最適です。

サポートされているモデル

GPT-4o リアルタイム モデルは、 米国東部 2 およびスウェーデン中部リージョンでのグローバルデプロイで使用できます。

  • gpt-4o-mini-realtime-preview (2024-12-17)
  • gpt-4o-realtime-preview (2024-12-17)

Realtime API の URL には、API バージョンの 2025-04-01-preview を使用する必要があります。

サポートされているモデルの詳細については、 モデルとバージョンのドキュメントを参照してください

[前提条件]

GPT-4o リアルタイム オーディオを使用するには、次のものが必要です。

接続と認証

リアルタイム API ( /realtime 経由) は、エンド ユーザーとモデル間の完全な非同期ストリーミング通信を容易にするために WebSocket API 上に構築されています。

Realtime API には Azure OpenAI リソースの /realtime エンドポイントへの WebSocket Secure 接続を介してアクセスします。

完全な要求 URI は、以下のものを連結することで作成できます。

  • 安全な WebSocket (wss://) プロトコル。
  • Azure OpenAI リソース エンドポイント ホスト名 (my-aoai-resource.openai.azure.com、など)
  • openai/realtime API パス。
  • サポートされている API バージョンの api-version クエリ文字列パラメーター (2024-12-17、など)
  • deployment または gpt-4o-realtime-preview モデル デプロイの名前を含む gpt-4o-mini-realtime-preview クエリ文字列パラメーター。

次に示すのは、適切に構築された /realtime 要求 URI の例です。

wss://my-eastus2-openai-resource.openai.azure.com/openai/realtime?api-version=2025-04-01-preview&deployment=gpt-4o-mini-realtime-preview-deployment-name

認証する場合:

  • Microsoft Entra (推奨): マネージド ID が有効になっている Azure OpenAI リソースに対して、 /realtime API でトークンベースの認証を使用します。 Bearer ヘッダーを含む Authorization トークンを使用して、取得した認証トークンを適用します。
  • API キー: api-key は、次の 2 つの方法のいずれかで提供できます。
    • ハンドシェイク前の接続上で api-key 接続ヘッダーを使用します。 このオプションはブラウザー環境内では使用できません。
    • 要求 URI 上で api-key クエリ文字列パラメーターを使用します。 https/wss を使用する場合、クエリ文字列パラメーターは暗号化されます。

WebSocket アーキテクチャを使用したリアルタイム API

/realtime への WebSocket 接続セッションが確立されて認証されると、WebSocket メッセージを送受信するためのイベントを介して機能の操作が行われます。 これらのイベントは、それぞれ JSON オブジェクトの形式になります。

リアルタイム API 認証と接続シーケンスの図。

イベントは並列で送受信でき、アプリケーションでは通常、同時および非同期の両方でそれらを処理する必要があります。

  • クライアント側の呼び出し元で /realtime への接続が確立され、新しい session が開始されます。
  • session は既定の conversation を自動的に作成します。 複数の同時会話はサポートされていません。
  • conversation は呼び出し元による直接のイベントを介して、または音声アクティビティ検出 (VAD) により自動的に response が開始されるまで、入力信号を蓄積します。
  • response は 1 つ以上の items で構成されており、メッセージ、関数呼び出し、その他の情報をカプセル化できます。
  • 各メッセージ item には content_part があり、複数のモダリティ (テキストとオーディオ) を 1 つの項目で表現できます。
  • session は、呼び出し元の入力処理 (ユーザー オーディオなど) と一般的な出力生成処理の構成を管理します。
  • 各呼び出し元が開始する response.create は、必要に応じて、出力 response 動作の一部をオーバーライドできます。
  • サーバーによって作成された item とメッセージ内の content_part は、非同期かつ並列に設定できます。 たとえば、ラウンド ロビン方式でオーディオ、テキスト、関数の情報を同時に受信します。

クイック スタートを試す

前提条件が満たされたので、 Realtime API クイック スタート の手順に従って、WebSocket 経由で Realtime API の使用を開始できます。