F5-TTS:从文字到语音,无需复杂流程
大多数声音克隆流程使用的组件都比实际需要的更多:用时长预测器估算输出应该有多长,用音素对齐器将文字映射到语音,还有一个与系统其他部分分开训练的专用文本编码器。F5-TTS 去掉了所有这些组件。它对输入文字进行填充,使其长度与目标语音一致,然后让 Diffusion Transformer 处理其余工作——这套流程确实更简单,而且速度也很快;研究人员自己的测试显示,其实时因子(RTF)仅为 0.15。
什么是 F5-TTS?
F5-TTS 是一个完全非自回归的文字转语音系统,基于流匹配构建,以 Diffusion Transformer(DiT)为骨干网络。它由上海交通大学、剑桥大学和吉利汽车研究院的研究人员开发,并以 SWivid/F5-TTS 的名称开源发布。自回归模型会逐个 Token 预测语音,而 F5-TTS 则把生成视为一个去噪过程——从噪声开始,使用 DiT 反复将其转换为以输入文字和参考声音为条件的梅尔频谱图。
工作原理:F5-TTS 为什么这么快
使用填充 Token,而不是时长建模。 F5-TTS 不会预测每个词应该持续多久,而只是用填充 Token 补齐文本输入,直到其长度与目标语音一致,再由流匹配过程在去噪过程中自行完成对齐。这样便省去了大多数 TTS 架构都视为必需的时长模型。
使用 ConvNeXt V2 表示文本。 这是 F5-TTS 相比其直接前身的一项关键改进。较早的流匹配方法难以稳定对齐文字与语音,导致漏词或短语重复。F5-TTS 先使用 ConvNeXt V2 处理文本,得到更易于 Diffusion Transformer 与对应音频对齐的文本表示。
Sway Sampling。 这是一种推理阶段策略,会调整生成过程中流步骤的采样方式,无需重新训练就能同时改善输出质量和推理速度。值得注意的是,这项技术并非 F5-TTS 特定架构的专有方法——它可以推广到其他条件流匹配模型,作为即插即用的推理改进。
这些选择共同造就了一条真正精简的流程:没有时长模型、没有音素对齐器、没有单独训练的文本编码器,并且报告的实时因子(RTF)为 0.15——也就是说,生成速度约为实时播放速度的 6–7 倍,足以与经过高度优化的生产级 TTS 系统竞争。
与 E2 TTS 的联系
F5-TTS 并不是从零发明“填充文本,然后去噪”的方法——它直接建立在更早的 E2 TTS 之上,后者率先证明了这种不使用对齐器的极简策略确实可行。E2 TTS 证明了这一概念的可行性,但训练收敛速度慢,并且存在对齐鲁棒性问题,因此难以可靠部署。F5-TTS 正是为了解决这些问题而构建的,它使用 ConvNeXt V2 和 Sway Sampling,专门解决 E2 TTS 暴露出的具体问题。F5-TTS 官方仓库还与 F5 模型一同提供了 E2TTS_Base 检查点,让研究人员可以直接复现并比较两种架构,而不必只依赖原始论文报告的数据。
零样本和跨语言声音克隆
F5-TTS 只需一段短参考音频即可进行声音克隆——通常建议使用 5 到 15 秒的音频,某些配置使用短至 6 秒的音频也能工作——而且无需微调即可获得可用结果。它还支持跨语言克隆:提供一段英语参考音频,再以同一克隆音色生成西班牙语(或另一种受支持语言)的语音;官方文档特别强调了这项能力。
如果团队需要比零样本结果更高的一致性,F5-TTS 同样支持微调,而且它的训练流程相对简单——不需要编解码器预处理,也不需要管理多阶段流程,只需准备好的音频和对齐的转录文本。这也是团队常将它作为自定义声音训练起点的原因之一:只需一块消费级 GPU 即可开始实验,而无需完整的训练集群。
F5-TTS 入门
- 克隆代码仓库。 运行
git clone https://github.com/SWivid/F5-TTS.git,然后执行cd F5-TTS和pip install -e .;只有计划使用 BigVGAN 作为声码器时,才添加可选的递归子模块步骤。 - 安装与 CUDA 版本匹配的 PyTorch。 项目文档为每个 CUDA 版本指定了确切的 PyTorch 和 torchaudio 版本;精确匹配这些版本可以避免大多数安装问题。
- 通过 CLI 运行推理。
f5-tts_infer-cli --model F5TTS_v1_Base --ref_audio "your_clip.wav" --ref_text "transcript of the clip" --gen_text "the text you want spoken"可以直接生成音频;将--ref_text留空,则可让 ASR 模型自动转录参考音频,但会占用更多 GPU 显存。 - 使用 Gradio WebUI 快速测试。
f5-tts_infer-gradio(或等效的 Docker 命令)会打开浏览器界面,方便你在接入任何流程前测试克隆效果。 - 根据推荐配置检查显存。 F5-TTS 可以在任何配备大约 16GB 显存的 NVIDIA GPU 上运行,24GB 显存(RTX 3090/4090 级别显卡)则能提供充足余量;在规划生产部署前,请确认硬件符合要求。
- 面向生产规模服务,使用 TensorRT-LLM/Triton 部署路径。 项目记录了一条使用 Triton 和 TensorRT-LLM 的部署路径;在服务大量请求时,它能实现明显更快的解码速度,而不是直接扩展基础 Python 推理脚本来承载大规模服务。
获得更好结果的技巧
- 保持参考音频干净,并处于推荐长度范围。 与纯声学 Token 模型相比,背景噪声以及明显偏离 5–15 秒建议范围的音频,往往会对克隆质量造成更严重的影响。
- 尽可能提供准确的参考转录文本。 让内置 ASR 模型自动转录确实方便,但经过人工核对的转录文本可以避免把 ASR 错误叠加到声音克隆流程本身。
- 正式采用前,先针对实际语言对测试跨语言克隆。 官方文档明确记录了这项能力,但具体质量仍取决于源语言与目标语言的组合,因此应验证项目实际需要的语言对。
- 手动调整之前,先使用 Sway Sampling 的默认设置。 它的设计目标就是无需重新训练也能直接改善结果——应该把手动调整流步骤作为后续优化,而不是起步要求。
- 用于任何商业场景前,请先阅读许可证条款。 F5-TTS 的预训练权重采用 CC-BY-NC 许可证发布,这是使用 Emilia 野外采集数据集训练的直接结果——该许可证允许研究和非商业用途,但商业部署需要另行获得许可。
F5-TTS、E2 TTS 与其他克隆模型对比
| F5-TTS | E2 TTS(前代模型) | CosyVoice3 | |
|---|---|---|---|
| 架构 | Diffusion Transformer + 流匹配 | 扁平 U-Net Transformer | 监督式语义 Token + 流匹配 |
| 是否需要时长模型/对齐器 | 否 | 否(但鲁棒性较弱) | 否 |
| 训练收敛 | 更快、更稳健 | 缓慢,存在对齐问题 | N/A(不同架构家族) |
| 参考音频长度 | 约 5–15 秒 | 相近 | 约 3–10 秒 |
| 跨语言克隆 | 支持 | 有限 | 支持 |
| 推理速度(RTF) | 约 0.15 | 更慢 | 相近,托管版本延迟约 150ms |
| 许可证 | CC-BY-NC(非商业) | 研究用途 | 开放,提供托管 API |
F5-TTS 对这一模型家族的独特贡献,是证明 E2 TTS 开创的极简无对齐器方法确实可以变得快速而可靠——它的架构比大多数同类声音克隆模型更简单,而基准测试中的速度直接反映了这种简洁性,并非来自额外叠加的优化。
常见问题
从实际使用来看,F5-TTS 的“非自回归”是什么意思?
这意味着模型不会按顺序逐个 Token 生成语音。相反,它从噪声开始,通过 Diffusion Transformer 对整个输出进行去噪,这也是其推理速度可以快于逐 Token 自回归生成的部分原因。
F5-TTS 和 E2 TTS 是什么关系?
E2 TTS 是较早的模型,它率先证明无需时长模型和对齐器的 TTS 方法可以工作,但存在训练收敛缓慢和对齐鲁棒性问题。F5-TTS 专为解决这些问题而构建,采用 ConvNeXt V2 文本表示和 Sway Sampling;官方仓库同时包含 F5-TTS 和 E2TTS_Base 检查点,可供直接比较。
F5-TTS 进行声音克隆需要多少参考音频?
通常建议使用 5 到 15 秒,不过有些配置报告称,只需 6 秒的干净参考音频也能得到可用结果。
F5-TTS 可以免费商用吗?
需要另行获得许可,不能直接商用。由于 Emilia 训练数据集的许可条款,预训练模型权重采用 CC-BY-NC 许可证发布——它涵盖研究和非商业用途,但商业部署前需要直接查阅最新条款。
运行 F5-TTS 需要什么硬件?
任何配备大约 16GB 显存的 NVIDIA GPU 都可以运行,建议使用 24GB 显存(RTX 3090 或 4090 级别显卡)以获得充足余量,尤其是计划进行微调时。
在浏览器中把文字转换为语音
如果你希望完成相近的“文字 → 单人语音”流程,可以使用 Echora 的文字转语音。输入最多 5,000 个字符,选择内置音色或已保存的自定义音色,按需添加支持的表达标签并调整语音稳定度,然后试听结果并下载生成的 MP3。