
音声入力・音声出力が1つのソケットで、より大きなOmni階層で、テキストトークンとオーディオトークンレート、ターンごとの請求が別々です。
音声入力・音声出力が1つのソケットで、より大きなOmni階層で、テキストトークンとオーディオトークンレート、ターンごとの請求が別々です。
セッションはリクエストパラメータではなく、ソケット上でセッション・アップデートイベントで設定されます。テキストトークンとオーディオトークンは別々の料金で請求されます。
別名 Qwen3.5 Omni Realtime, Alibaba Cloud Qwen3.5 Omni Plus Realtime
qwen3-5-omni-plus-realtime/v1/realtimeqwen3.5-omni-plus-realtimealibaba/qwen3-5-omni-plus-realtimeEmpirioLabs カタログのライブ従量課金料金です。使った分だけの支払いで、月額最低料金はありません。
Qwen3.5 Omni Plus Realtime は HTTP エンドポイントではなく、wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtime の WebSocket 上でライブ会話を行います。モデル ID qwen3-5-omni-plus-realtime で接続し、ハンドシェイク時に EmpirioLabs の API キーを Authorization: Bearer ヘッダーとして送信してください。音声は base64 の 16 ビット PCM として双方向に流れます。 ブラウザは WebSocket にヘッダーを設定できないため、この接続はサーバーから開き、音声は自前のソケットでブラウザへ中継してください。 EmpirioLabs ダッシュボードで API キーを取得してください。
import asyncio, json, os, websockets
async def main():
async with websockets.connect(
"wss://api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtime",
additional_headers=[
("Authorization", f"Bearer {os.environ['EMPIRIOLABS_API_KEY']}"),
],
max_size=None,
) as ws:
print(json.loads(await ws.recv())["type"]) # session.created
await ws.send(json.dumps({
"type": "conversation.item.create",
"item": {
"type": "message",
"role": "user",
"content": [{"type": "input_text", "text": "Say hello."}],
},
}))
await ws.send(json.dumps({"type": "response.create"}))
async for raw in ws:
event = json.loads(raw)
if event["type"] == "response.audio.delta":
... # base64 audio chunk, append to your playback buffer
elif event["type"] == "response.done":
break
asyncio.run(main())EmpirioLabs 上の Qwen3.5 Omni Plus Realtime API が対応するリクエストパラメーターです。フィールドを省略した場合はデフォルト値が適用されます。
| パラメータ | タイプ | デフォルト | 範囲 / 値 | 説明 |
|---|---|---|---|---|
| voice | enum | Tina | Tina, Serena, Ethan, Dylan, Sunny, Peter, Kiki, Eric | セッション用の音声を話す。モデルが音声を出す前にsession.updateで設定してください。 |
| instructions | string | - | - | モデルが会話中にどのように振る舞い、話すべきかのシステムガイダンス。 |
| modalities | string | ["text","audio"] | - | どの出力タイプをモデルが1ターン返すか。テキストのみの返信には「audio」を省略してください。 |
| input_audio_format | enum | pcm | pcm | 入力バッファに追加するオーディオのエンコード:base64 16ビットPCM。 |
| output_audio_format | enum | pcm | pcm | モデルがストリーミングバックする音声のエンコードはbase64 16ビットPCMです。 |
| turn_detection | string | {"type":"server_vad"} | - | サーバー側の音声活動検出。話すのをやめたタイミングを判断し、モデルが返信すべきです。これがなければモデルは聞くだけで返答はしないので、input_audio_buffer.commitとresponse.createで自分でターンしない限りオンにしておくと良いです。 |
wss@api.empiriolabs.ai/v1/realtime?model=qwen3-5-omni-plus-realtimeでWebSocketを使ったフルデュプレックス音声で、通常のAuthorization Bearerヘッダーで認証されています。セッションをsession.updateで設定し、ソケット上でvoice、instructions、modalities、ターン検出を行います。このモデルの音声は以前のOmni世代とは異なり、1つを受け入れるかデフォルトのままにするかを選びます。未知の音声はエラーを返す代わりにセッションを終了します。テキストトークンとオーディオトークンは別々の価格が設定され、完了した各ターンはモデルが報告する使用量から個別に請求されます。
EmpirioLabs では Qwen3.5 Omni Plus Realtime は従量課金です: 入力:オーディオ $33.00 1Mのオーディオ入力トークンあたり; 入力 $4.20 1Mプロンプトトークンあたり; ソリューション $24.80 生成された1Mトークンあたり; 出力:オーディオ $124.00 生成された1Mの音声トークンあたり。このページのライブ料金表は常に API の請求額と一致します。
Qwen3.5 Omni Plus Realtime は 256K トークンのコンテキストウィンドウに対応しています(1回の応答あたり最大 32,768 出力トークン)。
Qwen3.5 Omni Plus Realtime は api.empiriolabs.ai 上の WEBSOCKET /v1/realtime で提供され、標準的な Bearer トークン認証を使用します。
EmpirioLabs プレイグラウンド を開き、Start session を押すとブラウザーで試せます。Qwen3.5 Omni Plus Realtime はリクエストとレスポンスではなく WebSocket 上で動作するため、組み込むときは リアルタイム音声クイックスタート から始めてください。EmpirioLabs の API キーとモデル ID qwen3-5-omni-plus-realtime を使ってサーバーから接続し、音声を双方向にストリーミングします。
EmpirioLabs アカウントを作成し、ダッシュボードの API Keysでキーを生成してください。課金は従量制クレジットなので、実行したリクエストの分だけ支払います。