news 2026/9/3 2:13:13

RVC 变声框架上手指南:用 10 分钟语音数据训练你自己的变声模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RVC 变声框架上手指南:用 10 分钟语音数据训练你自己的变声模型

RVC 变声框架上手指南:用 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

Retrieval-based-Voice-Conversion-WebUI(下称 RVC)是一个基于 VITS 的开源变声(Voice Conversion)框架:你只需准备约 10 分钟的语音样本,就能在普通显卡上训练出一个音色转换模型,把任意音频"变成"目标音色说话,并支持端到端 170ms 延迟的实时变声。

先看懂它的 5 个核心价值

  • top1 检索防音色泄漏:推理时从训练集检索最接近的特征替换源特征,输出音色稳定不跑偏
  • 训练门槛低:入门级显卡即可训练,官方 FAQ 明确 4GB 显存"还有救"
  • 数据量小:推荐 10~50 分钟低底噪语音,高质量数据 5~10 分钟也能出可用结果
  • 模型可融合:ckpt-merge 功能可以把多个模型权重按比例混合,微调音色
  • 全平台支持:NVIDIA CUDA、AMD ROCm/DirectML、Intel IPEX 三条路线都能跑

环境门槛:装之前先看你的机器

软件与硬件要求

  • Python 3.8+(若走 Poetry 路线建议 3.7~3.10,新版会与llvmlite==0.39.0冲突)
  • 系统已安装 ffmpeg / ffprobe(Ubuntu 用sudo apt install ffmpeg,macOS 用brew install ffmpeg,Windows 把 ffmpeg.exe 和 ffprobe.exe 放到项目根目录)
  • 显存参考:训练 4GB 起步(3GB 的 1060 及更低建议放弃);推理对显存要求更低
  • 内存:训练和预处理会开多进程,内存紧张时先调低"提取音高和处理数据使用的 CPU 进程数"

最佳配置建议:8GB 以上显存的 N 卡 + fp16 半精度,可同时跑训练和实时推理,且能开最大检索缓存(见后文调优)。

三种显卡的安装步骤

先获取代码:

git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI

然后按你的显卡选一条路线安装(先装 PyTorch 本体,已装可跳过):

NVIDIA 卡(推荐路线)

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

Windows + Ampere 架构(RTX 30 系)建议指定 CUDA 11.7 的 wheel:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

AMD 卡

pip install -r requirements-dml.txt

AMD 卡想走 ROCm(仅 Linux)则改用requirements-amd.txt,并按官方文档安装 ROCm 驱动。

Intel 卡(仅 Linux + IPEX)

pip install -r requirements-ipex.txt source /opt/intel/oneapi/setvars.sh

