参考链接https://github.com/RVC-Boss/GPT-SoVITS
配置要求
训练:
Windows
- 支持 CUDA 的 nVIDIA 显卡,每张拥有至少 8G 以上显存
- 常见的不能使用的显卡:2060以前所有显卡
- Windows 10/11 系统
- ###如果没显卡的话会自动识别使用CPU训练,但慢的离谱CPU训练推理速度
MAC
- macOS 14或更高版本
- 已通过运行xcode-select –install安装Xcode command-line tools
Linux
- 能够熟练使用Linux
- 一张至少 8G显存的N卡
- ###如果没显卡的话会自动识别使用CPU训练,但慢的离谱CPU训练推理速度
推理:
Windows
- 支持 CUDA 的 nVIDIA 显卡,每张拥有至少 4G 以上显存(未实测,3G刚好无法合成一句,所以推测4G应该可以)
- Windows 10/11 系统
- ###如果没显卡的话会自动识别使用CPU推理
MAC
- macOS 14或更高版本
- 已通过运行xcode-select –install安装Xcode command-line tools
Linux
- 能够熟练使用Linux
- 一张至少 4G 以上显存的显卡
- ###如果没显卡的话会自动识别使用CPU推理
打开文件来到根目录,双击go-webui.bat打开,不要以管理员身份运行!

如果没有.bat的后缀可以在查看里打开文件扩展名,后面也会遇到很多需要后缀的
这就是正常打开了,稍加等待就会弹出网页。如果没有弹出网页可以复制http://0.0.0.0:9874到浏览器打开

这就是网页端

在开始使用前先提醒一下大家:打开的bat不可以关闭!这个黑色的bat框就是控制台,所有的日志都会在这上面呈现,所有的信息以控制台为准。如果要向别人提问请写清楚:哪一步骤+网页端(方便看你填没填对)+控制台截图!所有的报错都在控制台上!你不给别人看控制台谁也不知道你是什么问题!Error后面的一般是报错
3:数据集处理
请认真准备数据集!以免后面出现各种报错,和炼出不理想的模型!好的数据集是炼出好的模型的基础!
3.1:使用UVR5处理原音频(如果原音频足够干净可以跳过这步,比如游戏中提取的干声)
3.1.1:方法1:用自带的UVR5处理音频
点击开启UVR5-WebUI稍加等待就会自动弹出图二的网页,如果没有弹出复制http://0.0.0.0:9873到浏览器打开
打开文件来到根目录,双击go-webui.bat打开,不要以管理员身份运行!
如果没有.bat的后缀可以在查看里打开文件扩展名,后面也会遇到很多需要后缀的
这就是正常打开了,稍加等待就会弹出网页。如果没有弹出网页可以复制http://0.0.0.0:9874到浏览器打开

这就是网页端
在开始使用前先提醒一下大家:打开的bat不可以关闭!这个黑色的bat框就是控制台,所有的日志都会在这上面呈现,所有的信息以控制台为准。如果要向别人提问请写清楚:哪一步骤+网页端(方便看你填没填对)+控制台截图!所有的报错都在控制台上!你不给别人看控制台谁也不知道你是什么问题!Error后面的一般是报错
3:数据集处理
请认真准备数据集!以免后面出现各种报错,和炼出不理想的模型!好的数据集是炼出好的模型的基础!
3.1:使用UVR5处理原音频(如果原音频足够干净可以跳过这步,比如游戏中提取的干声)
3.1.1:方法1:用自带的UVR5处理音频
点击开启UVR5-WebUI稍加等待就会自动弹出图二的网页,如果没有弹出复制http://0.0.0.0:9873到浏览器打开

首先输入音频文件夹路径或者直接选择文件(2选1)
文件夹上面那个地址框就是文件夹路径

如果要复制文件路径就是这样↓

先用model_bs_roformer_ep_317_sdr_12.9755模型(已经是目前最好的模型)处理一遍(提取人声),然后将输出的干声音频再用onnx_dereverb最后用DeEcho-Aggressive(去混响),输出格式选wav。输出的文件默认在GPT-SoVITS-beta\output\uvr5_opt这个文件夹下,建议不要改输出路径,到时候找不到文件谁也帮不了你。处理完的音频(vocal)的是人声,(instrument)是伴奏,(_vocal_main_vocal)的没混响的,(others)的是混响。(vocal)(_vocal_main_vocal)才是要用的文件,其他都可以删除。结束后记得到WebUI关闭UVR5节省显存。←点击展开查看更详细教程
比如说这里我准备了两段素材,点击一下目录,这就是路径名了,复制一下

如果没有成功输出,报错了(现在版本应该不会报错了)。
那么推荐使用下面一种方法——UVR5客户端。(✅可能兼容性有问题,但是效果是和UVR5对齐的,不要瞎黑内置工具效果有问题)
3.2:切割音频
在切割音频前建议把所有音频拖进音频软件(如au、剪映)调整音量,最大音量调整至-9dB到-6dB,过高的删除
首先输入原音频的文件夹路径(不要有中文),如果刚刚经过了UVR5处理那么就是uvr5_opt这个文件夹。然后建议可以调整的参数有min_length、min_interval和max_sil_kept单位都是ms。min_length根据显存大小调整,显存越小调越小。min_interval根据音频的平均间隔调整,如果音频太密集可以适当调低。max_sil_kept会影响句子的连贯性,不同音频不同调整,不会调的话保持默认。其他参数不建议调整。点击开启语音切割,马上就切割好了。默认输出路径在output/slicer_opt。当然也可以使用其他切分工具切分。

