F5-TTS:基于流匹配的零样本语音克隆(中英双语)部署指南
F5-TTS 是上海交大 X-LANCE 实验室开源的零样本 TTS 模型,采用 Diffusion Transformer + ConvNeXt V2 + Sway Sampling,支持中英双语,仅需一段参考音频即可克隆音色生成流畅自然的语音。v1 base 模型于 2025-03-12 发布,训练与推理性能均有提升。
一、项目官方信息
| 项目 | 信息 |
|---|---|
| GitHub 仓库 | SWivid/F5-TTS |
| 在线 Demo | swivid.github.io/F5-TTS |
| 开源协议 | CC-BY-NC-4.0(非商用) |
| 主要语言 | Python(3.10) |
| Star 数 | 16k+ |
| 论文 | arXiv:2410.06885 |
| 训练集 | Emilia-ZH-EN |
二、官方图片
F5-TTS 仓库社交预览图:

三、环境要求
- Python ≥ 3.10;
- PyTorch 2.4+(支持 NVIDIA / AMD / Intel / Apple Silicon);
- FFmpeg;
- GPU 推荐(CPU 可跑但慢);
- 首次运行自动从 Hugging Face 下载权重。
四、部署步骤
1. 创建环境
conda create -n f5-tts python=3.11
conda activate f5-tts
conda install ffmpeg
2. 安装 PyTorch
# NVIDIA GPU 示例
pip install torch==2.8.0+cu128 torchaudio==2.8.0+cu128 --extra-index-url https://download.pytorch.org/whl/cu128
# AMD GPU(Linux ROCm)
pip install torch==2.9.1+rocm7.2 torchaudio==2.9.1+rocm7.2 --extra-index-url https://download.pytorch.org/whl/rocm7.2
# Apple Silicon
pip install torch torchaudio
3. 安装 F5-TTS
# 仅推理
pip install f5-tts
# 或从源码(含训练/微调)
git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
pip install -e .
4. CLI 推理
f5-tts_infer-cli --model F5TTS_v1_Base \
--ref_audio "prompt.wav" \
--ref_text "参考音频对应的文本。" \
--gen_text "要合成的目标文本。"
# 用默认 toml
f5-tts_infer-cli
# 自定义 toml
f5-tts_infer-cli -c custom.toml
# 多声音
f5-tts_infer-cli -c src/f5_tts/infer/examples/multi/story.toml
5. Gradio WebUI
f5-tts_infer-gradio
f5-tts_infer-gradio --port 7860 --host 0.0.0.0
f5-tts_infer-gradio --share
6. Docker 部署
# 构建
docker build -t f5tts:v1 .
# 从 GHCR 拉镜像
docker container run --rm -it --gpus=all \
--mount 'type=volume,source=f5-tts,target=/root/.cache/huggingface/hub/' \
-p 7860:7860 ghcr.io/swivid/f5-tts:main
# 只跑 WebUI
docker container run --rm -it --gpus=all \
--mount 'type=volume,source=f5-tts,target=/root/.cache/huggingface/hub/' \
-p 7860:7860 ghcr.io/swivid/f5-tts:main f5-tts_infer-gradio --host 0.0.0.0
7. Triton + TensorRT-LLM 生产部署
参考 src/f5_tts/runtime/triton_trtllm/README.md,单 L20 GPU、16 NFE:
| 并发 | 平均延迟 | RTF |
|---|---|---|
| 2(Client-Server) | 253 ms | 0.0394 |
| 1(TRT-LLM 离线) | - | 0.0402 |
| 1(PyTorch 离线) | - | 0.1467 |
五、使用方法
Gradio 功能
- 基础 TTS + 分块推理;
- 多风格/多说话人生成;
- 基于 Qwen2.5-3B-Instruct 的语音对话;
- 自定义推理(更多语言支持)。
核心特点
- 零样本克隆:3–10 秒参考音频即可克隆音色;
- 中英双语:基于 Emilia-ZH-EN 训练,中文/英文均支持;
- Sway Sampling:推理时流采样策略,大幅提升音质;
- E2 TTS:仓库同时附带 E2 TTS Flat-UNet Transformer 模型。
训练与微调
源码模式支持在自有数据上微调,参考 src/f5_tts/train/,使用 Hugging Face Accelerate。
六、常见问题 FAQ
Q1:F5-TTS 是什么? 基于流匹配的零样本 TTS,支持中英双语声音克隆。
Q2:怎么安装?
pip install f5-tts,需先装 PyTorch 与 FFmpeg。
Q3:支持中文吗? 支持,中文/英文是模型主要训练语言。
Q4:参考音频多长? 3–10 秒干净人声即可。
Q5:有 WebUI 吗?
有,f5-tts_infer-gradio 启动 Gradio 界面。
Q6:商用免费吗? CC-BY-NC-4.0 协议,仅限非商用;商用需联系作者或换其他模型。
Q7:生产部署怎么做? 用 Triton + TensorRT-LLM,单 L20 RTF 0.04。
七、跳转链接
- GitHub 仓库:SWivid/F5-TTS
- 在线 Demo:swivid.github.io/F5-TTS
- Hugging Face 权重:SWivid/F5-TTS
- ModelScope:SWivid/F5-TTS_Emilia-ZH-EN
- 论文:arXiv:2410.06885