qwen-mt-uni 多模态翻译实战:从接入到四类输入的完整步骤

qwen-mt-uni 是百炼 9 月上线的全模态翻译模型,支持文本、图片、文档、音频四类输入,覆盖 152 个语种。

这篇文章按实操顺序写:怎么接、四类输入怎么传、返回什么、多少钱、有哪些坑。

全部步骤都实际跑过,数据来自我自己的测试。

一、准备

需要三样东西:

  1. 百炼账号,开通模型服务
  2. 北京区的 API Key
  3. 一个能访问外网的服务(用来上传文件拿公网 URL)

bl 命令行没有翻译子命令,所以走 HTTP 直调。如果你有能执行任务的 AI 助手,可以直接把需求描述给它,让它去调,不用自己写代码。

一个完整的流程

假设你要翻一批商品手册,流程是:

  1. 把手册传到 OSS,设成公共读,拿到 URL
  2. 把 URL 和目标语言发给模型
  3. 拿到 TranslatedFileUrl,立刻下载存盘
  4. 人工检查编号和版式
  5. 归档

如果交给 Agent,只需要说一句话:把这批手册翻成英文,翻完存到 output 目录。

它会自己完成前三步。

二、接入:找到正确的端点

先说结论,可用的端点是:

复制代码
POST https://dashscope.aliyuncs.com/api/v1/services/aigc/multimodal-generation/generation

注意它不是 /translation/generation。我第一次按直觉试了翻译端点和文本端点,都返回:

复制代码
url error, please check url

翻译接口挂在多模态端点下面,这一点文档里不显眼。

三、文本翻译

请求

json 复制代码
{
  "model": "qwen-mt-uni",
  "input": {
    "source_texts": ["这份合同的有效期为三年,自双方签字之日起计算。"],
    "target_lang": "English"
  }
}

两个参数:

  • source_texts:字符串数组,可以一次传多条
  • target_lang:目标语言

source_lang 可以不传,模型会自动识别。

返回

json 复制代码
{
  "output": {
    "Code": 200,
    "Data": {
      "FileType": "strings",
      "TranslatedTexts": ["This contract is valid for a period of three years..."]
    }
  },
  "usage": {
    "input_tokens": 18,
    "output_tokens": 81,
    "input_tokens_details": {
      "character_tokens": 18,
      "document_tokens": 0,
      "image_tokens": 0,
      "audio_tokens": 0
    }
  }
}

TranslatedTexts 的顺序和 source_texts 一一对应。

一次可以传多条,返回顺序一致。批量翻短句时,比一条一条调更省事。

usage 里把四类 token 分开返回,这是算成本的关键。

参数错误对照

错误信息 原因
missing required field: input.target_lang 没传 target_lang
exactly one of input.fileUrl or input.source_texts is required 两个都没传,或者都传了

第二条的意思是:文本走 source_texts,文件走 fileUrl,只能二选一。

四、文档翻译

准备文件

先把文件传到公网可访问的地址。

用 OSS 的话,上传时加 --acl public-read,拿到形如:

复制代码
https://your-bucket.oss-cn-beijing.aliyuncs.com/path/your-file.pdf

请求

json 复制代码
{
  "model": "qwen-mt-uni",
  "input": {
    "fileUrl": "https://your-bucket.oss-cn-beijing.aliyuncs.com/path/your-file.pdf",
    "target_lang": "English"
  }
}

返回

json 复制代码
{
  "output": {
    "Code": 200,
    "Data": {
      "FileType": "document",
      "TranslatedFileUrl": "http://dashscope-a717.oss-cn-beijing.aliyuncs.com/.../xxx.pdf?Expires=..."
    }
  }
}

TranslatedFileUrl 是带签名的临时地址,会过期,拿到就要立刻下载。

实测问题:编号体例混乱

一份中文说明书,原文:

复制代码
一、安装方法
二、注意事项
三、保修条款

译文:

复制代码
1. Installation Instructions
II. Precautions
III. Warranty Terms

同一份文件三种编号体例。

处理建议:翻译前把编号抽成占位符,翻完按目标语言规则统一回填。

支持格式

官方说明支持 Txt、Excel、PDF、PPT、Word。

注意:txt 走的是字符计费(character_tokens),不是文档计费(document_tokens)。

只有 PDF/Word/PPT/Excel 才按文档通道计价。这个差别很重要,因为文档通道单价只有文本的三分之一。

五、图片翻译

请求

和文档一样,传 fileUrl,值是图片的公网地址。

返回

json 复制代码
{
  "output": {
    "Data": {
      "FileType": "image",
      "TranslatedFileUrl": "http://.../xxx.jpg?Expires=..."
    }
  }
}

实测结果

一张 1024×768 的英文海报,三行文字全部替换成功,但版式出问题:

  1. 标题和副标题合并成一行,层级消失
  2. 「无谷物」断行成「无谷」和「物」
  3. 美元符号 $50 原样保留,没有本地化
  4. 商品包装图上的小字完全不处理

建议:把图片翻译当初稿工具,出图后人工调版式。

适合什么图

实测下来,适合两类:

一类是纯文字海报,文字块清晰、背景干净。这类改一改就能用。

另一类是截图、文档拍照,文字密集但没有复杂版式。

