README.zh.md 2.6 KB

Fish Speech

此代码库根据 BSD-3-Clause 许可证发布,所有模型根据 CC-BY-NC-SA-4.0 许可证发布。请参阅 LICENSE 了解更多细节。

免责声明

我们不对代码库的任何非法使用承担任何责任。请参阅您当地关于DMCA和其他相关法律的法律。

要求

  • 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 仓库下载所需的 vqgantext2semantic 模型。

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

致谢