NaturalSpeech 2:它能让一个从未真正唱过歌的声音开口歌唱
NaturalSpeech 2 最引人注目的细节是:给它几秒钟某人单纯说话的声音——没有歌声,没有旋律,也没有任何音乐元素——它就能让同一个声音演唱一段完全不同的作品,而且音准和节拍都准确。作为原版 NaturalSpeech 的后续版本,微软打造它是为了解决一个比前代困难得多的问题:把人类水平的质量从单个录音棚录制的声音,扩展到任意说话人、任意风格,以及后来事实证明完全不同的另一种声音表演形式。
NaturalSpeech 2 究竟要解决什么问题?
原版 NaturalSpeech 证明,在单说话人、录音棚质量的基准上可以达到人类水平。要把同样的质量扩展到庞大、多样、来自真实环境的数据集——涵盖不同的说话人身份、韵律,以及歌唱等风格——却是一个真正不同的问题。当时,大多数大规模 TTS 系统的解决办法是把语音量化为离散 token,再用自回归语言模型逐个生成——也就是 VALL-E 广为人知的大体路线。然而,这种方法容易出现韵律不稳定、漏词或重复词的问题;随着训练数据的多样性增加,声音质量也会下降。
NaturalSpeech 2 走了一条结构上完全不同的路线:它不以自回归方式预测离散 token,而是使用带残差向量量化器的神经音频编解码器生成连续潜在向量,再通过以输入文本为条件的潜在扩散模型生成这些向量——也就是把前代采用的非自回归理念应用到难度高得多、也更加多样的数据环境中。
零样本生成背后的语音提示机制
为了让零样本生成在这种规模下可靠运行,NaturalSpeech 2 引入了一套专用的语音提示机制,专门用于在潜在扩散模型以及独立的时长/音高预测器内部实现上下文学习。实际而言,这意味着一段简短的参考音频不只是为最终的音频生成步骤提供条件——它还会影响模型如何预测新内容的时序和音高轮廓。这种设计与仅在流水线某一个阶段附加说话人嵌入有着实质区别。
零样本歌声合成详解
这正是 NaturalSpeech 2 自己的副标题——“自然且零样本的语音与歌声合成器”——所指的能力。与其把它当成黑箱里的炫技,不如真正理解它的工作方式。
该模型扩展到了一个合计约 44,000 小时的语音与歌声训练集。其中的歌唱部分来自网络抓取的人声录音:通过专用的音频分离流程去除背景音乐与伴奏,再利用基于 ASR 的检查过滤掉对齐错误的样本,最终得到约 30 小时的歌声数据;这些数据经过上采样后,与更大规模的语音训练集混合使用。
为了真正生成歌唱表演,模型会借用现有歌唱参考的真实音高与时长轮廓,再应用选定的声音提示,以某位歌手的音色呈现这段旋律与时序。真正值得注意的发现是:这个声音提示根本不必来自歌唱录音——仅凭说话声音提示,NaturalSpeech 2 就足以用该说话人的音色生成全新的歌声,把零样本生成扩展到参考说话人从未被实际录制过的表演形式。
性能表现
在未见说话人的零样本评估中,NaturalSpeech 2 在韵律与音色相似度、稳健性以及整体声音质量方面,都以显著优势超越了此前的大规模 TTS 系统——在 LibriSpeech 与 VCTK 测试条件下,它与参考提示的韵律相似度尤其突出;即使提示短至 3 秒,结果仍保持在相当不错的水平。
如今如何开始使用 NaturalSpeech 2
与原版 NaturalSpeech 一样,微软没有发布 NaturalSpeech 2 的官方代码或预训练权重——公开内容只有研究论文和项目演示页面上的音频样本。社区项目填补了这项空白,不过有几项重要注意事项:
- 查看
lucidrains/naturalspeech2-pytorch复现项目。 这是一个正在积极开发的 PyTorch 实现,复现了论文描述的架构,以 EnCodec 作为神经编解码器,并在生成过程中使用去噪扩散。 - 要明白这是从零训练的框架,而不是预训练模型。 与大多数仅发布研究成果的社区复现一样,你需要准备自己的数据集并完成训练;目前没有官方或社区训练好的 checkpoint,能够开箱即用地提供论文所报告的质量。
- 在依赖它之前,先查看项目自身的开发状态。 其文档列出了仍在进行的工作——包括改进训练期间的时长/音高预测,以及进一步优化注意力机制——所以应把它视为不断演进的研究工具,而不是已经完成且稳定的版本。
- 如果你的具体目标是歌声合成,就要准备自己组建歌声数据集。 NaturalSpeech 2 的歌唱能力来自经过精心采集与过滤的网络抓取数据,并与规模大得多的语音语料混合训练;要复现这一特定结果,同样需要有计划地收集数据,而不只是用通用语音数据集训练。
理解 NaturalSpeech 2 的几个要点
- 评估时把两项核心主张分开来看。 大规模零样本声音克隆,以及仅以说话提示进行零样本歌声合成,是两项彼此独立、各自都很突出的成果——判断真正适合自己用例的能力时,不要把二者混为一谈。
- 理解它在架构上对离散 token 语言建模路线的反向押注。 NaturalSpeech 2 选择连续潜在扩散,而没有采用 VALL-E 等同期模型所用的离散编解码器加自回归语言模型路线,正是为了直接应对后一种方法可能产生的不稳定与漏词问题——如果你在更广泛地评估不同架构,这是一个很有用的比较角度。
- 研究或复现时,要认真对待提示长度。 研究专门测量了韵律相似度如何随提示长度变化(测试了 3 秒、5 秒和 10 秒的提示),而更长的提示通常能得到匹配度更高的结果——如果你要应用类似技术,这个细节值得纳入考虑。
- 把负责任 AI 的框架当作真正的约束,而不是套话。 鉴于这种方法能在完全不同的表演场景(歌唱)中如此有效地复现声音身份,微软所描述的同意与检测防护措施,与任何负责任地使用类似技术的场景都有直接关系,而不只是可以略过的法律措辞。
NaturalSpeech 2、NaturalSpeech 与 VALL-E 对比
| NaturalSpeech 2 | NaturalSpeech(原版) | VALL-E | |
|---|---|---|---|
| 核心方法 | 连续潜变量 + 潜在扩散 | 基于 VAE 的端到端方法 | 离散编解码器 token + 自回归语言模型 |
| 最适合的场景 | 多说话人、零样本、真实环境、歌唱 | 单说话人、录音棚质量 | 用简短提示进行零样本克隆 |
| 歌声合成 | 支持,零样本,甚至只需说话提示 | 非重点 | 非重点 |
| 训练规模 | 约 44,000 小时(语音 + 歌声) | 规模较小的单说话人基准 | 约 60,000 小时 |
| 已知稳健性问题 | 专为避免离散 token 的不稳定性而设计 | 非自回归,因此不适用 | 重复/不稳定问题后来在 VALL-E 2 中得到处理 |
| 官方公开发布 | 无(仅研究演示) | 无(仅有社区复现) | 无 |
NaturalSpeech 2 真正的贡献在于,它证明 VALL-E 推广的离散 token 自回归路线并不是扩展零样本 TTS 的唯一方法——连续潜在扩散方案可以在稳健性与质量上达到或超过它,同时还解锁了跨模态声音表演迁移这一真正新颖的能力。
常见问题
NaturalSpeech 2 真的能让从未唱过歌的人开口歌唱吗?
可以。根据已发表的研究,仅凭说话声音提示,就能以该说话人的音色生成全新的歌唱表演;这是论文明确强调并经过测试的能力之一。
NaturalSpeech 2 与 NaturalSpeech 有什么不同?
原版 NaturalSpeech 聚焦于单说话人、录音棚质量的合成,并据此进行评估。NaturalSpeech 2 针对的是难度高得多的任务:大规模、多说话人、零样本、真实环境合成;它使用潜在扩散方法,而不是原版基于 VAE 的设计。
为什么微软使用扩散,而不是 VALL-E 那样的自回归语言模型?
在离散语音 token 上进行自回归生成时,可能出现韵律不稳定以及漏词或重复词的问题,在大规模场景中尤其如此。NaturalSpeech 2 的连续潜在扩散方法正是为了避开这些失效模式而设计。
NaturalSpeech 2 是否会引发声音克隆的同意问题?
会,而且微软直接讨论了这一点——这项研究是在用户同意成为目标说话人的假设下开展的;论文还指出,真实部署需要具备同意协议以及合成语音检测防护措施。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。