项目简介
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.10
conda activate fish-speech
conda 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-speech
pip3 install -e .
推理(CLI)
从我们的 huggingface 仓库下载所需的 vqgan 和 text2semantic 模型。
wget https://huggingface.co/fishaudio/speech-lm-v1/raw/main/vqgan-v1.pth -O checkpoints/vqgan-v1.pth
wget 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_server
cargo build --release
项目链接
https://github.com/fishaudio/fish-speech
© 版权声明
文章版权归作者所有,未经允许请勿转载。