☰
10分钟语音训练一个AI变声模型:RVC从零跑通到调参实战
2026/10/6 1:28:30 网站建设 项目流程

10分钟语音训练一个AI变声模型: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

用10分钟左右的干净录音,RVC(Retrieval-based-Voice-Conversion-WebUI)就能训练出一个可复现音色的变声模型,推理端端到端延迟可做到170ms,接ASIO设备时能压到90ms。这篇文章按"先把第一个模型跑出来"这条主线走:装环境、过数据、训练、验证,最后讲哪些参数值得动、哪些报错是假的。

先确认你的硬件和数据够不够

RVC对硬件不挑:4GB显存的卡还能救,2GB及以下官方FAQ里直接建议放弃训练、只跑推理。真正决定效果的是训练集,官方FAQ给出的建议区间是10min至50min,底噪低、音色统一的5~10min高质量数据也够用;1~2min的数据有人练成过,但不具备参考价值。

数据准备阶段就三件事:

  1. 用指向性麦克风在安静环境录,避免混响;
  2. 去掉首尾静音,切成5~10秒的小片段;
  3. 统一音量水平,别让某一段明显偏大。

如果手上只有带伴奏的成品歌,仓库内置了UVR5人声分离功能(权重放在assets/uvr5_weights/),可以先把人声剥出来再当训练集用。

环境安装:四步跑通推理环境

这一步坑比较多,按顺序做,别跳:

  1. Python版本:3.8以上,官方Dockerfile用的是3.9。3.11装llvmlite会冲突(这是poetry安装路线实测出的问题)。

  2. 装PyTorch和依赖:

    pip install torch torchvision torchaudio pip install -r requirements.txt

    按显卡选requirements文件:N卡用requirements.txt,A卡/I卡用requirements-dml.txt,Linux下的A卡ROCM用requirements-amd.txt,I卡IPEX用requirements-ipex.txt。

  3. 下载预训练资产:hubert_base.pt、assets/pretrained/(用v2模型还需assets/pretrained_v2/)、assets/uvr5_weights/,仓库tools/下有对应的下载脚本。

  4. 装ffmpeg:Ubuntu/Debian一条sudo apt install ffmpeg,macOS用brew install ffmpeg,Windows把ffmpeg.exe/ffprobe.exe放到根目录。

装RMVPE(仓库推荐的人声音高提取算法,Interspeech 2023)还需把rmvpe.pt放到根目录,音高准确性上它比Harvest/Dio好且资源占用更小。

全部就绪后,启动WebUI:

python infer-web.py

默认监听7865端口,浏览器会自动打开。A卡/I卡用户改用go-realtime-gui-dml.bat或go-web-dml.bat这类整合包入口。

最小可行路径:一键训练出第一个模型

WebUI里选v2的48k配置(配置文件在 configs/v2/,训练参数默认是batch_size=4、学习率1e-4),然后按界面引导走:上传切好的片段 → 指定实验名 → 一键训练。这一键流程实际会依次做:音频切片、提取音高、提取hubert特征、训练模型、生成索引。

两个新手最容易卡住的地方,先说清楚:

  • 训练集路径:路径里带空格、括号、中文都可能让ffmpeg报错(ffmpeg error)或写filelist时报utf8 error。最省事的办法是把数据集放到纯英文短路径下。
  • wavs16k里的小文件:如果报The expanded size of the tensor (17280) must match the existing size (0)这类尺寸不匹配的错,大概率是wavs16k文件夹里有显著偏小的坏音频,删掉再重新点训练即可。注意一键流程中断后,训练完要手动再点一次"训练索引"。

训练完你会拿到两个东西:weights/下60MB以上的.pth模型文件,和added_开头的.index索引文件。推理时两个都要选上,index_rate给0.5~0.6做第一次试听是合理起点。

效果验证:怎么判断这次训练算成功

别只看"训练完成了",用三段式验证:

  1. 音色对不对:拿一段和训练集说话人相同的音频推一遍,听音色相似度;再拿一段完全不同的说话人推,确认不会串成训练集的声音。
  2. 有没有音色泄漏:推理源的声音特点往结果里漏,说明index_rate偏低,往1方向调;调满1理论上不再有泄漏,但音质会向训练集靠拢——训练集音质低于推理源时,调高反而会拉低音质。
  3. 有没有哑音/破音:这是音高提取的问题,优先换RMVPE而不是加epoch。

训练轮数(total_epoch)按数据质量定,官方FAQ的判断很直接:音质差底噪大,20~30就够,调再高也带不动;音质高、时长多,200都可以。先跑默认值,确认音色没问题再动这一个参数。

显存不够时优先调这几个参数

报Cuda out of memory时按这个顺序处理:

阶段优先调整说明
训练batch_size 调小降到1还不够就换卡,没有别的办法
训练"提取音高和处理数据使用的CPU进程数"拉低多进程预处理会把内存炸掉,报file/memory error先怀疑这个
推理configs/config.py里的 x_pad / x_query / x_center / x_max4GB显存卡默认会自动切到更小的一组值,改之前先看代码里现成的配置逻辑

另外一个隐蔽点:4GB以下显存的卡在device_config逻辑里会强制fp32并改写configs/inuse/下的配置,训练速度会变慢但不影响正确性,不用手动干预。

模型不满意的几个排查方向

  • 音色不统一:训练集里混了不同录音设备/风格的片段。重建一个干净实验名,只留高质量片段。
  • 中途想加数据:官方做法是所有数据新建实验名,把上一实验最新的G/D checkpoint拷进新实验目录,再一键训练,它会接着上次进度继续。
  • 想微调已有音色:WebUI的ckpt处理选项卡里有ckpt-merge,可以按比例融合两个模型,0.5:0.5是常用的起点比例,融合效果建议换几段不同风格的音频对比听。
  • 想推训练中间存的pth:先用ckpt选项卡做"小模型提取",别直接拿logs/下几百MB的完整checkpoint去推理,会报f0/tgt_sr等key不存在。
  • 分享模型:分享weights/下的60MB级.pth加上对应.index,不要分享logs/下的完整实验文件。

进阶:实时变声和批量推理

模型调好后,两个高频用法:

  1. 实时变声:运行go-realtime-gui.bat,仓库宣称端到端170ms延迟,ASIO输入输出下90ms。延迟体验高度依赖声卡驱动,ASIO设备是前提。
  2. 批量/命令行推理:WebUI跑通后,消息窗里会直接显示本次数据集处理和训练对应的命令行,照抄即可脱离界面复现;命令行推理的完整参数说明见 docs/cn/faq.md 的Q7。

部署上仓库提供了Dockerfile(基于nvidia/cuda:11.6.2,预下载v2预训练权重)和docker-compose.yml,docker build后容器默认暴露7865端口,适合不想在本机装一堆依赖的场景。更底层的推理管线在 infer/modules/vc/,做二次开发从这里入手。

多语言文档在 docs/ 下,中文FAQ和训练技巧分别对应docs/cn/里的 faq 和 training 系列,遇到具体报错先查那里,大部分错误都有现成解释。

下一步:录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

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

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

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

立即咨询