EchoraEchora
返回模型列表

F5-TTS:从文字到语音,无需复杂流程

2026年8月29日
•
阅读约 7 分钟

把文字和录音,做成能听的作品

配音、分轨、翻唱和音效,都在浏览器里完成。

  • 文字转语音,也能克隆音色
  • 分离音轨,或直接生成翻唱
  • 注册就能试听,先听再决定
免费开始创作

大多数声音克隆流程使用的组件都比实际需要的更多:用时长预测器估算输出应该有多长,用音素对齐器将文字映射到语音,还有一个与系统其他部分分开训练的专用文本编码器。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 入门

  1. 克隆代码仓库。 运行 git clone https://github.com/SWivid/F5-TTS.git,然后执行 cd F5-TTS 和 pip install -e .;只有计划使用 BigVGAN 作为声码器时,才添加可选的递归子模块步骤。
  2. 安装与 CUDA 版本匹配的 PyTorch。 项目文档为每个 CUDA 版本指定了确切的 PyTorch 和 torchaudio 版本;精确匹配这些版本可以避免大多数安装问题。
  3. 通过 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 显存。
  4. 使用 Gradio WebUI 快速测试。 f5-tts_infer-gradio(或等效的 Docker 命令)会打开浏览器界面,方便你在接入任何流程前测试克隆效果。
  5. 根据推荐配置检查显存。 F5-TTS 可以在任何配备大约 16GB 显存的 NVIDIA GPU 上运行,24GB 显存(RTX 3090/4090 级别显卡)则能提供充足余量;在规划生产部署前,请确认硬件符合要求。
  6. 面向生产规模服务,使用 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-TTSE2 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。

开始生成语音 →