F5-TTS 快速语音克隆教程:一段参考音频,3 分钟做出你的 AI 配音
【免费下载链接】F5-TTSOfficial code for "F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching"项目地址: https://gitcode.com/gh_mirrors/f5/F5-TTS
F5-TTS 是一个开源的零样本语音克隆项目:提供一段参考音频,它就能用相近的音色完成语音合成,输出可直接使用的 AI 配音。本文按“先做什么、后做什么”的顺序,带你走完环境安装、第一次合成与 TTS 配置,并整理常见问题的处理办法。
F5-TTS 能干什么:四个内容生产场景
本节列出 F5-TTS 覆盖的四个内容生产场景,先判断它是否匹配你的工作流。
- 视频旁白:整段文案交给
gen_text或gen_file,CLI 与 Web 端会自动分块合成(单块上限约 30 秒),输出 24kHz 的 WAV,可直接进剪辑时间线。 - 播客与有声书:同一段文本可切换多个角色声音,官方示例用三个声音讲了一则寓言。
- 音色复刻:3~10 秒的参考音频即可“借”到音色,新文本即时合成,无需针对该声音单独训练模型。
- 多语言内容:官方权重面向中英混合场景,社区贡献的日文、法文、德文、俄文等模型收录在 SHARED.md,按语言挑选即可。
技术层面,项目用流匹配(flow matching)替代典型扩散过程做语音生成,默认采样步数 32(nfe_step可调),这是它推理速度快的主要原因。
模型怎么选:按场景对照表直接挑
本节给出“场景 → 推荐模型 → 理由”的对照,避免在几个模型名之间反复比较。
| 使用场景 | 推荐模型 | 选择理由 |
|---|---|---|
| 日常配音、中文或中英混合 | F5TTS_v1_Base | 2025 年 3 月发布的最新版,训练与推理表现更好 |
| 低显存、快速验证想法 | F5TTS_Small / E2TTS_Small | 参数量更小,推理更快,适合快速试听 |
| 想用 BigVGAN 声码器 | F5TTS_Base | CLI 提供 bigvgan 选项,旧版配套最齐 |
| 日文、法文、德文等特定语言 | 社区 Small / Base 模型 | 按语言在 SHARED.md 中挑选 |
结构上的差异:F5 系列用 DiT 主干,E2 系列是更简单的 Flat-UNet;推理输出统一由 Vocos 声码器解码为 24kHz 音频。官方预训练权重的存放位置见 ckpts/README.md,推理脚本会按需自动下载,无需手动搬运文件。
3 分钟跑通第一次合成
本节把克隆、安装、运行压成最短路径,目标是几分钟内听到第一段音频。
前提:Python 3.10 以上、已安装 FFmpeg;GPU 用户先装好与 CUDA 版本匹配的 PyTorch。在终端运行克隆与安装命令:
git clone https://gitcode.com/gh_mirrors/f5/F5-TTS cd F5-TTS pip install -e .只跑推理、不做训练,也可以直接pip install f5-tts。安装完成后运行默认命令:
f5-tts_infer-cli这条命令使用内置的basic.toml示例配置(英文参考音频与文本),首次运行会从模型库自动下载权重到本地缓存,结果保存到tests/目录,输出文件名由output_file决定(默认infer_cli_basic.wav)。第一次先听结果,确认音色方向对了,再进入下一节调参数。
换成自己的素材时,把三个参数直接写在命令行里:
f5-tts_infer-cli --model F5TTS_v1_Base \ --ref_audio ref.wav --ref_text "参考音频的内容文本" \ --gen_text "要合成的文字"不想手动配环境,也可以用仓库自带的 Dockerfile 构建镜像,一条命令起 Web 界面:
docker build -t f5tts:v1 . docker container run --rm -it --gpus=all -p 7860:7860 f5tts:v1 f5-tts_infer-gradio --host 0.0.0.0让声音更像参考音的关键参数
本节讲清ref_audio、ref_text、speed三个参数与参考音频要求,它们决定合成声音“像不像、自然不自然”。
ref_audio:时长控制在 12 秒以内,超过会被自动裁到约 12 秒,结尾被切词会拉低生成质量;结尾留约 1 秒静音。选单人、背景噪音少、语速适中的片段,WAV、FLAC 均可,关键是能被 FFmpeg 正常解码。ref_text:写参考音频的准确文本,能显著提升音色还原度。留空则自动调用 ASR 转录,额外占用显存,转录不准时同样影响效果。speed:语速倍率,默认 1.0,通过--speed或配置文件调整,情感浓的内容可试 0.8 左右。remove_silence:设为true时清除输出中的过长静音,适合成品直接入库。
最小配置文件(.toml):
model = "F5TTS_v1_Base" ref_audio = "ref.wav" ref_text = "参考音频的内容文本" gen_text = "要合成的文字" speed = 1.0 remove_silence = false文本书写约定(详见 src/f5_tts/infer/README.md):
- 大写字母(最好写成 K.F.C. 这种形式)会逐字母朗读,普通单词用小写。
- 需要停顿处显式插入空格或标点;英文句号后记得加空格,否则分块不生效。
- 数字默认按英文读法处理,要中文读法就先转成中文字。
- 长文本用
gen_file比gen_text方便,两者同时存在时以gen_file为准。
多角色场景下,在 toml 里定义每个声音,再在文本中用方括号标记切换:
[voices.town] ref_audio = "town.wav" [voices.country] ref_audio = "country.wav"文本里出现[main]、[town]等标记时切换到对应声音,完整例子见 multi 示例目录。
三种接入方式:CLI、Web、API
本节给出三种接入方式的定位与启动命令,按交付形态选择。
- CLI——适合脚本化与批量任务,参数全部可写进 toml,长文本自动分块,适合把配音写进 shell 或 CI 流程。
- Web——Gradio 可视化界面,不写代码也能调参试听,内置长文本分块与多声音生成,还带基于 Qwen2.5-3B-Instruct 的语音聊天。
- API——Python 类封装,seed、采样步数、输出路径都可程序化控制,适合集成进自己的应用。
f5-tts_infer-gradio python src/f5_tts/api.pyAPI 方式下还能调nfe_step(采样步数,默认 32)与cfg_strength(文本贴合度):步数越少越快、细节略损。需要实时流式输出时,另有 socket 服务端按块发送音频:
python src/f5_tts/socket_server.py python src/f5_tts/socket_client.py踩坑速查
本节把新手最常遇到的几类问题整理成“现象 → 处理”两栏,遇到报错先查这里。
| 现象 | 处理 |
|---|---|
| 输出是纯静音 | 检查 FFmpeg 是否安装,缺失时合成流程会失败 |
| 参考音频结尾被切词 | 参考音频控制在 12 秒内,并在结尾留约 1 秒静音 |
| 音色不像参考音 | 换更干净的参考音频;核对 ref_text 与音频内容是否一致 |
| 字母、数字读法不符合预期 | 大写逐字母读;中文数字先写成中文字 |
| 长文本里停顿怪异 | 在需要停顿处插入空格或标点,英文句号后加空格 |
| 显存不足 | 换轻量模型、缩短参考音频或减少并发 |
| 首次加载慢、显存上涨 | 留空 ref_text 会加载 ASR 模型做转录,提供 ref_text 可跳过 |
| 微调早期 checkpoint 效果差 | 尝试关闭 use_ema |
| 找不到输出文件 | WAV 保存在 output_dir 目录(默认 tests/),文件名由 output_file 决定 |
第一次合成跑通后,建议固定一套满意的参考音频与 ref_text,之后只改 gen_text,效果最稳定。想集成进自己的应用,从 api.py 的F5TTS类入手;需要批量与评测时,参考 eval 目录下的脚本。
【免费下载链接】F5-TTSOfficial code for "F5-TTS: A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching"项目地址: https://gitcode.com/gh_mirrors/f5/F5-TTS
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考