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
Retrieval-based-Voice-Conversion-WebUI(RVC)是一个基于 VITS 架构的变声框架,核心卖点是数据量小:README 给出的建议是至少收集 10 分钟低底噪语音就能得到可用的音色模型。这篇教程不按"安装—训练—推理"的流水账写,而是给你一条可以直接跑通的主线——从环境检查、训练出第一个 .pth 模型,到调出像样的推理效果——排障内容全部收敛成一张速查表。仓库是只读的,文中所有路径都可以直接点开对照。
RVC 环境配置:三个检查点
RVC 的环境问题 90% 出在三件事上:Python 版本、FFmpeg、预训练权重。逐项确认比事后排错快得多。
1. Python 版本
python --version选 3.8–3.10 的稳定版。不要用 3.11+:依赖中的 llvmlite 0.39.0 在更高版本上会直接装不上(官方 README 明确写了这一点)。如果是用 Poetry 管理依赖,3.7–3.10 都是可接受区间。
2. FFmpeg
ffmpeg -version训练和推理的音频切分、转码都靠它,没有它整个流程跑不起来。Linux 用apt install ffmpeg,macOS 用brew install ffmpeg;Windows 最省事的办法是把 ffmpeg.exe / ffprobe.exe 直接放到项目根目录。
3. 预训练文件
RVC 自带模型不够用,需要补四类文件:assets/hubert/hubert_base.pt(声码器前端特征提取)、assets/pretrained/(v1 底模)、assets/uvr5_weights/(UVR5 人声分离模型)、根目录的rmvpe.pt(RMVPE 音高提取权重)。v2 模型再额外下assets/pretrained_v2/。仓库里已经提供了下载脚本,见 tools/download_models.py,不用手动拷文件。
三条都通过后再启动,避免"装到一半发现缺东西":
python infer-web.pyWindows 整合包用户双击go-web.bat即可,效果等同。
RVC 训练主线:从原始音频到 .pth 模型
这一节是唯一需要你"动手"的部分,分四步:切数据 → 提特征 → 训练 → 核对产物。
第一步:切数据。音频切成 5–10 秒的片段,单文件太长容易拖慢训练、太短又学不到完整音色特征。总量上,10 分钟是能用的下限,10–50 分钟是舒适区,几小时的低质音频不如 15 分钟的干净录音。采样率统一 48kHz——训练时选 32k/40k/48k 只影响音质上限和文件大小,混着不同采样率训练则会明显翻车,所以"统一 48k"是硬建议。人声和伴奏混在一起的素材,先走 UVR5 分离出纯人声再切。
第二步:提特征。WebUI 里选音高提取算法,直接选 RMVPE:它是 Interspeech 2023 的方案,效果显著好于其他选项,且比 crepe 更快、更省资源,还能根绝哑音。这步不用纠结。
第三步:训练参数。两个关键旋钮和显存强相关:
- batch_size:显存大就开大(4–8),训练更稳、更快;4GB 显存压到 1–2。用
nvidia-smi查占用,能再大 1 就再大 1。 - epoch:数据质量高给 100–200 轮,数据一般 20–30 轮就停。轮数不是越多越好,过拟合的模型会"塑料感"加重。
学习率保持默认即可,手动调大只会让训练不稳。
第四步:核对产物。训练完成后看两个地方:
logs/实验名/下应有G_{epoch}.pth和D_{epoch}.pth(生成器和判别器各存一份);weights/下应出现约 60–100MB 的 .pth 模型文件,这就是后面推理要用的主模型。
低显存用户的额外提示:configs/config.py 会根据显存大小自动选择x_pad / x_query / x_center / x_max一组更小的缓存参数(6G 显存、5G 显存、4G 以下各一套预设)。如果训练中途仍报 CUDA out of memory,把这四个值再手动调小一档即可,不必放弃训练。
RVC 索引训练与推理参数怎么调
模型训完先别急着推理,还差一步:训练 faiss 索引。faiss 在这里的作用是把训练集的音色特征建成可检索的库,推理时用 top1 检索替换源声特征——这正是 RVC 名字里 "Retrieval-based" 的来源,也是它杜绝音色泄漏(输出里混入原说话人音色)的机制。在 WebUI 索引页点训练,等进度到 100%,产物落在assets/indices/,扩展名 .index。
推理时有三个参数真正影响听感,其余保持默认:
| 参数 | 建议值 | 作用 |
|---|---|---|
| Index Rate | 0.6–0.8 | 检索特征的混合比例:0 完全不检索,1 全量替换。越高越彻底消除源音色,但过高会损失自然度;0.6–0.8 是音色和音质的平衡点 |
| Protect | 默认 0.5 | 保护输入中接近非人声频率的成分,防破音。出现尖锐破音时往下调,出现嗡嗡声时往上调 |
| f0_up_key | 0 | 变调半音数,±12 为一个八度。男转女通常 +8 到 +12,按素材试 |
代码里的实现可以直接对照:infer/modules/vc/pipeline.py 中f0 *= pow(2, f0_up_key / 12)就是半音换算,索引混合则是index_rate * 检索特征 + (1 - index_rate) * 原始特征的线性插值——理解了这个公式,调参就不会是玄学。
采样率务必与训练时一致;音调变换不确定时选自动,先跑通再细调。
RVC 报错速查表
训练和推理阶段的常见报错,按关键词对号入座:
| 报错关键词 | 原因 | 处理 |
|---|---|---|
CUDA out of memory | 显存不够 | batch_size 减半;再降 config.py 的 x_pad/x_query 四参数 |
llvmlite.dll缺失 | 缺 VC++ 运行库 | 安装 Visual C++ Redistributable,pip install llvmlite --no-cache-dir重装 |
Expecting value/ JSON 解析失败 | configs/ 下 json 被代理污染或损坏 | 关系统代理,检查 configs/ 各 json 是否合法,不行就恢复默认 |
| 浏览器连不上 7860 | 端口被占或终端已关 | 保持命令行窗口开着;netstat -ano \| findstr :7860查占用后换端口 |
| weights 里没有 .pth | 训练没跑完 | 回训练页确认日志出现收尾提示,检查 logs/ 下 G/D 文件是否齐全 |
通用原则两条:全程用英文路径、不要中文文件名;configs/ 目录改动前留个备份。
进阶:模型融合与实时变声 🎧
两项值得在第一个模型跑通后做的事:
ckpt 融合。在 WebUI 的 ckpt 处理选项卡里做 ckpt-merge,把两个模型按权重混合(常见 0.5:0.5 起步),用来微调音色偏置。融合完记得用不同风格的音频各测一段,和融合前对比后再定最终比例。
实时变声。跑go-realtime-gui.bat打开实时界面。官方数据:普通声卡端到端延迟 170ms,换 ASIO 驱动的声卡可压到 90ms——延迟对硬件驱动依赖很大,声卡驱动比参数更值得折腾。
上手清单:现在就可以做的三件事
- 按"环境配置"一节跑完三个检查命令,缺权重就执行 tools/download_models.py,然后
python infer-web.py把界面开起来。 - 拿 15 分钟左右的干净录音走完训练主线:切 5–10 秒片段 → 48kHz → RMVPE → batch_size 按显存放 → 100–200 轮,重点盯
weights/里是否产出 .pth。 - 训完立刻生成索引,推理时从 Index Rate 0.7 起步微调,破音再动 Protect。
更多细节可以查仓库自带的文档:docs/cn/faq.md(中文问答)、docs/en/training_tips_en.md(训练技巧英文版)、推理核心代码在 infer/lib/。
【免费下载链接】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),仅供参考