qwen3-livetranslate-flash-realtime は、18 の言語間でリアルタイムに翻訳を行う視覚拡張モデルです。リアルタイムのビデオストリームまたはローカルのビデオファイルから音声と画像の両方の入力を処理し、視覚的なコンテキストを使用して精度を向上させ、高品質の翻訳テキストと音声を出力します。
オンラインデモについては、「Function Compute を使用したワンクリックデプロイ」をお試しください。
特徴
多言語サポート:中国語、英語、フランス語、ドイツ語、ロシア語、日本語、韓国語、および標準語、広東語、四川語を含む 18 の言語と 6 つの中国語方言をサポートします。
視覚拡張:視覚的なコンテキストを使用して翻訳精度を向上させます。このモデルは、唇の動き、ジェスチャー、画面上のテキストなどの視覚的な手がかりを分析し、ノイズの多い環境や複数の意味を持つ単語に対して、より正確な翻訳を生成します。
3 秒の遅延:わずか 3 秒で同時通訳を実現します。
無損失同時通訳:意味単位予測を使用して言語間の語順の違いを解決し、オフライン翻訳に匹敵するリアルタイムの翻訳品質を提供します。
自然な音声:ソース音声に合わせてイントネーションと感情を自動的に調整し、人間のような自然な音声を生成します。
ホットワード設定:特定の用語の翻訳精度を向上させるためのホットワード設定を提供します。
操作手順
1. 接続の構成
qwen3-livetranslate-flash-realtime モデルは WebSocket プロトコルを使用して接続します。接続を確立するには、次のものが必要です。
パラメーター | 説明 |
エンドポイント | 中国本土:wss://dashscope.aliyuncs.com/api-ws/v1/realtime 国際:wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime |
クエリパラメーター | クエリパラメーターは |
メッセージヘッダー | 認証にはベアラートークンを使用します: DASHSCOPE_API_KEY は、Model Studio から取得する API キーです。 |
次の Python サンプルは、接続を確立する方法を示しています。
2. 言語、出力モダリティ、音声の構成
session.update クライアントイベントを送信します。
言語
入力言語:
session.input_audio_transcription.languageパラメーターを使用します。デフォルト値は
en(英語)です。翻訳先の言語:
session.translation.languageパラメーターを使用します。デフォルト値は
en(英語) です。
サポートされている値については、「サポートされている言語」をご参照ください。
ソース言語認識結果の出力
この機能を設定するには、
session.input_audio_transcription.modelパラメーターを使用します。qwen3-asr-flash-realtimeにパラメーターを設定すると、サーバーは入力音声の音声認識結果(ソース言語の原文)を翻訳と一緒に返します。この機能が有効になると、サーバーは次のイベントを返します。
conversation.item.input_audio_transcription.text: 音声認識結果をストリーミングします。conversation.item.input_audio_transcription.completed:音声認識が完了したときに最終結果を返します。
出力モダリティ
session.modalitiesパラメーターを["text"](テキストのみ)または["text","audio"](テキストと音声)に設定します。音声
これは
session.voiceパラメーターで設定します。詳細については、「サポートされている音声」をご参照ください。ホットワード
「
session.translation.corpus.phrases」パラメーターを使用して、ホットワードを設定します。ホットワードは、ソース言語の用語をターゲット言語の翻訳にマップするキーと値のペアを指定することにより、特定の用語の翻訳精度を向上させます。たとえば、
"人工智能"を"Artificial Intelligence"にマップできます。
3. 音声と画像の入力
input_audio_buffer.append および input_image_buffer.append イベントを使用して、Base64 エンコードされた音声 (必須) と画像 (オプション) を送信します。
ローカルファイルの画像を使用するか、ビデオストリームからリアルタイムでキャプチャできます。
サーバーは音声入力の開始と終了を自動的に検出し、モデルに応答をトリガーします。
4. モデルの応答の受信
サーバーが音声入力の終了を検出すると、モデルは応答を開始します。応答形式は、構成された出力モダリティによって異なります。
テキストのみの出力
サーバーは、response.text.done イベントで完全な翻訳テキストを返します。
テキストと音声の出力
テキスト
サーバーは、response.audio_transcript.done イベントで完全な翻訳テキストを返します。
音声
サーバーは、response.audio.delta イベントで、インクリメンタルな Base64 エンコードされた音声データを返します。
サポートされているモデル
パラメーター | バージョン | コンテキストウィンドウ | 最大入力 | 最大出力 |
(トークン) | ||||
qwen3-livetranslate-flash-realtime qwen3-livetranslate-flash-realtime-2025-09-22 と同等 | 安定版 | 53,248 | 49,152 | 4,096 |
qwen3-livetranslate-flash-realtime-2025-09-22 | スナップショット版 | |||
クイックスタート
環境の準備
Python 3.10 以降が必要です。
まず、pyaudio をインストールします。
macOS
brew install portaudio && pip install pyaudioDebian/Ubuntu
sudo apt-get install python3-pyaudio or pip install pyaudioCentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudioWindows
pip install pyaudio次に、WebSocket の依存関係をインストールします。
pip install websocket-client==1.8.0 websocketsクライアントの作成
次の内容で、
livetranslate_client.pyという名前のファイルを作成します:モデルとの対話
「
livetranslate_client.py」と同じディレクトリ内に、「main.py」という名前のファイルを作成し、以下の内容を記述します:main.pyを実行し、マイクに向かって話してください。このモデルは、翻訳された音声およびテキストをリアルタイムで出力します。システムが音声を自動的に検出し、サーバーに送信します。
画像による翻訳精度の向上
qwen3-livetranslate-flash-realtime モデルは、画像を使用して音声翻訳を改善します。この機能は、同音異義語や稀な固有名詞があるシナリオに最適です。1 秒あたり 2 枚以下の画像を送信することを推奨します。
次のサンプル画像をダウンロードしてください:medical mask.png および masquerade mask.png。
以下のコードを livetranslate_client.py と同じディレクトリにダウンロードして実行します。マイクに向かって "What is mask?" と言います。このモデルは、提供されたイメージを使用して「mask」という単語の曖昧さを解消します。たとえば、medical mask.png を使用すると、このフレーズは「什么是口罩?」に翻訳され、masquerade mask.png を使用すると、「什么是面具?」に翻訳されます。
import os
import time
import json
import asyncio
import contextlib
import functools
from livetranslate_client import LiveTranslateClient
IMAGE_PATH = "medical mask.png"
# IMAGE_PATH = "masquerade mask.png"
def print_banner():
print("=" * 60)
print(" Powered by Qwen qwen3-livetranslate-flash-realtime - Single-turn interaction example (mask)")
print("=" * 60 + "\n")
async def stream_microphone_once(client: LiveTranslateClient, image_bytes: bytes):
pa = client.pyaudio_instance
stream = pa.open(
format=client.input_format,
channels=client.input_channels,
rate=client.input_rate,
input=True,
frames_per_buffer=client.input_chunk,
)
print(f"[INFO] Recording started. Please speak...")
loop = asyncio.get_event_loop()
last_img_time = 0.0
frame_interval = 0.5 # 2 fps
try:
while client.is_connected:
data = await loop.run_in_executor(None, stream.read, client.input_chunk)
await client.send_audio_chunk(data)
# 0.5 秒ごとに画像フレームを追加
now = time.time()
if now - last_img_time >= frame_interval:
await client.send_image_frame(image_bytes)
last_img_time = now
finally:
stream.stop_stream()
stream.close()
async def main():
print_banner()
api_key = os.environ.get("DASHSCOPE_API_KEY")
if not api_key:
print("[ERROR] First, configure the API KEY in the DASHSCOPE_API_KEY environment variable.")
return
client = LiveTranslateClient(api_key=api_key, target_language="zh", voice="Cherry", audio_enabled=True)
def on_text(text: str):
print(text, end="", flush=True)
try:
await client.connect()
client.start_audio_player()
message_task = asyncio.create_task(client.handle_server_messages(on_text))
with open(IMAGE_PATH, "rb") as f:
img_bytes = f.read()
await stream_microphone_once(client, img_bytes)
await asyncio.sleep(15)
finally:
await client.close()
if not message_task.done():
message_task.cancel()
with contextlib.suppress(asyncio.CancelledError):
await message_task
if __name__ == "__main__":
asyncio.run(main())ワンクリックデプロイ
コンソールではオンラインデモは利用できません。ワンクリックでアプリケーションをデプロイするには、次の手順に従ってください。
Function Compute テンプレートを開き、API キーを入力して、[デフォルト環境の作成とデプロイ] をクリックします。
1 分ほど待ちます。[環境の詳細] > [環境コンテキスト] で、エンドポイントを取得し、URL のプロトコルを
httpからhttpsに変更し (たとえば、https://qwen-livetranslate-flash-realtime-intl.fcv3.xxx.ap-southeast-1.fc.devsapp.net/)、そのリンクを使用してアプリケーションにアクセスします。重要このリンクは自己署名証明書を使用しており、一時的なテスト専用です。初めてアクセスすると、ブラウザにセキュリティ警告が表示されます。これは予期された動作です。このリンクを本番環境で使用しないでください。続行するには、[詳細設定] → [(安全でない)に進む] などの画面の指示に従ってください。
Resource Access Management (RAM) の権限を付与する必要がある場合は、画面の指示に従ってください。
プロジェクトのソースコードを表示するには、[リソース情報] > [関数リソース] に移動します。
Function Compute と Alibaba Cloud Model Studio の両方で、新規ユーザーには簡単なデバッグに十分な無料クォータが提供されます。無料クォータを使い切った後は、サービスにアクセスしたときにのみ従量課金が発生します。
インタラクションフロー
リアルタイム音声翻訳は、標準的な WebSocket イベント駆動モデルに従います。サーバーは自動的に発話の境界を検出し、応答します。
ライフサイクル | クライアントイベント | サーバーイベント |
セッションの初期化 | session.update セッション構成 | session.created セッションが作成されました session.updated セッション構成が更新されました |
ユーザーの音声入力 | input_audio_buffer.append バッファーに音声を追加 input_image_buffer.append バッファーに画像を追加 | なし |
サーバーの音声出力 | なし | response.created サーバーが応答の生成を開始したことを示します。 response.output_item.added 新しい出力項目が利用可能であることを示します。 response.content_part.added アシスタントメッセージに新しいコンテンツ部分が追加されたことを示します。 response.audio_transcript.text テキストトランスクリプトへのインクリメンタルな更新が含まれます。 response.audio.delta 合成された音声のインクリメンタルなチャンクが含まれます。 response.audio_transcript.done 完全なテキストトランスクリプトが完了したことを示します。 response.audio.done 合成された音声が完了したことを示します。 response.content_part.done アシスタントメッセージのテキストまたは音声コンテンツ部分が完了したことを示します。 response.output_item.done アシスタントメッセージの出力項目全体が完了したことを示します。 response.done 応答全体が完了したことを示します。 |
API リファレンス
詳細については、「Qwen-Livetranslate-Realtime」をご参照ください。
課金
音声:音声入力または出力の 1 秒ごとに 12.5 トークンを消費します。
画像:28×28 ピクセルごとに 0.5 トークンを消費します。
テキスト:ソース言語の音声認識が有効な場合、サービスは翻訳に加えて入力音声のトランスクリプト (元のソース言語のテキスト) を返します。このトランスクリプトは出力トークンとして課金されます。
トークンの価格については、「モデルリスト」をご参照ください。
サポートされている言語
ソース言語とターゲット言語を指定するには、次の言語コードを使用します。
一部のターゲット言語はテキスト出力のみをサポートします。
言語コード | 言語 | 出力 |
en | 英語 | 音声 + テキスト |
zh | 中国語 | 音声 + テキスト |
ru | ロシア語 | 音声 + テキスト |
fr | フランス語 | 音声 + テキスト |
de | ドイツ語 | 音声 + テキスト |
pt | ポルトガル語 | 音声 + テキスト |
es | スペイン語 | 音声 + テキスト |
it | イタリア語 | 音声 + テキスト |
id | インドネシア語 | テキスト |
ko | 韓国語 | 音声 + テキスト |
ja | 日本語 | 音声 + テキスト |
vi | ベトナム語 | テキスト |
th | タイ語 | テキスト |
ar | アラビア語 | テキスト |
yue | 広東語 | 音声 + テキスト |
hi | ヒンディー語 | テキスト |
el | ギリシャ語 | テキスト |
tr | トルコ語 | テキスト |
サポートされている音声
名前 |
| サンプル | 説明 | 言語 |
Cherry | Cherry | 明るくポジティブなトーンの、フレンドリーで会話的な女性の声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語 | |
Nofish | Nofish | 非そり舌の標準語アクセントを持つカジュアルな男性の声。 | 中国語、英語、フランス語、ドイツ語、ロシア語、イタリア語、スペイン語、ポルトガル語、日本語、韓国語 | |
Jada | Jada | 上海アクセントを持つエネルギッシュな女性の声。 | 中国語 | |
Dylan | Dylan | 北京アクセントを持つ若い男性の声。 | 中国語 | |
Sunny | Sunny | 四川アクセントを持つ温かく甘い女性の声。 | 中国語 | |
Peter | Peter | 天津アクセントを持つ男性のコメディックな声。 | 中国語 | |
Kiki | Kiki | 広東語の甘い女性の声。 | 広東語 | |
Eric | Eric | 成都 (四川) アクセントを持つ明るい男性の声。 | 中国語 |