RVC WebUI 完整指南:如何用 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 WebUI)是一个开源的检索式变声(VC)训练框架,基于 VITS 实现,用 10 分钟内的低底噪语音就能训出一个可用的音色转换模型,还支持实时变声。本文带你从零把环境搭好、走通一次完整训练,并给出调参和排错的实用建议。
一、先跑起来:从克隆到启动的最短路径
环境要求很简单:Python 大于 3.8,以及 ffmpeg(训练和推理都要调用它)。
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI然后安装 PyTorch 和对应显卡的依赖:
pip install torch torchvision torchaudio pip install -r requirements.txt # N 卡;A/I 卡用 requirements-dml.txtRVC 还需要一批预训练文件(hubert_base.pt、pretrained、uvr5_weights 等),仓库的 tools/download_models.py 提供了下载脚本,也可以参考 README 中的清单手动放置。ffmpeg 未安装的话:Ubuntu/Debian 执行sudo apt install ffmpeg,Mac 执行brew install ffmpeg。
全部就绪后启动:
python infer-web.py浏览器会自动打开 WebUI 界面;Windows 整合包用户也可以直接双击go-web.bat。
二、完整走通一次训练:从 10 分钟音频到变声
想达成什么:用自己的 10~20 分钟人声,训出一个能替换他人声色的模型。
具体怎么做:
- 准备数据:把干净的人声 WAV 放到一个目录,采样率建议 44100Hz,底噪要低。
- 数据切片:在"切片"选项卡设置目标采样率和阈值(默认 -40dB),程序会用内置的 slicer 把长音频切成短片段。
- 提取特征:在"提取"选项卡选择音高算法(f0_method,推荐 rmvpe)和 Hubert 模型,对切片做音高和语义特征提取。
- 训练:在"训练"选项卡填入实验名和 batch_size,启动后模型保存在
weights/,实验状态在logs/实验名/。 - 建立索引:训练完成后点击"训练索引",生成
.index检索文件,这是检索式替换的关键。
得到什么结果:切到"推理"选项卡,加载weights/下 60MB+ 的 pth 和对应 index,上传你的源音频,指定音高(f0_up_key,半声为 12,降半声为 -12)和 f0_method,点开始推理即可得到转换后的音频。
三、你大概率会碰到的参数与配置
推理和实时变声的常用参数集中在 infer/modules/vc/ 和实时配置的 configs/config.json 里:
- index_rate(0~1):检索混合比例。调高更保训练集音色但音质偏向训练集;调低则音质更受推理源和底模影响,可能出现"音色泄露"
- f0_method:音高提取算法,rmvpe 效果最好且资源占用小,pm、dio、harvest 速度更快但精度略低
- f0_up_key:目标音高偏移,整数半声,0 表示不变
- filter_radius:大过 0 时启用中位数滤波,可平滑音高抖动
- total_epoch:训练轮数。底噪大的训练集 20~30 即可,高音质长数据可拉到 200
设备与显存相关配置在 configs/config.py:device选卡号,is_half控制半精度(4G 以下显存建议关掉,代码对 1060/1070/1080 等卡会自动强制 fp32 并降低x_pad、x_query等参数)。
四、高频踩坑集
当你遇到「ffmpeg error / utf8 error」:多半不是 ffmpeg 的问题,而是路径问题。ffmpeg 读不到带空格、括号的路径;filelist.txt 写入时中文路径可能触发 utf8 error。把音频放到纯英文、无空格的路径下重试即可。
当你遇到「Cuda out of memory」:训练时缩小 batch_size;推理时调小 configs/config.py 末尾的x_pad、x_query、x_center、x_max。4G 以下显存基本可以放弃训练,4G 显存还能抢救。
当你遇到「一键训练结束没有 index 文件」:如果是大训练集,添加索引步骤可能卡住或占内存过大,重新点一次"训练索引"按钮通常就能补上。
当你遇到「Connection Error」:多半是控制台窗口(黑色命令行窗口)被手动关掉了,重新通过go-web.bat或python infer-web.py启动即可。
当你遇到「Expecting value: line 1 column 1」:关掉局域网/全局代理再试,包括服务端环境里设置的 http_proxy 变量。
五、进阶探索
训练好第一个模型后,可以往这几个方向走:
- 实时变声:双击
go-realtime-gui.bat打开实时界面,configs/config.json 中的block_time、crossfade_length、threhold都影响延迟,项目已实现端到端约 170ms 延迟 - 命令行与批处理:tools/infer_cli.py 支持单文件推理,tools/infer_batch_rvc.py 可批量转换整个目录
- 模型融合:ckpt 选项卡里的 ckpt-merge 可以把两个模型融合出新音色
- 导出与部署:tools/export_onnx.py 可导出 ONNX,tools/infer/ 下有独立的训练和索引脚本
- 文档与社区:多语言 FAQ 在 docs/cn/faq.md 和 docs/en/,训练技巧可看 docs/cn/ 下的教程文档
把数据切干净、选对 f0_method、训练完记得建索引——这三步做到位,10 分钟数据训出的模型就已经能用了。剩下的,靠多听、多调参。
【免费下载链接】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),仅供参考