SeamlessM4T:尝试用单一模型实现的“巴别鱼”
当你对着大多数翻译管线说话时,你的声音实际上要经过三个独立的系统:语音识别器先将语音转录成文字,文本翻译器再翻译转录内容,最后由 TTS 模型把结果读出来——三次交接,也就有三次丢失细微语义的可能。Meta 的 Seamless Communication 团队专门构建了 SeamlessM4T 来压缩这条链路,并以道格拉斯·亚当斯笔下的“巴别鱼”命名其更宏大的研究愿景:用一个模型完成倾听、理解、翻译和语音回应,而无需拼接多个独立系统。
什么是 SeamlessM4T?
SeamlessM4T 是 Meta AI 于 2023 年 8 月发布的开源基础模型。它被构建为一个基于 Transformer 的单一系统,支持五项不同任务:语音到语音翻译、语音到文本翻译、文本到语音翻译、文本到文本翻译以及自动语音识别,覆盖多达 100 种语言。该模型先使用 100 万小时的开放语音音频,通过 w2v-BERT 2.0 进行自监督语音表征学习,随后又在一个 40.6 万小时的多模态语料库上进行微调。这个语料库将自动对齐的语音翻译数据(名为 SeamlessAlign 的数据集)与人工标注及伪标注数据结合在一起。
SeamlessM4T 的功能优势
- 五项任务,一个统一模型,无需使用把独立语音识别、翻译和合成系统串接起来的级联管线。
- 广泛的语言覆盖范围,支持 101 种语言的语音输入和 96 种语言的文本,语音输出也覆盖其中相当一部分语言。
- 翻译质量大幅提升,据报告,在 Fleurs 基准测试的直接语音到文本翻译任务中,BLEU 相比此前最先进水平提高了 20%。
- 可量化的鲁棒性提升,在语音到文本任务中,与此前最先进的系统相比,面对背景噪声时平均提升 38%,面对说话人差异时平均提升 49%。
- 完全开源,并在 Hugging Face Transformers 中获得原生支持,无需自定义推理栈即可直接加载并运行。
UnitY 架构究竟如何工作
SeamlessM4T 基于 Meta 的 UnitY 架构,这是一种先生成文本、再生成语音的两阶段设计,而不是从输入直接跳到语音输出。语音输入先经过梅尔滤波器组特征提取,再进入以 w2v-BERT 2.0 表征学习模型初始化的 Conformer 语音编码器,之后通过长度适配器按固定倍数对语音信号进行下采样。文本输入和输出则经由使用 SeamlessM4T-NLLB 初始化的编码器与解码器处理。SeamlessM4T-NLLB 是 Meta 自有的 200 语言文本到文本翻译模型——这意味着 SeamlessM4T 无需从头重新学习文本翻译,而是直接继承这项能力。对于语音输出,模型会专门生成离散声学单元,再由多语言 HiFi-GAN 声码器将其转换为实际波形。
较新的 SeamlessM4T v2 版本将其改进为 UnitY2,加入分层的字符到单元上采样,并改用非自回归的文本到单元解码。与最初的 v1 架构相比,这些变化尤其提升了管线中语音生成部分的输出质量与推理速度。
它首先是翻译模型,其次才是 TTS 模型
这里值得直说:如果你的目标只是根据任意文本生成富有表现力、自然的单一语言语音,那么专门为这项工作打造的 TTS 模型很可能比 SeamlessM4T 更适合你。SeamlessM4T 真正体现价值的是跨语言场景——实际任务是将一种语言的语音或文本转换为另一种语言的语音输出,并且你希望整条管线由一个连贯的系统完成,而不是交给三个分别调优、从未一起训练过的组件。它的语音合成确实出色,但这是服务于翻译的合成,而不是单纯为了声音表现力或声音克隆而优化的合成。
SeamlessM4T 入门
- 最简单的方式是使用 Hugging Face Transformers 集成。 SeamlessM4T v2 通过
SeamlessM4Tv2Model类获得原生支持——执行from transformers import SeamlessM4Tv2Model,然后加载facebook/seamless-m4t-v2-large,只需几行代码就能得到可用的模型。 - 如需完整研究工具包,请克隆原始仓库。 GitHub 上的
facebookresearch/seamless_communication除了兼容 Transformers 的检查点,还包含更广泛的 Seamless Communication 代码库。 - 调用模型时明确指定任务。 一个模型要处理五项不同任务(S2ST、S2TT、T2ST、T2TT 和 ASR),因此推理调用需要说明你实际请求的转换类型,并提供源语言和目标语言代码。
- 除非有特殊理由,否则默认选择 v2 而不是 v1。 UnitY2 架构的改进专门作用于语音生成的质量和速度,因此对几乎所有新项目而言,v2 都是更实用的选择。
- 不要因为模型整体覆盖面广就想当然,应先查看文档中的具体翻译方向语言列表。 语音输出支持的语言少于语音输入——围绕它构建项目前,请确认目标语言在具体任务中受到支持,而不只是出现在模型整体支持范围内。
获得更好结果的技巧
- 让任务匹配实际需求,不要默认使用完整管线翻译。 如果你只需要转录文本,直接使用 ASR 任务,而不要先翻译再转回;使用能够解决问题的最精简任务,可以避免不必要的计算和潜在的质量损失。
- 测试你的具体语言对,不要假设所有 100 种语言的质量都一样。 翻译质量,尤其是语音输出质量,会因语言及语言对而异——请验证项目实际需要的确切组合。
- 如果任务实际上不涉及翻译,请考虑专用 TTS 模型。 SeamlessM4T 的设计重心是翻译,因此在声音特征、情绪和克隆方面,专门打造的 TTS 模型通常会比 SeamlessM4T 自身的合成组件提供更好的控制力。
- 面向公众部署时,充分利用内置的毒性内容过滤。 这是一项有文档记录、经过评估的安全功能,而不是事后补上的措施;值得了解它如何作用于你的具体用例,而不是直接假定需要另行构建内容过滤系统。
SeamlessM4T 与其他跨语言语音模型对比
| SeamlessM4T | VALL-E X | F5-TTS | |
|---|---|---|---|
| 核心任务 | 统一翻译(5 项任务:ASR、S2ST、S2TT、T2ST、T2TT) | 跨语言声音克隆 | 单语言声音克隆 |
| 语言 | 多达 100 种(语音输入)、96 种(文本) | 主要为英语和中文(研究),社区复现覆盖更广 | 主要面向英语 |
| 跨语言保留源说话人的声音 | 不是主要设计目标 | 是,核心设计目标 | 不适用 |
| 是否对翻译质量做过基准测试 | 是,测试广泛(BLEU、鲁棒性) | 不是重点 | 不适用 |
| 内置安全评估 | 有(毒性、偏见、Blaser 2.0) | 未记录 | 未记录 |
| 最适合 | 跨语言交流、转录、翻译 | 跨语言保留某个特定声音 | 富有表现力的单语言旁白或克隆 |
SeamlessM4T 的独特定位,在于它是一个真正的翻译系统,只是碰巧还能用语音回答,而不是声音克隆或富有表现力的旁白工具——如果你的实际目标是“跨语言理解并传达含义”,它正是为此而生;如果你想要某个特定、富有表现力或可克隆的声音,它就不是合适的工具。
常见问题
SeamlessM4T 实际支持哪些任务?
五项:语音到语音翻译、语音到文本翻译、文本到语音翻译、文本到文本翻译以及自动语音识别——全部通过一个统一模型完成,而不是为每项任务使用独立系统。
SeamlessM4T 支持多少种语言?
语音输入支持多达 101 种语言,文本支持 96 种;语音输出覆盖范围较窄,但仍然相当可观——请查看文档列表,确认你的具体目标语言和任务。
生成语音时,SeamlessM4T 比专用 TTS 模型更好吗?
对于纯文本到语音用例而言并非如此。SeamlessM4T 的语音生成服务于翻译,因此在富有表现力的旁白或声音克隆这类更具体的任务上,专门设计的模型通常能提供更多控制和更好的结果。
SeamlessM4T v1 和 v2 有什么区别?
v2 引入了 UnitY2 架构,增加分层的字符到单元上采样和非自回归文本到单元解码,与最初的 v1 版本相比,语音生成质量和推理速度都有所提升。
SeamlessM4T 可以免费使用吗?
可以。Meta 已将其开源,代码可在 GitHub 获取,模型托管在 Hugging Face 上,并获得 Transformers 库的原生支持。
使用 AI 配音翻译现有音频或视频
如果你希望在浏览器中完成目标相近的语音到语音翻译流程,可以使用 Echora 的 AI 配音。上传现有音频或视频,选择目标语言,即可生成翻译后的音频或视频结果。