VALL-E:率先像处理文字一样处理语音的模型
GPT 模型并不是通过对连续信号做回归来理解语言——它们只是一遍又一遍地预测序列中的下一个 token,而这个简单的思路却展现出了惊人的扩展能力。微软开发的 VALL-E 提出了这样一个问题:如果文本转语音也采用同样的方法,会发生什么?先把音频转换成离散 token,再让语言模型像预测文字一样预测这些 token。正因这种重新定义,VALL-E 被称为神经编解码语言模型,而不是传统的 TTS 系统;它也成为后来一整代声音克隆模型——VALL-E 2、VALL-E X 以及更多后续模型——直接沿用的架构起点。
什么是 VALL-E?
微软在 2023 年 1 月的一篇论文中首次介绍了 VALL-E。它最具代表性的突破,是把文本转语音视为基于离散音频编码的条件语言建模任务,而不是依赖早期神经 TTS 系统所采用的连续信号回归。为实现这一点,VALL-E 使用 EnCodec——一种基于残差向量量化的神经音频编解码器——把真实语音波形转换成离散 token。这些 token 同时承载说话人身份和声学特征,之后还可以解码回高质量音频。
该模型使用约 60,000 小时的英语语音进行训练——训练数据量是当时 TTS 系统通常用量的数百倍——而这种规模带来了一项真正全新的能力:用于声音克隆的上下文学习。只要给 VALL-E 一段来自它从未听过的说话人的 3 秒声学提示,它就能用这个声音生成新的语音,就像大语言模型可以从简短提示中识别模式,而无需任何额外训练。
语音如何变成语言建模问题
VALL-E 的架构混合了自回归(AR)和非自回归(NAR)建模,并按照编解码 token 的分层结构拆分。EnCodec 为每个音频帧生成的并非只有一条 token 流——而是八层码本,每一层都会捕捉逐渐细化的声学细节。VALL-E 的 AR 组件以输入文本的音素序列为条件,按顺序预测第一层、也是最重要的一层码本;这一步最像传统语言模型逐个生成 token。随后,NAR 组件以 AR 模型已经生成的结果为条件,并行补齐其余七层。这样会牺牲 AR 模型的一部分灵活性,却能在对整体可懂度影响较小的层上显著加快生成速度。
一个值得注意的副作用:情绪与环境也会被保留
由于模型使用的是真实声学提示,而不是抽象化的说话人嵌入,研究发现 VALL-E 从 3 秒参考片段中保留的不只是声音身份——它往往还会带入说话人的情绪语气,甚至提示本身所包含的声学环境(房间混响、背景特征)。与其说这是专门设计的功能,不如说它是直接基于真实声学 token 进行条件生成,而非依赖只保留身份信息的压缩表示,由此涌现出的特性——这与上下文学习最初在文本语言模型中引人注目的涌现行为属于同一类现象。
VALL-E 的表现如何
在最初的评测中,VALL-E 与当时公开可用的最强零样本 TTS 系统 YourTTS 进行了比较。使用 LibriSpeech 和 VCTK 基准时,VALL-E 在语音自然度和说话人相似度上均取得了显著更好的结果。它还展示了通过不同的基于采样的解码过程,为同一输入生成多样化输出的能力,而不是始终收敛到一个确定的结果。
如今如何开始使用 VALL-E
有一点需要事先了解:微软从未公开发布 VALL-E 的训练代码或模型权重,理由是仅凭 3 秒音频就能实现高度逼真的声音克隆,存在被滥用的可能。公开可用的是研究论文和演示样本,而不是官方可下载的检查点。如今,实际使用主要依靠社区项目:
- 使用独立的 PyTorch 复现。 GitHub 上的
lifeiteng/vall-e等项目按照论文复现了这一架构,但通常需要你使用 LibriTTS 一类的数据集自行训练模型,而不会提供开箱即用的预训练权重。 - 如需可直接使用的权重,可考虑 VALL-E X 社区复现。 VALL-E X 是同一核心思路的跨语言扩展,最初同样是未正式公开发布的微软研究项目。它有一个热门社区复现(
Plachtaa/VALL-E-X),确实提供预训练权重。如果你想在不从头训练的情况下听到这一架构系列的实际效果,它是一个更容易立即上手的起点。 - 如果选择从头训练,请设定合理预期。 考虑到原始模型使用了 60,000 小时的训练数据,要在自己的硬件上复现可比质量,需要可观的算力和规模庞大、干净的语音数据集——这是研究级项目,并非一个周末就能完成的工作。
- 如果更重视易用性,可以关注后继模型 VALL-E 2。 微软的后续工作直接解决了 VALL-E 已知的稳健性和速度问题,也代表了同一核心方法更加成熟的版本。如果生产可用性比研究原始架构更重要,VALL-E 2 尤其值得了解。
使用 VALL-E 的建议
- 把它视为架构参考,而不是可以直接部署的模型。 由于没有正式公开发布,VALL-E 如今大部分实际价值来自理解它开创的神经编解码语言模型方法;这种方法以不同形式出现在许多更新的开源克隆模型中。
- 预期提示片段中的情绪和环境也会被带入。 如果你使用某个复现版本,发现输出意外保留了参考片段中的背景噪声或情绪语气,这是该架构系列已有记录的特性,而不是你所用实现中的 bug。
- 使用从头训练的复现时,要为真正的训练周期留足时间。 不带预训练权重的社区实现需要大量数据和算力,才能接近原始论文报告的质量。
- 检查具体复现项目的许可证和数据集来源。 由于这些是社区训练的模型,而非官方发布,不同项目的许可条款和训练数据来源各不相同——在任何商业应用之前,都要查看你所用仓库的具体信息。
VALL-E 与同期及后续模型对比
| VALL-E | YourTTS(同期基线) | 后来的流匹配模型(E2 TTS、F5-TTS) | |
|---|---|---|---|
| 核心方法 | 离散编解码 token + 语言建模 | 传统神经 TTS | 流匹配,非自回归 |
| 训练数据规模 | 约 60,000 小时 | 小得多 | 相近或更小,侧重点不同 |
| 声音克隆提示长度 | 约 3 秒 | 通常需要更长音频 | 约 5–15 秒 |
| 自然度/相似度(报告结果) | 优于 YourTTS | 对比基线 | 通常收敛更快、对齐更稳定 |
| 官方公开权重 | 无 | 有 | 有(F5-TTS);无(E2 TTS) |
| 情绪/环境保留 | 明显,为涌现特性 | 并非重点能力 | 较少强调 |
VALL-E 真正的遗产并不是一个可以下载的检查点,而是把 TTS 重新定义为 token 预测问题。如今相当一部分开源克隆模型仍以不同方式建立在这一思路之上。
常见问题
我可以从微软下载 VALL-E 官方模型权重吗?
不可以。微软发布了研究论文和演示音频样本,但从未公开训练代码或模型权重,理由是高度逼真的短音频声音克隆存在被滥用的风险。
“神经编解码语言模型”究竟是什么意思?
它意味着模型把语音生成视为预测离散音频 token(来自 EnCodec 一类的神经音频编解码器),就像语言模型预测文字 token 一样,而不是像早期 TTS 系统那样直接对连续音频信号做回归。
VALL-E 进行声音克隆需要多少参考音频?
最短只需 3 秒。它通过上下文学习用这个声音生成新语音,无需任何额外微调。
VALL-E 和 VALL-E X 有什么区别?
VALL-E X 是同一核心架构的跨语言扩展,最初同样是没有正式公开发布的微软研究项目,但它有一个热门社区复现,提供经过预训练、可以直接使用的权重。
有没有不自行训练就能真正运行 VALL-E 的方法?
Plachtaa/VALL-E-X 等社区复现为跨语言版本提供了预训练权重;而 lifeiteng/vall-e 等原始 VALL-E 的复现通常要求你自行训练模型,而不是下载已经训练完成的权重。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。