项目简介
F5-TTS
:带有 ConvNeXt V2 的扩散变压器,训练和推理速度更快。
E2 TTS
:Flat-UNet Transformer,最接近纸面的复制品。
Sway Sampling
:推理时间流步进采样策略,大大提高性能
安装
克隆存储库:
git clone https://github.com/SWivid/F5-TTS.git
cd F5-TTS
使用您的 CUDA 版本安装 torch,例如:
pip install torch==2.3.0+cu118
pip install torchaudio==2.3.0+cu118
安装其他包:
pip install -r requirements.txt
[可选]
:我们提供了
Dockerfile
,您可以使用以下命令来构建它。
docker build -t f5tts:v1 .
开发
发出 Pull 请求时,请使用预提交来确保代码质量:
pip install pre-commit
pre-commit install
这将在每次提交之前自动运行 linter 和格式化程序。
Manually run using:
手动运行使用:
注意:某些模型组件对 E722 具有 linting 例外,以适应张量表示法
准备数据集
Emilia 和 Wenetspeech4TTS 的示例数据处理脚本,您可以定制自己的脚本以及
model/dataset.py
中的 Dataset 类。
python scripts/prepare_emilia.py
python scripts/prepare_wenetspeech4tts.py
关于微调#57的初步指导。
使用
finetune_gradio.py
进行Gradio UI 微调,请参阅#143 。
Wandb日志记录
默认情况下,训练脚本不使用日志记录(假设您没有使用
wandb login
手动登录)。
要打开 wandb 日志记录,您可以:
-
使用
wandb login
手动登录:在此处了解更多信息
-
通过设置环境变量以编程方式自动登录:在https://wandb.ai/site/获取 API KEY 并设置环境变量,如下所示:
在 Mac 和 Linux 上:
export WANDB_API_KEY=<YOUR WANDB API KEY>
在 Windows 上:
此外,如果您无法访问 Wandb 并且想要离线记录指标,您可以按如下方式设置环境变量:
export WANDB_MODE=offline
推理
预训练模型检查点可以通过🤗 Hugging Face和🤖 Model Scope到达,或者使用
inference-cli
和
gradio_app
自动下载。
目前支持单生成30秒,即提示音频与生成的
总
长度。
inference-cli
和
gradio_app
支持使用块进行批量推理。
-
为了避免可能的推理失败,请确保您已阅读以下说明。
-
较长的提示音频允许较短的生成输出。超过30s的部分无法正常生成。考虑使用提示音频 <15s。
-
大写字母将被逐个字母地读出,因此对于普通单词使用小写字母。
-
添加一些空格(空白:“”)或标点符号(例如“,”“.”)以明确引入一些停顿。如果在代码转换生成中跳过前几个单词(因为不同语言的速度不同),这可能会有所帮助。
CLI 推理
您可以在
inference-cli.toml
中指定所有内容,也可以使用标志覆盖。保留
--ref_text ""
将使 ASR 模型自动转录参考音频(使用额外的 GPU 内存)。如果遇到网络错误,考虑使用本地ckpt,只需在
inference-cli.py
中设置
ckpt_file
对于更改模型,请使用
--ckpt_file
指定要加载的模型,