☰
RVC语音转换指南:如何用10分钟语音训练出高保真AI变声模型
2026/10/1 10:06:18 网站建设 项目流程

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

Retrieval-based-Voice-Conversion-WebUI(简称 RVC)是一个基于 VITS 的开源变声框架,核心亮点只有一条:用不到 10 分钟的干净语音,就能在普通显卡上训练出一个能唱歌、能对话的音色模型。它的底模由接近 50 小时的开源 VCTK 语音集预训练而成,因此你不需要从零教模型"人声长什么样",只需要教它"某个人的声音长什么样"。配合 top1 检索机制、实时变声界面(端到端延迟 170ms,ASIO 环境下可达 90ms)和内置的人声分离工具,它把"克隆一个声音"的门槛从录音棚级拉到了卧室级。

痛点先行:传统语音转换的三道坎

数据量、音质、速度,传统方案怎么算都亏

传统音色克隆路线大致是"录几小时数据 → 从零训练一个 VITS → 祈祷不出电音"。这条路有三道坎:

  • 数据门槛高:通常需要数小时纯净录音,对素人来说几乎不可完成;
  • 效果容易翻车:训练不足的模型常带"金属音""机器人感",歌声场景尤其明显;
  • 实时性难兼顾:能离线出好音质的方案往往慢,能实时的方案音质打折。

RVC 的应对思路:检索替代硬记

RVC 的破题方式不是"逼模型背下你的声音",而是边推理边查表:推理时把输入音频的音色特征换成训练集中最相似的特征片段(top1 检索),再交给声码器合成。这样模型只负责"像那个人一样发声",具体音色细节由检索库兜底——项目方正是用这套机制"杜绝音色泄漏"。数据量方面,官方推荐至少 10 分钟低底噪语音,常见问题文档给出的实用区间是 10 至 50 分钟。

一张表看懂 RVC 的核心组件

术语通俗解释
HuBERT 特征提取器声音的"指纹仪",把每一帧音频压成 256 维特征向量
top1 检索索引(faiss)音色的"卡片目录",用 IVF512 结构预组织训练集特征,推理时毫秒级查到最接近的音色
VITS 声码器声音的"3D 打印机",把特征数据逐帧打印成可听波形
RMVPE 音高提取旋律的"节拍器",逐帧读出音高 f0,专治歌声转换里的哑音问题
UVR5 人声分离音频的"手术刀",从整首歌里精准切出人声与伴奏
ckpt-merge 模型融合音色的"调色盘",把两个权重文件按比例混出第三种声音

它凭什么:四个设计决定成败

10 分钟数据 + 预训练底模,小数据也能出片

训练不是从随机权重开始,而是加载assets/pretrained/下的f0G40k.pth/f0D40k.pth继续训练,等于站在 50 小时底模的肩膀上微调音色。数据预处理也很省事:指定一个音频文件夹,RVC 自动完成静音切分(按 4 秒一段、0.3 秒重叠切块)、降噪、归一化,再统一转成 16k 的 wav 送进特征提取。

检索机制从根上堵住音色泄漏

没有检索的变声模型,往往把输入者自己的音色"漏"进输出里——你唱的是 A 的旋律,出来的却是 A 和 B 的杂交体。RVC 用检索索引把输入特征整体替换为训练集特征,推理端还有一个"检索特征占比"滑杆(在线 demo 默认 0.88),拉满则完全用训练集音色,调低则保留更多原声特征,给你留了手动权衡的余地。

老显卡友好:fp16 自动降级 + 4GB 显存保底

configs/config.py里有一套很实在的降级逻辑:检测到 P40、GTX 1060–1080、1650 等老卡时自动切到 fp32 并调整批处理参数;显存 ≤4GB 时自动收缩分段长度(x_pad/x_query/x_center/x_max)。官方 FAQ 的说法是"4G 以下显存可以直接放弃,4G 显存显卡还有救"。

全显卡覆盖 + 多语言界面

N 卡走 CUDA;A 卡/I 卡可走 DirectML(requirements-dml.txt);Linux 下 A 卡有 ROCm(requirements-amd.txt)、I 卡有 IPEX(requirements-ipex.txt)两条路。界面通过 i18n/locale/ 支持中、英、日、韩、法、俄、葡、土耳其等 13 种语言,官方文档同步覆盖 docs/ 下的 cn、en、jp、kr、fr、tr、pt 等目录。

手把手上手:从装环境到第一次变声

准备:三条命令装好依赖

环境要求 Python 大于 3.8。

# 获取代码 git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI # N 卡 pip install -r requirements.txt # A 卡 / I 卡(DirectML) pip install -r requirements-dml.txt # MacOS 可用 run.sh 一键装依赖 sh ./run.sh

另需准备两样东西:ffmpeg(Ubuntu 用sudo apt install ffmpeg,Windows 把 ffmpeg.exe 放根目录即可),以及assets/下的预训练模型(hubert_base.pt、pretrained、uvr5_weights,v2 用户还需 pretrained_v2;仓库 tools/ 里附有下载脚本dlmodels.sh/dlmodels.bat)。

执行:启动 WebUI 并跑通一次训练

# 启动训练/推理网页界面(默认端口 7865) python infer-web.py

Windows 整合包用户双击 go-web.bat 即可(整合包占用端口 7897),实时变声界面则是 go-realtime-gui.bat。

