Fish Speech:全新的文本转语音(TTS)解决方案

项目简介

Fish Speech:全新的文本转语音(TTS)解决方案,具有高度自定义和灵活性,支持Linux和Windows系统,需要2GB的GPU内存进行推理,使用Flash-Attn进行推理和训练,支持VQGAN和Text2Semantic模型

要求

  • GPU内存:2GB(用于推理),24GB(用于微调)
  • 系统:Linux(全部功能),Windows(仅推理,不支持flash-attn,不支持torch.compile)

因此,我们强烈建议Windows用户使用WSL2或docker来运行代码库。

设置

# 基本环境设置conda create -n fish-speech python=3.10conda activate fish-speechconda install pytorch torchvision torchaudio pytorch-cuda=12.1 -c pytorch -c nvidia
# 安装 flash-attn(适用于linux)pip3 install ninja && MAX_JOBS=4 pip3 install flash-attn --no-build-isolation
# 安装 fish-speechpip3 install -e .

推理(CLI)

从我们的 huggingface 仓库下载所需的 vqgan 和 text2semantic 模型。

wget https://huggingface.co/fishaudio/speech-lm-v1/raw/main/vqgan-v1.pth -O checkpoints/vqgan-v1.pthwget https://huggingface.co/fishaudio/speech-lm-v1/blob/main/text2semantic-400m-v0.1-4k.pth -O checkpoints/text2semantic-400m-v0.1-4k.pth

[可选] 从语音生成 prompt:

python tools/vqgan/inference.py -i paimon.wav --checkpoint-path checkpoints/vqgan-v1.pth

你应该能得到一个 fake.npy 文件。

文本生成语义 token:

python tools/llama/generate.py \    --text "要转换的文本" \    --prompt-string "你的参考文本" \    --prompt-tokens "fake.npy" \    --checkpoint-path "checkpoints/text2semantic-400m-v0.1-4k.pth" \    --num-samples 2 \    --compile

该命令会在工作目录下创建 codes_N 文件,其中 N 是从 0 开始的整数。您可能希望使用 –compile 来融合 cuda 内核以实现更快的推理(~30 个 token/秒 -> ~500 个 token/秒)

从语义 token 生成人声:

python tools/vqgan/inference.py -i codes_0.npy --checkpoint-path checkpoints/vqgan-v1.pth

Rust 数据服务器

由于加载和洗牌数据集非常缓慢且占用内存,因此我们使用 rust 服务器来加载和洗牌数据集。该服务器基于 GRPC,可以通过以下方式安装

cd data_servercargo build --release

项目链接

https://github.com/fishaudio/fish-speech

未经允许不得转载:表盘吧 » Fish Speech:全新的文本转语音(TTS)解决方案