qwen3-livetranslate-flash-realtime は、視覚情報を活用したリアルタイム翻訳モデルで、中国語、英語、ロシア語、フランス語を含む 18 言語間の翻訳をサポートします。リアルタイムのビデオストリームまたはローカルの動画ファイルから音声および画像入力を処理し、視覚的コンテキストを活用して翻訳精度を向上させ、リアルタイムで翻訳テキストおよび音声を出力します。
Function Compute を使用したワンクリックデプロイメントによるオンラインデモをお試しください。
特徴
多言語対応:中国語、英語、フランス語、ドイツ語、ロシア語、日本語、韓国語をはじめとする 18 言語と、北京語(普通話)、広東語、四川語を含む 6 種類の中国語方言をサポートします。
視覚情報の活用:口の動き、ジェスチャー、画面上のテキストなどの視覚的ヒントを分析し、特にノイズ環境下や曖昧な単語において翻訳精度を向上させます。
3 秒の遅延:遅延がわずか 3 秒の同時通訳を実現します。
高品質な同時通訳:意味単位予測により言語間の語順の違いを解消し、オフライン翻訳に匹敵するリアルタイム翻訳品質を提供します。
自然な音声:ソース音声のイントネーションや感情を自動的にマッチングし、自然な音声を生成します。
ホットワード設定:特定の用語に対する翻訳精度を向上させるためにホットワードを設定できます。
操作手順
1. 接続の構成
qwen3-livetranslate-flash-realtime モデルは WebSocket プロトコルを使用します。接続には以下のパラメーターが必要です。
パラメーター | 説明 |
endpoint | 中国本土:wss://dashscope.aliyuncs.com/api-ws/v1/realtime 国際:wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime |
クエリパラメーター | モデルのクエリパラメーターはモデル名に設定する必要があります。例: |
メッセージヘッダー | Bearer Token を使用して認証を行います:Authorization: Bearer DASHSCOPE_API_KEY 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"を"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 のエイリアス | Stable | 53,248 | 49,152 | 4,096 |
qwen3-livetranslate-flash-realtime-2025-09-22 | Snapshot | |||
クイックスタート
環境の準備
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という名前のファイルを作成します。モデルとの対話
同じディレクトリに、以下のコードを含む
main.pyという名前のファイルを作成します。main.pyを実行し、マイクに向かって話しかけてください。モデルはリアルタイムで翻訳された音声およびテキストを出力します。システムは自動的に発話を検出し、サーバーに送信します。
画像による翻訳精度の向上
qwen3-livetranslate-flash-realtime モデルは画像入力を活用して音声翻訳を改善し、同音異義語の曖昧さを解消したり、一般的でない固有名詞を認識したりします。1 秒あたり最大 2 枚の画像を送信してください。
以下のサンプル画像をダウンロードします:medical mask.pngmasquerade mask.png
以下のコードを livetranslate_client.py と同じディレクトリにダウンロードして実行します。マイクに向かって "What is mask?" と話しかけてください。モデルは提供された画像を使用して「mask」という単語の曖昧さを解消します。たとえば、medical mask.png ファイルを使用すると、「What is a medical mask?」と翻訳され、masquerade mask.png ファイルを使用すると、「What is a masquerade mask?」と翻訳されます。
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)
# Append an image frame every 0.5 seconds
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] Please set 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 デプロイメント
アプリケーションをデプロイするには、以下の手順を実行します。
Function Compute テンプレートを開き、API キーを入力して、[Create and Deploy Default Environment] をクリックしてアプリケーションをテストします。
約 1 分待ちます。Environment Details > Environment Context でエンドポイントを取得し、プロトコルを
httpからhttpsに変更します(例:https://qwen-livetranslate-flash-realtime-intl.fcv3.xxx.ap-southeast-1.fc.devsapp.net/)。ブラウザで URL を開き、モデルと対話します。重要このエンドポイントは自己署名証明書を使用しており、一時的なテスト専用です。初回アクセス時にブラウザがセキュリティ警告を表示しますが、これは想定された動作です。本番環境ではこのエンドポイントを使用しないでください。警告画面で画面上の指示に従って進めてください(例:詳細設定 → (安全ではないサイトに)進む)。
Resource Access Management 権限の構成を求められた場合は、画面上の指示に従ってください。
プロジェクトのソースコードを確認するには、Resource Information > Function Resources に移動します。
Function Compute および Model Studio は新規ユーザー向けに無料クォータを提供しており、基本的なデバッグに十分です。無料クォータを使い切った後は、従量課金が適用されます。
対話フロー
リアルタイム音声翻訳は、イベント駆動型の WebSocket モデルに従います。サーバーは自動的に発話区間を検出し、応答します。
ライフサイクル | クライアントイベント | サーバーイベント |
セッション初期化 | session.update セッション構成 | session.created セッション作成 session.updated セッション構成更新 |
ユーザー音声入力 | input_audio_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 | 成都(四川)アクセントを持つ陽気な男性ボイスです。 | 中国語 |