TTS之F5-TTS:F5-TTS的简介、安装和使用方法、案例应用之详细攻略
目录
F5-TTS的简介
2024年10月8日,上海交通大学团队发布,F5-TTS (A Fairytaler that Fakes Fluent and Faithful Speech with Flow Matching) 是一款基于扩散Transformer和ConvNeXt V2的文本转语音 (TTS) 模型。F5-TTS旨在生成流畅且忠实的语音,其训练速度和推理速度都得到了提升。 项目还提供了一个名为E2 TTS的模型,它是论文中模型的更接近的复现版本,基于Flat-UNet Transformer。 预训练模型已发布在Hugging Face和Model Scope上。
总而言之,F5-TTS是一个功能强大且易于使用的TTS模型,它结合了扩散模型和流匹配技术,实现了快速训练、快速推理和高质量的语音生成。 其提供的Gradio应用和CLI工具也方便了用户的使用。 项目文档较为完善,方便用户快速上手。
GitHub地址:https://github.com/SWivid/F5-TTS
论文地址:https://arxiv.org/abs/2410.06885
1、特点:
>> 快速训练和推理: 相比于其他模型,F5-TTS的训练和推理速度更快。
>> 流畅逼真的语音: 采用流匹配技术,生成更流畅、更自然、更忠实的语音。
>> 基于扩散Transformer和ConvNeXt V2: 利用先进的架构,提升模型性能。
>> 多风格/多说话人生成: 支持多风格和多说话人的语音生成。
>> 提供Gradio应用: 提供友好的图形用户界面,方便用户进行推理和微调。
>> 支持语音聊天: 通过集成Qwen2.5-3B-Instruct模型,支持语音聊天功能。
>> 提供了E2 TTS模型: 作为论文中模型的更接近的复现版本,方便研究者复现论文结果。
>> Sway Sampling: 一种推理时间的流步骤采样策略,极大地提高了性能。
F5-TTS的安装和使用方法:
1、环境配置
创建一个Python 3.10的conda环境 (也可以使用virtualenv):
conda create -n f5-tts python=3.10
conda activate f5-tts
安装PyTorch和Torchaudio,CUDA版本根据你的显卡选择:
pip install torch==2.3.0+cu118 torchaudio==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
2、安装F5-TTS
可以选择以下三种安装方式:
T1、作为pip包 (仅用于推理):
pip install git+https://github.com/SWivid/F5-TTS.git
T2、本地可编辑模式 (用于训练和微调):
git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
pip install -e .
T3、Docker使用:
# Build from Dockerfile
docker build -t f5tts:v1 .
# Or pull from GitHub Container Registry
docker pull ghcr.io/swivid/f5-tts:main
3、推理:
提供了三种推理方式:
T1、Gradio应用 (Web界面)
运行 f5-tts_infer-gradio 命令启动Gradio应用,支持基本TTS、多风格/多说话人生成和基于Qwen2.5-3B-Instruct的语音聊天。可以使用 --port 和 --host 参数指定端口和主机,使用 --share 参数生成共享链接。
T2、CLI推理
使用 f5-tts_infer-cli 命令进行命令行推理。 需要指定模型名称 (--model)、参考音频路径 (--ref_audio)、参考文本 (--ref_text) 和要生成的文本 (--gen_text)。 可以使用配置文件 (-c) 指定参数。 支持多语音生成。
详细指南: 建议阅读提供的详细指南以获得更好的生成结果。
4、训练
需要阅读提供的训练和微调指南。 可以使用 f5-tts_finetune-gradio 命令启动Gradio Web界面进行快速训练。
5、评估
项目中没有提供具体的评估方法和结果,但提到了使用了FunASR、faster-whisper和UniSpeech等工具进行评估。
每个模块的内容:
项目代码库包含以下主要模块:
ckpts: 预训练模型检查点。
data: 数据集。
src/f5_tts: 模型代码,包含模型架构、训练和推理流程等。
infer: 推理相关的代码和示例。
training: 训练相关的代码和示例。
F5-TTS的案例应用
项目中提供了Gradio应用和CLI推理的示例,演示了如何进行基本TTS、多风格/多说话人生成和语音聊天。 更具体的案例应用需要参考项目文档和示例代码。