NaturalSpeech 3:语音并非只有一个维度,为何还要把它当成一个整体来生成?
大多数 TTS 模型都把语音视为一个相互纠缠的整体信号,一次性完成生成——内容、语调、音色和质感被捆绑在一起,一遍生成完毕。NaturalSpeech 3 是微软 NaturalSpeech 研究系列的最新成果,它从另一个前提出发:先把这些线索拆开,按各自的规律分别生成,再重新组合。这是一种分而治之的语音合成方法,也是 NaturalSpeech 3 专门围绕构建的核心思路。
NaturalSpeech 3 是什么?
NaturalSpeech 3 是由 Microsoft Research Asia 和 Microsoft Azure Speech 开发的零样本文字转语音系统,合作研究者来自中国科学技术大学、香港中文大学和浙江大学。它是 NaturalSpeech 研究系列的最新成果——原版 NaturalSpeech 在单说话人基准上达到人类水平的质量,NaturalSpeech 2 则通过潜在扩散扩展到零样本、多说话人和歌声合成——而它要解决的是两代前作都没有专门针对的问题:语音质量在相似度和可控性方面仍有不足,部分原因是内容、韵律、音色和声学质感全都被建模为同一个相互纠缠的表示。
NaturalSpeech 3 的核心做法是因子化:把语音分解为代表不同属性的独立子空间,分别对每一个子空间建模,最后再将它们组合起来。这一过程依靠两个组件实现——一个专为解耦设计的神经编解码器,以及一个按顺序生成各项因子化属性的扩散模型。
FACodec:为分离而非只为压缩打造的神经编解码器
大多数神经音频编解码器的设计目标,是尽可能高效地把语音压缩成 token,并不特别关心这些 token 在语义上究竟代表什么。NaturalSpeech 3 引入的 FACodec 则围绕相反的目标设计:它使用因子化向量量化(Factorized Vector Quantization,FVQ),有意把语音波形分解为内容、韵律、音色和声学细节等不同子空间,而不是形成一条不加区分的编码流。
要真正干净地分离这些子空间——避免某个子空间泄漏本应由其他子空间负责的信息——训练时需要叠加多种特定技术:用信息瓶颈去除不属于某个子空间的属性,用专门的监督损失明确教会每个子空间对应的目标属性,再结合对抗训练和梯度反转,进一步抑制子空间之间的信息混杂。在解码端,随着最终波形被重建,音色子空间通过条件层归一化重新引入,而不是与其他所有信息直接拼接。
因子化扩散模型
在语音能够可靠地拆分为这些属性子空间后,NaturalSpeech 3 使用专为这种因子化结构构建的扩散模型来生成它们——依次生成时长、韵律、内容和声学细节;每一项都以此前已经生成的属性和音素级文本输入为条件。系统之所以把时长明确建模为一个独立步骤(而不是将它并入韵律),正是因为它采用非自回归方式,需要明确的时序信号作为生成依据。
这种设计带来的实际收益是真正独立的可控性:由于每种属性都有自己的子空间和生成步骤,你可以用不同提示来调节不同属性。一段参考音频可以提供你想要的音色,另一种信号则负责塑造韵律——这种细粒度控制是单一、纠缠的表示无法提供的,因为在不加区分的系统中调整任何一项,都可能连带改变其他所有属性。
基准测试数据
NaturalSpeech 3 创下了当时新的说话人相似度最佳结果:Sim-O 得分为 0.67,SMOS(相似度平均意见分)为 4.01;同期最强基线系统的 Sim-O 为 0.64,SMOS 为 3.69。这一显著提升被明确归因于 FACodec 更干净地将音色与其他属性解耦。更广泛地看,该系统在质量、相似度、韵律和可懂度方面超过了此前的最先进 TTS 系统,并报告称达到了与真实人类录音相当的质量。该架构还在更大规模上得到验证:当参数量扩展到约 10 亿、训练数据达到 20 万小时时,结果继续改善——相较于 NaturalSpeech 2 已经相当可观的 4.4 万小时训练集,这又是一次显著跃升。
NaturalSpeech 3 在整个系列中的位置
这一研究系列的每一代都解决了一个逐步演进、但又各不相同的问题。原版 NaturalSpeech 为人类水平质量建立了严格、可通过统计检验的定义,并在单说话人基准上达到了这一标准。NaturalSpeech 2 用连续潜在扩散取代自回归离散 token 生成,把这个目标扩展到多说话人、零样本、真实环境生成,以及尤其值得注意的零样本歌声合成。NaturalSpeech 3 解决的则是另一个完全不同的弱点:即使已经具备强大的零样本克隆能力,可控性和干净的属性分离仍然有限,而因子化编解码器与因子化扩散正是为修复这一问题而构建。
NaturalSpeech 3、NaturalSpeech 2 与 NaturalSpeech 对比
| NaturalSpeech 3 | NaturalSpeech 2 | NaturalSpeech(原版) | |
|---|---|---|---|
| 核心方法 | 因子化编解码器(FACodec)+ 因子化扩散 | 连续潜变量 + 潜在扩散 | 基于 VAE 的端到端架构 |
| 解决的问题 | 独立属性控制、相似度 | 多说话人、零样本、歌声合成 | 单说话人人类水平质量 |
| 说话人相似度(Sim-O) | 0.67(发布时新的最佳水平) | 指标无法直接比较 | 不适用(单说话人) |
| 独立属性控制 | 支持,通过独立子空间和提示实现 | 仅限整体说话人/风格提示 | 不适用 |
| 训练规模 | 10 亿参数、20 万小时 | 4.4 万小时 | 单说话人基准数据集 |
| 官方公开发布 | 否(仅研究论文) | 否(存在社区复现) | 否(存在社区复现) |
NaturalSpeech 3 的具体贡献,是证明了把语音视为可分离的属性,而不是一个不可分割的信号,可以同时提升质量与可控性;它延续了这个系列一贯的路线:先精确定义一个具体弱点,再构建专门的架构来恰好补上这处缺口。
常见问题
NaturalSpeech 3 中的“因子化”是什么意思?
它指的是把语音分解为彼此独立、相互解耦的子空间——内容、韵律、音色和声学细节——并以相对独立的方式分别建模和生成,而不是把语音当作一个相互纠缠的整体表示一次性生成。
什么是 FACodec?
FACodec 是 NaturalSpeech 3 引入的神经语音编解码器。它使用因子化向量量化,把语音波形拆分为内容、韵律、音色和声学细节等不同子空间,并通过信息瓶颈、对抗训练等技术保持这些子空间之间的干净分离。
NaturalSpeech 3 与 NaturalSpeech 2 相比有什么不同?
NaturalSpeech 2 采用连续潜在扩散,重点是把零样本克隆扩展到多说话人、真实环境数据和歌声合成。NaturalSpeech 3 建立在这一规模之上,但专门针对相似度和独立可控性,通过因子化编解码器与扩散方法取得了新的说话人相似度最佳分数。
我可以下载或运行 NaturalSpeech 3 吗?
官方不可以。微软尚未发布公开代码或预训练权重;而且与 NaturalSpeech 2 不同,截至本文撰写时,NaturalSpeech 3 的特定架构也没有广泛可用、较为成熟的社区复现。
NaturalSpeech 3 是否像原版 NaturalSpeech 一样达到人类水平的质量?
其公开结果报告称达到了与人类录音相当的质量,把该系列最初追求的人类水平质量,从原版的单说话人基准扩展到了难度高得多的零样本、多属性可控场景。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。