切分完后文件在output\slicer_opt。打开切分文件夹,排序方式选大小,将时长超过 显存数 秒的音频手动切分至 显存数 秒以下。比如显卡是4090 显存是24g,那么就要将超过24秒的音频手动切分至24s以下,音频时长太长的会爆显存。如果语音切割后还是一个文件,那是因为音频太密集了。可以调低min_interval,从300调到100基本能解决这问题。实在不行用au手动切分。
3.3:音频降噪(如果原音频足够干净可以跳过这步,比如游戏中提取的干声)
如果你觉得你的音频足够清晰可以跳过这步,降噪对音质的破坏挺大的,谨慎使用。
输入刚才切割完音频的文件夹,默认是output/slicer_opt文件夹。然后点击开启语音降噪。默认输出路径在output/denoise_opt。

3.4:打标
为什么要打标:打标就是给每个音频配上文字,这样才能让AI学习到每个字该怎么读。这里的标指的是标注
如果你上一步切分了或者降噪了,那么已经自动帮你填充好路径了。然后选择达摩ASR或者fast whisper。达摩ASR只能用于识别汉语和粤语,效果也最好。fast whisper可以标注99种语言,是目前最好的英语和日语识别,模型尺寸选large V3,语种选auto自动。whisper可以选择精度,建议选float16,float16比float32快,int8速度几乎和float16一样。然后点开启离线批量ASR就好了,默认输出是output/asr_opt这个路径。ASR需要一些时间,看着控制台有没有报错就好了
如果有字幕的可以用字幕标注,准确多了。内嵌字幕或者外挂字幕都可以,教程使用字幕标注(更准确)

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

4:训练
4.1:输出logs
来到第二个页面,选择v4版本

先设置实验名也就是模型名,理论上可以是中文!打标结束会自动填写路径,只要点下一键三连就好了
4.2:微调训练

首先设置batch_size,sovits训练建议batch_size设置为显存的一半以下,高了会爆显存。bs并不是越高越快!batch_size也需要根据数据集大小调整,也并不是严格按照显存数一半来设置,比如6g显存需要设置为1。如果爆显存就调低。当显卡3D占用一直100%电脑卡的不行的时候就是bs太高了,使用到了共享显存,速度会慢好几倍。
以下是切片长度为10s时实测的不同显存的sovits训练最大batch_size,可以对照这个设置。如果切片更长、数据集更大的话要适当减少。
| 显存 | batch_size | 切片长度 |
| 6g | 1 | 10s |
| 8g | 2 | 10s |
| 12g | 5 | 10s |
| 16g | 8 | 10s |
| 22g | 12 | 10s |
| 24g | 14 | 10s |
| 32g | 18 | 10s |
| 40g | 24 | 10s |
| 80g | 48 | 10s |
关于高训练轮数:
你可能会看见有人会说训练了几百轮,几千轮的(几万轮那就是搞错了轮数和步数)。但高轮数并不就是好。如果要训练高轮数请先保证数据集质量极好,标注全都经过手动校对,时长至少超过1小时才有必要拉高轮数。否则默认的几轮效果已经很好了。
5:推理
5.1:开启推理界面
先点一下刷新模型,下拉选择模型推理,e代表轮数,s代表步数。不是轮数越高越好。选择好模型点开启TTS推理,自动弹出推理界面。如果没有弹出,复制http://0.0.0.0:9872到浏览器打开。

5.2:开始推理
最上面可以切换模型,在刚练完挑模型的时候很重要

然后上传一段参考音频,建议是数据集中的音频。最好5秒。参考音频很重要!会学习语速和语气,请认真选择。参考音频的文本是参考音频说什么就填什么,语种也要对应。在0217版本之后可以选择无参考文本模式,但非常不建议使用,效果非常拉胯,就几秒钟打个字的事就这么懒吗?而且注意:是无参考文本!不是无参考音频!参考音频无论什么情况都要的!
右上角有个融合音色的可选项,先将要融合的音频放在一个文件夹然后一起拖进去(没啥实用性的功能)
接着就是输入要合成的文本了,注意语种要对应。目前可以中英混合,日英混合和中日英混合。切分建议无脑选凑四句一切,低于四句的不会切。如果凑四句一切报错的话就是显存太小了可以按句号切。如果不切,显存越大能合成的越多,实测4090大约1000字,但已经胡言乱语了,所以哪怕你是4090也建议切分生成。合成的过长很容易胡言乱语。
0213版本加入了top_p,top_k和temperature,保持默认就行了。这些控制的都是随机性,拉大数值,随机性也会变大,所以建议默认就好
评论