☰
RVC变声器实战:10分钟语音数据训练出AI歌手模型的完整指南
2026/10/18 18:01:41 网站建设 项目流程

RVC变声器实战: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

RVC(Retrieval-based-Voice-Conversion-WebUI)是一个基于 VITS 的开源语音转换框架,核心能力是用 10 分钟以内的语音数据训练出一个可用的 AI 音色模型,再对任意音频做离线或实时变声。它适合想做 AI 歌手、给游戏角色配音、或研究语音合成的人。整套流程在一台普通显卡的电脑上就能跑通,训练数据量小、耗时短,是开源变声方案里上手门槛较低的一种。下面按"准备环境 → 备数据 → 训练 → 推理 → 调效果"的真实操作顺序走一遍。

环境准备与首次运行

RVC 对硬件的最低要求并不高:一张 4G 以上显存的 N 卡(或 CPU)就能训练和推理,A 卡 / I 卡也能通过 DirectML 或 IPEX 跑起来。软件上需要 Python 3.8–3.10、FFmpeg,以及一批预训练模型文件。

先克隆并装依赖。N 卡走默认 requirements,A 卡 / I 卡换成对应的 dml 文件:

git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI pip install torch torchvision torchaudio pip install -r requirements.txt

接着安装 FFmpeg(sudo apt install ffmpeg或brew install ffmpeg,Windows 可把 ffmpeg.exe / ffprobe.exe 放到根目录),然后下载 RVC 依赖的预训练模型,放到assets/下:

sh tools/dlmodels.sh # Linux / macOS

Windows 用户执行tools/dlmodels.bat。这一步会把hubert_base.pt、pretrained、pretrained_v2、uvr5_weights、rmvpe.pt等文件拉下来,缺了任何一项训练或推理都会报找不到文件。

装好之后用下面命令启动 WebUI(Windows 直接双击go-web.bat):

python infer-web.py

浏览器会自动打开 7865 端口。能打开界面、看到"训练 / 推理 / 人声分离"等选项卡,就说明环境跑通了。

常见坑

  • 启动报llvmlite.dll找不到:Windows 上装一次 VC++ 运行库(x64)再重启即可。
  • 界面连不上(Connection Error):多半是黑色控制台窗口被关掉了,保持它开着。
  • 弹Expecting value: line 1 column 1:关闭本地或云端的 HTTP 代理后重试。
  • 4G 以下显存(如 1060 3G)训练会很吃力,能跑但建议换 4G 以上显卡。

训练数据怎么备

数据质量直接决定模型上限,RVC 的推荐量是 10–50 分钟高质量语音;如果音色统一、底噪低,5–10 分钟精简数据也能训出不错的效果。准备时盯住三点:

  • 采样率:目标 48kHz 音质最好(对应 48k 模型),数据不够精细可用 32k。
  • 切分长度:WebUI 会自动把长音频切成约 5–10 秒的片段,无需手动切,但每段别太长。
  • 底噪与音量:安静环境录制,统一响度,去掉明显杂音、电流声、旁人说话。

操作路径放在 WebUI 的"训练"选项卡里:先填音频所在目录,点"生成训练集",RVC 会自动完成切分、转 16k/48k、提取音高和特征这几步预处理。数据放在 infer/modules/train/ 里处理,音高提取默认用的是 RMVPE,比老算法速度更快、哑音更少,无需手动指定。

常见坑

  • 音频路径带空格、括号或中文,切分时会报 ffmpeg / utf8 错误——把音频挪到纯英文无空格的路径下重跑。
  • 出现The expanded size of the tensor (17280) must match (0):说明wavs16k里有明显偏小的坏片段,删掉再重新训练。
  • 预处理时报文件 / 内存 error:CPU 进程数开太多导致内存爆了,把"提取音高和处理数据使用的 CPU 进程数"调低,或手动把音频切短些。

训练流程与参数怎么定

一键训练会依次执行"提取音高 → 提取特征 → 训练模型 → 训练索引",中途参数在网页上填好即可。真正需要动的主要是两个数:

batch_size(显存不够就降)。默认在configs/v1/48k.json、configs/v2/48k.json里是 4:

"train": { "batch_size": 4, "learning_rate": 1e-4, "epochs": 20000 }

显存吃紧就降到 2 甚至 1;learning_rate保持 1e-4 不用动。

