文章目录
- 1. 简介
- 2. 资源合集
- 3. 准备数据集
- 3.1. 人声分离
- 3.2. 音频进行切片化处理
- 3.2.1.
- 3.3. 数据集存放格式要求
- 4. 训练
- 4.1. 启动web UI.bat
- 4.2. 识别数据集
- 4.3. 数据预处理
- 4.4. 设置训练超参数
- 4.4.1. 选择模型分支
- 4.5. 进行训练
- 4.5.1. 关于显存的说明
- 5. 推理
- 5.1. 加载模型
- 5.1.1. 加载模型配置
- 5.2. 上传音频进行推理
1. 简介
- 如果我们想要克隆孙燕姿的声音,整体的思路很简单,首先找一些孙燕姿唱歌时没有伴奏的人声,然后把这个声音放到模型中进行训练拟合,让AI学习说话的这种声线风格,最后使用这个训练出来的模型进行推理和风格迁移,这样一首孙燕姿唱其他人歌曲的音频就制作出来了。
2. 资源合集
- 原始项目:GitHub – voicepaw/so-vits-svc-fork: so-vits-svc fork with realtime support, improved interface and more features.
- 懒人包:pan.baidu.com/s/12u LDyb5KSOfvjJ9LVwCIQ?pwd=g8n4
- 炼丹百科全书
3. 准备数据集
- 用于训练的音频数据集应该切分为10秒的音频,太长的话会爆显存
- 数据集是越多越好,但一般情况下,如果想要得到一个比较好的训练效果的话,有200段10秒的片段应该就差不多了
3.1. 人声分离
- 一般使用spleeter来完成这个工作
GitHub boy1dr/SpleeterGui: Windows desktop front end for Spleeter AI source separation
3.2. 音频进行切片化处理
- 使用[Audio Slicer](…/…/…/…/…/…/…/…/…/音频/音频切片/Audio Slicer.md)来完成这个工作
github.com/openvpi/audio slicer
3.2.1.
3.3. 数据集存放格式要求
- 将所有数据集放到dataset_raw文件夹下
4. 训练
4.1. 启动web UI.bat
- 之后会自动弹出一个训练网页
- 127.0.0.1:7860/
- 训练的时候需要有一张支持cuda的N卡,显存要求6gb以上
4.2. 识别数据集
- 点击训练选项卡中的识别数据集,
- 就会自动识别到我们刚才放到dataset_raw文件夹下面的音频文件
4.3. 数据预处理
- 这个数据预处理很简单,只需要点击这个按钮选项即可开始进行处理
预处理完结束之后,检查一下是否有对应的报错信息。 - 正常情况下,预处理结束之后,会生成非常长的一段过程信息,简单检查一下即可,如果没有报错的话,就证明这个预处理是成功的
- 那么我们就可以把这个输出信息给清空,会方便接下来的操作显示
4.4. 设置训练超参数
- 这里的超参数可以自行设置,也可以直接使用默认的参数
4.4.1. 选择模型分支
一共有两个分支,一个是v1,另一个是vec768-layer12,目前说来,应该是第二个分支效果更好,但是没有经过广泛验证。总体来说比较玄学,选择哪一个都可以
如果GPU显存不是特别大的话,把这个Batch Size设的小一点,6G显存就设置为4即可
同时,为了减少显存占用,可以使用半精度进行训练
检查训练分支以及说话人列表
如果所有的参数都设置正确的话,点击这个写入配置文件,才可以让上面选项生效
4.5. 进行训练
点这个训练按钮就可以开始训练了,训练过程中会弹出来一个黑色的命令行窗口,
上面会有很多信息,其中我们主要关注这个reference_loss这个值是越低越好的,如果它的值可以在20以下的话,那么表示他的模型是相当不错的
需要说明的是,这个训练是不会自动充值的,需要你自己根据损失值来判断是否已经训练合乎要求了
4.5.1. 关于显存的说明
这样的过程中,如果爆显存了,那么就把这个数据集的切片设的更短一点,每段都设成5秒应该就够了
- 如果这样显存依然不够用的话,那么可以去云端租借一张GPU卡片
我这边使用的是6G显存Batch Size为1的时候占用了3个G的显存 - Batch Size为2,占用显存为4590,
- Batch Size为6,占用显存为5623
- 训练完成后,模型会保存在logs文件夹下面
5. 推理
5.1. 加载模型
- 训练完成后,回到推理的选项卡上面
5.1.1. 加载模型配置
如果是刚训练完,那么模型和配置文件的路径都是正确的。如果是从外部转移过来的的话,那么需要放到对应的位置才行
- 这个配置文件的路径是为 G模型和Kmeans聚类模型:logs\44k;配置文件:configs,
- 如果路径不是这个的话,是读取不到的
模型参数选择 - 这模型选择的是G打头的文件,后面的这个数字就是他的训练步数
- 点完之后点击加载模型,稍等一会儿,这个模型就可以加载到自己的显卡上面了
5.2. 上传音频进行推理
加载完模型之后,上传一段去除了背景声的音频,之后点击这个音频转换
推理完成后,点击这里进行试听
如果确定是自己想要的效果的话,点击音频右边的三个点进行下载
需要注意的是,这里是纯人声,并没有伴奏,之后可以把它导入到PR或者一些类似的处理软件中进行声音的合成
之后就可以导出来或者发布到其他平台上了
(img-L8NnbjCy-1683636718490)]
- 需要注意的是,这里是纯人声,并没有伴奏,之后可以把它导入到PR或者一些类似的处理软件中进行声音的合成
[外链图片转存中…(img-4E0VZD7i-1683636718490)] - 之后就可以导出来或者发布到其他平台上了