Qwen-LiveTranslate-Realtime WebSocket アクセス
適用範囲
このドキュメントは Qwen-LiveTranslate-Realtime を対象とし、サンプルモデルは qwen3.8-livetranslate-flash-realtime です。シリーズガイドは qwen3.5-livetranslate-flash-realtime とスナップショット版 qwen3.5-livetranslate-flash-realtime-2026-05-19 も扱います。3.8 と 3.5 では設定とイベントフィールドが異なるため、選択したモデルのイベントリファレンスを参照してください。
- 選択したリージョンとワークスペースに対応する API キーとワークスペース IDを使用してください。
- 北京のドメイン:
{WorkspaceId}.cn-beijing.maas.aliyuncs.com。シンガポールのドメイン:{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com。 - 長期 API キーはサーバーに保存し、ブラウザーやモバイルアプリケーションに含めないでください。
アドレスと認証
北京:wss://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/api-ws/v1/realtime?model=qwen3.8-livetranslate-flash-realtime
シンガポール:wss://{WorkspaceId}.ap-southeast-1.maas.aliyuncs.com/api-ws/v1/realtime?model=qwen3.8-livetranslate-flash-realtime
その他のドメインは、Python SDKをご覧ください。
WebSocket ハンドシェイクのリクエストヘッダーに Authorization: Bearer <API_KEY> を設定します。ワークスペース ID と実際のモデル名を置き換えてください。長期 API キーをブラウザーやモバイルアプリに含めないでください。
任意のリクエストヘッダー user-agent はクライアントの識別に使用します。汎用 WebSocket アクセスドキュメントには、X-DashScope-WorkSpace(ワークスペース ID)と X-DashScope-DataInspection(データコンプライアンス検査の設定)も記載されています。モデルの要件に応じて使用します。
一時 API キーの生成手順と権限は、一時 API キーの生成をご覧ください。
セッション設定
接続を確立して session.created を受信したら、session.update を送信します。確認の session.updated を受信してから入力を送信し、error イベントでエラーを処理します。
次の例は qwen3.8-livetranslate-flash-realtime に適用されます。その他のバージョンは、それぞれのイベントリファレンスの設定を使用し、フィールドの階層を混在させないでください。この例はリアルタイム音声クローニングを有効にします。frequency: once はセッション開始時に入力音声の声を 1 回抽出し、以降も再利用するため、1 人のシナリオに適しています。詳細は、音声クローニングをご覧ください。
{
"type": "session.update",
"session": {
"output_modalities": [
"text",
"audio"
],
"audio": {
"input": {
"turn_detection": {
"type": "speaker_detection",
"threshold": 0.5
}
}
},
"voice": "default",
"enable_voice_clone": true,
"voice_clone_options": {
"frequency": "once"
},
"translation": {
"language": "en",
"corpus": {
"phrases": {
"人工智能": "Artificial Intelligence",
"机器学习": "Machine Learning"
}
}
}
}
}
qwen3.5-livetranslate-flash-realtime の設定とイベントは、上記の 3.8 の例と次の点が異なります。
- 出力モードは
session内のmodalitiesを使用します。有効値とデフォルト値は、3.8 のoutput_modalitiesと同じです。 - 入力言語は、
sessionのinput_audio_transcriptionオブジェクト内のlanguageで指定できます。省略時は自動認識を使用します。 - 原文テキストの増分認識は
conversation.item.input_audio_transcription.textを使用し、3.8 ではconversation.item.input_audio_transcription.deltaを使用します。 - テキストのみの出力では、3.5 は
response.text.textで翻訳の差分を返し、3.8 はresponse.text.deltaを使用します。テキストと音声の出力では、3.5 はresponse.audio_transcript.textで翻訳の差分を返し、3.8 はresponse.audio_transcript.deltaを使用します。
すべてのフィールド、デフォルト値、イベントは、クライアントイベント、サーバーイベント、リアルタイム音声翻訳ガイドをご覧ください。
入力、結果、終了
音声は input_audio_buffer.append で送信します。入力形式、コミット条件、画像入力の制限は、クライアントイベントをご覧ください。サーバーイベントで結果、状態、エラーを処理します。接続の確立を業務リクエストの完了とみなさないでください。
リアルタイム翻訳は、このモデルの翻訳設定とイベントを使用します。Omni の response.create 対話フローを適用しないでください。入力終了後に session.finish を送信し、接続を維持して残りの結果を受信します。session.finished の受信後に WebSocket 接続を閉じます。翻訳音声を最後まで再生する必要がある場合は、ローカルでの再生を先に完了します。イベントフィールドの詳細は、クライアントイベントとサーバーイベントをご覧ください。
エラー処理
ハンドシェイクに失敗した場合は、ドメイン、リージョン、ワークスペース、API キー、モデル名、モデルの有効化状態と権限を確認します。接続後は error イベントに基づいて問題を特定し、エラーコードを参照します。調査用にイベント ID を保存してください。応答がないことだけを理由に、プロトコルが未対応と判断しないでください。