Skip to main content
语音转语音

音视频文件翻译-千问

千问3-LiveTranslate-Flash 是音视频翻译模型,支持 18 种语言(包括中文、英文、俄文、法文等)互译,可结合视觉上下文提升翻译准确性,并输出文本与语音。

工作方式

  1. 设置语种:参考支持的语种,在 translation_options 参数中设置源语种 (source_lang) 和目标语种 (target_lang)。
    省略 source_lang将启用自动检测,但指定语种能提升翻译准确率。
  2. 输入待翻译文件messages 数组中有且仅有一条 roleuser 的消息,content字段需传入待翻译音频/视频的 URL 或 Base64 数据。
  3. 控制输出模态:通过 modalities 参数控制输出模态:
    • ["text"]:仅输出文本;
    • ["text","audio"]:输出文本和 Base64 编码的音频。
      若输出音频,需在audio参数中设置音色(voice)。参考支持的音色
以下为使用 OpenAI Python SDK 的核心代码:
# 导入依赖与创建客户端...
completion = client.chat.completions.create(
    model="qwen3-livetranslate-flash",    # 选择模型
    # messages 仅包含一条 user 消息,content 为待翻译文件
    messages = [
    {
      "role": "user",
      "content": [
        {
          "type": "input_audio",
          "input_audio": {
            "data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
            "format": "wav"
          }
        }
      ]
    }
  ],
    # translation_options 非 OpenAI 标准参数,需通过 extra_body 传入
    extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}},
    # 示例:输出文本和音频
    modalities = ["text","audio"],
    audio={"voice": "Cherry", "format": "wav"}
)
使用限制
  • 单轮翻译:模型专为翻译任务设计,不支持多轮对话。
  • 无 System Message:不支持通过 system 角色设定全局行为。
  • 调用方式:仅支持兼容 OpenAI 协议的流式输出。
响应解析 chunk为流式响应对象:
  • 文本:读取 chunk.choices[0].delta.content
  • 音频:读取 chunk.choices[0].delta.audio["data"],模型输出音频的采样率是 24kHz。

支持的模型

模型名称版本上下文长度最大输入最大输出
(Token数)
qwen3-livetranslate-flash
当前能力等同于qwen3-livetranslate-flash-2025-12-01
稳定版53,24849,1524,096
qwen3-livetranslate-flash-2025-12-01快照版

如何使用

qwen3-livetranslate-flash 模型支持音频或视频输入,并输出文本与音频。 请确保已获取与配置 API Key配置API Key到环境变量。若通过OpenAI SDK调用,需安装SDK 以下示例使用音频输入。如需输入视频,请取消对应代码的注释。
import os
from openai import OpenAI

client = OpenAI(
    # 新加坡和北京地域的API Key不同。获取API Key:https://help.aliyun.com/zh/model-studio/get-api-key
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的URL。请将 {WorkspaceId} 替换为您的百炼业务空间ID,各地域的URL不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)

# ----------------音频输入 ----------------
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "input_audio",
                "input_audio": {
                    "data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
                    "format": "wav",
                },
            }
        ],
    }
]

# ----------------视频输入(需取消注释)----------------
# messages = [
#     {
#         "role": "user",
#         "content": [
#             {
#                 "type": "video_url",
#                 "video_url": {
#                     "url": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20241115/cqqkru/1.mp4"
#                 },
#             }
#         ],
#     },
# ]

completion = client.chat.completions.create(
    model="qwen3-livetranslate-flash",
    messages=messages,
    modalities=["text", "audio"],
    audio={"voice": "Cherry", "format": "wav"},
    stream=True,
    stream_options={"include_usage": True},
    extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}},
)

for chunk in completion:
    print(chunk)
此示例使用公网文件 URL。若使用本地文件,请参见输入 Base64 编码的本地文件中的音频与视频部分。

解析 Base64 音频数据

模型以流式 Base64 编码格式输出音频。可采用以下两种方式处理数据:
  • 拼接解码:拼接所有返回的 Base64 片段,待生成结束后统一解码,保存为音频文件。
  • 实时播放:实时解码每个 Base64 片段并直接播放。
# Installation instructions for pyaudio:
# APPLE Mac OS X
#   brew install portaudio
#   pip install pyaudio
# Debian/Ubuntu
#   sudo apt-get install python-pyaudio python3-pyaudio
#   or
#   pip install pyaudio
# CentOS
#   sudo yum install -y portaudio portaudio-devel && pip install pyaudio
# Microsoft Windows
#   python -m pip install pyaudio

import os
from openai import OpenAI
import base64
import numpy as np
import soundfile as sf

