专栏名称: GitHubStore
分享有意思的开源项目
目录
相关文章推荐
连云港市场监管  ·  市政协副主席韦怀余调研质量基础设施建设工作 ·  昨天  
中国交建  ·  公司召开2025年市场、投资工作部署会议 ·  2 天前  
中国城市规划  ·  科普 | ... ·  3 天前  
兵团零距离  ·  兵团:各师市重大项目陆续开复工 ·  3 天前  
中国城市规划  ·  要闻 | 打造更多数据应用场景,有关部门这样发力 ·  4 天前  
51好读  ›  专栏  ›  GitHubStore

上海交通大学开源的非常牛音生成模型 F5-TTS

GitHubStore  · 公众号  ·  · 2024-10-25 09:16

正文

项目简介

F5-TTS :带有 ConvNeXt V2 的扩散变压器,训练和推理速度更快。

E2 TTS :Flat-UNet Transformer,最接近纸面的复制品。


Sway Sampling :推理时间流步进采样策略,大大提高性能

安装

克隆存储库:

git clone https://github.com/SWivid/F5-TTS.gitcd F5-TTS

使用您的 CUDA 版本安装 torch,例如:

pip install torch==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118pip install torchaudio==2.3.0+cu118 --extra-index-url https://download.pytorch.org/whl/cu118

安装其他包:

pip install -r requirements.txt

[可选] :我们提供了 Dockerfile ,您可以使用以下命令来构建它。

docker build -t f5tts:v1 .


开发

发出 Pull 请求时,请使用预提交来确保代码质量:

pip install pre-commitpre-commit install

这将在每次提交之前自动运行 linter 和格式化程序。

Manually run using: 手动运行使用:

pre-commit run --all-files


注意:某些模型组件对 E722 具有 linting 例外,以适应张量表示法


准备数据集

Emilia 和 Wenetspeech4TTS 的示例数据处理脚本,您可以定制自己的脚本以及 model/dataset.py 中的 Dataset 类。

# prepare custom dataset up to your need# download corresponding dataset first, and fill in the path in scripts
# Prepare the Emilia datasetpython scripts/prepare_emilia.py
# Prepare the Wenetspeech4TTS datasetpython scripts/prepare_wenetspeech4tts.py

关于微调#57的初步指导。

使用 finetune_gradio.py 进行Gradio UI 微调,请参阅#143 。


Wandb日志记录

默认情况下,训练脚本不使用日志记录(假设您没有使用 wandb login 手动登录)。


要打开 wandb 日志记录,您可以:

  1. 使用 wandb login 手动登录:在此处了解更多信息

  2. 通过设置环境变量以编程方式自动登录:在https://wandb.ai/site/获取 API KEY 并设置环境变量,如下所示:


在 Mac 和 Linux 上:

export WANDB_API_KEY=<YOUR WANDB API KEY>

在 Windows 上:

set WANDB_API_KEY=KEY>

此外,如果您无法访问 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 指定要加载的模型,







请到「今天看啥」查看全文