总轮数(total_epoch / epochs)。按数据质量定:底噪大、音质一般时 20–30 轮足够,调太高反而带不动低质数据;音质高、时长充足时可以放到 100–200。别盲目追求轮数多,过训会让音色发虚。

音高算法用默认的 RMVPE 即可,它精度和速度的平衡最好;Harvest 更准但更慢、更吃显存,低配机器可以退而选 PM 或 Dio,这几套实现都放在 infer/lib/infer_pack/modules/F0Predictor/ 下。

常见坑

  • 训练中途改采样率接着练,会报The size of tensor a (24) must match (16)——中途别换采样率,要换就换新实验名从头训。
  • 想中断再续:关闭控制台重启go-web.bat,用相同参数点"训练模型"就会接着上次的 checkpoint 继续,不需要重填全部流程。

跑通第一次推理

训练完成后,模型和索引分别落在两个位置:能分享给别人的是assets/weights/下约 60MB 的.pth文件,配套的added_*.index在assets/indices/下;而logs/实验名/里那个几百 MB 的大.pth是实验状态,只用于续训和复现,不要拿去推理或分享。

推理入口在"推理"选项卡,也可以走命令行 tools/infer_cli.py,关键参数如下:

python tools/infer_cli.py --f0up_key 0 \ --input_path 输入.wav --index_path assets/indices/added_xxx.index \ --f0method rmvpe --model_name 模型名 --index_rate 0.66 \ --device cuda:0

index_rate是控制"音色泄露"的核心参数,默认 0.66。它越高,输出越贴近训练集音色、抗泄露越强,但音质会被训练集拉低;越低则越依赖推理源和底模的音质。第一次推理先跑通流程,再进入调优。推理的完整流水线在 infer/modules/vc/(pipeline.py)里。

常见坑

  • 推理音色对不上、像换了个人:把index_rate往 0.6–0.8 调,训练集好就调高。
  • 训练完"一键训练"结束后没有added_开头的索引:多半是数据太大卡在加索引那步,点一次"训练索引"按钮重新补即可。
  • 找不到的模型其实存在:推理界面右上角点刷新音色,再选一次。

效果调优与常见坑

调效果基本围绕"音色不够像"和"音质差 / 有杂音"两类问题,对应不同的旋钮:

  • 音色偏、像底模或推理源:调高index_rate;训练集本身优质且时长够时,模型天然抗泄露,此时index_rate不那么关键,甚至可以不建索引。
  • 音质差、有杂音:优先回到数据端——换更干净的源音频、提高采样率到 48k,比在推理参数上反复试更有效。
  • 杂音 / 哑音多:确认音高提取用了 RMVPE;低配设备若切到 PM,杂音会增多。
  • 想融合两个音色:用"ckpt 处理"选项卡里的模型融合(ckpt-merge),能混合多个模型的优点。
  • 推理显存不足:到 configs/config.py 下调x_pad / x_query / x_center / x_max,按显存分档:
# 6G 显存:x_pad=3, x_query=10, x_center=60, x_max=65 # 4G 显存:x_pad=1, x_query=5, x_center=30, x_max=32

多卡时config.py里device的cuda:后跟卡号即可切换推理卡。更细的排障(如中途加数据、提取中间保存的模型)官方文档整理得比较全,可直接查 docs/cn/faq.md。

硬件与性能建议

不同显卡决定了 batch_size、能否用半精度,以及单次训练的大致耗时,选卡时参考下表:

显卡档位显存训练 batch_size半精度适用场景
入门4G(P10/P40/1050 级)1–2否(强制 fp32)学习跑通、小数据集
主流6–8G(1060 6G/3060)2–4是常规训练,10–50 分钟数据
高性能12–24G(3060 12G/4090)4–8是大数据集、多模型并行、批量

经验上,10 分钟左右的干净数据在 6G 以上显卡上训练单模型通常在数十分钟内完成;数据量和轮数上去后时间线性增长。实时变声(go-realtime-gui.bat/gui_v1.py)对 CPU 和声卡驱动更敏感,默认端到端延迟约 170ms,配 ASIO 设备可压到 90ms 上下,输入输出设备尽量选同一类型(如都用 MME)。


两条最容易踩的提醒:一是分享和推理要用assets/weights/下 60MB 的小模型加索引,别拿logs/里的实验大文件;二是数据质量比轮数更决定效果,先把音频备干净再谈调参。下一步建议就用一段自己的 10 分钟语音完整跑一遍上面流程,拿到第一个能用的模型,再回到"效果调优"那节对着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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询