UStackUStack
OpenAI Realtime API favicon

OpenAI Realtime API

OpenAI Realtime APIは、音声エージェントの構築など、音声から音声、音声/画像/テキストの入力、および音声/テキストの出力をサポートする低遅延のマルチモーダル通信を促進します。

OpenAI Realtime API

OpenAI Realtime APIとは?

OpenAI Realtime APIとは?

OpenAI Realtime APIは、OpenAIモデルとの超低遅延通信を可能にするために設計された特殊なインターフェースです。その主な強みは、継続的で双方向のデータストリームを処理できる点にあり、対話的で時間的制約のあるアプリケーションに最適です。

このAPIは、複雑なマルチモーダルインタラクションをネイティブにサポートしており、開発者は音声から音声への機能統合、音声、画像、テキストの複合入力の処理、およびほぼリアルタイムでの音声またはテキスト出力の生成を行うことができます。

この機能により、ブラウザ内で直接高度な音声エージェントを構築したり、リアルタイムの音声書き起こしサービスを統合したりするなど、洗練された応答性の高いアプリケーションを構築する道が開かれます。速度と継続的なデータフローに焦点を当てることで、Realtime APIは従来の要求/応答モデルを超越し、真に会話的で没入感のあるAI体験の基盤を提供します。

主な機能

  • 低遅延通信: 自然な音声対話や即時フィードバックループに不可欠な、遅延を最小限に抑えるように最適化されています。
  • マルチモーダルサポート: 音声、画像、テキストを含む入力を受け付け、音声およびテキストの出力を生成します。
  • 音声から音声へのネイティブサポート: 音声入力が即座に音声出力に変換される、流動的な音声エージェントの構築のために特別に設計されています。
  • 柔軟な接続方法: さまざまなデプロイ環境に適応するために、主に3つのインターフェースをサポートしています。
    • WebRTC: Webブラウザ内での直接的なクライアントサイドのインタラクションに最適です。
    • WebSocket: 一貫した低遅延接続を必要とするサーバーサイドアプリケーションに最適です。
    • SIP: 従来のVoIP電話システムとの統合のために設計されています。
  • リアルタイム音声書き起こし: WebSocket接続経由で到着する音声ストリームを書き起こす機能を提供します。
  • サーバーサイド制御: 開発者がセッションのライフサイクルを管理し、ガードレールを実装し、サーバーから外部ツールを呼び出すことを可能にします。
  • 合理化された認証: セキュアなクライアントサイドの初期化のために、専用のRESTエンドポイント(/v1/realtime/client_secrets)を介して生成された一時的なAPIキーを使用します。

OpenAI Realtime APIの使用方法

Realtime APIの利用開始にあたっては、ブラウザベースの音声エージェントを構築するための最も迅速なパスを提供するAgents SDK for TypeScriptを活用することがよくあります。一般的なワークフローには、接続の確立、セッションの管理、そしてモデルとの対話が含まれます。

  1. 初期化: SDKを使用してエージェントのパラメータ(名前や指示など)を定義するか、直接接続の準備をします。
  2. 接続設定: 接続方法(ブラウザの場合はWebRTC、サーバーの場合はWebSocket)を選択します。WebRTCの場合、通常はRESTエンドポイントから取得した一時キーを使用してRealtimeSessionを初期化します。
  3. セッション接続: session.connect()を呼び出して、マイクと音声出力(音声エージェントの場合)を自動的にリンクするか、データストリームを確立します。
  4. 対話: 接続後、プロンプトの提供、会話イベントの管理、またはサーバーサイドロジック(ツール呼び出しなど)の実装に関する提供されたガイドを利用して、モデルの動作を誘導します。

Agents SDKを使用せずに直接統合する場合、開発者はセッションの初期化とデータ交換(WebRTCの場合はSDPネゴシエーションなど)を処理するために、WebRTC、WebSocket、またはSIP接続の特定のガイドを参照する必要があります。

ユースケース

  1. 対話型音声アシスタント: Webブラウザやモバイルアプリから直接アクセスできる、高度で自然な会話エージェントを構築し、目立った遅延なしに即座の音声応答を提供します。
  2. リアルタイムカスタマーサポートボット: SIP統合を介してライブ音声通話を処理できるAIエージェントを展開し、電話経由で即座のトリアージ、情報検索、または複雑なトランザクション処理を提供します。
  3. マルチモーダルデータ処理: ライブビデオフィード(画像入力を使用)と話されたコマンド(音声入力)を組み合わせて分析し、物理的な修理プロセスをユーザーにガイドするなど、複雑なタスクを実行するアプリケーションを作成します。
  4. ライブ会議の書き起こしと要約: リアルタイムの音声書き起こしのためにWebSocket接続を利用し、会議中の即時インデックス作成、キーワードフラグ付け、またはその場での要約生成を可能にします。
  5. 低遅延ゲームNPC: プレイヤーの音声コマンドが、ゲームキャラクターからの即時的で文脈に応じた音声応答を必要とする、リアルタイムのインタラクティブ環境でAIキャラクターを統合します。

FAQ

Q: Realtime APIと標準のREST API呼び出しの主な違いは何ですか? A: 標準のREST APIは、個別の要求/応答操作に最適化されています。Realtime APIは、対話型音声やリアルタイムデータ交換に不可欠な超低遅延を優先する、継続的で双方向のストリーミング通信のために構築されています。

Q: Realtime APIをモバイルアプリケーションで直接使用できますか? A: はい。Agents SDKはWebRTCを介したブラウザでの使用に焦点を当てていますが、基盤となるRealtime APIはWebSocket接続をサポートしており、バックエンドサーバーから必要な一時クライアントシークレットを安全に取得した後、ネイティブモバイル環境で実装できます。

Q: クライアントサイドのWebRTC接続の認証をどのように処理しますか? A: まず、メインのAPIキーを使用してサーバーサイドのRESTエンドポイント(POST /v1/realtime/client_secrets)を呼び出す必要があります。これにより、一時トークン(ek_...)が返され、クライアントはこのトークンを安全に使用してWebRTCまたはWebSocketセッションを初期化します。

Q: OpenAI-Beta: realtime=v1ヘッダーはどうなりましたか? A: このヘッダーは、古いRealtimeベータ版インターフェースの動作を意図的に維持する場合にのみ必要です。一般提供(GA)インターフェースを使用する新しい統合では、このヘッダーをREST APIリクエストおよびWebSocket接続から削除する必要があります。

Q: Webアプリケーションで最も低遅延を提供する接続方法はどれですか? A: 直接的なブラウザインタラクションの場合、WebRTCは、クライアントとモデル間の可能な限り低い遅延を達成するために、Realtime APIによって提供される推奨され、最も最適化された接続方法です。

OpenAI Realtime API | UStack