查看原文
其他

教你打造属于自己的AI孙燕姿,AI歌手模型使用及训练保姆级课程 #2/2 训练模型

op7418 歸藏的AI工具箱 2023-05-09


前几天在B站刷到AI孙燕姿唱的《黑色毛衣》,让我听傻了,还原度还能这么高的。于是就研究了一下,做了几段居然效果还行,可以在这里听《爱得太迟》。  

简单解释一下,这个项目分为两个部分,模型的使用和模型的训练,模型使用的话对电脑的要求不是很高基本上差不多点的N卡都可以,模型的训练其实对显卡要求还挺高的小于6G会有各种各样的问题,当然也能炼,不过太麻烦了不建议。  

今天上午我更新了这个教程的第一个部分《教你打造属于自己的AI孙燕姿,AI歌手模型使用及训练保姆级课程 #1/2 使用模型》如果还没有看的话可以先看一下,有一部分内容这节也会用到。  

主要使用的是So-VITS-SVC 4.0这个项目,github地址是:https://github.com/svc-develop-team/so-vits-svc  

我这里会使用整合包来推理(使用模型)和训练,目前B站有两个作者做的整合包分别是羽毛布団的和领航员未鸟的我把视频地址都放在下面。希望各位去视频给个三连毕竟用了人家的劳动成果。  

两位的视频教程也很好,我这边主要会更详细一些,会补充一些两位没说到但是有坑的地方。这次课程我使用的主要是羽毛布団的整合包,我把所有需要下载的都打包了。  

羽毛布団:https://www.bilibili.com/video/BV1H24y187Ko/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=e99f85042059f2864f5cca20d71575f0  

领航员未鸟:https://www.bilibili.com/video/BV1Eb411f7gX/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=e99f85042059f2864f5cca20d71575f0  

所需软件和模型下载(百度云):https://pan.baidu.com/s/1n_3j9NCAn5LwU8mb3IGCMg 提取码:回复提取码获取。  

训练模型

接下来正式开始训练模型的部分,训练模型主要有两个步骤分别是数据准备和模型的训练。  

数据准备

首先我们需要准备你训练的人的声音素材,尽量找质量比较高人声比较清晰的音频。  

我们就以歌手为例子,歌手的声音素材是比较好找的,因为他们的歌就是天然的素材,我们在训练的时候最少要准备30分钟以上的人声素材,一般一个小时到两个小时最好。但是声音的质量大于时间长度,不要为了凑数搞一些质量不那么好的素材。  

在准备好足够的声音素材之后我们开始对素材进行处理,跟第一期一样,先把我们的素材转换为WAV格式,批量转换的话还是用格式工厂之类的本地软件比较快。  

获取到我们个WAV格式素材之后,继续进行跟上午一样的步骤去掉我们素材的伴奏以及混响之类的声音,只留下单纯的人声。  

这里我们还是使用UVR_v5.5.0这个软件每个素材都进行两次处理。  

在Select Input选择你需要处理的音频文件,处理完成后你可以在Output的文件夹下面找到处理完成的文件,后缀有(Vocals)就是人声,后缀为(Instrumental)就是伴奏,伴奏先不要删,我们后面合成的时候还需要。  

下图为第一次处理UVR的参数:  

完成第一次处理后我们再调整参数进行第二次处理,下面是第二次处理需要的参数设置:  

处理完成后扔掉分离出来的伴奏,只留下人声素材,整理好备用。类似我下图这样扔到一个文件夹里。  

接下来我们要对处理好的人声文件进行分割,因为如果训练的时候每段文件过长的话容易爆显存。  

这个时候就要用到下载文件里的【slicer-gui】这个软件了,它可以自动把声音素材分割成合适的大小。我们先打开slicer-gui,刚开始的参数按我的来就行。  

把你你准备好的人声素材拖到【Task List】里面,在Output位置设置好输出文件夹的位置,然后点Start就可以开始分割了。  

处理好的文件,基本上就是下面这个文件的样子,处理完成后在输出文件夹把文件从大到小排序,看一下最大的文件时多长的,分割完的素材每一段尽量不要超过15秒。不然有可能会爆显存。  

如果你发现有几条素材比较大的话可以拖进slicer-gui里面重新分割一下,参数按我下面图片设置就行。  

所有数据处理好之后,我们准备开始训练了首先需要把准备好的素材移动到\so-vits-svc\dataset_raw这个文件夹下,注意不要直接把素材放在dataset_raw文件夹里,拿个文件夹装好放进去,所有的目录不要有中文字符。  

模型训练

我们开始模型训练,运行so-vits-svc根目录的【启动webui.bat】打开Web UI界面,切换到训练Tab下面。然后点击识别数据集,这时候上面就会展示你数据集文件夹的名字,也会是你模型的名字。  

之后就是选择与训练分支了,【vec768-layer12】好像效果会好一些,所以这里我选了这个分支。后就是点击【数据预处理】。  

注意这里有个大坑,昨天折腾了我好久,你需要看一下你数据集里面有多少条数据,如果有几百条的的话,你需要把虚拟内存调大点,至于如何调整虚拟内存,这个百度就行,有很多教程。  

给个参考我的数据集是300多条,我把虚拟内存调到100G才能保证顺利处理完,不会中途蓝屏。  

开始数据预处理之后这个框会有非常多的信息,基本都是进度到百分之几了,如果预处理出错,在这个框的最后会展示报错信息,如果没错这个回显的基本就到100%就结束了。  

如果你数据预处理完了,不想看那一堆信息的话可以点那个【清空输出信息】。  

数据处理完之后我们来看一下下面的几个参数,调整一下,准备开始训练。  

每多少步生成一次评估日志这里,用默认的200步就行  

【每隔多少步(steps)验证并保存一次模型】这里默认的800步也就够了,他的意思是每训练800步就会保存一次模型,这个保存的模型你是可以用的。  

【仅保留最新的X个模型】这个就是字面意思如果每800步保存一次模型的话,你训练到8800的时候第800步的模型就会被自动删除,一个模型大概有1G左右这里看你的硬盘。如果设置成0的话就永远不会自动删除。  

【批量大小】这个参数跟你的显卡的显存有关,6G建议是4,我的4070Ti是12G我昨天设置的8,我有点怂,其实12也行,我怕爆显存。  

上面几个参数设置完之后,我们选择当前训练分支跟我们数据预处理的时候的一致就行,然后点击写入配置文件,输出信息那里会有写入的结果,如果有报错也会显示在那里。  

如果你是第一次训练点击这个【从头开始训练】就行,如果你之前训练过你还想继续训练的话就点这个【继续上一次训练进度】。如果你之前有训练进度,然后你点了【从头开始】的话你的训练进度就会被清空,从新开始从第0步训练。  

在你点击按钮之后会弹出这样一个弹窗里面就是训练进度,我框起来的地方就是每200步输出的信息,那个loss的值就是判断模型质量好坏的标准,越低越好,如果你觉得现在的已经可以了的话按CTAL+C键就会停止训练,你可以去推理tab下尝试你的模型,如果不满意还是可以重新回来训练的。  

注意你如果设置的每800步保存的话起码要到800才能暂停训练,不然没有保存的模型供你使用。下面这个图就是模型已经保存的提示。  

如果你觉得可以了暂停训练之后回到推理 Tab 就能看到你刚才训练的模型了,可能会有好几个因为你选的最多保留十个。按照我们第一期的内容正常使用就可以了。  

以上就是AI歌手的最后一部分内容了,感谢各位,如果觉得对你有帮助的话可以帮助藏师傅转发传播。     


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存