# 初始化OpenAI客户端
client = OpenAI(
    # 若没有配置环境变量,请用阿里云百炼API Key将下行替换为:api_key="sk-xxx",
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    # 以下为华北2(北京)地域的URL。请将 {WorkspaceId} 替换为您的百炼业务空间ID,各地域的URL不同。
    base_url="https://{WorkspaceId}.cn-beijing.maas.aliyuncs.com/compatible-mode/v1",
)
messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "input_audio",
                "input_audio": {
                    "data": "https://help-static-aliyun-doc.aliyuncs.com/file-manage-files/zh-CN/20250211/tixcef/cherry.wav",
                    "format": "wav",
                },
            }
        ],
    }
]
completion = client.chat.completions.create(
    model="qwen3-livetranslate-flash",
    messages=messages,
    modalities=["text", "audio"],
    audio={"voice": "Cherry", "format": "wav"},
    stream=True,
    stream_options={"include_usage": True},
    extra_body={"translation_options": {"source_lang": "zh", "target_lang": "en"}},
)

# 方式1: 待生成结束后再进行解码
audio_string = ""
for chunk in completion:
    if chunk.choices:
        if hasattr(chunk.choices[0].delta, "audio"):
            try:
                audio_string += chunk.choices[0].delta.audio["data"]
            except Exception as e:
                print(chunk.choices[0].delta.audio["transcript"])
    else:
        print(chunk.usage)

wav_bytes = base64.b64decode(audio_string)
audio_np = np.frombuffer(wav_bytes, dtype=np.int16)
sf.write("audio_assistant_py.wav", audio_np, samplerate=24000)

# 方式2: 边生成边解码(使用方式2请将方式1的代码进行注释)
# # 初始化 PyAudio
# import pyaudio
# import time
# p = pyaudio.PyAudio()
# # 创建音频流
# stream = p.open(format=pyaudio.paInt16,
#                 channels=1,
#                 rate=24000,
#                 output=True)

# for chunk in completion:
#     if chunk.choices:
#         if hasattr(chunk.choices[0].delta, "audio"):
#             try:
#                 audio_string = chunk.choices[0].delta.audio["data"]
#                 wav_bytes = base64.b64decode(audio_string)
#                 audio_np = np.frombuffer(wav_bytes, dtype=np.int16)
#                 # 直接播放音频数据
#                 stream.write(audio_np.tobytes())
#             except Exception as e:
#                 print(chunk.choices[0].delta.audio["transcript"])

# time.sleep(0.8)
# # 清理资源
# stream.stop_stream()
# stream.close()
# p.terminate()

计费说明

  • 音频
  • 视频
输入或输出每秒音频均消耗 12.5 Token。
Token 费用请参见选择模型

API 参考

qwen3-livetranslate-flash 模型的输入输出参数请参见音视频翻译-通义千问

支持的语种

下表中的语种代码可用于指定源语种与目标语种。
部分目标语种仅支持输出文本,不支持输出音频。

语种代码

语种

支持的输出模态

en

英语

音频、文本

zh

中文

音频、文本

ru

俄语

音频、文本

fr

法语

音频、文本

de

德语

音频、文本

pt

葡萄牙语

音频、文本

es

西班牙语

音频、文本

it

意大利语

音频、文本

id

印尼语

文本

ko

韩语

音频、文本

ja

日语

音频、文本

vi

越南语

文本

th

泰语

文本

ar

阿拉伯语

文本

yue

粤语

音频、文本

hi

印地语

文本

el

希腊语

文本

tr

土耳其语

文本

支持的音色

音色名voice参数音色效果描述支持的语种
芊悦Cherry阳光积极、亲切自然小姐姐。中文、英语、法语、德语、俄语、意大利语、西班牙语、葡萄牙语、日语、韩语
不吃鱼Nofish不会翘舌音的设计师。中文、英语、法语、德语、俄语、意大利语、西班牙语、葡萄牙语、日语、韩语
上海-阿珍Jada风风火火的沪上阿姐。中文
北京-晓东Dylan北京胡同里长大的少年。中文
四川-晴儿Sunny甜到你心里的川妹子。中文
天津-李彼得Peter天津相声,专业捧人。中文
粤语-阿清Kiki甜美的港妹闺蜜。粤语
四川-程川Eric一个跳脱市井的四川成都男子。中文

常见问题

Q:传入视频文件时,翻译的是什么内容?

A:翻译视频中的音频内容,视觉信息用于辅助上下文理解,以提升准确率。 示例 当音频内容为This is a mask时:
  • 若画面显示口罩,会翻译为“这是一个口罩”;
  • 若画面显示面具,会翻译为“这是一个面具”。
Token Plan
模型体验
模型调优
模型压缩目录节点
用量统计与性能监控
资产中心
服务支持