一直想知道自己的声音唱歌到底是什么感觉?于是我想到了声音克隆。
So-VITS-SVC,可以通过对较少的人声样本进行训练,进而替换一段音频中人说话的音色,快速实现使用自己声音进行AI唱歌的效果,效果相当逼真。
So-VITS-SVC是一个开源项目,所以接下来,将完整演示这个项目操作流程,你可以完全按照我的这个流程复刻这个项目,实现你的第一首歌。
这个项目的核心主要分为以下七步:
- 准备声音素材
- 租用GPU
- 数据集处理
- 模型训练
- 模型加载
- 声音合成
- 模型保存
一、准备声音素材
要进行模型的训练,我们需要干净的数据集,你可以选择自己的声音,也可使用其他的声音来源,但无论何种方式,都请自行解决数据集授权问题。
如果你要使用自己的声音训练,就需要录制自己的声音素材,有专业的录音设备效果肯定会更好,当然大部分人可能和我一样没有,那就直接使用手机录音机录制
录制本身没有太多的要求,保证自己所处的位置足够安静即可,保证内容流畅,有可能的话可以使用耳机或者麦克风,录音效果会更好一些,录音之前,记得将自己的录制音频格式设置为wav格式。
![图片[1] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-516x1024.png)
录制的时间长短各异,个人觉得10min即可,录制完成后,发送到电脑即可,注意自己的声音文件的命名,不要使用中文
这样我们的原始数据集就准备完成,我准备的是一份9分半的wav音频文件。
![图片[2] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-1.png)
备注:数据集在整个训练的过程中发挥着决定性的作用,所以质量一定要保证,可以稍微短一些,但一定要足够的清晰,质量要高
此外,为了更好的实现唱歌的效果,尽可能在声音素材中能够有比较宽的音域,否则可能像我使用的普通阅读的声音,最后在训练过程中,高音无法上去一直破音,只能简单做一些音调不那么高的歌曲,这十分十分重要!
二、租用GPU
模型的训练对于电脑的性能要求还是比较高,这里选择AutoDL云服务进行训练,自行注册即可,这里不多赘述
AutoDL官网:https://www.autodl.com/home
付费使用,首次使用需要充值,根据自己的使用情况充值即可
打开算力市场,在北京C区下,租一张V100-32GB,GPU可能比较紧张,出现显示无空闲GPU的情况,这里只能疯狂刷新几次,等待空闲的GPU出现。
1. 选择空闲的GPU,开始准备部署
![图片[3] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-2-1024x503.png)
2. 选择对应的主机,下拉找到镜像-社区镜像,搜索So-VITS-SVC,找到svc-develop-team/so-vits-svc/so-vits-svc-4.1-Stable,选择最新的V13版本,立即创建即可
![图片[4] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-3-1024x503.png)
3. 耐心等待镜像创建和开机
![图片[5] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-4-1024x81.png)
4. 开机完成后,点击JupyterLab打开
![图片[6] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-5-1024x108.png)
三、数据集处理
打开后,默认打开dataset_maker.ipynb文件,直接按照步骤开始处理即可,这里为了演示,也会按照步骤一个一个进行操作
![图片[7] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-6-1024x503.png)
选中单元格,点击上方运行命令,即可执行单元格代码,后续运行的方式一致。
1. 将项目移动到数据盘节约空间
![图片[8] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-7-1024x563.png)
2. 运行完成后,即可在autodl-tmp文件夹下看到以下两个文件,分别对应人声提取项目(MVSEP-MDX23-Colab_v2)和声音切割(audio-slicer)项目。
![图片[9] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-8.png)
3. 继续运行命令,进入项目文件夹中
![图片[10] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-9-1024x326.png)
4. 打开autodl-tmp/MVSEP-MDX23-Colab_v2/input/文件夹,选择上传我们准备的原始音频文件,耐心等待上传完成
![图片[11] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-10-1024x503.png)
5. 上传完成后继续执行,将声音进行音频分离
![图片[12] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-11-1024x667.png)
6. 处理完成后,打开output文件,可以看到两个音频文件intrum和vocals,分别对应环境音和人声
![图片[13] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-12.png)
7. 继续执行命令,将已经分离好的音频,转移到声音切割项目文件夹下
![图片[14] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-13-1024x119.png)
8. 执行音频切割命令
![图片[15] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-14-1024x113.png)
9. 显示切割完成后,打开文件夹,检查切割数据是否正常
![图片[16] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-15-1024x156.png)
10.打开audio-slicer文件,可以下载音频试听效果
![图片[17] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-16.png)
注意为了保证后续的工作质量,切割完成后一定自己检查一遍文件的质量,确认切割的没有问题
11. 没有问题,直接右键复制output文件文件到so-vits-svc/dataset_raw/下,并重命名一下文件,这里重命名为sanshi,注意不要使用中文
![图片[18] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-17.png)
这样我们的数据集就准备好了,后续的命令不继续执行
四、模型训练
1. 开始进行数据训练,打开quickly.ipynb文件逐步运行
![图片[19] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-18-1024x721.png)
2. 移动项目文件夹到数据盘以节约系统盘空间。
![图片[20] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-19-1024x82.png)
3. 进入到项目文件夹中
![图片[21] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-20-1024x99.png)
4. 逐步执行重采样,编码器,f0预测器命令
![图片[22] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-21-1024x143.png)
![图片[23] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-22-1024x349.png)
![图片[24] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-23-1024x611.png)
5. 等以上命令全部完成,即可开始主模型训练,等待Epoch轮数出现时,表示模型已经开始训练。
![图片[25] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-24-1024x709.png)
6. 训练的过程中,不需要关注轮数,只要看步数即可,每到指定步数会自动保存模型到44k文件夹下。
![图片[26] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-25-1024x358.png)
终止后重新开始训练会接上上次的训练位置继续,所以不用担心训练一半后丢失。
五、模型加载
关于模型的训练效果,没有绝对的说法,大家可以在训练到一定阶段后,开始测试模型效果
1. 首先进入autodl-tmp/so-vits-svc文件夹,然后再点击加号打开启动页,选择终端进入
![图片[27] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-26-1024x486.png)
2. 运行命令
python app.py
3. 运行后,会分别给出local URL和public URL的WebUI链接
![图片[28] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-27-1024x486.png)
4. 先不要着急打开,我们回到控制台,找到租用的GPU,选择自定义服务
![图片[29] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-28-1024x262.png)
5. 下载Tools文件文件进行,默认安装
![图片[30] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-29.png)
6. 安装成功后打开,分别复制登录指令和密码,端口对应local URL末尾的端口号,默认为6006,点击开始代理
![图片[31] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-30-1024x406.png)
7. 开始代理打开后,我们再复制Local URL:http://127.0.0.1:6006到浏览器新窗口打开,即可进入下面的页面
![图片[32] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-31-1024x503.png)
注意:这里没有使用public URL,因为我发现使用public URL会导致后续文件上传超时报错,所以选择local URL。
8. 模型选择最新训练的最好的模型,同时选择config.json
![图片[33] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-32-1024x331.png)
9. 设置好以后,点击加载模型,等待10s后,显示模型成功加载
![图片[34] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-33-1024x173.png)
六、声音合成
模型加载完成后,即可开始声音合成,我们需要找到自己想要翻唱的歌曲音频文件,进行声音分离
1. 歌曲的下载这里可以选择歌曲宝等找到自己想要的音乐进行下载,完全免费
MyFreeMP3: https://tools.liumingye.cn/music/#/
歌曲下载成功之后,同样需要对音频文件进行人声和伴奏的分离,可以继续使用MVSEP-MDX23-Colab_v2分离
2. 我们继续回到数据处理项目的文件夹下,打开autodl-tmp/MVSEP-MDX23-Colab_v2/input文件夹,上传我们下载好的音频文件
备注:可以将原始的声音素材文件删除,只保留我们的音频文件,注意上传的音乐文件不要使用中文命名
![图片[35] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-34-1024x490.png)
3. 分别按照顺序执行两个命令
![图片[36] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-35-1024x447.png)
4. 执行完成后,打开output文件夹,下载分离后的vocals文件即可(vocals对应人声,instrum对应环境音)
![图片[37] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-36.png)
备注:以上步骤为了简便使用项目的分离方式,大家也可以自行选用万兴,剪影等工具进行人声和伴奏分离以获得更好的效果
5. 分离完成后将选择单个音频上传,f0选择器可以先选择rmvpe,其他数据保持默认即可,点击音频转换,即可开始生成
![图片[38] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-37-1024x503.png)
6. 预计需要2~3mins转换成功,试听效果完成!
![图片[39] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-38-1024x144.png)
部分情况下,可能出现哑声的情况,就是训练后输出的文件并没有声音,可以通过修改f0预测器,或者更改其他的模型文件,再次尝试
7. 可以自己下载文件,将自己合成的音乐和原来的伴奏结合,重新生成文件,音乐合成也不是我擅长的领域,所以无法分享更多
七、模型保存
由于目前的所有工作都在云服务端完成,面临着数据丢失的风险,所以可以将文件将我们训练好的模型文件保存起来,方便下次使用,这里有两种方式可以选择:
方法一:保存到本地
1. 打开文件夹:autodl-tmp/so-vits-svc/logs/44k
![图片[40] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-39.png)
2.选择需要保存模型,直接右键下载到本地,注意同时保存D_9600.pth文件和G_9600.pth两个文件。
![图片[41] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-40.png)
下次在别的GPU打开时,可以直接使用已经训练好的模型进行声音合成
方法二:保存在网盘
1. 点击AutoPanel
![图片[42] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-41-1024x136.png)
2. 选择公网网盘,首次访问需要设置一个密码
![图片[43] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-42-1024x510.png)
3. 设置好之后进入,选择阿里云盘,扫码授权登录
![图片[44] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-43-1024x510.png)
4. 点击上传,找到模型的存放位置,上传至云盘保存
![图片[45] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-44-1024x510.png)
5. 传输任务中可查看传输进度
![图片[46] - 五音不全?用AI唱出你的第一首歌!| 保姆级教程](https://www.aibetas.com.cn/wp-content/uploads/2024/02/image-45-1024x201.png)
模型保存成功之后,我们的整个流程就全部完成了,最后记得在控制台选择关机,释放GPU,否则会一直烧钱。
结语
声音克隆是一个十分有趣的项目,声音是数字生命中不可缺少的一环,或许它不仅仅是帮我们实现唱歌的梦想,还可以借助它来纪念那些我们深爱的已经离我们远去的人,让他们的声音重现,AI给了我们无限的可能!
已经看到这里了,如果这篇文章对你有帮助,欢迎点赞,分享,在看!👇
暂无评论内容