利用Kaggle云计算平台部署GPT-SoVITS声音合成,性能超强,可以训练推理

​ 可直接去Kaggle官网Copy编辑运行此Notebook注:此Notebook部分参考GPT-SoVITS项目原作者RVC BOSS的测试版Notebook。

克隆项目仓库安装依赖

​ 我Fork的版本是2月15日的,当前可用。

1
!git clone https://github.com/Ciward/GPT-SoVITS.git
1
2
3
4
5
6
%cd /kaggle/working/GPT-SoVITS
!pip install torch numpy scipy tensorboard librosa==0.9.2 numba==0.56.4 pyngrok pytorch-lightning gradio==3.14.0 ffmpeg-python onnxruntime tqdm cn2an pypinyin pyopenjtalk g2p_en chardet -q
!pip install -r requirements.txt -q
!sudo apt -y install -qq ffmpeg
!sudo apt -y install -qq libsox-dev
!apt -y install -qq aria2
1
2
3
!mkdir -p /kaggle/working/GPT-SoVITS/tools/damo_asr/models
!mkdir -p /kaggle/working/GPT-SoVITS/tools/uvr5
!mkdir -p /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models
1
!mkdir -p /kaggle/working/GPT-SoVITS/logs

模型下载

1
2
3
4
5
6
7
8
%cd /kaggle/working/GPT-SoVITS/tools/damo_asr/models
!git clone https://www.modelscope.cn/damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch.git
!git clone https://www.modelscope.cn/damo/speech_fsmn_vad_zh-cn-16k-common-pytorch.git
!git clone https://www.modelscope.cn/damo/punc_ct-transformer_zh-cn-common-vocab272727-pytorch.git
# @title UVR5 pretrains 安装uvr5模型
%cd /kaggle/working/GPT-SoVITS/tools/uvr5
!git clone https://huggingface.co/Delik/uvr5_weights
!git config core.sparseCheckout true
1
2
3
4
# 下载预训练模型1
%cd /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models
!git clone https://huggingface.co/lj1995/GPT-SoVITS
!mv /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models/GPT-SoVITS/* /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models/
1
2
3
4
# 下载预训练模型2
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s2D488k.pth -d /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models -o s2D488k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s2G488k.pth -d /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models -o s2G488k.pth
!aria2c --console-log-level=error -c -x 16 -s 16 -k 1M https://huggingface.co/lj1995/GPT-SoVITS/resolve/main/s1bert25hz-2kh-longer-epoch%3D68e-step%3D50232.ckpt -d /kaggle/working/GPT-SoVITS/GPT_SoVITS/pretrained_models -o s1bert25hz-2kh-longer-epoch=68e-step=50232.ckpt

启动!

不同于Colab的一点是,需要打开内网穿透,利用pyngork库,需要先获取一个Ngrok_Token,填到下面代码中。启动服务后保存好端口映射的公网url(不同url访问不同端口)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
%cd /kaggle/working/GPT-SoVITS

!sed -i '/share=True/d' webui.py

Close_Ngrok=True
Open_New_Tab=True

from IPython.display import clear_output, Javascript
from IPython.display import display, HTML

clear_output()

from pyngrok import ngrok

if Close_Ngrok==True:
ngrok.kill()

# token填到下面
Ngrok_Token = "token填到这里"

ngrok.set_auth_token(Ngrok_Token)
#最多只能同时开三个,根据情况选择
main_tunnel = ngrok.connect(9874) # 主界面
#uvr5_tunnel = ngrok.connect(9873) # uvr5
third_tunnel = ngrok.connect(9872) # 推理界面
forth_tunnel = ngrok.connect(9871) # 标注微调界面
clear_output()

if Open_New_Tab==True:
display(Javascript('window.open("{url}", "_blank");'.format(url=main_tunnel.public_url)))

print("main_URL:", main_tunnel.public_url)
#print("unvr5_URL:", uvr5_tunnel.public_url)
print("9872:", third_tunnel.public_url)
print("9871:", forth_tunnel.public_url)
!python3 webui.py --port 9874