简介

“GPT-SoVITS"的GitHub仓库是一个专注于语音数据处理和文本转语音(TTS)技术的项目。它突出了使用仅一分钟语音数据就能训练出良好TTS模型的能力,这种方法被称为"少样本语音克隆”。该项目采用MIT许可证,主要使用Python编程语言。

重要提示: 本教程已过期,项目已支持MAC,请按照GitHub的教程进行操作。

本教程将讨论如何在Mac平台上使用CPU运行此项目。


中文版本教程

  • 暂时不要考虑在Mac上训练,能够预处理和推理就已经很好了。运行LLM可能是可行的,但如果有人在Mac上(使用MPS)成功训练过,请告诉我。
  • 本教程主要讨论训练后和将模型下载到本地后的推理过程。我已经测试过,都能正常工作。
  • 训练相关信息可以在上面的参考视频中找到,非常详细。数据集是关键,训练需要耐心。


MPS不支持Screenshot 2024-01-18 at 4.44.01 PM.webp


Screenshot 2024-01-18 at 2.23.51 PM.webp

项目链接:https://github.com/RVC-Boss/GPT-SoVITS


本教程仅供交流学习使用。请勿用于非法、不道德或不道德的目的。

请确保您自行解决与数据集相关的任何授权问题。对于使用未经授权的数据集进行训练而产生的任何问题以及由此产生的后果,您需承担全部责任。仓库及其维护者、svc开发团队不承担任何相关责任。

严禁将其用于任何政治相关目的。

软件要求:

  1. Homebrew https://brew.sh/
  2. VScode(可选)
  3. Python3.9
1
brew install python3.9

本地推理

1. 创建虚拟环境

创建一个虚拟环境

1
python3.9 -m venv myenv #将'myenv'改为其他名称

2. 进入虚拟环境

1
cd myenv 
1
source bin/activate 

3. 下载项目

1
git clone https://github.com/RVC-Boss/GPT-SoVITS.git

使用cd进入项目目录

4. 下载包

1
brew install ffmpeg
1
pip install torch numpy scipy tensorboard librosa==0.9.2 numba==0.56.4 pytorch-lightning gradio==3.14.0 ffmpeg-python onnxruntime tqdm cn2an pypinyin pyopenjtalk g2p_en chardet

额外要求

如果您需要中文ASR(由FunASR支持),请安装:

1
pip install modelscope torchaudio sentencepiece funasr

注意:如果您发现No module named,只需安装该包即可

您也可以使用requirements.txt来安装,但如果有问题,只需安装我之前提到的内容。

1
pip install -r requirements.txt # 不需要运行这个

GPT-SoVITS Models下载预训练模型并将它们放在GPT_SoVITS/pretrained_models中。

对于中文ASR(额外),从Damo ASR ModelDamo VAD ModelDamo Punc Model下载模型,并将它们放在tools/damo_asr/models中。

对于UVR5(人声/伴奏分离和混响去除,额外),从UVR5 Weights下载模型并将它们放在tools/uvr5/uvr5_weights中。


如果您想要一键包:https://github.com/RVC-Boss/GPT-SoVITS/issues/4

5. 启动WebUI

1
python web.py

298198277-acbbcc49-515f-45f0-9d90-1a15e477f3b5.webp

6. 选择模型

模型在这两个文件夹中,一个是GPT模型,另一个是SoVITS模型。您应该将文件放到正确的文件夹中

点击是否开启TTS推理WebUI

此时可能会报错。
您需要修改GPT_SoVITS/inference_webui.py以使用CPU推理。

1
2
3
4
├── GPT_weights
└── LeiJun-e15.ckpt
├── SoVITS_weights
└── LeiJun_e10_s470.pth

298302810-95c5b02f-7145-48f1-a726-d1d7be3ddb18.webp

7. 修改inference_webui.py

  1. CUDA改为CPU
  2. 将半精度改为全精度model.half() —> model.float()

处理后的文件:https://github.com/RoversX/GPT-SoVITS/blob/main/GPT_SoVITS/inference_webui.py

只需保存更改并重新运行即可。


297881767-3f815414-298b-4e6b-8ac8-796bec78e4c2.webp

感谢阅读。如果教程中有任何问题或更好的方法,请指出。