ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

10 分钟音频训练一个 AI 音色:RVC 从录制到实时变声的 5 个关键决策

10 分钟音频训练一个 AI 音色:RVC 从录制到实时变声的 5 个关键决策

10 分钟音频训练一个 AI 音色:RVC 从录制到实时变声的 5 个关键决策

【免费下载链接】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)做 AI 声音克隆,投入和产出的账很好算:10 分钟无背景音乐的干净干声、一张 4GB 显存的显卡、1 到 2 小时训练,你就能拿到一个可以实时变声的.pth模型。新手翻车集中在两处:把带 BGM 的脏音频直接喂进去,以及 batch_size、epoch 这类参数凭感觉拉满。环境、数据、训练、调音、落地——这五个环节各有一个必须做的选择,本文就按这 5 道选择题展开,每题只告诉你选哪个、怎么选、错了往哪查。

1. 环境这道题:按显卡选依赖,别按感觉装

结论:Python 3.12 x64,依赖清单按硬件三选一,路径全程避开中文。仓库锁死了依赖版本,装错清单是新手最常见的死法。

你的硬件安装方式
无独显 / A 卡 / I 卡直接装requirments_cpu_py312.txt(Windows 走 DirectML,Linux 走 CPU)
NVIDIA RTX 50 系之前的老卡先装 CUDA 11.8 版 Torch,再装requirments_cu118_py312.txt
NVIDIA RTX 50 系先装 CUDA 12.8 版 Torch,再装requirments_cu128_py312.txt
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI python -m venv .venv && .venv\Scripts\activate # Linux: source .venv/bin/activate python -m pip install -r requirments_cpu_py312.txt

Windows 用户也可以直接双击go-webui.bat,脚本自带打包好的运行时,上面的四行全省了。装完后跑python -c "import torch; print(torch.cuda.is_available())",输出True才算 GPU 识别成功,否则训练会慢到没法用。另外别忘了 ffmpeg:终端敲ffmpeg -version出不了版本号,后面的切分、降噪全都会报错。

2. 数据这道题:宁要 10 分钟干净,不要 30 分钟脏的

结论:10 分钟以上、无 BGM、底噪低的干声;先降噪再切片,顺序不能反。RVC 卖的就是小数据量,但小数据量的前提是数据干净——50 分钟带噪声的录音,效果大概率打不过 10 分钟干净录音。

三条硬指标

  • 总量 10–50 分钟,低于 10 分钟音色特征学不全;
  • 内容尽量覆盖不同音高和语速(正常叙述加几段高音),比单纯堆时长更值钱;
  • 格式统一为 48kHz 16bit WAV,混采样率会让切片后的片段长短不一。

切片阈值怎么定

有背景音的素材先用 WebUI 里的 UVR5 标签页分离出人声,再进切片环节。切片阈值决定"多安静算静音、该切刀":安静房间录的用默认 -60dB 就行;环境偏吵的往上提到 -30 ~ -40dB,不然切出来的片段会夹带底噪。目标片段长度落在 3–10 秒,过长会把换气声一起切进去。

判断标准:随手抽 3 个切片听一遍,开头结尾干净、没有半截气声,数据环节就算过。

3. 训练这道题:采样率与 batch_size 按显存定档

WebUI 的训练流水线固定是四步:切片归一化 → Hubert 特征提取 → F0 提取 → 模型训练,你真正要动的只有训练页那几个输入框。

结论:架构选 v2,采样率默认 48k,F0 选 rmvpe,学习率 1e-4 不动。三档采样率配置在 configs/v2/(48k/32k)和 configs/v1/(48k/40k/32k),v2 是当前主力架构;48k 听感最好、显存占用也最高,32k 是低配卡的保底。F0 有三个选项(pm / rmvpe / fcpe),rmvpe 速度快、对歌唱场景稳定,直接默认值就行,没必要换 harvest 之类的老办法。学习率三套配置都是 1e-4,新手动它只会把结果搞坏。

