qwen3-livetranslate-flash-realtime 是視覺增強型即時翻譯模型,支援 18 種語言(中、英、俄、法等)互譯,可同時處理音頻與映像輸入,適用於即時視頻流或本地視頻檔案,利用視覺上下文資訊提升翻譯準確性,並即時輸出高品質的翻譯文本與音頻。
線上體驗參見通過Function Compute一鍵部署。
如何使用
1. 配置串連
qwen3-livetranslate-flash-realtime 模型通過 WebSocket 通訊協定接入,串連時需要以下配置項:
配置項 | 說明 |
調用地址 | 中國大陸版:wss://dashscope.aliyuncs.com/api-ws/v1/realtime 國際版:wss://dashscope-intl.aliyuncs.com/api-ws/v1/realtime |
查詢參數 | 查詢參數為model,需指定為訪問的模型名。樣本: |
訊息頭 | 使用 Bearer Token 鑒權:Authorization: Bearer DASHSCOPE_API_KEY DASHSCOPE_API_KEY 是您在百鍊上申請的API-KEY。 |
可通過以下 Python 範例程式碼建立串連。
2. 配置語種、輸出模態與音色
發送用戶端事件session.update:
3. 輸入音頻與圖片
用戶端通過 input_audio_buffer.append 和 input_image_buffer.append 事件發送 Base 64 編碼的音頻和圖片資料。音頻輸入是必需的;圖片輸入是可選的。
圖片可以來自本地檔案,或從視頻流中即時採集。
服務端自動檢測音訊起始和結束,並據此觸發模型響應。
4. 接收模型響應
當服務端檢測到音頻終止時,模型會開始回複。模型的響應格式取決於配置的輸出模態。
僅輸出文本
服務端通過發送response.text.done事件返回完整的翻譯文本。
輸出文本+音頻
文本
通過response.audio_transcript.done事件返回完整的翻譯文本。
音頻
通過response.audio.delta事件返回 Base 64 編碼的增量音頻資料。
支援的模型
qwen3-livetranslate-flash-realtime 是一款多語言音視頻即時翻譯模型,可識別 18 種語言,並即時翻譯為 10 種語言的音頻。
核心特性:
多語言支援:支援 18 種語言和 6 種漢語方言,包括中文、英語、法語、德語、俄語、日語、韓語,以及普通話、粵語、四川話等。
視覺增強:利用視覺內容提升翻譯準確性。模型通過分析畫面中的口型、動作和文字,改善在嘈雜環境下或一詞多義情境中的翻譯效果。
3秒延遲:實現低至 3 秒的同傳延遲。
無損同傳:通過語義單元預測技術,解決跨語言語序問題。即時翻譯品質接近離線翻譯結果。
音色自然:產生音色自然的擬人語音。模型能根據源語音內容,自適應調節語氣和情感。
模型名稱 | 版本 | 上下文長度 | 最大輸入 | 最大輸出 |
(Token數) | ||||
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 或者 pip install pyaudioCentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudioWindows
pip install pyaudio安裝完成後,通過 pip 安裝 websocket 相關的依賴:
pip install websocket-client==1.8.0 websockets建立用戶端
在本地建立一個 Python 檔案,命名為
livetranslate_client.py,並將以下代碼複製進檔案中:與模型互動
在
livetranslate_client.py的同級目錄下建立另一個 Python 檔案,命名為main.py,並將以下代碼複製進檔案中:運行
main.py,通過麥克風說出要翻譯的句子,模型會即時返回翻譯完成的音頻與文本。系統會檢測您的音頻起始位置並自動發送到服務端,無需手動發送。
利用映像提升翻譯準確率
qwen3-livetranslate-flash-realtime 模型可以接收映像輸入,輔助音頻翻譯,適用於同音異義、低頻專有名詞識別情境。建議每秒發送不超過2張圖片。
將以下代碼下載到livetranslate_client.py同級目錄並運行,向麥克風說"What is mask?",在輸入口罩圖片時,模型會翻譯為“什麼是口罩?”;輸入面具圖片時,模型會翻譯為“什麼是面具?”
import os
import time
import json
import asyncio
import contextlib
import functools
from livetranslate_client import LiveTranslateClient
IMAGE_PATH = "口罩.png"
# IMAGE_PATH = "面具.png"
def print_banner():
print("=" * 60)
print(" 基於通義千問 qwen3-livetranslate-flash-realtime —— 單輪互動樣本 (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] 開始錄音,請講話……")
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] 請先在環境變數 DASHSCOPE_API_KEY 中配置 API KEY")
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 Key, 單擊建立並部署預設環境即可線上體驗。
等待約一分鐘,在 環境詳情 > 環境資訊 中擷取訪問網域名稱,將訪問網域名稱的
http改成https(例如https://qwen-livetranslate-flash-realtime-intl.fcv3.xxx.ap-southeast-1.fc.devsapp.net/),通過該連結與模型互動。重要此連結使用自我簽署憑證,僅用於臨時測試。首次訪問時,瀏覽器會顯示安全警告,這是預期行為,請勿在生產環境使用。如需繼續,請按瀏覽器提示操作(如點擊“進階” → “繼續前往(不安全)”)。
如需開通存取控制許可權,請跟隨頁面指引操作。
通過資源資訊-函數資源查看專案原始碼。
Function Compute與阿里雲百鍊均為新使用者提供免費額度,可以覆蓋簡單調試所需成本,額度耗盡後隨用隨付。只有在訪問的情況下會產生費用。
互動流程
即時語音翻譯的互動流程遵循標準的 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 新的輸出內容添加到assistant message response.audio_transcript.text 增量產生的轉錄文字 response.audio.delta 模型增量產生的音頻 response.audio_transcript.done 文本轉錄完成 response.audio.done 音頻產生完成 response.content_part.done Assistant message 的文本或音頻內容流式輸出完成 response.output_item.done Assistant message 的整個輸出項串流完成 response.done 響應完成 |
API 參考
計費說明
音頻:輸入或輸出每秒音頻均消耗 12.5 Token。
圖片:每輸入 28*28 像素消耗 0.5 Token。
Token 費用請參見模型列表。
支援的語種
下表中的語種代碼可用於指定源語種與目標語種。
部分目標語種僅支援輸出文本,不支援輸出音頻。
語種代碼 | 語種 | 支援的輸出模態 |
en | 英語 | 音頻+文本 |
zh | 中文 | 音頻+文本 |
ru | 俄語 | 音頻+文本 |
fr | 法語 | 音頻+文本 |
de | 德語 | 音頻+文本 |
pt | 葡萄牙語 | 音頻+文本 |
es | 西班牙語 | 音頻+文本 |
it | 意大利語 | 音頻+文本 |
id | 印尼語 | 文本 |
ko | 韓語 | 音頻+文本 |
ja | 日語 | 音頻+文本 |
vi | 越南語 | 文本 |
th | 泰語 | 文本 |
ar | 阿拉伯語 | 文本 |
yue | 粵語 | 音頻+文本 |
hi | 印地語 | 文本 |
el | 希臘語 | 文本 |
tr | 土耳其語 | 文本 |
支援的音色
音色名 |
| 音色效果 | 描述 | 支援的語種 |
芊悅 | Cherry | 陽光積極、親切自然小姐姐。 | 中文、英語、法語、德語、俄語、意大利語、西班牙語、葡萄牙語、日語、韓語 | |
不吃魚 | Nofish | 不會翹舌音的設計師。 | 中文、英語、法語、德語、俄語、意大利語、西班牙語、葡萄牙語、日語、韓語 | |
上海-阿珍 | Jada | 風風火火的滬上阿姐。 | 中文 | |
北京-曉東 | Dylan | 北京胡同裡長大的少年。 | 中文 | |
四川-晴兒 | Sunny | 甜到你心裡的川妹子。 | 中文 | |
天津-李彼得 | Peter | 天津相聲,專業捧人。 | 中文 | |
粵語-阿清 | Kiki | 甜美的港妹閨蜜。 | 粵語 | |
四川-程川 | Eric | 一個跳脫市井的四川成都男子。 | 中文 |