オーディオとリアルタイム
Realtime WebSocket
WebSocket でリアルタイム音声およびマルチモーダルセッションに接続します
概要
このエンドポイントは、ストリーミング音声認識、音声合成、音声翻訳、リアルタイムのマルチモーダルモデルなどのリアルタイムセッションに使用します。通常の GET リクエストはエンドポイントのメタデータを返し、WebSocket のアップグレードリクエストは選択したモデルのリアルタイムセッションを開始します。
サポート範囲
TokenLab は GET /v1/realtime で、メタデータ確認と WebSocket アップグレードに使えるリアルタイム WebSocket エンドポイントを提供します。これは WebSocket サブセット(WebSocket subset)として扱ってください。対応するリアルタイムモデルのイベントだけを中継し、セッション作成、client_secrets、Calls 通話制御 API、legacy beta session API などの OpenAI Realtime REST 補助面はサポートしていません。
ブラウザやモバイルアプリでは、長期 API キーをサーバー側に保持してください。このエンドポイントは短期 Realtime client secret を発行しません。
/v1/models から現在のリアルタイムモデルを選び、/v1/models/{model} で確認してから TOKENLAB_REALTIME_MODEL を設定してください。セッションのイベントと設定はモデルごとに異なります。下の JSON は通常の HTTP GET の応答であり、WebSocket のセッションイベントではありません。接続
リアルタイムモデル ID。対応状況で realtime をサポートするモデルを使用してください。
Bearer API キー。WebSocket クライアントはアップグレード要求で Authorization: Bearer sk-your-api-key を送信します。
リクエスト
import WebSocket from 'ws';
const model = process.env.TOKENLAB_REALTIME_MODEL;
const apiKey = process.env.TOKENLAB_API_KEY;
if (!model || !apiKey) {
throw new Error('Set TOKENLAB_REALTIME_MODEL and TOKENLAB_API_KEY');
}
const url = new URL('wss://api.tokenlab.sh/v1/realtime');
url.searchParams.set('model', model);
const socket = new WebSocket(url, {
headers: { Authorization: `Bearer ${apiKey}` }
});
socket.on('open', () => {
console.log('Realtime connection open');
});
socket.on('message', (data) => {
console.log('realtime event', data.toString());
});
socket.on('error', (error) => console.error(error.message));
socket.on('close', (code) => console.log('Realtime connection closed', code));メッセージ
TokenLab は、クライアントと選択したリアルタイムモデルの間で WebSocket メッセージを中継します。そのモデルのドキュメントに記載されたイベント形式を使用し、model は各イベントではなくクエリ文字列に含めてください。
課金と終了
セッションは API キーの残高で課金されます。TokenLab は開始時に見積もり額を確保し、終了時に実際の使用量で精算して差額を返金します。
セッションが完了したら、クライアントのソケットを閉じてください。サービス側が先にセッションを閉じた場合、TokenLab は可能な限り安全なクローズイベント/コードをクライアントに送信します。
レスポンス
{
"object": "realtime.endpoint",
"websocket_url": "/v1/realtime?model={model}",
"protocol": "tokenlab_realtime_proxy"
}重要フィールド
realtime.endpoint 固定です。/v1/realtime?model={model}。{model} を選択したモデルの ID に置き換えてください。tokenlab_realtime_proxy 固定です。認証
BearerAuth APIキー認証。Dashboard > API > API KeysでAPIキーを作成または管理します。
場所: header
クエリパラメータ
WebSocketセッションをルーティングするためのRealtimeモデルID。WebSocketアップグレードリクエストには必須ですが、通常のHTTPメタデータ確認には任意です。
レスポンス
application/json
application/json
application/json
application/json
application/json
application/json