显存档位batch_sizeepoch 怎么选
4GB(紧张)1–2,可切 32k 配置100 起步,听感不够再加
6–8GB(常规)3–4(v2 配置默认值)100–200
8GB+(充裕)4–8150–200

epoch 是总轮数,不是越小越好:太短模型只学到音色的皮毛,太长则容易过拟合到训练集的杂音上。想省时间可以开"保存频率 save_every_epoch=5",每个检查点都留一份,回头试听挑最好的。

判断标准:assets/weights/下出现了.pth文件,且用它跑一次推理不出哑音、电音,训练环节才算过关。显存爆了就把 batch_size 砍半重跑,别怀疑是模型不行。

4. 调音这道题:索引文件解决"像但差口气"

结论:训练完必须生成.index索引文件,再用同一首测试歌微调检索占比。RVC 名字里的 Retrieval-based 指的就是 top1 检索:把训练集每一帧的音色向量建成 faiss 索引,推理时逐帧去索引里找最接近的音色来修正输出,机械感就是被这一步磨掉的。索引训练在 WebUI 的独立标签页里一键完成,产物放进assets/indices/与.pth成对使用。

精修只动两个旋钮:

调什么默认值手感
检索特征占比 index_rate0.750.5 起步每次 +0.1 试听;0.6–0.8 最稳;拉到 1.0 逐帧检索,最像人但也最容易出颗粒感
清辅音保护0.33合成出现电音、撕裂感时把它调低加大保护,但保护过强会反过来压索引效果

用同一首歌、同一参数只改 index_rate 对比试听,比凭感觉快得多。索引检索的原理细节在 docs/en/faiss_tips_en.md,想深挖时看。

5. 落地这道题:实时、单曲、批量三选一

模型训好之后有三种用法,按使用场景挑一个:

场景入口关键参数
实时变声(游戏 / 语音)go-realtime_gui.bat(对应 realtime_gui.py)block_time 默认 0.13s,调小更跟手,低于 0.1s 会断裂
单次转换(一首歌)WebUI 推理页,上传音频出结果与调音环节同一套参数
批量转换(整目录)WebUI 批量推理,指定输入/输出目录跑完整个文件夹

实时链路 Windows 下需要 VoiceMeeter 这类虚拟声卡把麦克风接到虚拟输入,这是新手最容易漏的一步;官方链路端到端延迟约 170ms,ASIO 设备可到 90ms。

6. 报错速查:先看最后一行

症状最可能的原因处理动作
装依赖反复失败Python 版本不是 3.12 x64,或依赖清单选错对照第 1 节硬件表重建虚拟环境
网页打不开7865 端口被占启动时加--port换一个端口
切分/降噪直接报错ffmpeg 不在 PATH装好 ffmpeg,确认ffmpeg -version可用
训练中 CUDA out of memorybatch_size 超显存砍半,或切 32k 配置
输出哑音、电音F0 没提好或特征没对上确认 F0 选了 rmvpe、清辅音保护调低
音色不像目标数据脏或量不够重录 10 分钟干净干声,别堆时长

想继续深挖的 8 个位置

  • configs/v2/:主力训练配置,学习率、betas、batch_size 全在这;
  • train/preprocess.py:切片与归一化主逻辑,阈值参数在内部;
  • train/train.py:模型训练主脚本;train/train_index.py:索引训练脚本;
  • tools/uvr5/:UVR5 人声分离的独立实现;
  • docs/en/faq_en.md:英文 FAQ,排障条目最全;
  • docs/en/training_tips_en.md:训练技巧;
  • docs/cn/Changelog_CN.md:更新日志,功能变化都在这;
  • i18n/locale/:界面多语言词条。

最小可执行下一步:安静房间录 10 分钟干声存进独立文件夹 → WebUI 按 v2/48k、batch_size=1、100 epoch 跑完四步流水线并生成索引 → 推理页合成一段 30 秒试听。预期产出是一段"像"(不是完美)的目标音色;听到它之后,你就有了继续调 index_rate 或升参数的底气。

【免费下载链接】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),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进