如何训练一个RVC模型?
如何训练一个RVC模型?
RVC(Retrieval-based Voice Conversion)模型是一种基于检索的语音转换模型,能够实现高质量的音色转换。本文将详细介绍如何训练一个RVC模型,包括数据收集、处理、训练等关键步骤。
该项目的一些特点
- 使用top1检索替换输入源特征为训练集特征来杜绝音色泄漏
- 即便在相对较差的显卡上也能快速训练
- 使用少量数据进行训练也能得到较好结果(推荐至少收集10分钟低底噪语音数据)
- 可以通过模型融合来改变音色(借助ckpt处理选项卡中的ckpt-merge)
- 简单易用的网页界面
- 可调用UVR5模型来快速分离人声和伴奏
- 使用最先进的人声音高提取算法InterSpeech2023-RMVPE根绝哑音问题。效果最好(显著地)但比crepe_full更快、资源占用更小
- A卡I卡加速支持
准备:开始
首先,你需要明确训练目标音色,这个音色需要是真实存在的,可以是某款游戏或者动漫、电影里的某一个人物,并且能够收集到至少5-10分钟甚至更多的数据。训练一个RVC模型的大概步骤如下:
- 收集数据
- 处理数据
- 数据切分
- 提取音高
- 开始训练
- 构建索引
- 完成
让我们开始训练过程。
开始
数据收集
你可以通过一些工具来解包游戏获得声音,也可以通过下载工具下载视频、音乐、电影等。在这里,不会详细介绍如何解包某款游戏或者下载某平台的视频音乐等,需要读者自行解决。
人声分离
使用The Ultimate Vocal Remover Application(UVR5)提取干声:
推荐使用以下模型进行人声分离:
- 使用UVR-MDX-NET inst HQ3 将人声分离出来,只需要vocals,所以勾选Vocals Only
- 使用VR模型中的UVR-DeNoise使人声更加纯净(如果你需要训练的声音有一定特点比如:机器人,请不要使用它)
- 使用UVR-DeEcho-DeReverb去除一些和声和混响与延迟(如果你需要训练有特点的声音比如:庞然大物,请不要使用它)
- 最后(可选)如果你的声音数据中有多个人,请使用 5或6_HP-Karaoke-UVR提取主人声
数据整理
将分离出来的人声数据进行重命名,使其井然有序,例如:
- lala (1).wav
- lala (2).wav
- lala (3).wav
- ……
将它们放到一个文件夹内,不要有空格,然后启动RVC Webui(go-web.bat)。
如果你没有nvidia gpu或者不想在本地训练,可以跟随RVC官方推荐的AutoDL·RVC训练教程。
启动后,程序会自动打开浏览器并打开一个页面。点击“训练”,在“输入实验名”那里输入一个名字,不要有空格,建议使用拼音或者英文,可以是你训练的人物名字。
参数设置
- 目标采样率选择40k就够了,如果你的声音数据有48k当然训练48k更好
- 音高指导建议勾选“是”无论你是否使用该模型唱歌,因为人平时说话是多变的
- CPU进程数建议保持默认,如果你对你的硬件有信心可以调高或拉满
- 然后对着你的训练数据文件夹 Shift + 右键“复制为路径”然后粘贴到“输入训练文件夹路径”别的“千万别动”
- 然后选择处理音高的模型,建议使用 rmvpe_gpu 如果你有多张显卡可以按照说明进行更改
训练设置
- 保存频率可以保持默认,这样即使电脑断电重启后也可以接着继续训练,当然你有信心也可以直接拉满 50轮保存一次
- total_epoch可以保持默认,一般默认就足以克隆音色了,但如果你的音色比较特殊(比如夹子音) 可以拉到200,但训练时间也会随之增加
- Batch_size理论上来说越高训练越快,同时也越占现存,如果GPU性能差但显存大拉高后模型质量会随之下降
- 后面的选项建议保持不动,如果你的硬盘空间不足可以勾选仅保存最新ckpt
开始训练
点击“一键训练”开始训练,建议关闭其他所有网页和后台程序,仅保留当前页面和后端,不要关闭网页,等待训练完成。
训练完成后,你将会在安装目录/\assets/\weights下找到训练名.pth这是你的模型文件。然后在安装目录/\logs/\训练名找到added_训练名xxx.index这是你的索引文件。如果你需要分享你的模型请分享这两个文件,而不是只分享模型文件。
结束
接下来,请享受您训练的模型,如果您愿意的话,还请将模型分享出来给更多人使用,建议上传到Hugging Face。