10 分钟录音练出 AI 变声模型:RVC WebUI 完整实战
【免费下载链接】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 变声模型训练全流程。
环境自检:开工前先过三关
装依赖之前,用 30 秒对一下这三关,缺哪补哪。
| 关卡 | 你要确认的事 | 不达标怎么办 |
|---|---|---|
| 1. 系统关 | Windows / Linux / macOS + Python 3.12 x64 + FFmpeg(含 ffprobe) | 装 ffmpeg:Ubuntu 用sudo apt install ffmpeg,Windows 把ffmpeg.exe、ffprobe.exe丢进项目根目录 |
| 2. 显卡关 | N 卡显存 ≥4GB 可训练;A 卡 / I 卡 / 核显走 CPU 或 DirectML | 无独显也能推理,就是慢 |
| 3. 素材关 | ≥10 分钟同一人、底噪低的干声,路径纯英文无空格 | 先录/找一段干净的,效果上限由它决定 |
先拿到代码:
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI进项目根目录建好 3.12 虚拟环境后,按你的显卡三选一装依赖,别混装:
pip install -r requirments_cpu_py312.txt # CPU / A 卡 / I 卡 pip install -r requirments_cu118_py312.txt # N 卡(RTX 50 系以前,先装 CUDA 11.8 版 Torch) pip install -r requirments_cu128_py312.txt # N 卡(RTX 50 系,先装 CUDA 12.8 版 Torch)最后补上底模文件:assets/hubert_base/、assets/rmvpe/rmvpe.pt、assets/pretrained/、assets/pretrained_v2/这几个目录需要放好模型权重,用hf download lj1995/VoiceConversionWebUI系列命令按 README 里的清单下载即可(只推理的话,前两项就够;要训练再加上 pretrained 系列)。
一切就绪后启动:
python webui.py浏览器会自动打开训练推理界面(默认端口 7865)。Windows 用户直接双击go-webui.bat也行。
训练闭环:从 10 分钟录音到变声模型六步法
全程都在"训练"选项卡里完成,按顺序做即可。
第 1 步:素材放进一个文件夹
把 10–50 分钟的干声音频(WAV 优先,单声道更稳)丢进一个干净文件夹。路径越简单越好,纯英文、无空格、无括号。
第 2 步:填实验配置
打开"训练"选项卡,填上实验名(会作为logs/实验名目录名),选目标采样率(40k / 48k)、版本(v2 底模效果更佳)、"模型是否带音高指导"(要做歌声转换选"是",纯说话可"否")。
第 3 步:点"处理数据"做切分
填训练文件夹路径和说话人 id,点一下"处理数据"。系统自动遍历、切片、归一化,产出logs/实验名/下的标准化音频。切分是自动的,你只管等日志跑完。
第 4 步:点"特征提取"
音高算法选rmvpe(白话讲:当前最快最准的人声音高提取算法,比老算法更不容易漏音)。它一次算完两样东西:F0 音高曲线(白话讲:旋律的高低走向,是变调的基础)和 HuBERT 声学特征(白话讲:从音频里抽出来的"嗓音内容"向量)。
第 5 步:点"训练模型"
关键参数先记这几个:
total_epoch(总轮数):先给 20–30 轮,贪多容易过拟合,音色发"塑料感"batch_size:显存吃紧时第一个往下调的参数save_every_epoch(保存频率):每 10 轮存一次,方便回退
也可以直接点"一键训练",它会把前面切分、提特征、训练、建索引一口气跑完。
第 6 步:点"训练特征索引"
这一步会产出added_*.index文件(白话讲:目标音色的"特征字典")。转换时,RVC 从字典里检索最接近的特征去替换输入音频的一部分特征,这就是它防音色泄漏的机关——"检索特征占比"填得越高(0–1 之间),声音越往目标音色贴。
做完六步,切到"模型推理"选项卡,点一下"刷新音色列表",选你的模型、传一段测试音频,点"转换"。听到像,就成了;不像,把检索占比从 0.5 拉到 0.7–0.8 再转一遍,成本为零。
分享模型时发
assets/weights/下 60MB 以上的.pth(配上assets/indices/里的.index),别发logs/下几百 MB 的实验状态文件——那个是给换机器续训用的。
三种变声姿势:单条、批量、实时
模型练好之后,同一个 WebUI 里给了三种用法:
单条推理:先听效果
在"单次推理"选项卡传一段音频,填变调半音数(升八度 +12,降八度 -12),点"转换"。适合谁:刚训完模型的人,用来验证音色、调参数。
批量推理:给一整张专辑换声
"批量推理"选项卡支持直接指定文件夹,全部音频按同一套参数批量转换,可挑导出格式。适合谁:想把一整首带背景音乐的歌唱成目标音色、或批量处理素材的人。
实时变声:直播和游戏低延迟场景
跑realtime_gui.py(Windows 双击go-realtime_gui.bat)打开实时界面,麦克风进、耳机出,端到端延迟约 170ms;换 ASIO 声卡能压到约 90ms。参数支持热更新,调音高不用重启。适合谁:直播、开黑、虚拟主播这类要"边说边变"的场景。
⚡ 顺手一提:界面里还有"伴奏人声分离&去混响&去回声"选项卡,内置 UVR5 模型,能把带 BGM 的录音一键拆成纯人声——这是准备训练素材最常用的一步。
避坑调参:六个最高频问题的解法
🛠️ 都是"现象 → 原因 → 一招解决",照着来:
- 报 ffmpeg error / utf8 error→ 多半不是 FFmpeg 的问题,是音频路径带了空格、括号或中文 → 把素材挪到纯英文短路径重跑。
- CUDA out of memory(显存爆了)→ 训练 batch 太大或推理段太长 → 训练时降
batch_size;推理时调小 configs/config.py 里x_query、x_max等检索参数。 - 训练完了但没有索引→ 训练集太大,索引步骤内存不足 → 回"训练"选项卡再点一次"训练特征索引"。
- 推理列表里找不到刚训的音色→ 列表没刷新 → 点"刷新音色列表";还没有就去
logs/实验名/下翻日志看训练是否报错。 - WebUI 提示 Connection Error→ 终端窗口(黑色控制台)被你关了 → 保持命令行窗口开着;端口被占用也会报这个。
- 弹 Expecting value: line 1...→ 本地代理在捣乱 → 关掉客户端和服务端两侧的代理,刷新页面。
更细的问题清单看仓库自带的 docs/cn/faq.md,版本变化看 docs/cn/Changelog_CN.md。
进阶地图:跑通之后的四个方向
- 程序化调用:webui.py 的界面按钮都挂了 Gradio
api_name(如infer_convert),可以用脚本直接打 HTTP 请求,不用点网页。 - 模型融合:webui.py 的"ckpt处理"选项卡支持 ckpt-merge,把两个
.pth按权重混成新音色,玩法比单克隆更野。 - 实时集成:infer/rtrvc.py 是实时界面复用的推理入口,想把自己的直播工具接上 RVC,从这里下手。
- 索引调教:检索占比和索引质量直接决定"像不像",docs/cn/faq.md 和英文版 docs/en/training_tips_en.md 里有调参经验。
收尾:今天就能做的最小行动
先拿一段 10 分钟的干净录音把"切分 → 提特征 → 训练 → 建索引 → 推理"完整跑通一次,哪怕第一版听感一般。跑通之后,回头精调素材质量和检索占比——在 RVC 里,素材的干净程度对最终听感的贡献,远大于任何参数技巧。
【免费下载链接】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),仅供参考