上一篇文章《在modelscope(魔塔)部署GPT-SoVITS并实现网络穿透,可外部调用》中我们介绍了如何在魔塔平台搭建GPT-SoVITS工具,今天,我们就详细介绍一下如何训练出自己的声音,话不多说,那我们现在开始。
我们先大概介绍一下相关流程:第一步需要录一段自己或者喜欢的声音的录音作为训练集;第二步需要对录音中的背景音进行去除,提取人声;第三步对语音进行切分;第四步对切分好的录音再进行降噪处理;第五步再将降噪后的录音进行自动文本标注,生成标签文件;第六步将生成的标注文件进行人工矫正;第七步加载训练集;第八步选择与训练模型进行训练;第九步加载训练好的模型进行推理;其中1-7步是训练模型前期的训练集准备工作,8和9分别是训练和推理;
一、训练集准备
1.1 录音采集
可以通过一些电子设备进行声音采集,这里我选择使用手机上的录音功能录制了一段自己读文章的声音,导出格式为m4a;
1.2 人声伴奏分离
GPT-SoVITS使用了UVR5模型对音频信息进行人声伴奏分离;如下图操作:
1)勾选‘是否开启UVR5-WebUI’;
2)返回服务器界面,会看到如下图所示,服务器又新开了一个端口,我们把新开的端口同样进行网络穿透(网络穿透的教程详见《在modelscope(魔塔)部署自己的Stable-Diffusion-WebUI并实现网络穿透,可外部调用》这篇文章的第三章);
3)本地访问对应http地址,可以看到如下图界面;
4)按下图顺序依次执行对应操作,点击转换即可分离,查看对应输出文件夹是否有音频文件输出;
5)关闭该界面,同时回到服务器关闭对该端口的网络穿透,如下图所示,跳转到GPT-SoVITS-WebUI界面,点击关闭UVR5-WebUI;
1.3 语音切割
如下图所示,输入刚才分离出来的人声的文件路径或者文件夹路径,点击‘开启语音切割’;
1.4 语音降噪
如下图所示,输入切割后的文件夹路径以及输出路径,点击‘开启语音降噪’;
1.5 中文批量ASR(自动文本标注)
如下图所示,输入降噪输出文件夹路径为输入路径,定义输出路径,其余参数默认,点击‘开启离线批量ASR’,会在对应文件夹下生成一个.list文件;
1.6 语音文本矫正
1)如下图所示,先正确填写生成的.list文件的路径,然后勾选‘是否开启WebUI’,返回服务器界面,会看到又新开启了一个端口,同样将该端口进行网络穿透,在本地访问对应http地址;
2)本地访问后会出现如下所示Web界面,可以点击播放每一段音频,对前面的文本进行字词标点断句的矫正;其中Submit Text表示对修改内容在.list标签中更新,Delete Audio表示对红框5选中数据删除,Previous Index和Next Index分别表示前后翻页,Choose Audio表示对吐字不清,音质效果不好的数据选中删除;
3)完成之后关闭界面,回到服务器断掉该端口的网络穿透,再跳回GPT-SoVITS-WebUI界面,点击关闭‘打标WebUI‘;
1.7 训练集加载
回到界面最上方,点击‘1-GPT-SoVITS-TTS’,填写实验名,点击‘1A-训练集格式化工具’,填写.list文件路径,点击‘开启一键三连’;
二、模型训练
点击‘1B-微调训练’进入下图所示界面,根据自己显存大小和训练集数据量大小调整batch和epoch大小,依次点击‘开启SoVITS训练’、‘开启GPT训练’
三、模型推理
1)训练完成后点击‘1C-推理’,进入如下界面,添加刚才训练好的两个模型的路径,勾选‘是否开启TTS推理WebUI’;
2)返回服务器终端发现又新启了一个端口,同样进行网络穿透后本地访问,进入如下界面;
如上图所示,在红框1处上传一段相同音色的短音频,在红框2处填写该音频对应的文本,在红框3处选择上传文本的语种,在红框4处填写需要生成语音的文本数据,点击最下方的‘合成语音’即可在右下角生成对应红框4內文本的训练音色的音频数据;
自此,就完成了GPT-SoVITS模型从训练到推理的全部流程~