qwen3-livetranslate-flash-realtime 是通义千问推出的一款视觉增强型实时翻译模型。它能够同时处理流式的音频与图像输入(例如来自视频流),利用视觉上下文信息提升翻译的准确性,并实时输出高质量的翻译文本与音频。
本文档仅适用于中国大陆版(北京)。如需使用模型,需使用中国大陆版(北京)的API Key。
在线体验参见通过函数计算一键部署。
如何使用
1. 配置连接
qwen3-livetranslate-flash-realtime 模型通过 WebSocket 协议接入,连接时需要以下配置项:
配置项 | 说明 |
调用地址 | wss://dashscope.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 事件发送 Base64 编码的音频和图片数据。音频输入是必需的;图片输入是可选的。
图片可以来自本地文件,或从视频流中实时采集。
服务端自动检测音频的起始和结束,并据此触发模型响应。
4. 接收模型响应
当服务端检测到音频终止时,模型会开始回复。模型的响应格式取决于配置的输出模态。
仅输出文本
服务端通过发送response.text.done事件返回完整的翻译文本。
输出文本+音频
文本
通过response.audio_transcript.done事件返回完整的翻译文本。
音频
通过response.audio.delta事件返回 Base64 编码的增量音频数据。
支持的模型
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 pyaudio
Debian/Ubuntu
sudo apt-get install python3-pyaudio 或者 pip install pyaudio
CentOS
sudo yum install -y portaudio portaudio-devel && pip install pyaudio
Windows
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())
通过函数计算一键部署
控制台暂不支持体验。可通过以下方式一键部署:
打开我们写好的函数计算模板,填入 API Key, 单击创建并部署默认环境即可在线体验。
等待约一分钟,在 环境详情 > 环境信息 中获取访问域名,将访问域名的
http
改成https
(例如https://qwen-livetranslate-flash-realtime.fcv3.xxx.cn-hangzhou.fc.devsapp.net/),通过该链接与模型交互。重要此链接使用自签名证书,仅用于临时测试。首次访问时,浏览器会显示安全警告,这是预期行为,请勿在生产环境使用。如需继续,请按浏览器提示操作(如点击“高级” → “继续前往(不安全)”)。
如需开通访问控制权限,请跟随页面指引操作。
通过资源信息-函数资源查看项目源代码。
函数计算与阿里云百炼均为新用户提供免费额度,可以覆盖简单调试所需成本,额度耗尽后按量计费。只有在访问的情况下会产生费用。
交互流程
实时语音翻译的交互流程遵循标准的 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.delta 增量生成的转录文字 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 参考
请参见实时音视频翻译-通义千问。
计费说明
音频
每输入一秒音频消耗 25 Token,每输出一秒音频消耗 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 | 一个跳脱市井的四川成都男子。 | 中文 |