AutoDL算力云租显卡,运用GPT-SoVITS完成语音合成

⚠️警告⚠️

严禁将此技术用于违法犯罪!否则后果自负!与站长无关!

教程

首先,打开AutoDL算力云官网,注册,充个几块钱(第一次多充一点,避免训练过程中直接停机)

点击租用新实例,以租显卡。

官方测试通过3080ti,推荐租用:A5000(性价比最高)、3080*2(双卡性价比最高)、4090、3080ti。如果没显卡了就换个区租,一般4090最多。(不建议租4090D又差又贵)

下面镜像选择社区镜像,搜索GPT-SoVITS会出来一堆镜像,选择用户RVC-Boss上传的镜像,版本选择最新的。

录一些人声或者动漫角色的声音,存到阿里云盘里,

开机后点JupyterLabAutoPanelJupyterLab就是操作界面AutoPanel用来网盘传东西。下载好阿里云盘App,点击右上角的扫一扫,点击公用网盘,设置授权密码(随便设),扫一下二维码。下载好你录制的声音。

然后来到JupyterLab打开的页面,在终端中输入

echo {}> ~/GPT-SoVITS/i18n/locale/en_US.json && source activate GPTSoVits && cd ~/GPT-SoVITS/ && python webui.py

稍等片刻,命令行里会出现一段网址,在此之前,看,左边是文件管理器,回到最开始的菜单,点击autodl-tmp,这是数据盘,下载的东西默认都在这里。右键复制路径到网页端粘贴路径进去的要在路径前加上/root/,例如:复制的路径是autodl-tmp/1.wav,那么就要加上/root/变成/root/autodl-tmp/1.wav。autodl里的所以路径都要加上/root/

这下可以打开那个网址啦

UVR5提取人声

先用HP2模型处理一遍(提取人声),然后将输出的干声文件再用onnx_dereverb最后用DeEcho-Aggressive(去混响),输出格式选wav。输出的文件默认在GPT-SoVITS-beta\GPT-SoVITS-beta\output\uvr5_opt这个文件夹下,处理完的音频(vocal)的是人声,(instrument)是伴奏,记得把instrument删掉。结束后记得到WebUI关闭UVR5节省显存。

如果没有成功输出,报错了。那么推荐使用下面一种方法——UVR5客户端。(✅可能兼容性有问题,但是效果是和UVR5对齐的,不要瞎黑内置工具效果有问题)

报错原因一般是音频太短了,导致音频缓冲区爆了。也有一些是因为显卡性能不够的。如果报错,请访问https://www.bilibili.com/read/cv27499700/进行本地训练,对电脑要求可能较高,这里不过多赘述

切分

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

打标

路径输入就是上面的切片输出路径,默认是/GPT-SoVITS/output/slicer_opt,还是记得要加上/root/。终端中有进度条就说明在跑,不在跑就会Error报错如果有字幕的可以用字幕标注,准确多了。内嵌字幕或者外挂字幕都可以,教程https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/pqn7zn003kduyye2?singleDoc#,不过多赘述。

标注文件默认在otput/asr_opt

校对(费时费力,可以跳过)

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

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

训练:输出logs

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

首先设置batch_size,建议batch_size设置为显存的一半,高了会爆显存。bs并不是越高越快!GPT模型训练的时候可以把bs再调低点。接着设置轮数,SoVITS模型轮数可以设置的高一点,反正训练的很快。GPT模型轮数千万不能高于20(一般情况下)建议设置10。然后先点开启SoVITS训练,训练完后再点开启GPT训练,不可以一起训练(除非你有两张卡)!如果中途中断了,直接再点开始训练就好了,会从最近的保存点开始训练。训练的时候请打开AutoPanel看显卡占用。爆显存了就调低bs。或者存在过长的音频,需要回到2.4步重新制作数据集。训练完成会显示训练完成,并且控制台显示的轮数停在设置的(总轮数-1)的轮数上。

推理:打开推理界面

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

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

推理:开始推理

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

然后上传一段参考音频,建议是数据集中的音频。最好5秒。参考音频很重要!会学习语速和语气,请认真选择。参考音频的文本是参考音频说什么就填什么,必须要填。语种也要对应接着就是输入要合成的文本了,注意语种要对应。目前可以中英混合,语种选择中文,日英混合,语种选择日文。切分建议无脑选50字一切,低于50字的不会切。如果50字一切报错的话就是显存太小了可以按句号切。如果不切,显存越大能合成的越多,实测4090大约1000字,但已经胡言乱语了,所以哪怕你是4090也建议切分生成。合成的过长很容易胡言乱语。如果出现吞字,重复,参考音频混入的情况,这是正常现象。不是模型炼差了,不用为模型担心。改善的方法有使用较低轮数的GPT模型、合成文本再短点、换参考音频。官方也在努力修复这个问题。

下载模型到本地

回到AutoPanel—公网网盘点击上传,打开/root/GPT-SoVITS/GPT-weights和SoVITS这两个文件夹,分别将模型上传

上传成功会这样

关机

关机!关机!关机!关机!关机!关机!否则余额马上就会被扣完!

问题

更多问题请到GPT-SoVITS教程官网https://www.yuque.com/baicaigongchang1145haoyuangong/ib3g1e/tkemqe8vzhadfpeu

广告

制作不易,请大家多多支持,多多分享,谢谢大家!

(本文章部分照抄于网络)

阅读剩余
THE END