RVC变声器实战: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
RVC(Retrieval-based Voice Conversion WebUI)是一个基于 VITS 架构的开源语音音色转换工具:你喂给它 10 分钟左右的目标人声录音,它训练出一个音色模型,之后任何音频输入都会以这个音色重新输出。适合做视频配音、游戏换声、AI 翻唱,但不想碰音频工程细节的人。默认监听 7865 端口,4GB 显存的显卡即可完整跑通训练加推理。
4GB 显存够不够?先说结论
能跑。4GB 显存的显卡可以完成训练和推理;3GB 及以下(1060、各种 2G 卡)官方 FAQ 的建议是直接放弃。
原因看 configs/config.py:程序启动时自动读取显存大小,低于 4GB 的卡会被直接分到 CPU 上推理,4GB 及以下会自动切到更保守的分块参数(x_pad/x_query 等)。系统内存也别忽略:切分和音高提取吃 CPU 多进程,内存不够就把"CPU 进程数"调低,或手动把训练音频切短。
软件环境有两个硬性要求:Python 3.12 x64;Ubuntu 用户推荐 24.04 版本。Windows 直接双击 go-webui.bat 走整合包,不用自己建环境。
从零到第一次换声,四步最短路径
前置依赖合并成一张清单,按序做:
- ffmpeg:切分和重采样全靠它。Ubuntu 用
sudo apt install ffmpeg,Windows 把 ffmpeg.exe 和 ffprobe.exe 放到项目根目录 - Python 虚拟环境 + 依赖:依赖文件按显卡选,NVIDIA 旧卡用
requirments_cu118_py312.txt,RTX 50 系用requirments_cu128_py312.txt,A 卡/CPU 用requirments_cpu_py312.txt(Windows 走 DirectML,Linux 走 CPU) - 预训练模型:缺了 assets 目录下的底模,训练和推理都起不来
下面四段命令在项目根目录依次执行,第一段拉代码并建好虚拟环境:
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI python3.12 -m venv .venv激活虚拟环境后,按你的显卡装一份依赖:
pip install -r requirments_cu118_py312.txt接着下载底模文件,路径保持仓库规定的assets/结构:
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 assets最后启动网页端,浏览器会自动打开 7865 端口的训练界面:
python webui.py没有桌面的服务器加--noautoopen参数,手动访问地址。
值得动的就这几个参数,其余保持默认
训练页里的数字很多,真正需要关注的就下面这些(默认值均以 webui.py 实际配置为准):
| 参数 | 怎么设 | 原因 |
|---|---|---|
| 总轮数 total_epoch | 数据有底噪:20~30 轮;干净且时长足:可到 200 轮 | 底噪大的数据训太多轮,模型只会把噪音一起学进去 |
| 保存间隔 | 每 10 轮存一个点 | 才能逐个试听中间产物,挑出最早达标的那版 |
| batch_size | 用页面默认值(约为显存 GB 数的一半),OOM 再往下调 | 默认值是按显存自动估算的稳定起步值 |
| 采样率/底模 | 选 48k 对应 v2 底模 | configs/v2/48k.json 是官方配置里质量上限最高的一档 |
| 音高提取算法 | 选 rmvpe | 效果最好且显存占用小;pm 适合歌声输入提速 |
推理时还有两个滑条值得动:检索特征占比 index_rate,默认 0.75,调高接近 1 音色完全锚定训练集但音质上限被锁死,调低到 0 音质可能更好但"音色泄露"会回来;保护值 protect,默认 0.33,防清辅音和呼吸声撕裂,输出有电音就往高调。
FAQ 里出现频率最高的四个问题
训完没看到索引文件。现象是训练日志显示完成,但logs/实验名/下没有 added_ 开头的 .index 文件;原因是训练集太大卡住了添加索引步骤。解法:回到训练页再点一次"训练索引"即可(FAQ Q2)。
推理报 Cuda out of memory。大概率就是显存不够。训练阶段把 batch_size 缩小,缩到 1 还报错就只能换卡;推理阶段则缩小 configs/config.py 末尾的 x_pad、x_query、x_center、x_max(FAQ Q8)。
训练时报文件页面/内存 error。是进程开太多把内存撑爆了。把"提取音高和处理数据使用的 CPU 进程数"拉低,或手工把训练集音频切短(FAQ Q14)。
WebUI 弹出 Expecting value: line 1 column 1 (char 0)。和代码无关,是代理问题。关闭局域网/全局代理,包括服务端代理比如 colab 里设的 http_proxy,重启再试(FAQ Q6)。
跑通之后:批量转换与实时变声
批量转换不用开网页,WebUI 推理页自带批处理入口,选模型和索引后一次丢进一个目录即可;训练页跑通后控制台会打印出完整的命令行处理流程,照着敲也能脱离界面跑(FAQ Q7)。
实时变声双击 go-realtime_gui.bat 启动实时界面,选模型和索引后说话即换声。官方给出的延迟是端到端 170ms,换 ASIO 输入输出设备可压到 90ms,但后者非常依赖声卡驱动支持,普通 USB 声卡别期待这个数字。
分享模型记住一点:logs/下几百 MB 的 pth 是存实验状态用的,能分享的是assets/weights/下 60+MB 的 pth 配合对应的 .index 文件(FAQ Q4)。
现在打开推理页,选一个保存点模型和对应索引,把录音里没用过的一段音频丢进去转换,听音色对不对得上——对上了,从录音到换声的整个流程就通了。
【免费下载链接】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),仅供参考