RVC变声器完整实战手册:30分钟训出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
想给自己或游戏角色配一个能反复用的 AI 音色?本指南基于 RVC(检索式语音转换框架)带你走完全流程:搭好环境、准备 10 分钟低底噪音频、在普通显卡上训出第一个音色模型,再到推理页调参让声音更对味。文中版本号与参数均取自仓库实际配置,每一步都可能踩的报错也备好了按症状查的对照表,读完即可独立完成"备环境 → 训模型 → 出声音 → 调优"。
🎯 开工前先把三条验收标准钉死
先定验收线再动手,做完以下三条核对才算"跑通";差哪条,回对应章节定位。
📋 跑通后能核对的三件事
- 训练日志出现 "Training is done.",且
assets/weights/下新增一个60+MB的 .pth 文件——这才是可分享的成品模型;logs/里几百 MB 的 pth 只存实验状态,用于续训,不是成品。 assets/indices/下有配套的added_*.index检索索引文件。- 推理页点"刷新音色"后能选到新音色,转换出声且音色对得上。
一个坑提前说:一键训练结束时若卡在索引步骤,日志可能报"假的"错误。只要看到 "Training is done" 就说明模型本身训完了,再单独点一次"训练特征索引"即可。
🧩 十分钟备好能开训的 RVC 环境
结论先行:当前分支只认Python 3.12x64,老教程里的 Python 3.9 装法已经失效,Ubuntu 24.04 与 Windows 均可。
🐍 三个组件十秒体检
先拿到代码并进入仓库根目录:
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI然后跑两条命令确认:
python --version ffmpeg -version| 组件 | 要求值 | 为什么 |
|---|---|---|
| Python | 3.12x64 | 分支唯一适配版本,装依赖前建好 venv 隔离 |
| FFmpeg | 任一近期版本 | 切片与重采样全靠它;Windows 用户把 ffmpeg.exe、ffprobe.exe 放进根目录即可 |
| 显存 | ≥4GB | 不足 4GB 的代码路径会直接回落到 CPU(见configs/config.py的设备判定),训练基本没戏 |
📦 按显卡挑对依赖文件
根目录下三份依赖清单,头部注释写明了两步安装顺序:先装带对应 CUDA 后缀的 PyTorch,再装其余依赖。
| 你的硬件 | 依赖文件 | PyTorch 阶段 |
|---|---|---|
| RTX 50 系以前(N卡) | requirments_cu118_py312.txt | cu118 版 torch 2.7.1 |
| RTX 50 系 | requirments_cu128_py312.txt | cu128 版 torch 2.7.1 |
| A 卡 / I 卡 / 纯 CPU | requirments_cpu_py312.txt | CPU 版 torch,Windows 可走 DirectML |
python -m pip install -r requirments_cu118_py312.txt装完验证 torch 与 CUDA 是否对上:
python -c "import torch; print(torch.__version__, torch.cuda.is_available())"第二个值打印 True 才算合格;否则是 torch 装错版本,按上表重装第一步。
⬇️ 补全底模与音高权重
WebUI 会自动创建运行目录,但模型文件必须放到指定路径,缺一个都起不来:
hf download lj1995/VoiceConversionWebUI --revision main --include "hubert_base/*" --local-dir assets hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main --local-dir assets/rmvpe hf download lj1995/VoiceConversionWebUI --revision main --include "pretrained/*" "pretrained_v2/*" --local-dir assetsassets/hubert_base/是特征提取模型,assets/rmvpe/rmvpe.pt是音高提取权重,assets/pretrained/与assets/pretrained_v2/分别是 v1/v2 底模;要用 UVR5 分离人声再补assets/uvr5_weights/,静音样本放logs/mute/(README 有完整命令)。
python webui.py默认监听端口7865并自动开浏览器;换端口或服务器无桌面时用python webui.py --port 7866 --noautoopen。注意:控制台黑窗口全程别关,它一关服务就断。
🎙️ 把音频喂进 WebUI,完成第一次 RVC 训练
🎵 音频备料:48k 与总时长十分钟
| 备料项 | 建议值 | 原因 |
|---|---|---|
| 采样率 | 48k | 与configs/v1/48k.json对齐,定了就别中途换 |
| 单段时长 | 5~10 秒 | 音频切短些,过长是张量尺寸报错的常见来源 |
| 总时长 | 10~50 分钟 | 不足 10 分钟音色难学到位;音色有特色且音质高,5~10 分钟也够用 |
| 底噪 | 越低越好 | 底噪大时训练轮数压低,底模带不动低质数据 |
统一转成 WAV,剪掉首尾静音,响度大致拉平;人声伴奏混录的素材先在 UVR5 选项卡里分离出纯人声。
🏋️ 一键训练前只盯三个参数
| 参数 | 界面默认 | 什么时候动它 |
|---|---|---|
| batch_size | 按显存自动估算(配置默认4) | 显存告急先降它,最低到 1 |
| total_epoch | 20(上限 1200) | 低质数据 20~30 轮足够,高质数据可提到 200 |
| 底模路径 | v2 默认assets/pretrained_v2/f0G40k.pth | 随采样率与音高选项自动切换,不用手填 |
填实验名与音色 ID、选48k采样率,点"一键训练"。日志里会打印实际执行的数据集处理与训练命令行,想脱离网页纯命令行训练时,照它切到 train/train.py 即可复现。
💥 显存告急时先降谁
报Cuda out of memory就降 batch_size,降到 1 还不够只能换卡。另外 WebUI 会按显存自动收缩configs/config.py末尾的x_pad/x_query/x_center/x_max四个推理参数(4GB 卡自动切到最紧的一组),你不用手动改,知道有这个机制就行。
🎧 推理出声:让 AI 音色对味的三个参数
🔁 出声音:刷新音色、模型配索引
推理页点"刷新音色"加载新模型,特征检索库路径会自动匹配assets/indices/下同名added_*.index,点转换即可下载成品。记住模型与索引是成对关系:给别人分享时,两个文件要一起给。
🎚️ RVC 参数调优:先玩这三个滑杆
| 参数 | 默认值 | 调法 |
|---|---|---|
| 变调(半音) | 0 | 升八度填 12,降八度填 -12 |
| 音高提取算法 | rmvpe | rmvpe 最快最省资源,pm、fcpe 为备选 |
| 检索特征占比(Index Rate) | 0.75 | 常用区间0.6~0.8;越靠近 1 音色越贴训练集(杜绝泄露),越靠近 0 越贴源音频 |
还有两处容易漏:protect 滑杆默认 0.33,出现电音撕裂就拉高、索引发闷就调低;后处理重采样保持 0,输出与训练采样率一致最稳。取舍原则:训练集音质高于源音频时,Index Rate 调高保音色;训练集音质偏低时,调高只会更糊。长时长的优质训练集本身很少"漏",这个参数反而不重要。
🧪 两个音色揉成一个
ckpt 处理选项卡里的 ckpt-merge 可以把两个 .pth 按权重融合成新音色:选好文件、设比例,新手从 0.5 : 0.5 起步,换不同素材试听记录最好听的比例。
🚑 RVC 报错解决:先认症状再动手
别乱试,按下面的表走。
🖥️ 启动与环境类
| 症状 | 可能原因 | 解法 | 优先级 |
|---|---|---|---|
| 浏览器打不开、连接失败 | 控制台被关,或端口7865被占 | 保持黑窗开启;--port换空闲端口 | 高 |
| llvmlite.dll 加载错误 | 缺 VC++ 运行库 | 装 VC++ 2015-2022 运行库后重启 WebUI | 高 |
| Expecting value (char 0) | 系统或服务端代理干扰 | 关掉局域网/全局代理再启动 | 中 |
| ffmpeg error / utf8 error | 路径带空格或中文 | 换纯英文无空格路径 | 中 |
🏋️ 训练与推理类
| 症状 | 可能原因 | 解法 | 优先级 |
|---|---|---|---|
| Cuda out of memory | 显存不够 | 降 batch_size;4GB 以下显存换卡 | 高 |
| 张量尺寸不匹配 (tensor size) | 混入异常小的坏音频 | 删掉wavs16k里显著偏小的文件重训 | 中 |
| 推理页看不到新音色 | 没刷新 / 索引没生成 | 点"刷新音色",再点"训练特征索引" | 高 |
| 推理报 key 不存在 | 把 logs 大 pth 直接当模型用 | 用 ckpt 选项卡提取60+MB的小模型 | 中 |
| 文件页 / 内存 error | 并行进程开太多 | 调低 CPU 进程数,音频手工切短 | 低 |
⚠️ 四个常见误区,对照自查
🧾 误解 → 正确做法
| 误解 | 正确做法 |
|---|---|
| 照着旧教程用 Python 3.9 装 | 当前分支只支持Python 3.12x64 |
直接把logs/几百 MB 的 pth 分享出去 | 用 ckpt 选项卡提取60+MB小模型再分享 |
| 轮数拉满一定更稳 | 低质 20~30 轮、高质到 200 轮,再高只会过拟合 |
| 中途改采样率会自动适配 | 改采样率等于换新实验名从头训;可拷贝上次提取的音高与特征加速 |
📚 继续深挖
📂 文档、源码与社区入口
- 常见报错与参数科普:docs/cn/faq.md;更新记录:docs/cn/Changelog_CN.md
- 分采样率模型超参:configs/;设备与显存判定规则:configs/config.py
- 训练主脚本与特征索引:train/;推理核心:infer/;UVR5 人声分离:tools/uvr5/
- 实时变声(端到端 170ms,ASIO 设备可到 90ms):realtime_gui.py
- 多语言文档:docs/en/、docs/jp/、docs/kr/ 等;遇到新报错,优先去项目 Issues 与 Wiki 检索同类问题
【免费下载链接】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),仅供参考