不适合多栏排版、图文混排的海报,以及文字嵌入在商品图里的场景,模型不会帮你重绘商品图。

六、音频翻译

实测:WAV 不认

传 WAV(PCM 16bit 24kHz mono),返回:

复制代码
400 InvalidParameter: file is not a readable audio file

文件本身没问题(file 命令确认格式正确)。

转成 m4a(AAC)再传,成功:

json 复制代码
{
  "output": {
    "Data": {
      "FileType": "audio",
      "TranslatedFileUrl": "http://.../xxx.mp3?Expires=..."
    }
  }
}

输出是 mp3。

转码命令(macOS):

复制代码
afconvert -f mp4f -d aac input.wav output.m4a

服务端可以用 ffmpeg。

实测数据

7.16 秒的中文语音,翻译成英文:

  • audio_tokens 输入 90
  • audio_tokens 输出 87

七、计费

单价

通道 元/百万 token 说明
文本 65 按字符计
文档 20 仅 PDF/Word/PPT/Excel
图片 32 按图内文字量
音频 400 按音频时长折算

换算

  • 文档:8000 字手册,输入输出合计约 16000 token,约 0.32 元
  • 图片:一张约 1900 image token,约 0.06 元
  • 音频:每秒约 25 token,一分钟约 0.6 元

这次实测总成本

四类输入各一次,加 20 个热梗的三模型对照,总共不到 0.2 元。

为什么文档通道更便宜

按 token 算,文档 20、文本 65,差三倍。

原因在计费单位:文本按字符 token 算,文档按版面 token 算,一页 PDF 里的文字换算成 token 的数量比纯文本少。

实际用起来,同样一万字,做成 PDF 比贴成文本便宜三分之二。

前提是格式对。txt 不算文档,会走字符计费。

批量处理要注意的三件事

第一,文件链接有时效。 拿到 TranslatedFileUrl 立刻下载,不要攒着一起下。

第二,并发不要开太高。 文档和音频的耗时比文本长,建议控制并发数,避免触发限流。

第三,先小批量试。 拿 10 份文件试一遍,确认编号、版式、术语都能接受,再放量。

八、常见问题

Q1:术语表为什么不生效

按文档传 input.terminology:

json 复制代码
{
  "input": {
    "source_texts": ["ぴえん"],
    "target_lang": "Chinese",
    "terminology": [{"src": "ぴえん", "tgt": "呜呜"}]
  }
}

返回 200,译文还是原来的,也不报错。

换 input.translation_options.terminology 同样无效。

替代方案:术语一致性要求高的场景,用通用模型 + prompt 给对照表,实测有效。

Q2:为什么网络用语翻得一塌糊涂

20 个日韩热梗,这个模型只翻对 2 个。

不是 bug,是定位。它的设计目标是「严格对应、不增译漏译」。

同一批词给 qwen3.8-max 和 kimi-k3 都是 19/20,deepseek-v4.1-flash 18/20,glm-5.3 17/20。四家的失分全在日语,韩语 10 条全对;差距只有 2 分,不够排名次,真正稳的差距是它们和 mt-uni 的 2/20 之间。

Q3:为什么有些内容直接被拒

韩语「어쩔티비」返回:

复制代码
DataInspectionFailed: Input data may contain inappropriate content

内容审核会拦部分口语词汇。同一个词在通用模型上可以正常翻译。

Q4:文件链接过期了怎么办

TranslatedFileUrl 带签名和过期时间。拿到就下载存盘,不要只存 URL。

九、小结

这套流程跑下来,最花时间的不是接入,是调边界。接入半天,调边界两天。这句话不是抱怨,是提前提醒。

项目 结论
端点 multimodal-generation,不是 translation
文本 source_texts + target_lang
文件 fileUrl,返回带签名的下载链接
最便宜 文档通道,20 元/百万
最贵 音频通道,400 元/百万
最大优势 后三类出成品文件
最大限制 口语内容不如通用模型

接入不复杂,麻烦的是边界:编号、版式、格式、术语、审核。这五件事决定它能不能进你的生产流程。

模型在百炼上,走接口调用。控制台在这里,API Key 在这里。

相关推荐
怪力左手1 小时前
cuda-toolkit离线安装
linux·运维·人工智能
鬼手点金1 小时前
带工具调用的多轮交互:Agent 的核心循环
服务器·人工智能·windows·深度学习·microsoft·机器学习·交互
Dawson Zhu1 小时前
【CUDA编程入门②】CUDA性能优化基础:内存访问、Warp Shuffle与Occupancy调优
人工智能·语言模型·架构·aigc·agi
DFT计算杂谈1 小时前
基于大语言模型的用户画像提取与修正操作
人工智能·语言模型·自然语言处理
明志数科1 小时前
具身智能训练数据的质量口径问题:从规模扩张到评测基准
大数据·人工智能
寰宇视讯1 小时前
焙烤颜值经济持续升温,膳印科技以食品喷花打印技术树立行业标杆
大数据·人工智能·科技
Cosolar1 小时前
上下文工程的第一公里:LangChain 讲透 Agent 检索的三大坑与六套解法
人工智能·llm·agent
东宇科技1 小时前
AI短剧生成
人工智能