
1つのソケットで27音声を搭載し、ネイティブのウェブ検索、ツール呼び出し、テキストトークンと音声トークンの分離率を実現。
1つのソケットで27音声を搭載し、ネイティブのウェブ検索、ツール呼び出し、テキストトークンと音声トークンの分離率を実現。
セッションはリクエストパラメータではなく、ソケット上でセッション・アップデートイベントで設定されます。ウェブ検索はデフォルトでオフで、関数呼び出しと組み合わせることはできません。テキストトークンとオーディオトークンは別々の料金で請求されます。
別名 Qwen Audio Realtime Plus, Qwen Audio Realtime, Alibaba Cloud Qwen Audio 3.1 Realtime Plus
qwen-audio-3-1-realtime-plus/v1/realtimeqwen-audio-3.1-realtime-plusalibaba/qwen-audio-3-1-realtime-plusEmpirioLabs カタログのライブ従量課金料金です。使った分だけの支払いで、月額最低料金はありません。
Qwen Audio 3.1 Realtime Plus は HTTP エンドポイントではなく、wss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-realtime-plus の WebSocket 上でライブ会話を行います。モデル ID qwen-audio-3-1-realtime-plus で接続し、ハンドシェイク時に 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=qwen-audio-3-1-realtime-plus",
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 上の Qwen Audio 3.1 Realtime Plus API が対応するリクエストパラメーターです。フィールドを省略した場合はデフォルト値が適用されます。
| パラメータ | タイプ | デフォルト | 範囲 / 値 | 説明 |
|---|---|---|---|---|
| voice | enum | longanqian_v3.1 | longanqian_v3.1, longanhuan_v3.1, longanlingxin_v3.1, longanf... | セッション用の話す音声。モデルが音声を生成する前にsession.updateで設定してください。これらの音声はこのモデルに特有のものです。 |
| instructions | string | - | - | モデルが会話中にどのように振る舞い、話すべきかのシステムガイダンス。 |
| enable_search | boolean | false | - | ウェブ上でリアルタイム情報を検索できます。関数呼び出しと同じセッションで使用することはできません。検索結果は会話に追加され、入力トークンとしてカウントされます。 |
| modalities | string | ["text","audio"] | - | どの出力タイプがモデルが1ターン返すか。音声を抜いてテキストのみの返信をします。 |
| input_audio_format | enum | pcm16 | pcm16 | 入力バッファに追加する音声のエンコードは、base64の16ビットPCM、16kHzです。 |
| output_audio_format | enum | pcm24 | pcm24 | モデルがストリーミングバックする音声のエンコード:16ビットPCM、24kHz。 |
| turn_detection | string | {"type":"server_vad"} | - | サーバー側の音声活動検出。話すのをやめたタイミングを判断し、モデルが応答するはずです。このモデルではデフォルトでオンになっています。 |
接続 WebSocketを経由した全二重音声をwss://api.empiriolabs.ai/v1/realtime?model=qwen-audio-3-1-realtime-plusで、通常のAuthorization Bearerヘッダーで認証します。ソケット上で音声、指示、モダリティ、ターン検出などのsession.updateセッションを構成します。音声送信 - input_audio_buffer.appendイベントとしてマイク音声を追加します。- 音声活動検出は話すのをやめたタイミングを判断するため、音声終了後も約1秒間ストリーミングを続けてください。音声 このモデルの音声は独立したセットです。音声リストから1つを選ぶか、音声を設定せずに設定せずにデフォルトが提供されます。ウェブ検索 ウェブ検索はデフォルトでオフです。enable_searchでオンにしてください。関数呼び出しと同じセッションでは有効化できず、検索結果は会話に追加され入力トークンとしてカウントされます。請求 音声トークンとテキストトークンは両方向に別々に価格が設定され、完了した各ターンはモデルが報告する使用量から個別に請求されます。
EmpirioLabs では Qwen Audio 3.1 Realtime Plus は従量課金です: 入力:オーディオ $12.80 1Mのオーディオ入力トークンあたり; 入力 $1.60 1Mプロンプトトークンあたり; ソリューション $12.80 生成された1Mトークンあたり; 出力:オーディオ $48.00 生成された1Mの音声トークンあたり; ウェブ検索 $0.00 呼び出し時の通話ごと。このページのライブ料金表は常に API の請求額と一致します。
Qwen Audio 3.1 Realtime Plus は 256K トークンのコンテキストウィンドウに対応しています(1回の応答あたり最大 16,384 出力トークン)。
Qwen Audio 3.1 Realtime Plus は api.empiriolabs.ai 上の WEBSOCKET /v1/realtime で提供され、標準的な Bearer トークン認証を使用します。
EmpirioLabs プレイグラウンド を開き、Start session を押すとブラウザーで試せます。Qwen Audio 3.1 Realtime Plus はリクエストとレスポンスではなく WebSocket 上で動作するため、組み込むときは リアルタイム音声クイックスタート から始めてください。EmpirioLabs の API キーとモデル ID qwen-audio-3-1-realtime-plus を使ってサーバーから接続し、音声を双方向にストリーミングします。
EmpirioLabs アカウントを作成し、ダッシュボードの API Keysでキーを生成してください。課金は従量制クレジットなので、実行したリクエストの分だけ支払います。