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
给一段 10 分钟的录音,让 AI 用这个音色翻唱你喜欢的歌,或者在语音通话里实时把声音换成目标音色——这就是 RVC(Retrieval-based-Voice-Conversion-WebUI)的核心能力。它基于 VITS 架构做语音转换,训练数据需求小、界面是网页形式,Windows、Linux、macOS 都能跑,并且对 NVIDIA、AMD、Intel 显卡分别做了适配。
最短路径跑通第一次转换
准备环境与下载项目
需要 Python 3.8 以上环境。获取代码:
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI按显卡安装依赖:
pip install -r requirements.txt # NVIDIA pip install -r requirements-dml.txt # AMD / Intel pip install -r requirements-ipex.txt # Intel(Linux IPEX)RVC 推理和训练还依赖几个预训练权重(Hubert 特征提取、RMVPE 音高、UVR5 人声分离模型等),官方提供了下载脚本:
python tools/download_models.py另外需要系统里有 ffmpeg(Linux 用sudo apt install ffmpeg,macOS 用brew install ffmpeg)。
启动并做第一次转换
python infer-web.py浏览器打开后,界面按「功能」分区:先做数据预处理(切分音频、提取特征、提取音高),再进入训练。训练完在推理标签页加载模型和索引(.index 文件),上传一段音频,点转换即可听到新音色的结果。整个流程里推荐音高提取算法选RMVPE,它基于 Interspeech 2023 的开源模型,速度快、资源占用低,且能明显减少哑音。
它凭什么用 10 分钟数据就能练好
RVC 的做法可以拆成三步理解:
- 特征化:用 Hubert 模型把输入语音和训练集都转成离散特征,比较特征比直接比较波形更稳。
- 检索替换:推理时用 top1 检索,把输入源里最接近的帧特征替换成训练集里的特征。这一步是关键——它阻断了输入源音色向输出「泄漏」,所以即使训练集只有几分钟,目标音色依然稳定。
- 合成:VITS 风格的声码器(HiFi-GAN 类结构)把处理后的特征还原成波形。
检索强度由推理参数index_rate控制:调高更贴近训练集音色,调低则允许输入源和底模的音色参与。具体取舍见后文调优部分。
进阶玩法
实时变声
Windows 下双击go-realtime-gui.bat(或go-realtime-gui-dml.bat)启动实时变声界面,麦克风进、输出设备出,边说边换声音。官方已实现端到端 170ms 延迟;配合 ASIO 声卡可压到 90ms 左右,但对驱动要求高。核心逻辑在 tools/rvc_for_realtime.py。
模型融合(ckpt-merge)
WebUI 的「ckpt 处理」选项卡支持把两个训练好的模型按权重比例混合,得到一个介于两者之间的新音色,适合微调不满意的音色细节。
人声伴奏分离
内置 UVR5 模型,可以一键把歌曲拆成人声与伴奏:提取的干净人声直接丢进训练流程,伴奏则可留作伴奏轨。相关模型权重放在assets/uvr5_weights/,实现见 infer/modules/uvr5/。
参数与硬件调优
配置文件
- 主配置:configs/config.json,推理设备、切块时长(block_time)、
index_rate、pitch(变调半音数)都在这里,改完保存即可生效。 - 训练配置:configs/v1/ 和 configs/v2/ 按采样率(32k/40k/48k)区分。以 48k v2 为例,关键训练项是
epochs、learning_rate、batch_size;数据项是sampling_rate、n_mel_channels。
关键参数经验值
index_rate:训练集底噪大、时长短时给 20~30;训练集高音质且充足时可调到 200 左右。- 训练集时长:10 分钟左右是稳妥下限,精简且音色有特色的 5 分钟数据也能出可用模型。
- 训练集路径避免中文和空格,否则会触发 ffmpeg/utf8 报错。
硬件门槛
- 显卡:GTX 1060(6GB)级别即可流畅训练,RTX 30 系以上体验更好;A/I 卡走 dml/IPEX 路线。
- 内存:8GB 以上可应付大多数任务。
避坑清单
训练完没有 added 开头的索引文件现象:一键训练显示完成后,weights 下找不到 .index。排查:多为训练集过大时索引步骤内存不足。解决:回到界面手动再点一次「训练索引」按钮,或拆分训练集。
分享模型时对方无法推理 / 报 key 缺失现象:把 logs 目录下的 pth 发给别人,出现 f0、tgt_sr 等 key 不存在的报错。排查:logs 下的大文件是实验状态存档,不是推理模型。解决:分享weights/目录下 60MB 左右的 pth 文件;若手上只有 logs 存档,用 ckpt 选项卡的「小模型提取」生成可分享版本。
实时变声延迟高现象:说话和听到声音之间间隔明显。排查:默认 WASAPI 共享模式延迟就在这个量级。解决:换 ASIO 设备、调小缓冲区、关掉占用音频的后台程序。
WebUI 提示 "Expecting value: line 1 column 1 (char 0)" 或 Connection Error现象:页面打不开或接口报错。排查:前者通常是系统代理干扰,后者多是控制台窗口被关了。解决:关闭全局代理(包括远程机器上的 http_proxy),并保持黑色控制台窗口开着。
更多问题可查 docs/cn/faq.md。
生态与资源
- 多语言文档:docs/cn/、docs/en/,另有日、韩、法、葡、土耳其语版本,更新日志在
Changelog文件里。 - 核心代码:语音转换主逻辑在 infer/modules/vc/,训练流程在 infer/modules/train/,音频预处理在 infer/lib/audio.py。
- 界面国际化:翻译文件在 i18n/locale/,覆盖 13 种语言,可在界面内切换。
- 命令行与批处理:tools/infer_cli.py 支持批量推理,tools/infer/ 下有索引训练、权重转换等独立脚本。
写在最后
RVC 用「检索 + VITS」的组合,把高质量音色克隆的数据门槛压到了 10 分钟录音级别,训练、推理、实时变声、模型融合都在一套 WebUI 里完成,是个人创作者做 AI 翻唱和配音的实用工具(MIT 协议)。
最后提醒:克隆他人声音用于公开发布前,请取得本人同意,遵守当地法律法规,尊重声音版权。
【免费下载链接】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),仅供参考