镜像社区
部署GPU实例
文档中心
常见问题(FAQ)
语音
深度学习
WebUI
GPT-SoVITS
GPT-SoVITS-V4(v2Pro,v2ProPlus),所需素材少,训练耗时短,情绪可控。
0/小时
v4.0
v1.0

镜像使用交流群
image

1:镜像准备

官方测试通过3080ti,推荐租用:3090、3080ti、4090。对于GPT-SoVITS来说够用了

2:处理数据集

请认真准备数据集!以免后面出现各种报错,和炼出不理想的模型!好的数据集是炼出好的模型的基础!

2.1:上传原音频

开机后点JupyterLab

image

然后打开input文件夹,将音频上传到这里面

image

2.2:开启WebUI

然后来到JupyterLab打开的页面,点击启动webui下面这个,然后点击上面的启动键

image

然后回到控制台复制这个外网链接,在后面加上:9874,在浏览器中打开。 比如外网链接是:117.50.241.83,端口是9874,对应的链接就是117.50.241.83:9874

注意!不要把外网链接发给陌生人!

image

然后就是和整合包一样的内容,更详细的看整合包教程

2.3:UVR5提取人声

2.3.1:方法1:使用自带的UVR5处理音频

点击开启UVR5-WebUI,打开外网链接:9873这个网址,uvr5对应端口是9873

image

上传音频到input 文件夹内或者网页直接上传

image

image

先用model_bs_roformer_ep_317_sdr_12.9755模型(已经是目前最好的模型)处理一遍(提取人声),然后将输出的干声音频再用onnx_dereverb最后用DeEcho-Aggressive(去混响),输出格式选wav。

输出的文件默认在GPT-SoVITS\output\uvr5_opt这个文件夹下,建议不要改输出路径,到时候找不到文件谁也帮不了你。处理完的音频(vocal)的是人声,(others)是伴奏,(_vocal_main_vocal)的没混响的,(others)的是混响。(vocal)(_vocal_main_vocal)才是要用的文件,其他都可以删除。结束后记得到WebUI关闭UVR5节省显存。

2.4:切分

在切割音频前建议把所有音频拖进音频软件(如au、剪映)调整音量,最大音量调整至-9dB到-6dB,过高的删除

输入路径是上面的原音频的文件夹路径,如果刚刚经过了UVR5处理那么就是output/uvr5_opt这个文件夹。输出路径默认是output/slicer_opt。建议可以调整的参数有min_length、min_interval和max_sil_kept单位都是ms。min_length根据显存大小调整,显存越小调越小。min_interval根据音频的平均间隔调整,如果音频太密集可以适当调低。max_sil_kept会影响句子的连贯性,不同音频不同调整,不会调的话保持默认。其他参数不建议调整。当然也可以使用其他切分工具切分。

切分完后文件在/root/GPT-SoVITS/output/slicer_opt。打开切分文件夹,排序方式选大小,检查下有没有太长的。将时长超过 显存数 秒的音频手动切分至 显存数 秒以下。比如显卡是4090 显存是24g,那么就要将超过24秒的音频手动切分至24s以下,音频时长太长的会爆显存。如果语音切割后还是一个文件,那是因为音频太密集了。可以调低min_interval,实在不行用au手动切分。

2.5:打标

2.5.1:开启标注

路径输入就是上面的切片输出路径,默认是output/slicer_opt。终端中有进度条就说明在跑,不在跑就会Error报错

如果有字幕的可以用字幕标注,准确多了。内嵌字幕或者外挂字幕都可以,教程使用字幕标注(更准确)

标注文件默认在otput/asr_opt

2.5.2:校对(这步比较费时间,可以跳过)

将标注文件的路径输入进去可以然后开启标注校对,就可以点终端里最下面那个链接进入校对界面了。

打开后就是SubFix,从左往右从上到下依次意思是:跳转页码、保存修改、合并音频、删除音频、上一页、下一页、分割音频、保存文件、反向选择。每一页修改完都要点一下保存修改(Submit Text),如果没保存就翻页那么会重置文本,在完成退出前要点保存文件(Save File),做任何其他操作前最好先点一下保存修改(Submit Text)。合并音频和分割音频不建议使用,精度非常差,一堆bug。删除音频先要点击要删除的音频右边的yes,再点删除音频(Delete Audio)。删除完后文件夹中的音频不会删除但标注已经删除了,不会加入训练集的。这个SubFix一堆bug,任何操作前都多点两下保存。

image

3:训练

3.1:输出logs

填实验名也就是模型名称,可以是中文!

上面选择v3版本,默认自动填好了路径直接点击一键三连等结束就好了

image

如果你要更改路径第一个输入的是标注文件路径,**注意是文件路径!不是文件夹路径!示例:/root/GPT-SoVITS/output/asr_opt/slicer_opt.list,注意后面的文件名必须要输进去!打不开就再三检查路径是否正确!必须要有.list的后缀!!!第二个输入的是切分音频文件夹路径 示例:/root/GPT-SoVITS/output/slicer_opt。注意复制的路径都不能有引号!!!千万不能有引号!**然后点一键三连等结束就好了。如果有报错会在终端呈现

如果是英语或日语的话logs里的3-bert文件夹是空的,是正常的不用管。