下载预训练模型:RVC 运行还需要一批预模型(Hubert 特征提取器、VITS 底模、UVR5 人声分离权重等),清单如下,项目内tools/目录提供了download_models.pydlmodels.sh等下载脚本,官方仓库也发布了RVC-beta.7z整合包可一步到位:

  • assets/hubert/hubert_base.pt
  • assets/pretrained/(v2 模型还需assets/pretrained_v2/
  • assets/uvr5_weights/
  • RMVPE 音高提取参数rmvpe.pt(放根目录;A/I 卡 DML 环境用rmvpe.onnx

第一次跑通:从零到第一段转换音频

整体流程是:备料 → 一键训练 → 模型推理,全部在 WebUI 里点按钮完成。

第 1 步:启动 WebUI

python infer-web.py

Windows 整合包用户双击go-web.bat即可;macOS 可用sh ./run.sh。启动后浏览器自动打开界面(默认端口 7865,可用--port修改,--noautoopen可禁止自动打开)。界面包含数据处理/训练、模型推理、语音分离(UVR5)、ckpt 处理等选项卡。

第 2 步:准备训练集

收集 10~50 分钟低底噪、音色统一的语音,切成若干段放进一个文件夹。质量比数量重要:底噪大的数据,训练集再好也"带不高"音质。

第 3 步:一键训练

在训练选项卡填入训练集文件夹路径和实验名,执行一键训练。流程会自动串联:切片 → 提取音高(F0)→ 提取特征(Hubert)→ 训练 VITS 模型 → 训练检索索引。结束后你会得到两类产物:

  • logs/实验名/下的 checkpoint(G/D 文件,用于续训,几百 MB,不要拿它分享
  • weights/实验名.pth(约 60MB+,用于推理和分享的模型)
  • logs/实验名/added_*.index(检索索引文件,推理时与 pth 配合使用)

epoch 建议:音质一般的训练集 20~30 轮足够;高音质、时长足的可拉到 200 轮。

第 4 步:推理出第一段音频

到模型推理选项卡刷新音色,选择刚训练的模型和对应 index,上传一段待转换音频,点转换。两个关键参数先记住:

  • f0 移调(半音):不改变调就填 0
  • index_rate:0~1 之间,控制音色向训练集靠拢的程度(原理见下一节)

听到输出,你就跑通了全流程。

目录结构导读:每个文件夹管什么

Retrieval-based-Voice-Conversion-WebUI/ ├── infer-web.py # WebUI 入口,组装各选项卡 ├── infer/ │ ├── modules/vc/ # 变声主逻辑(pipeline、模型加载、批量推理) │ ├── modules/train/ # 切片、F0 提取、特征提取、训练脚本 │ ├── modules/uvr5/ # 人声/伴奏分离 │ ├── lib/infer_pack/ # 推理模型定义、注意力、F0 预测器 │ └── lib/jit/ # JIT 加速的 Hubert/RMVPE/合成器封装 ├── configs/ # v1/v2 各采样率训练配置 + inuse/ 运行副本 ├── assets/ # 预训练权重、Hubert、UVR5 权重、训练产物 weights/ ├── tools/ # 批量推理、导出 ONNX、实时 GUI、模型下载脚本 ├── i18n/locale/ # 13 种语言的界面翻译 └── docs/ # 中英法日韩葡土 7 种语言文档与 FAQ

两个值得知道的细节:

  • configs/ 启动时会自动把v1/v2/配置复制到configs/inuse/改参数要改 inuse 下的副本,否则下次启动被覆盖。v1 支持 32k/40k/48k 三档采样率,v2 支持 32k/48k。
  • infer/modules/vc/pipeline.py 是推理主线的核心:音高提取、特征检索、模型合成三步都在这里串起来。

工作原理拆解:RVC 到底怎么"变声"

用大白话走一遍推理链路(训练同理):

  1. 音高提取(F0):从你的输入音频里逐帧提取基频曲线——就是"你说话时声音的高低"。可选 RMVPE(默认,速度最快、效果最好,InterSpeech 2023 算法)、Harvest、PM 等方法。
  2. 特征提取:用预训练的 HuBERT 模型把音频转成一串声学特征向量,描述"这段话说了什么内容"。
  3. top1 检索:拿源特征去训练集特征库(就是那个 .index 文件,用 FAISS 建的向量索引)里找最接近的一条,替换掉源特征——这一步是防"音色泄漏"的关键:如果只做第 2 步,输出的音色会被推理源和底模带偏,检索替换后音色锚定在训练集上。
  4. 模型合成:VITS 模型吃进"音高曲线 + 检索后的特征 + 目标说话人编号",直接生成波形。VITS 是自回归+声码器一体的架构,一次前向出音频,所以推理快。
  5. 细节修正:可选 RMS 响度混合、低通滤波(filter_radius)等后处理,让输出更自然。

训练侧则是:切片 → 提取 F0 与特征 → VITS 的判别器+生成器对抗训练(c_mel=45, c_kl=1.0的 mel 与 KL 损失,见 configs/v1/48k.json)→ 最后用训练集特征批量构建 FAISS 索引。

调参手册:显存、epoch 与 index_rate

按显存调推理缓存(configs/config.py 末尾的四个变量,代码会自动按显存档位设置,可手动覆盖):

档位x_padx_queryx_centerx_max
6GB+(fp16)3106065
5GB(fp32)163841
4GB153032

旧卡(1060/1080/P40 等)会自动强制 fp32 并写入use_fp32_config,无需手动处理。

按数据质量调 epoch:底噪大的训练集 20~30 轮封顶,调再高底模也救不回来;高音质+时长足的数据可以给到 200 轮。

按需求调 index_rate:调高(趋近 1)→ 音色更贴训练集但音质上限被训练集锁死;调低(趋近 0)→ 音质可被高质量推理源拉高,但音色开始往推理源/底模漂。训练集本身优质且时长多时,index_rate 基本不重要。

其他常用开关

  • resample_sr:推理时重采样,可进一步提亮音质
  • protect:保护低频能量,减少破音
  • 多卡推理:config.pydevice = "cuda:N"选卡号,卡号映射在训练选项卡的显卡信息栏可见

排障手册:报错速查

现象原因解法
ffmpeg error / utf8 error路径含空格、括号或中文把训练集移到纯英文无特殊字符的路径
一键训练完成但没有 added 开头的索引训练集太大,索引步骤卡死再点一次"训练索引",或分批添加
训练完推理刷不到新音色缓存未刷新点刷新音色;仍没有则看logs/实验名下的日志找训练报错
Cuda out of memory显存不足训练时调小 batch size(降到 1 还不够就换卡);推理时调小 x_pad/x_query/x_center/x_max
Connection Error你关掉了黑色控制台窗口保持终端开着运行
Expecting value: line 1 column 1局域网/全局代理拦截了 localhost 请求关掉系统代理;AutoDL 等环境的 http_proxy 也要 unset
Could not load llvmlite.dllWindows 缺 VC++ 运行库安装 Visual C++ Redistributable (x64) 后重启 WebUI
expanded size of the tensor (17280) must match (0)训练集里有异常小的音频文件进 wavs16k 文件夹找出明显偏小的文件删掉,重新训练(需补点"训练索引")
size of tensor a (24) must match b (16)中途改了采样率续训换实验名从头训练(可拷贝 0/1/2/2b 文件夹加速)
想中断/继续训练只能重启进程关控制台重新启动 WebUI,相同参数再点训练即从 checkpoint 续训

另外提醒:想分享模型,打包weights/实验名.pth+added_*.index,不要把logs/下几百 MB 的 checkpoint 直接拿去推理(会报 f0、tgt_sr 等 key 不存在的错);需要时可用 ckpt 选项卡做"小模型提取"。

落地场景:它适合做什么

  • 实时变声go-realtime-gui.bat启动实时 GUI,端到端延迟 170ms,配 ASIO 声卡可压到约 90ms,适合游戏、直播、语音房
  • 歌曲翻唱/有声内容:批量推理(vc_multi)一次转完整张专辑,配合 UVR5 先做人声伴奏分离,转完再合回伴奏
  • 配音与角色音:用少量角色语音样本训练定制音色,批量替换配音稿
  • 数据与科研:tools/infer_cli.py、tools/infer_batch_rvc.py 支持脚本化批量转换,tools/export_onnx.py 可导出 ONNX 部署到边缘设备

文档与社区:遇到问题去哪问

  • 多语言文档齐全:docs/ 下有中文、英文、日文、韩文、法文、葡文、土文 7 个版本的 README、FAQ、训练技巧(training_tips)与 FAISS 索引说明,界面本身也随系统语言自动切换(i18n/locale/ 含 13 种语言)
  • 版本节奏:跟随 docs/cn/Changelog_CN.md 查看每次更新;官方在 README 中预告了参数更大的 RVCv3 底模
  • 反馈渠道:项目的 issue 跟踪、Discord 开发者社区(见 README 徽章)是主要反馈入口;训练/推理报错可截取控制台与 WebUI 画面一并提交

写在最后

RVC 把"训练一个可用变声模型"的门槛压到了 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 9:59:51

Excel多条件筛选进阶:用COUNTIF数组技巧解决复杂或与非逻辑

你是不是也遇到过这样的场景&#xff1a;领导丢给你一份密密麻麻的销售数据表&#xff0c;要求你“把华东区和华北区&#xff0c;并且销售额大于10万的订单找出来”&#xff0c;或者更刁钻一点&#xff0c;“找出所有既不是A供应商也不是B供应商的采购记录”。你熟练地打开了“…

作者头像 李华
网站建设 2026/9/1 9:59:23

3 条命令搞定 PDF 智能翻译:PDFMathTranslate 保留排版翻译完整指南

3 条命令搞定 PDF 智能翻译:PDFMathTranslate 保留排版翻译完整指南 【免费下载链接】PDFMathTranslate [EMNLP 2025 Demo] PDF scientific paper translation with preserved formats - 基于 AI 完整保留排版的 PDF 文档全文双语翻译&#xff0c;支持 Google/DeepL/Ollama/Ope…

作者头像 李华
网站建设 2026/9/1 9:58:25

小米测试开发笔试复盘:考点拆解与备考路线

2022年秋季那场小米秋招测试开发笔试&#xff0c;我到现在还记得很清楚。那时候我在宿舍里刷完了一套往年的算法题&#xff0c;自信满满地打开笔试链接&#xff0c;结果第一道选择题就差点把我看懵——不是题目本身多难&#xff0c;而是出题方式跟普通刷题网站完全不是一个路子…

作者头像 李华
网站建设 2026/9/1 9:52:57

安卓手机运行Windows 10:Vectras VM虚拟机安装与调优指南

很多人都有过这样的想法&#xff1a;手里的安卓手机性能已经很强了&#xff0c;8 核处理器、12GB 内存&#xff0c;跑大型游戏都绰绰有余。但遇到某些 Windows 软件时&#xff0c;还是只能老老实实打开电脑。如果在安卓设备上直接跑一个 Windows 10&#xff0c;是不是就能随时处…

作者头像 李华