使用GPT-SoVITS克隆声音(AutoDL版)
本文最后更新于 291 天前,其中的信息可能已经有所发展或是发生改变。

GPT-SoVITS最近一直很火,可以用一分钟的数据集克隆出对应的声音,而且具有较高的音色还原度和准确度,那么今天就来玩一玩尝试一下

由于之前玩炼丹的时候还留下了很多余额,因此我们今天也会用到autodl来进行对应的算力支持,其较低的价格和现成打包好的项目都是一个很大的优势

准备

Autodl账号和对应的余额(不需要很多,熟练了一两块就够训练一次)

可以正常访问网络的环境

想要克隆的示例音频(在这里我使用了小鸟游星野的语音,因为大叔实在太!可!爱!了!不过实际操作中请注意版权问题)

训练

开机

首先我们进入autodl充值余额开机,你可以直接进入这里然后点击创建实例开机:CodeWithGPU | 能复现才是好算法

我这里选择了内蒙区的A5000,比较适中的价格和还可以的算力,非常完美,唯一美中不足的就是有的时候可能会没有卡

然后我们创建实例

由于是按量计费,请在这步后尽量抓紧时间你也可以选择在配环境阶段无卡开机,这样比较便宜

基础操作

我们在开机后首先需要打开Autopanel和JupyterLab,前者用来关联网盘(建议阿里网盘),后者用来操作模型的训练

然后我们打开JupyterLab,正式开始训练

终端中输入

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

WebUI所有新窗口均使用public URL的gradio地址打开,点击下面那个链接就会弹出网页,不是上面那个9874的链接。

数据集准备

我准备的是直接提取自游戏的干净原声,因此我不需要进行提取人声的操作,详细请看官方wiki:AutoDL教程(只要几块钱,方便) · 语雀

然后我们进行切分,从这步开始我们会用到显卡,因此之前用无卡模式运行的可以正常有卡开机了

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

输入路径是上面的原音频的文件夹路径,如果刚刚经过了UVR5处理那么就是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。打开切分文件夹,排序方式选大小,将时长超过 显存数 秒的音频手动切分至 显存数 秒以下。比如显卡是A5000 显存是24g,那么就要将超过24秒的音频手动切分至24s以下

这步完成后我们进行打标操作,默认路径是/root/GPT-SoVITS/output/slicer_opt(如果是外语如日语等建议手动上传打标或者可以使用这个工具)

终端中出现进度条表明操作正确,稍后结果会输出在.../output/asr_opt中

我因为是日语dataset,需要使用日语模型,因此参考这个在本地进行了打标操作

然后为了提高我们的训练效率和提升训练成果,我们进行对应的校对操作(非必须,但建议)

我们输入上一步拿到的打标list点击下面的打开webui,点击终端里的链接开始进行校对工作

完成保存即可,最后会得到这个list文件

训练

首先进行输出list,看这张图就好

然后点击一键三连,等待显示一键三连进程结束的时候进入下一个选项卡

首先设置batch_size,建议batch_size设置为显存的一半,高了会爆显存bs并不是越高越快! GPT模型训练的时候可以把bs再调低点。

接着设置轮数,SoVITS模型轮数可以设置的高一点,反正训练的很快。GPT模型轮数千万不能高于20(一般情况下)建议设置10。然后先点开启SoVITS训练,训练完后再点开启GPT训练,不可以一起训练(除非你有两张卡)!如果中途中断了,直接再点开始训练就好了,会从最近的保存点开始训练。

训练的时候请打开AutoPanel看显卡占用。爆显存了就调低bs。或者存在过长的音频,需要回到2.4步重新制作数据集。

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

至于更加详细的数据就需要参考相关论文和文章了

我的设置

训练中...

推理

首先进入第三个选项卡,选择对应的GPT模型和soVITS模型,并开启TTS推理WebUI,然后进入终端中显示的地址打开对应的ui,进行填写即可

上传一段参考音频,建议是数据集中的音频。最好5秒参考音频很重要!会学习语速和语气,请认真选择。参考音频的文本是参考音频说什么就填什么,必须要填。语种也要对应

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


折腾了一天,其实星野这个数据集由于她的音色非常独特还是非常难练的,明天再试试练一个其他的角色吧。哦对,明天还会被unity暴打捏(笑

博客内容均系原创,未经允许严禁转载!
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