
WebSocketを使った同時音声翻訳。目標言語を設定し、次に話す;モデルはその言語でテキストと音声で応答します。
WebSocketを使った同時音声翻訳。目標言語を設定し、次に話す;モデルはその言語でテキストと音声で応答します。
セッションはリクエストパラメータではなく、ソケット上でsession.updateイベントで設定されます。音声を送信する前にターゲット言語を設定します。用語集は特定の用語の翻訳方法を設定し、話者自身の声で翻訳をvoice_cloneします。テキストトークンと音声トークンは別々の料金で請求されます。
別名 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で設定してください。voice_cloneが一度または常に使う限りは使いません。 |
| target_language | enum | en | zh, en, ar, de, fr, es, pt, id, it, ko, ru, th, vi, ja, tr, h... | モデルが翻訳する言語。デフォルトはenです。これらの言語は音声とテキストに翻訳されます。テキスト出力のみ(モーダリティ[「テキスト」)]で、さらに31言語のテキスト翻訳ができます:yue、el、af、ast、be、bg、bn、bs、ca、ceb、et、gl、gu、hr、hu、jv、kk、kn、ky、lv、mk、ml、mr、pa、ro... |
| modalities | string | ["text","audio"] | - | モデルが返す出力タイプは、デフォルトで["テキスト"、"オーディオ"]、テキストのみ翻訳の場合は["テキスト"]で、テキストのみのターゲット言語が必要とします。 |
| input_audio_format | enum | pcm | pcm | 入力バッファに追加するオーディオのエンコード:base64 16ビットPCM。 |
| output_audio_format | enum | pcm | pcm | モデルがストリーミングバックする音声のエンコードはbase64 16ビットPCMです。 |
| voice_clone | enum | off | off, once, always | 話者自身の声で翻訳を話します。セッション開始時に聞こえた音声を、すべての返信で保持します。返信の前に必ず音声を再度マッチさせ、翻訳が話している人に追従します。この状態では音声は使われません。音声を送信する前にsession.updateで設定してください。 |
| glossary | object | - | - | 特定の用語に対する優先翻訳、例えば{"machine learning": "aprendizaje automático"}の対象語。最大1,000語、各語最大200文字まで。translation.corpus.phrasesとしても受け入れられます。音声を送信する前にsession.updateで設定してください。 |
wss://api.empiriolabs.ai/v1/realtime?model=qwen3-8-livetranslate-flash-realtime のWebSocketを経由した音声翻訳を、通常のAuthorization Bearerヘッダーで認証します。音声を送信する前にsession.updateでターゲット言語を設定してください。モダリティを["text"]に設定すると、さらに31のターゲット言語がテキストのみに翻訳されます。用語集を追加して特定の用語の翻訳方法を設定できます。このモデルが受け入れる声を使うか、デフォルトのTinaのままにしてください。話者の声で翻訳を話すには、voice_cloneを一度(セッション開始時に聞いた声)または常に(話している人の声で、各返信前に一致させる)に設定してください。クローン作成には料金がかかりません。音声トークンとテキストトークンは別々の価格で設定され、完了した各ターンはモデルが報告する使用量から個別に請求されます。
EmpirioLabs では Qwen3.8 LiveTranslate Flash Realtime は従量課金です: 入力: 音声 $15.00 1Mのオーディオ入力トークンあたり; 入力 $1.10 1Mプロンプトトークンあたり; 出力 $40.00 生成された1Mトークンあたり; 出力: 音声 $60.00 生成された1Mの音声トークンあたり。このページのライブ料金表は常に API の請求額と一致します。
Qwen3.8 LiveTranslate Flash Realtime は 48K トークンのコンテキストウィンドウに対応しています(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でキーを生成してください。課金は従量制クレジットなので、実行したリクエストの分だけ支払います。