fish-speech - 文字转语音、声音克隆 - 语音技术 AI


https://hub.docker.com/r/fishaudio/fish-speech

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


docker run -d   --name fish-speech   --gpus all   -p 7860:7860  --hostname  fish-speech  --restart=always  --privileged=true --user=root    --ulimit nofile=262144:262144   -e  GRADIO_SERVER_NAME="0.0.0.0" -e  HF_ENDPOINT='https://hf-mirror.com'  -e  HTTP_PROXY="http://g.htmltoo.com:7778"  -e  HTTPS_PROXY="http://g.htmltoo.com:7778"   -e  NO_PROXY="localhost,127.0.0.1,192.168.0.0/16,172.17.0.0/16,172.18.0.0/16,172.19.0.0/16,172.20.0.0/16"  fishaudio/fish-speech:latest-dev   zsh


docker run -d   --name fish-speech   -p 8860:7860  --hostname  fish-speech  --restart=always   fishaudio/fish-speech:latest-dev   zsh


docker exec -it  fish-speech  /bin/bash

export GRADIO_SERVER_NAME="0.0.0.0"

huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

-

HF_ENDPOINT=https://hf-mirror.com huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

python tools/webui.py


http://g.htmltoo.com:8860


docker pull  fishaudio/fish-speech:latest-dev

docker save  fishaudio/fish-speech:latest-dev | gzip > /data/site/htmltoo.f/htmltoo.up/soft/docker.tar/fish-speech-1.4.1.tar.gz

docker load < /opt/...


---WebUI 推理

python -m tools.webui \

    --llama-checkpoint-path "checkpoints/fish-speech-1.4" \

    --decoder-checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth" \

    --decoder-config-name firefly_gan_vq


你可以提前将label文件和参考音频文件保存到主目录下的examples文件夹(需要自行创建),这样你可以直接在WebUI中调用它们

你可以使用 Gradio 环境变量, 如 GRADIO_SHARE, GRADIO_SERVER_PORT, GRADIO_SERVER_NAME 来配置 WebUI


---微调

你只需要微调'LLAMA'部分即可


1. 准备数据集

├── SPK1

│   ├── 21.15-26.44.lab

│   ├── 21.15-26.44.mp3

│   ├── 27.51-29.98.lab

│   ├── 27.51-29.98.mp3

│   ├── 30.1-32.71.lab

│   └── 30.1-32.71.mp3

└── SPK2

    ├── 38.79-40.85.lab

    └── 38.79-40.85.mp3

你需要将数据集转为以上格式, 并放到 data 下, 音频后缀可以为 .mp3, .wav 或 .flac, 标注文件后缀建议为 .lab.

建议先对数据集进行响度匹配, 你可以使用 fish-audio-preprocess 来完成这一步骤.

https://github.com/fishaudio/audio-preprocess

fap loudness-norm data-raw data --clean


2. 批量提取语义 token

-确保你已经下载了 vqgan 权重, 如果没有, 请运行以下命令:

huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

-对于中国大陆用户, 可使用 mirror 下载.

HF_ENDPOINT=https://hf-mirror.com huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

-随后可运行以下命令来提取语义 token:

-你可以调整 --num-workers 和 --batch-size 来提高提取速度, 但是请注意不要超过你的显存限制

python tools/vqgan/extract_vq.py data \

    --num-workers 1 --batch-size 16 \

    --config-name "firefly_gan_vq" \

    --checkpoint-path "checkpoints/fish-speech-1.4/firefly-gan-vq-fsq-8x1024-21hz-generator.pth"

该命令会在 data 目录下创建 .npy 文件, 如下所示:

├── SPK1

│   ├── 21.15-26.44.lab

│   ├── 21.15-26.44.mp3

│   ├── 21.15-26.44.npy

│   ├── 27.51-29.98.lab

│   ├── 27.51-29.98.mp3

│   ├── 27.51-29.98.npy

│   ├── 30.1-32.71.lab

│   ├── 30.1-32.71.mp3

│   └── 30.1-32.71.npy

└── SPK2

    ├── 38.79-40.85.lab

    ├── 38.79-40.85.mp3

    └── 38.79-40.85.npy


3. 打包数据集为 protobuf

python tools/llama/build_dataset.py \

    --input "data" \

    --output "data/protos" \

    --text-extension .lab \

    --num-workers 16

命令执行完毕后, 你应该能在 data 目录下看到 protos 文件


4. 最后, 使用 LoRA 进行微调

-同样的, 请确保你已经下载了 LLAMA 权重, 如果没有, 请运行以下命令:

huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

-对于中国大陆用户, 可使用 mirror 下载.

HF_ENDPOINT=https://hf-mirror.com huggingface-cli download fishaudio/fish-speech-1.4 --local-dir checkpoints/fish-speech-1.4

-最后, 你可以运行以下命令来启动微调:

python fish_speech/train.py --config-name text2semantic_finetune \

    project=$project \

    +lora@model.model.lora_config=r_8_alpha_16


你可以通过修改 fish_speech/configs/text2semantic_finetune.yaml 来修改训练参数如 batch_size, gradient_accumulation_steps 等, 来适应你的显存

对于 Windows 用户, 你可以使用 trainer.strategy.process_group_backend=gloo 来避免 nccl 的问题.

训练结束后, 你可以参考 推理 部分, 并携带 --speaker SPK1 参数来测试你的模型


训练完成后, 你需要先将 loRA 的权重转为普通权重, 然后再进行推理.

python tools/llama/merge_lora.py \

    --lora-config r_8_alpha_16 \

    --base-weight checkpoints/fish-speech-1.4 \

    --lora-weight results/$project/checkpoints/step_000000010.ckpt \

    --output checkpoints/fish-speech-1.4-yth-lora/


主要特点:

1- 经过 70 万小时的多语言数据训练(之前的版本为 20 万小时)

2- 支持 8 种语言:英语、中文、德语、日语、法语、西班牙语、韩语和阿拉伯语

3- 完全开源,为全球开发者和研究人员赋能

4- 闪电般快速的 TTS,超低延迟,对实时语化对话很有帮助

5- 即时语音克隆,可以使用官方云服务


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回