3.2:微调训练

首先设置batch_size,sovits训练建议batch_size设置为显存的一半以下,高了会爆显存。**bs并不是越高越快!**batch_size也需要根据数据集大小调整,也并不是严格按照显存数一半来设置,比如6g显存需要设置为1。如果爆显存就调低。当显卡3D占用100%的时候就是bs太高了,使用到了共享显存,速度会慢好几倍

image

以下是切片长度为10s时实测的不同显存的sovits训练最大batch_size,可以对照这个设置。如果切片更长、数据集更大的话要适当减少。

显存batch_size切片长度
8g110s
12g210s
16g810s
22g1210s
24g1410s
32g1810s
40g2410s
80g4810s

在0213版本之后添加了dpo训练。dpo大幅提升了模型的效果,几乎不会吞字和复读,能够推理的字数也翻了几倍,但同时训练时显存占用多了2倍多,训练速度慢了4倍,12g以下显卡无法训练。数据集质量要求也高了很多。如果数据集有杂音,有混响,音质差,不校对标注,那么会有负面效果

如果你的显卡大于12g,且数据集质量较好,且愿意等待漫长的训练时间,那么可以开启dpo训练。否则请不要开启。下面是切片长度为10s时实测的不同显存的gpt训练最大batch_size。如果切片更长、数据集更大的话要适当减少。

显存未开启dpo batch_size开启dpo batch_size切片长度
6g1无法训练10s
8g2无法训练10s
12g4110s
16g7110s
22g10410s
24g11610s
32g16610s
40g21810s
80g441810s

接着设置轮数,相比V1,V2对训练集的还原更好,但也更容易学习到训练集中的负面内容。所以如果你的素材中有底噪、混响、喷麦、响度不统一、电流声、口水音、口齿不清、音质差等情况那么请不要调高SoVITS模型轮数,否则会有负面效果。GPT模型轮数一般情况下不高于20,建议设置10。然后先点开启SoVITS训练,训练完后再点开启GPT训练,不可以一起训练(除非你有两张卡)!如果中途中断了,直接再点开始训练就好了,会从最近的保存点开始训练。

训练完成会显示训练完成,并且控制台显示的轮数停在设置的(总轮数-1)的轮数上。

关于学习率权重,轮数该多少好,如何制作出好模型,Tensorboard都在整合包教程训练章节

image

image

4:推理

4.1:开启推理界面

下拉选择模型推理,e代表轮数,s代表步数。不是轮数越高越好。选择好模型点开启TTS推理,还是点终端中最下面的链接。

请严格区分轮数 (Epoch) 和步数 (Step):1 个 Epoch 代表训练集中的所有样本都参与了一次学习,1 Step 代表进行了一步学习,由于 batch size 的存在,每步学习可以含有数条样本,因此,Epoch 和 Step 的换算如下:

image

4.2:开始推理

最上面可以切换模型,在刚练完挑模型的时候很重要

image

然后上传一段参考音频,建议是数据集中的音频。最好5秒参考音频很重要!会学习语速和语气,请认真选择。参考音频的文本是参考音频说什么就填什么,语种也要对应。在0217版本之后可以选择无参考文本模式,但非常不建议使用,效果非常拉胯,就几秒钟打个字的事就这么懒吗?而且注意:是无参考文本!不是无参考音频!参考音频无论什么情况都要的!

右上角有个融合音色的可选项,先将要融合的音频放在一个文件夹然后一起拖进去(没啥实用性的功能)

接着就是输入要合成的文本了,注意语种要对应。目前可以中英混合,日英混合和中日英混合。切分建议无脑选凑四句一切,低于四句的不会切。如果凑四句一切报错的话就是显存太小了可以按句号切。如果不切,显存越大能合成的越多,实测4090大约1000字,但已经胡言乱语了,所以哪怕你是4090也建议切分生成。合成的过长很容易胡言乱语。

0213版本加入了top_p,top_k和temperature,保持默认就行了。这些控制的都是随机性,拉大数值,随机性也会变大,所以建议默认就好

5:下载模型到本地

打开/root/GPT-SoVITS/GPT_weights_V3和SoVITS_weights_V3这两个文件夹,分别将需要的模型右键下载。

6.关机

**千万要记得关机!**不然余额马上扣光。回到控制台点关闭就好了

image

7.本地推理

将GPT模型(ckpt后缀)放入GPT_weights_V3文件夹,SoVITS模型(pth后缀)放入SoVITS_weights_V3文件夹,刷新下模型就能选择模型推理了。

关于变声部分

目前还没做完,每个人打开都是【施工中,请静候佳音】。不是缺文件了,就是还没做好。敬请期待吧

image

镜像信息
@aiguoliuguo
已使用
23
镜像大小80GB
最近编辑2025-06-23
支持卡型
A800A100H20P4030903080TiRTX40系48G RTX40系
+8
框架版本
PyTorch-2.0.1
CUDA版本
12.4
应用
JupyterLab: 8888
自定义开放端口
9874987398729871
+4
版本
v4.0
2025-06-23
PyTorch:2.0.1 | CUDA:12.4 | 大小:80.00GB
v1.0
2025-06-20
PyTorch:2.0.1 | CUDA:12.4 | 大小:70.00GB