
WebSocketを使った同時音声翻訳。目標言語を設定し、次に話す;モデルはその言語でテキストと音声で応答します。
WebSocketを使った同時音声翻訳。目標言語を設定し、次に話す;モデルはその言語でテキストと音声で応答します。
セッションはリクエストパラメータではなく、ソケット上でセッション・アップデートイベントで設定されます。ターゲット言語が必要です。テキストトークンとオーディオトークンは別々の料金で請求されます。
別名 Alibaba Cloud Qwen3.8 LiveTranslate Flash Realtime
qwen3-8-livetranslate-flash-realtime/v1/realtimeqwen3.8-livetranslate-flash-realtimealibaba/qwen3-8-livetranslate-flash-realtimeEmpirioLabs カタログのライブ従量課金料金です。使った分だけの支払いで、月額最低料金はありません。
Qwen3.8 LiveTranslate Flash Realtime は HTTP エンドポイントではなく、wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-realtime の WebSocket 上で同時通訳します。モデル ID qwen3-8-livetranslate-flash-realtime で接続し、ハンドシェイク時に EmpirioLabs の API キーを Authorization: Bearer ヘッダーとして送信してください。音声を送る前に session.update で翻訳先の言語を設定します。音声は 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-8-livetranslate-flash-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
import base64
await ws.send(json.dumps({
"type": "session.update",
"session": {
"voice": "Tina",
"translation": {"language": "en"},
"modalities": ["text", "audio"],
},
}))
# 16-bit PCM microphone audio, base64 encoded, in small chunks.
for chunk in read_microphone_chunks():
await ws.send(json.dumps({
"type": "input_audio_buffer.append",
"audio": base64.b64encode(chunk).decode(),
}))
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"] in ("response.audio_transcript.text", "response.text.text"):
print(event.get("text") or "")
elif event["type"] == "response.done":
break
asyncio.run(main())EmpirioLabs 上の Qwen3.8 LiveTranslate Flash Realtime API が対応するリクエストパラメーターです。フィールドを省略した場合はデフォルト値が適用されます。
| パラメータ | タイプ | デフォルト | 範囲 / 値 | 説明 |
|---|---|---|---|---|
| voice | enum | Tina | Tina, Serena, Ethan, Cindy | 翻訳音声のための音声。モデルが音声を出す前にsession.updateで設定してください。 |
| target_language | enum | en | zh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, h... | モデルが翻訳する言語。必須です。音声を送信する前にsession.updateで設定してください。 |
| source_language | enum | auto | auto, zh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja,... | 話している言語です。自動のままにしてモデルに感知させてください。 |
| modalities | string | ["text","audio"] | - | モデルが1ターン返す出力タイプはどちらかです。テキストのみの翻訳のために音声を省略します。 |
| input_audio_format | enum | pcm | pcm | 入力バッファに追加するオーディオのエンコード:base64 16ビットPCM。 |
| output_audio_format | enum | pcm | pcm | モデルがストリーミングバックする音声のエンコードはbase64 16ビットPCMです。 |
wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-realtime のWebSocketで音声翻訳を行い、通常のAuthorization Bearerヘッダーで認証されます。音声を送信する前にsession.updateでターゲット言語を設定してください。このモデルが受け入れる音声を使うか、デフォルトのTinaのままにしてください。音声トークンとテキストトークンは別々の価格設定で、完了したターンごとにモデルが報告する使用量から個別に請求されます。
EmpirioLabs では Qwen3.8 LiveTranslate Flash Realtime は従量課金です: 入力:オーディオ $15.00 1Mのオーディオ入力トークンあたり; 入力 $1.10 1Mプロンプトトークンあたり; ソリューション $40.00 生成された1Mトークンあたり; 出力:オーディオ $60.00 生成された1Mの音声トークンあたり。このページのライブ料金表は常に API の請求額と一致します。
Qwen3.8 LiveTranslate Flash Realtime は 53K トークンのコンテキストウィンドウに対応しています(1回の応答あたり最大 4,096 出力トークン)。
Qwen3.8 LiveTranslate Flash Realtime は api.empiriolabs.ai 上の WEBSOCKET /v1/realtime で提供され、標準的な Bearer トークン認証を使用します。
EmpirioLabs プレイグラウンド を開き、Start session を押すとブラウザーで試せます。Qwen3.8 LiveTranslate Flash Realtime はリクエストとレスポンスではなく WebSocket 上で動作するため、組み込むときは リアルタイム音声クイックスタート から始めてください。EmpirioLabs の API キーとモデル ID qwen3-8-livetranslate-flash-realtime を使ってサーバーから接続し、音声を双方向にストリーミングします。
EmpirioLabs アカウントを作成し、ダッシュボードの API Keysでキーを生成してください。課金は従量制クレジットなので、実行したリクエストの分だけ支払います。