AboutPostsMy Music Works

OpenAI Realtime APIのイベントをまとめてみた

makotyo,3 min read

OpenAI Realtime APIは、WebRTCを利用したリアルタイム音声対話を実現するための強力なAPIですが、関連するイベントやフローが多岐にわたり、ドキュメントだけでは理解が難しい部分があります。

この記事では、Realtime APIの主要なイベントの種類とフローをまとめてみました。

WebRTCの基本的な接続フロー

まず、OpenAI Realtime APIの基盤となるWebRTCの接続フローと主要な機能について見ていきましょう。
以下の図では、セッションの初期化からP2P接続の確立、音声処理の流れまでを視覚的に解説しています。

OpenAI Realtime API イベントフロー

クライアント
サーバー

WebRTCセッション初期化フロー:

REST API呼び出し

POST /v1/realtime/sessions

セッションオブジェクト

client_secret付き

↓ WebRTCで接続

WebRTC接続パラメータ

  • modalities: ["audio", "text"] - 応答可能なモダリティ
  • model: 使用するRealtimeモデル
  • instructions: モデルへの指示(システムメッセージ)
  • voice: 音声タイプ(alloy, ash, ballad等)
  • input_audio_format: pcm16, g711_ulaw, g711_alaw
  • output_audio_format: pcm16, g711_ulaw, g711_alaw
  • turn_detection: 発話検出設定(server_vad等)

WebRTC特有の機能

  • 低遅延の双方向リアルタイム音声通信
  • 自動的な音声活動検出(VAD)
  • ネットワーク状態に応じた適応型ビットレート調整
  • エコーキャンセリングとノイズ抑制
  • ブラウザ内でのネイティブメディア処理

WebRTC接続フロー (6)

シグナリングプロセス

  1. REST API認証

    クライアントがREST APIを呼び出し、ephemeralトークンを取得

  2. RTCPeerConnection作成

    クライアント側でWebRTC接続オブジェクトを初期化

  3. オファー生成と送信

    クライアントがSDPオファーを作成し、サーバーに送信

  4. アンサー受信と設定

    サーバーからSDPアンサーを受信し、ローカル接続に適用

  5. ICE候補交換

    接続候補情報を交換し、最適な接続経路を確立

  6. 接続確立

    接続状態が「connected」に変わり、メディア転送開始

WebRTCシグナリングと通信フロー

クライアント
サーバー
セッション作成リクエスト
セッションとクライアントシークレット応答
WebRTCシグナリング開始
ICE候補とSDP情報を交換
音声ストリーム送信開始
音声/テキスト応答送信

WebRTC技術情報

対応モデル:

gpt-4o-realtime-preview-2024-12-17

gpt-4o-mini-realtime-preview-2024-12-17

WebRTCの接続フローは以下のような順序で進行します:

  1. REST APIによるセッション作成とクライアントシークレットの取得
  2. WebRTCシグナリングプロセスの開始
  3. OpenAI Realtime APIとの接続確立
  4. 音声ストリームの送受信開始

Realtime APIのイベントフロー

次に、OpenAI Realtime APIで利用可能な具体的なイベントについて詳しく見ていきます。
主にサーバーから送られてくるイベントをアプリケーションでハンドリングしていくことになります。

OpenAI Realtime API イベントフロー

クライアント
サーバー

初期接続時の自動イベント:

session.created
conversation.created

セッション関連イベント (1)

session.update
session.updated

セッション設定の更新

オーディオ関連イベント (5)

会話アイテム関連イベント (5)

レスポンス関連イベント (2)

その他の重要なイベント

error
エラー発生時に送信される
rate_limits.updated
レート制限情報の更新

まとめ

このあたりの情報とフローを頭に入れておくと、OpenAI Realtime APIを使った開発がスムーズに進むと思います。
本記事ではOpenAI Realtime API公式ドキュメントを参考に、イベントフローや接続プロセスを図解しています。公式ドキュメントでは技術的な詳細が記載されていますが、本記事ではより視覚的に理解しやすい形で整理しました。

CC BY-NC 4.0 2025 © makotyoRSS