qwen3-livetranslate-flash-realtime 是视觉增强型实时翻译模型,支持 18 种语言(中、英、俄、法等)互译,可同时处理音频与图像输入,适用于实时视频流或本地视频文件,利用视觉上下文信息提升翻译准确性,并实时输出高质量的翻译文本与音频。
在线体验参见通过函数计算一键部署。
如何使用
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:
-
语种
-
源语种:通过
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参数配置。参见支持的音色。
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 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())
通过函数计算一键部署
控制台暂不支持体验。可通过以下方式一键部署:
-
打开我们写好的函数计算模板,填入 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.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 标准计费。
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 |
一个跳脱市井的四川成都男子。 |
中文 |