OpenAI Realtime APIとの互換性
エンドポイントとセッション設定を変更するだけで、既存のOpenAI RealtimeクライアントをElevenLabs Realtimeに接続できます。
ElevenLabs Realtimeは、OpenAIのRealtime APIと同じワイヤープロトコルを使用します。同じWebSocketトランスポート上で、同じクライアントイベントとサーバーイベントを利用できます。すでにOpenAIのRealtime SDKで構築したアプリがある場合は、SDKを切り替えることなく、api.openai.comではなくElevenLabs Realtimeを指定できます。
このガイドでは、小規模なサーバーサイドの処理で短期間有効な認証情報を発行し、ブラウザがElevenLabs Realtimeへ直接接続する、ブラウザベースのフローを説明します。
利用可能なモデル
仕組み
- バックエンドがElevenLabsに対し、特定のセッション設定にスコープされた短期間有効なクライアントシークレットをリクエストします。
- フロントエンドが、OpenAI APIキーの代わりにそのクライアントシークレットをOpenAIのRealtime SDKへ渡します。
- SDKがWebSocket経由でElevenLabs Realtimeに接続し、OpenAIのRealtime APIと同じクライアントイベントとサーバーイベントを使用して会話が進みます。
クライアントシークレットを発行する
ElevenLabs APIキーがクライアントに届かないよう、クライアントシークレットはブラウザではなくバックエンドからリクエストしてください。
APIに安全にアクセスするために使用するAPIキーは、ダッシュボードで作成できます。
キーは管理されたシークレットとして保存し、好みに応じて .env ファイルを通じた環境変数として、またはアプリの設定で直接SDKに渡してください。
レスポンスには、フロントエンドで使用する一時的な認証情報であるvalue、その有効期限、ネゴシエートされたsessionが含まれます。ブラウザにはvalueのみを返してください。
model文字列は、ダッシュボードのagent_idを参照するのではなく、エージェントの動作を直接選択します。クライアントシークレットの発行時に送信するセッション設定が、その認証情報の初期セッションとして正式な設定になります。
ブラウザから接続する
クライアントシークレットをAPIキーとしてOpenAIのRealtime SDK(@openai/agents-realtime)へ渡し、デフォルトのOpenAIエンドポイントではなくElevenLabsのエンドポイントをWebSocketトランスポートに指定します。
SDKが自動的にオーディオを接続するのはWebRTCトランスポートのみです。WebSocketでは、OpenAIが独自のWebSocketサンプルで使用しているのと同じヘルパーであるwavtoolsなどを使い、24kHzのPCM16オーディオを自分でキャプチャ・再生してください。
クライアントシークレットを発行してオーディオを接続する完全なアプリについては、GitHubのNext.jsサンプル を参照してください。
制限事項
このガイドでは、ブラウザから直接接続する方法を説明しています。サーバーサイドのOpenAI Realtime SDKから接続するためのドキュメントは、まだ公開されていません。
よくある質問
Realtimeモデルはいつ使うべきですか?
Realtimeモデルは、プロダクトに音声機能を組み込む最速の方法です。Eleven Realtime v1 miniは料金と速度に最適化され、Eleven Realtime v1 maxは品質とより複雑なタスクに最適化されています。
Realtimeモデルの基盤となるアーキテクチャは何ですか?
Eleven Realtime v1 miniとmaxは、カスケード型アーキテクチャを採用しています。各コンポーネントが単一のシステムの一部として最適に機能するよう、エンドツーエンドで最適化されています。
ElevenAgentsでコンポーネントモデルを選択する場合とどう違いますか?
基盤となるモデルの詳細は公開されていません。各コンポーネントはElevenLabsの最新研究を活用し、Realtimeモデル内で最適に連携するよう最適化されています。
Realtimeモデルは融合モデルですか?
いいえ。Realtimeモデルはカスケード型アーキテクチャを使用しています。各コンポーネントは独立したモデルで、ElevenLabsの最新研究をもとに構築され、最適に連携するよう最適化されています。