RVC 变声器实操教程:10 分钟录音跑通 AI 变声的完整指南
【免费下载链接】Retrieval-based-Voice-Conversion-WebUIEasily train a good VC model with voice data <= 10 mins!项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI
这篇 RVC 变声器教程带你从零搭建环境、训练出第一个音色模型,再把一段录音换成目标人物的声音。RVC(Retrieval-based Voice Conversion)是一款基于检索机制的开源变声框架,最大卖点是:只需约 10 分钟低噪录音就能训出效果不错的模型,对新手非常友好。
你将获得:
- 在一台有独立显卡的电脑上完整跑通「训练音色 + 语音转换」全流程
- 能读懂
index_rate、f0_up_key、filter_radius这几个关键参数,并据此调优效果 - 掌握 5 类最高频报错的定位方法和一步修复动作
- 知道如何扩展到批量转换和模型融合
原理拆解:一段录音怎么变成另一种音色
RVC 的推理链路可以拆成「输入 → 核心处理 → 输出」三段:
- 输入:你的原始音频(一段说话或唱歌的 wav)。
- 核心处理:系统先做两件事——用 Hubert 模型提取内容特征(你"在说什么"),用 RMVPE 算法提取音高曲线(你"喊得多高")。随后进入检索环节:从训练集的索引里找出与当前片段最相似的特征片段,把源特征替换掉——这一步叫 top1 检索,是"RVC"名字里 Retrieval 的来源,作用是抹掉原说话人的音色痕迹。最后 VITS 声码器(一种把频谱还原成波形的模型)把新特征合成音频。
- 输出:内容、节奏基本不变,音色换成了训练集人物的 wav。
📌 此处插入:RVC 推理链路示意图(原始音频 → 特征提取 → 检索替换 → 声码器合成 → 目标音色音频)
所以它适合解决这类问题:手里只有一小段干净录音,却想要这个"人"的专属音色来配音、翻唱或做虚拟形象。
配好 RVC 训练推理运行环境
上手门槛:低(预计 30 分钟)
先拿到项目代码
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI再装 Python 依赖
需要 Python 3.8 以上(推荐 3.9–3.10)。先装 PyTorch 及其核心依赖,再装项目依赖。按你的显卡选一份 requirements 文件:
pip install torch torchvision torchaudio pip install -r requirements.txt # N 卡 # A 卡 / I 卡改为:pip install -r requirements-dml.txt # A 卡 ROCm(Linux) 改为:pip install -r requirements-amd.txtWindows 上 RT30 系列显卡(Ampere 架构)如果跑不起来,尝试给 PyTorch 指定 cu117 版本安装。
最后装 ffmpeg 和 RMVPE 音高模型
ffmpeg 负责音频切分和格式转换,是硬依赖。不同系统的装法不同:
| 系统 | ffmpeg 安装方式 | 验证方式 |
|---|---|---|
| Windows | 下载 ffmpeg.exe / ffprobe.exe 放到项目根目录 | ffmpeg -version |
| Ubuntu/Debian | sudo apt install ffmpeg | ffmpeg -version |
| MacOS | brew install ffmpeg | ffmpeg -version |
另外下载 RMVPE 音高提取模型的rmvpe.pt文件放到项目根目录(README 中有下载地址说明),否则推理时选不到效果最好的 rmvpe 算法。
完成标志:终端执行ffmpeg -version能打印出版本号,依赖安装过程无ERROR。
启动 WebUI 并备好预训练模型
上手门槛:低(预计 10 分钟 + 模型下载时间)
RVC 训练和推理都依赖几个"底模"(预训练模型、Hubert 特征提取器等)。仓库的 tools 目录里提供了下载脚本download_models.py,一键拉取全部所需文件,包括assets/hubert、assets/pretrained、assets/uvr5_weights(想训 v2 模型还需要assets/pretrained_v2)。
python tools/download_models.py下载完成后启动主界面:
python infer-web.py浏览器会自动打开。界面顶部有几个页签:模型推理(单次推理 / 批量推理)、伴奏人声分离&去混响&去回声、训练、ckpt处理、Onnx导出。后面两步主要用后两个和"模型推理"。
完成标志:终端出现Running on local URL: http://127.0.0.1:7865,浏览器打开页面不报错(端口默认 7865,可用--port参数修改)。
处理数据并训练第一个模型
上手门槛:中(首次训练预计 30 分钟–2 小时,取决于数据量和显卡)
在"训练"页签里,整个流程被拆成四个顺序执行的环节,按从上到下的顺序点按钮即可:
数据准备:录音放哪里、要多少?
把目标人物的干净录音(建议 10–30 分钟、无背景噪音、无伴奏)整理到一个文件夹,在训练页填入该路径和实验名。采样率选 48000(v2 模型支持 48k 和 32k),f0提取算法选rmvpe——它比 dio、crepe 更快、资源占用更小,且能明显减少"哑音"(漏掉音高)问题。
前三步:切片 → 音高 → 特征
依次执行:0-音频切片(把长音频切成小片段)、1-提取音高、2-提取特征(Hubert 特征)。每步完成后页面会出现提示,失败一般是路径写错或 ffmpeg 没装好。
最后一步:模型训练
点击训练按钮后,日志区开始滚动。训练参数不用改默认值就能出可用结果:查看 configs/inuse/v2/48k.json 可以看到默认batch_size为 4、learning_rate为1e-4、fp16_run已开启(混合精度,省显存提速)。显存 6GB 以下的显卡如报 OOM,再考虑把batch_size调到 2。
训练轮数(epoch)一般8–15 轮足够,损失曲线基本走平就可以停,不用跑完全程。
训练结束后,在同一页面生成索引文件(index,可理解为训练集特征的"查表目录",检索环节就是拿它来查的),生成物是一个.index文件,落在assets/indices目录。
完成标志:assets/weights目录下出现以你实验名命名的.pth模型文件,assets/indices下出现对应的.index文件。
跑通第一次语音转换 🎙️
上手门槛:低(预计 10 分钟)
切到"模型推理"页签的"单次推理"分组,按下面四步操作:
- 选模型:下拉框刷新后选你刚训的
.pth模型。 - 选索引:选对应的
.index文件。 - 设音高:
f0_up_key填0表示保持原调;男声想变女声常见填12,女声变男声填-12(单位是半音,一个八度是 12)。 - 设检索比例:
index_rate先填0.7——它控制"多大程度用训练集特征替换你的特征",越高音色越像但越容易有颗粒感。
上传一段 10 秒左右的测试音频,点击转换,右侧出现可试听的结果音频。
完成标志:输出区出现新的音频波形并能播放,音色明显偏向训练集人物。
调优:让变声更接近目标音色 🎛️
不穷举参数,只给三组最常用的调整逻辑。每组都附上"调完你应该听到什么",方便验证:
现象一:声音不像目标人物→ 把index_rate从0.5逐步加到0.8–1.0→ 预期变化:音色越来越贴近训练集人物,但超过 1.0 附近可能出现轻微毛刺。
现象二:有明显颗粒感、金属噪、"电子音"→ 把index_rate降到0.5左右,同时适当调高filter_radius(频谱滤波半径,越大越平滑,但高频细节会少一些) → 预期变化:杂音减少,声音变"柔",高频略闷属正常。
现象三:音高不合适(太高假 / 太低闷)→ 微调f0_up_key(±1 半音为单位试),并确认训练时和推理时的采样率一致 → 预期变化:音高落位自然,不再有"娃娃音"或"地低音"。
三组参数组合对比:
| 组合 | index_rate | filter_radius | f0_up_key | 适用场景与预期听感 |
|---|---|---|---|---|
| 保守 | 0.5 | 3 | 0 | 音色偏"你"、音质最干净,适合试错阶段 |
| 默认 | 0.7 | 3 | 按性别 ±12 | 相似度与干净度平衡,日常主力设置 |
| 激进 | 1.0 | 2 | 按需求 | 相似度最高,接受轻微颗粒感,适合"必须像"的场合 |
排错:五类高频报错一次看懂
| 现象 | 最可能原因 | 一步验证 | 修复动作 |
|---|---|---|---|
| 训练中途报 CUDA out of memory | batch_size相对显存过大 | nvidia-smi看显存占用 | 在本地副本的 configs/inuse/v2/48k.json 中把batch_size由 4 改为 2,重开 WebUI |
| 启动即报找不到 ffmpeg | ffmpeg 未安装或不在 PATH | ffmpeg -version | 按上文对应系统装好;Windows 用户确认 ffmpeg.exe 在项目根目录 |
| 推理页下拉框里没有你的模型 | .pth没放进assets/weights | 列出assets/weights目录 | 把模型文件放入该目录,点击页面刷新按钮 |
| 音高算法里选不到 rmvpe | rmvpe.pt没放到项目根目录 | 查看根目录有无 rmvpe.pt | 下载后放到根目录,重启 WebUI |
| 转换很慢、音高提取卡住 | 选了 dio / crepe 等慢算法 | 看当前 f0 算法选项 | 换回 rmvpe,速度快且资源占用更小 |
更细的报错(模型加载失败、采样率不匹配等)可查仓库自带的 中文 FAQ 与 训练建议。
延伸:批量转换与模型融合
- 批量转换:WebUI 的"模型推理"页签里有"批量推理"分组;命令行党可以直接用 批量转换脚本,支持指定模型、索引和
index_rate等参数。第一步:挑 5 段有代表性的音频放进一个文件夹,先小批量验证参数,再放开跑。 - 模型融合:在"ckpt处理"页签的 ckpt-merge 功能里,可以把两个
.pth模型按权重(如 0.6 / 0.4)混合成新模型,用来取长补短或修掉单一模型的瑕疵。第一步:拿自己训的模型和官方底模各按 0.5 权重融一次,对比原声。 - 想进一步减少部署依赖,可以在"Onnx导出"页签把模型导出为 onnx,配套脚本见 tools/export_onnx.py。
下一步就动手:准备 10 分钟干净录音,按默认参数训练第一版模型;推理时把index_rate先锁定在 0.7、f0_up_key按性别填 ±12,跑通后再回来微调这两个数值——比一开始就抠十来个参数效率高得多。
【免费下载链接】Retrieval-based-Voice-Conversion-WebUIEasily train a good VC model with voice data <= 10 mins!项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考