E2 TTS:把“简单”本身写进标题的模型
大多数 TTS 研究论文会用一个基准测试数字开场。微软的 E2 TTS 则先对自己的架构作出一个评价:“简单到令人尴尬(embarrassingly easy)”。这不是营销式的谦虚——它正是模型名称的由来,其核心观点是:即使把文字转语音流程精简到几乎不能再少,依然可以达到最先进的结果。E2 TTS 也是 F5-TTS 的直接研究前身;了解它做了什么,以及它在哪些地方存在不足,便能解释 F5-TTS 最初为何会出现。
什么是 E2 TTS?
E2 TTS(Embarrassingly Easy TTS 的缩写)是由微软研究院开发的完全非自回归零样本文字转语音系统,在 2024 年的一篇论文中首次提出。论文共有十三位作者,其中包括主要研究者 Sefik Emre Eskimez。它的核心主张由论文自身的基准测试支撑:一个真正极简、只有两个组件的架构,在自然度、说话人相似度和可懂度方面,可以达到或超过复杂得多的 TTS 系统。
这两个组件分别是基于流匹配的梅尔频谱图生成器和声码器。这就是整条流程。没有用于预测每个词应持续多久的时长模型,没有把文本转换为音素单元的字素到音素转换器,也没有用于对齐文本与音频的单调对齐搜索或专用交叉注意力机制。文本只会被转换成字符序列,再用填充 Token 补齐到与目标音频相同的长度;其余一切——时序、发音、对齐——都由模型在音频填空任务的训练过程中自行学习。
“简单到令人尴尬”的流程究竟如何工作
这里的优雅确实体现在结构本身,而不只是对底层复杂系统的简化说明。E2 TTS 使用带有 U-Net 式跳跃连接的普通 Transformer,并以条件流匹配进行训练——这与后来多个接近扩散模型的 TTS 所采用的技术属于同一技术谱系。推理时,模型通过从训练中学到的分布进行采样来生成梅尔滤波器组序列。由于文本只是被填充到指定长度,而不是经过明确的时间对齐,输出的目标时长可以任意设置,不受单独预测器的限制。
论文还提出了两个面向实际可用性而非纯粹基准性能的实用变体:
- E2 TTS X1 不再要求对参考音频提示进行转录;当你手头没有转录文本时,它可以简化克隆流程。
- E2 TTS X2 为特定词语加入明确的发音指导,让你能够纠正或控制某个特定术语的读法。它针对的是一个实际问题;后来一些模型甚至围绕同类问题构建了完整的纠错系统。
基准测试结果
在 LibriSpeech-PC 测试集上,E2 TTS 报告的词错误率为 1.9%;在论文的对比评估中,它超过了 VALL-E、NaturalSpeech 3 和 Voicebox 等成熟基线。其说话人相似度和可懂度得分被报告为达到最先进水平,或与此前最强的零样本系统相当——考虑到那些竞品系统包含大量 E2 TTS 完全没有采用的组件,这确实是一项值得注意的结果。
E2 TTS 的不足,以及 F5-TTS 如何解决这些问题
这种架构极简主义的代价没有出现在基准测试表格中,而是显现在训练与部署阶段。E2 TTS 简单的填充 Token 方法导致训练收敛缓慢,而且模型对文本和生成音频的对齐并不总是可靠——偶尔漏词或重复短语是已知的故障模式。即便一个模型在最佳情况下的基准数字很亮眼,这类问题也会让团队难以放心地将其部署到生产环境。
F5-TTS 正是为直接解决这些问题而构建的。它保留了 E2 TTS 的核心洞见——无需时长模型、无需音素对齐器、使用填充 Token——但加入 ConvNeXt V2 文本表示步骤,使对齐明显更加可靠;同时增加了推理阶段的 Sway Sampling 策略,无需重新训练即可同时改善速度和鲁棒性。两个模型的关系十分紧密,F5-TTS 自己的官方仓库会在其模型旁提供忠实复现的 E2TTS_Base 检查点,专门让研究人员能够在同一套代码中直接比较两种架构,而不必依赖跨论文的基准测试对比。
E2 TTS 入门
微软最初的 E2 TTS 论文是一项研究成果,而不是正式公开的模型版本,因此没有可供下载的微软官方检查点——目前主要有以下几种使用方式:
- 使用 F5-TTS 仓库中的复现版本。 运行
git clone https://github.com/SWivid/F5-TTS.git,然后在推理时指定--model E2TTS_Base,而不是使用 F5 检查点——这是无需自行训练,即可试听这一架构忠实复现模型的最直接方式。 - 使用独立的 PyTorch 实现。
pip install e2-tts-pytorch会安装一个由社区从零构建的实现。如果你希望直接研究或修改架构,而不是只在预训练检查点上运行推理,这种方式会很有用。 - 使用独立实现时,应准备自行训练权重。 F5-TTS 仓库提供可直接使用的
E2TTS_Base检查点,而独立 PyTorch 软件包主要是一个训练框架——社区成员报告过成功的多语言(英语 + 中文)训练,但你需要自己的数据集和计算资源,不能直接下载训练完成的权重。 - 在相同硬件上与 F5-TTS 直接比较。 由于两个模型位于同一仓库并共享推理流程,在同一个参考音频上连续运行 E2TTS_Base 和 F5 检查点,是亲耳比较 F5-TTS 实际带来的对齐与鲁棒性改进的最快方式。
使用 E2 TTS 的技巧
- 把它视为研究和比较基线,不要当成生产环境的首选。 鉴于已知的训练收敛和对齐鲁棒性问题,如今大多数团队会使用 E2 TTS 来理解这一架构谱系,或以它作为基准进行比较;实际部署时,F5-TTS 才是更适合生产的后续模型。
- 如果没有参考音频的转录文本,请采用 X1 变体的免转录方式。 这项能力是专门为提升易用性而构建的,因此应确认所用实现是否支持,而不是假定参考音频始终必须附带转录文本。
- 留意已知的故障模式。 偶尔漏词或重复词语是这一架构已有记录的特征;如果遇到这种问题,它属于已知限制,而不是你的配置有误。
- 阅读你实际使用的检查点许可证。 F5-TTS 仓库内的
E2TTS_Base复现版本与 F5-TTS 本身使用相同的 Emilia 数据集训练,因此也继承了相同的 CC-BY-NC 非商业许可证。
E2 TTS 与 F5-TTS 对比
| E2 TTS | F5-TTS | |
|---|---|---|
| 架构 | 扁平 U-Net Transformer + 流匹配 | Diffusion Transformer(DiT)+ ConvNeXt V2 + 流匹配 |
| 时长模型/对齐器 | 无 | 无 |
| 训练收敛 | 缓慢 | 更快、更稳定 |
| 对齐鲁棒性 | 存在已知的漏词/重复词问题 | 明显改善 |
| 推理优化 | 标准方式 | Sway Sampling(速度 + 鲁棒性) |
| 官方公开检查点 | 无(仅有研究论文) | 有,发布在 GitHub 和 Hugging Face |
| 词错误率(LibriSpeech-PC) | 1.9% | 根据已发表的对比结果,更低 |
E2 TTS 真正的贡献是证明了这一概念:一套真正极简、无需对齐器的流程,可以达到最先进的零样本质量。F5-TTS 则把这个概念验证成果变成了真正适合在生产环境中运行的模型。
常见问题
E2 TTS 中的“E2”代表什么?
它代表“Embarrassingly Easy(简单到令人尴尬)”——指的是模型架构相对于其结果有多么精简,并不是某个更长技术术语的缩写。
谁开发了 E2 TTS?
E2 TTS 由微软的研究人员开发,于 2024 年的一篇论文中提出;论文由 Sefik Emre Eskimez 领衔,另有十二位共同作者。
可以从微软下载 E2 TTS 官方模型权重吗?
不可以。微软最初发布的是包含音频样本的研究论文,而不是公开检查点。如今实际使用它的方式,是通过 F5-TTS GitHub 仓库中忠实复现的 E2TTS_Base 检查点,或自行训练独立的 e2-tts-pytorch 实现。
E2 TTS 与 F5-TTS 有什么关系?
F5-TTS 直接建立在 E2 TTS 的核心方法之上——无需时长模型、无需音素对齐器、使用填充 Token——并专门通过 Diffusion Transformer 骨干网络、ConvNeXt V2 文本表示和 Sway Sampling,解决 E2 TTS 训练收敛缓慢及对齐鲁棒性不足的问题。
E2 TTS 支持声音克隆吗?
支持。它在设计上就是一个零样本 TTS 系统,可以根据参考音频生成任意说话人的声音;其中 X1 变体还专门取消了对参考音频进行转录的要求。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。