Loading...

文章背景图

F5-TTS:基于流匹配的零样本语音克隆(中英双语)部署指南

2026-10-24
0
- 字
- 分钟
|

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 仓库社交预览图:

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。

七、跳转链接

评论交流

文章目录