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