GPT-SoVITS V2教程
OnethingAI
发布于:2025-06-24
一、简介
项目地址: https://github.com/RVC-Boss/GPT-SoVITS
这次V2更新了以下功能
1.支持韩语及粤语
2.更好的文本前端
3.底模由2k小时扩展至5k小时
4.对低音质参考音频(尤其是来源于网络的高频严重缺失、听着很闷的音频)合成出来音质更好
从v1环境迁移至v2
1.需要pip安装requirements.txt更新环境
2.需要克隆github上的最新代码
3.需要从huggingface 下载预训练模型文件放到GPT_SoVITS\pretrained_models\gsv-v2final-pretrained下
中文额外需要下载G2PWModel_1.1.zip(下载G2PW模型,解压并重命名为 G2PWMode1,将其放到 GPT_SoVITS/text 目录下)
*前置工作(很重要)
由于云端部署的webui和本地的差异,导致云端无法在开启达标等环节自动跳转到对应页面。需先通过公网服务配置3个端口的公网访问能力。 1,控制台打开公网访问,选择TCP
2,配置3个端口9873(uvr5)、9872 (推理)、9871(打标)
二、案例说明
步骤一,选择镜像创建实例
进入镜像中心
选择【GPT-SoVITS V2】镜像创建实例 + 推荐使用4090显卡
步骤二,进行语音处理
V2的版本主要操作为:数据集处理、模型训练、推理三大部分
2.1、前置工作
打开【GSWebUI】页面和【查看日志】页面
GSWebUI为GPT-SoVITS的工具页面
查看日志,是为了查看操作中的进度使用
2.2、人声分离处理
如果你的音频有混响、伴奏、嘈杂的背景音,可以开启UVR5工具进行处理,点击【开启UVR-WebUI】按钮,日志上会输出UVR-WebUI的页面端口号【9873】
通过第一步添加的9873 公网访问地址访问
进行人声音分离处理
1、选择模型,模型的介绍可以看
2、上传音频文件
3、选择生成格式
4、点击转换
文件管理可以访问这个目录下,就可以看到转换后的文件了
/workspace/output/uvr5_opt
2.3、语音切分
返回GPT-SoVITS WebUI
1、填入需要处理的音频路径,可以输出刚才已经分离好的音频路径,如/workspace/output/uvr5_opt
2、点击开启语音分割
3、切割好后,会提示“切割结束”
4、可以在/workspace/output/slicer_opt目录下查看切换后的语音文件
2.4、语音降噪
如果音频相对干净,可以跳过这个步骤
如果使用默认的路径,可不用修改(如果是自定义的话,需要修改)。直接点击【开启语音降噪】按钮,开始处理
可在/workspace/output/denoise_opt目录下查看处理后的音频文件
降噪处理完成后,会提示任务完成
2.4、离线ASR
默认是降噪文件夹,如果没有进行降噪处理的话,可自行填写之前切分的音频路径
默认为中文,如果是其它语言需要切换为多语种模型
设置完成后,点击开启离线批量ASR处理
处理完成后,会生成打标文件,路径为/workspace/output/asr_opt/denoise_opt.list
如果需要精调打标,需要开启打标WebUI进行处理,端口为【9871】,请使用公网访问后,生成的地址进行浏览器访问(这一步非常耗时,如果不追求极致的话可以跳过)
2.5、调整数据集
进入GPT-SoVITS TTS页面
这里输入模型名称,不要中文,会出错
确认标注文件路径
设置好后,点击一键三连
处理完成后,可在
2.6、训练模型
进入微调训练标签页面下面
1、确认模型名称
2、先进行SoVITS训练,可以观察日志中的训练进度,训练完成后会提示“SoVITS训练完成”
3、再进行GPT训练
2.6、推理(语音合成)
切换至1C 推理标签页面下
1、点击【刷新模型路径】加载训练好的模型
e代表轮数,s代表步数
2、开启TTS推理WbeUI
使用文件管理功能,从这个路径下/workspace/output/denoise_opt,下载分离好的人声部分到本地
浏览器打开第一步配置的9872 对应的公网地址访问
1、上传刚才下载的好音频文件
2、参考音频的文本,音频文本怎么获取
在/workspace/output/asr_opt的denoise_opt.list
复制文案粘贴到参考音频的文本框里(写音频所表达的文字内容)
3、输入合成的文案(写自己的文字内容)
输入完成后,点击【合成语音】按钮,等待生成音频
缺失包的安装,如果处理多语言遇到日志提示如下:
可控制台打开终端小工具解决,打开终端后,在终端输入:
plain python -m nltk.downloader averaged_perceptron_tagger_eng
如果需要其他包,则将上面averaged_perceptron_tagger_eng 替换为对应包即可