RVC WebUI 免费 AI 语音克隆与实时变声完整指南: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
你刚拿到一段 12 分钟的歌手清唱录音,想把它变成能实时套在自己身上的音色,却卡在"到底要多久、需要什么显卡、第一步点哪里"这些问题上。开源项目 Retrieval-based-Voice-Conversion-WebUI(简称 RVC WebUI)就是为这种需求准备的:它用不超过 10 分钟的语音数据训练一个变声(Voice Conversion,把人声从一种音色替换成另一种)模型,再提供网页界面和实时变声界面,让你既能批量转换歌曲,也能在直播里低延迟换声。
🧭 项目定位:是什么,给谁用
RVC WebUI 是一个基于 VITS 的变声训练与推理框架,面向想克隆歌手、主播或自己声音的普通用户,不要求你有深度学习背景。
它的核心能力:
- 推荐只用 10 分钟低底噪语音即可训练出可用模型,数据量门槛明显低于多数语音模型。
- 用 top1 检索替换源特征,从机制上减少"音色泄漏"(输出偷偷带上原始声音音色的问题)。
- 网页界面完成"切分音频 → 提取音高/特征 → 训练 → 推理"全流程,界面里可勾选要执行的操作。
- 内置实时变声界面,README 标注端到端约 170ms 延迟,配 ASIO 输入输出设备可做到约 90ms。
- 附带 UVR5 人声分离(把歌声与伴奏分开)与 ckpt-merge 模型融合功能。
🚀 快速上手:从拉代码到跑通
下面是从零到第一次启动 WebUI 的最小路径。
获取代码。克隆仓库:
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI
准备 Python 3.8 以上环境,按显卡装依赖。N 卡执行
pip install -r requirements.txt;A 卡/I 卡执行pip install -r requirements-dml.txt;Linux 上 A 卡 ROCm 用requirements-amd.txt,I 卡 IPEX 用requirements-ipex.txt。安装 ffmpeg(
sudo apt install ffmpeg/brew install ffmpeg,Windows 需自行放置 ffmpeg.exe 到根目录)。下载预训练文件。仓库提供了下载脚本 tools/download_models.py,运行它会把 hubert_base.pt、rmvpe.pt、UVR5 人声模型以及 assets/pretrained 与 assets/pretrained_v2 下的底模拉下来。
启动。Linux/Mac 直接执行
python infer-web.py(默认监听 7865 端口,configs/config.py 中可改);Windows 双击go-web.bat(内部执行的是python infer-web.py --port 7897)即可在浏览器打开界面。
跑通后,先在界面里放几段音频做推理,再进入训练流程,比一上来就训练更稳妥。
📖 原理速览:检索式特征替换是怎么回事
把它想成"换书皮":一本书的纸质内容(旋律、歌词、节奏)不变,只把封面和装帧(音色)换成你要的那本。
RVC 的做法分四步:
- 数据预处理。用 UVR5 把人声从伴奏里分离出来,再按静音点把长音频切成短段,存进训练集。
- 提取两类特征。用 HuBERT 提内容特征,用音高提取算法(推荐 RMVPE,能明显减少"哑音")提音高,两者是变声的原料。
- 训练。基于 VITS 底模做少样本微调,把目标音色学进模型,产物是可推理的 .pth 权重文件。
- 推理时检索。对输入声音逐帧检索训练集里最相近的特征(top1 命中),替换后再合成,这样输入源的音色不容易"串"进结果里。
🎧 实战案例:三个不重叠的用法
把清唱换成目标歌手音色。场景:你有一段干净的人声 WAV,想套上某位歌手的音色。做法:先用 UVR5 分离人声 → 上传到训练集、选目标采样率(configs/v1 有 32k/40k/48k,v2 有 32k/48k 可选,见 configs/)→ 训练后在推理页上传音频,输出带新音色的结果。预期:旋律与歌词保留,音色贴近训练对象,10 分钟左右的数据即可获得可用效果。
直播实时换声。场景:主播想边说话边变成角色音。做法:双击go-realtime-gui.bat打开实时变声界面 → 选麦克风输入与输出设备 → 加载训练好的权重即可开麦。预期:默认约 170ms 端到端延迟,若驱动支持 ASIO 可压到约 90ms,适合边聊边用。
批量转换多首歌。场景:手头一堆已分离的人声想统一换音色。做法:用 tools/infer_cli.py 或 tools/infer_batch_rvc.py 走命令行/批量推理,指定 f0up_key、模型路径与 index_rate 等参数。预期:无人值守批量产出,适合一次处理多首文件。
🛠 避坑与调优:现象 → 原因 → 处理
报 ffmpeg error / utf8 error。多半不是 ffmpeg 的问题,而是路径里带空格、括号或中文。把音频挪到纯英文、无空格的短路径下再试。
训练报 Cuda out of memory。是显存不够。训练阶段把 batch_size 调小(config 里默认 4,见 configs/v2/32k.json);推理阶段可缩小 configs/config.py 末尾的 x_pad、x_query、x_center、x_max 四个值。4G 以下显存基本只能放弃,4G 尚有一战。
输出总带着原声的音色(音色泄漏)。这是底模或推理源音质高于训练集时常见。用 index_rate 控制:调到 1 能最大程度消除泄漏但音质更贴近训练集,调到 0 则不再用检索保护音色。若训练集本身音质高、时长够,就调高 total_epoch,让模型少依赖检索。
一键训练结束却没有索引文件。若控制台已显示训练完成,紧邻的报错常是误报;真正原因多为训练集太大导致加索引步骤卡住,可再点一次"训练索引"。
若只想快速看一个参数组合,推理侧可调 f0up_key(升降调)、index_rate(音色保护强度)、f0method(harvest/pm 等音高提取法)与 is_half(是否半精度),默认值参考 tools/infer_cli.py。
🌐 生态与延伸
- 预训练与模板:assets/pretrained 与 assets/pretrained_v2 存放 v1/v2 底模,configs/config.py 会按版本号从 configs/v1、configs/v2 拷贝到 configs/inuse 使用。
- 二次开发:tools/infer_cli.py 与 tools/infer_batch_rvc.py 给出命令行与批处理入口,方便把变声接进自己的脚本。
- 文档与社区:docs/cn/faq.md 汇总了路径、显存、索引、断点续训等高频问题;多语言文档放在 docs/ 下各语言子目录。
下一步:先读 docs/cn/faq.md 对齐你的环境;先用推理页跑通一段音频再动手训练;需要底模与预训练文件到 assets/ 目录确认是否齐全。
【免费下载链接】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),仅供参考