训练路径按三步走:① 起个实验名并选择是否"考虑音高"(唱歌场景必须开,不开则模型更轻但不适合歌唱);② 指定音频文件夹,点一键提取——自动完成切分、降噪、f0 音高提取(可选 harvest / crepe / rmvpe)与 HuBERT 256 维特征提取,中间产物全部落在logs/实验名/下;③ 点一键训练——训练 VITS 权重后自动用 faiss 构建 IVF512 检索索引。详细的分步说明见 docs/en/training_tips_en.md,中文社区教程见 docs/cn/。

验证:用这些参数做第一次转换

推理页面上真正影响听感的参数其实就几个:

  • 变调 f0up_key:半音数,男转女推荐 +12,女转男推荐 -12;
  • 音高提取算法:歌声可选 rmvpe(效果最好且比 crepe 快、更省资源),harvest 低音好但极慢,pm 适合说话输入提速;
  • 检索特征占比:默认 0.88,拉高更"像训练对象",调低保留更多原声;
  • 保护清辅音 protect:默认 0.33,防止电音和撕裂感,调低保护更强但可能削弱检索效果;
  • 中值滤波半径 filter_radius:默认 3,配合 harvest 可削弱哑音。

命令行党可以直接用 tools/infer_cli.py 做单条转换,例如指定模型、索引、f0 算法后输出 wav;批量处理用 tools/infer_batch_rvc.py。上传音频控制在 90 秒以内。

能用在哪儿:四类典型场景

音乐与 AI 歌手

这是 RVC 的主场。先用内置 UVR5(权重在assets/uvr5_weights/)把人声从伴奏中分离出来,训练音色模型,再把替换后的人声与原伴奏合回——社区里"5 毛钱在 AutoDL 上训练 AI 歌手"的玩法正是这条路。不想从零训练时,还可以用 ckpt 选项卡的 ckpt-merge 把两个模型按比例融合,快速调出"介于两人之间"的新音色。

实时变声:直播、游戏与通话

实时变声界面实现端到端 170ms 延迟,配合 ASIO 声卡输入输出可压到 90ms。对延迟敏感的直播推流、游戏内变声、语音通话场景,这组数字意味着"几乎感觉不到经过了一台机器"。

有声内容与多角色配音

10 分钟数据训一个角色的特性,让"一部小说五个角色各一个音色"的批量生产成本极低:每角色准备一小段参考语音,各训一个模型,再用批量推理脚本串行出片。

开发者:API 与二次开发

仓库提供了两套可直接调用的推理接口 api_231006.py 和 api_240604.py,底层就是 infer/modules/vc/ 里的VC类(vc_single方法即推理入口);需要轻量化部署时可用 tools/export_onnx.py 导出 ONNX,tools/onnx_inference_demo.py 给出对应推理示例。模型相似度对比可以用 tools/calc_rvc_model_similarity.py 量化两个权重文件的接近程度。

继续深挖:调参建议与常见报错

关键参数怎么设

参数建议依据
训练轮数 total_epoch底噪大的数据集 20~30 轮即可;高音质长数据集可上到 200docs/cn/faq.md Q9
学习率初始 1e-4,衰减系数 0.999875configs/v1/40k.json
batch_size默认 4,显存富裕时调大更稳同上
采样率版本v1 支持 32k/40k/48k,v2 支持 32k/48kconfigs/
检索索引一键训练后自动生成.index文件,位于logs/实验名/训练指南

问题↔优化方案速查表

常见问题处理方案
训练时 ffmpeg error / utf8 error多半是路径带空格、括号或中文,把数据集挪到纯英文无空格路径(FAQ Q1)
一键训练结束没有.index索引数据集过大卡在添加索引步骤,重新点一次"训练索引"按钮(FAQ Q2)
推理页看不到刚训的音色先点"刷新音色";仍没有则检查logs/实验名/下的报错日志(FAQ Q3)
CUDA out of memory训练缩小 batch_size;推理缩小config.py末尾的 x_pad / x_query 等参数;4GB 显存可继续跑(FAQ Q8)
分享模型给别人分享assets/weights/下 60+MB 的推理用 pth(可与.index打包成 zip),不要分享logs/下的训练态大文件(FAQ Q4)
男转女/女转男音色怪变调设 +12 / -12,音域失真时再手动微调半音数

训练数据怎么准备

官方口径是 10~50 分钟、低底噪。实操上优先保证干净而不是堆时长:底噪大的数据训再多轮也"带不高"。音频格式交给 ffmpeg 兼容即可,切分、降噪都由流水线自动完成;若源文件是"人声+伴奏"混音,先走一遍 UVR5 分离再进训练。

延伸资料:仓库内快速索引

  • 中文文档与 FAQ:docs/cn/faq.md、docs/cn/Changelog_CN.md
  • 多语言文档:docs/en/(训练技巧、FAQ、faiss 技巧)、docs/jp/、docs/kr/、docs/fr/、docs/pt/、docs/tr/
  • 命令行工具集:tools/(单条推理、批量推理、ONNX 导出、模型下载、相似度计算)
  • 预训练模型目录:assets/pretrained/、assets/pretrained_v2/
  • 训练配置:configs/(v1/v2 各采样率参数,训练时自动复制到configs/inuse/)
  • 推理核心源码:infer/modules/vc/(VC 主类)、infer/lib/infer_pack/modules/F0Predictor/(四种音高提取器:rmvpe / harvest / crepe / pm)
  • 启动入口:infer-web.py(WebUI)、go-realtime-gui.bat(实时变声)、run.sh(MacOS 依赖安装)

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

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

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

立即咨询