news 2026/9/13 17:24:56

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)是一个开源的语音音色转换/变声框架:用 10 分钟左右的低底噪音频就能训练出可用的音色克隆模型,自带 WebUI 训练与推理界面和实时变声程序。它的底模基于约 50 小时的开源 VCTK 语料训练,没有版权顾虑。下面按"环境 → 跑通流程 → 排坑 → 原理 → 调优"的顺序讲一遍,每节都能独立查阅。

1. 安装环节:最容易出问题的三处

克隆仓库并按硬件装依赖

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

当前分支面向Python 3.12 x64(Ubuntu 推荐 24.04)。旧教程里的 3.8–3.10 说法已不适用,按老文章直接装依赖大概率出错。装完 Python 3.12 后建虚拟环境,再按硬件选对应依赖文件:

硬件依赖文件
CPU / AMD / Intelrequirments_cpu_py312.txt(Windows 可走 DirectML)
NVIDIA RTX 50 系先装 CUDA 12.8 版 Torch,再装requirments_cu128_py312.txt
RTX 50 系以前先装 CUDA 11.8 版 Torch,再装requirments_cu118_py312.txt

文件顶部已内置下载源,大陆网络一般不用改;换官方源只动--index-url两行,包版本和两阶段顺序保持不变。装完可用一行命令验证 CUDA 状态:

python -c "import torch; print(torch.__version__, torch.cuda.is_available())"

预训练模型文件要放对位置

RVC 不会自动拉取全部模型,需要把官方模型仓库里的文件放到约定的目录:assets/hubert_base/(特征提取用)、assets/rmvpe/rmvpe.pt(音高提取)、assets/pretrained/assets/pretrained_v2/(v1/v2 训练底模)、assets/uvr5_weights/(仅用 UVR5 人声分离时需要)。目录结构在 README.md 里有完整列表,照抄即可。用户自己的模型和索引分别放assets/weights/assets/indices/

FFmpeg 不能缺

音频读写都走 FFmpeg。Ubuntu 装系统依赖时一并装了;Windows 可把 ffmpeg.exe、ffprobe.exe 放到项目根目录。验证方式就一条:ffmpeg -version

2. 把"训练 → 推理"完整跑通一遍

启动 WebUI

Windows 双击 go-webui.bat,命令行环境直接:

python webui.py

服务默认监听 7865 端口,端口冲突时可在 configs/config.py 里调整。实时变声界面由 realtime_gui.py 单独启动(对应 go-realtime_gui.bat)。

界面主要分四个功能区:数据/训练(切分、提音高、提特征、训模型、训索引)、推理(选音色和索引做转换)、ckpt 处理(小模型提取、模型融合)、系统设置。

一键训练背后发生了什么

点"一键训练"后,流程是:按静音切分音频(静音保留上限约 5 秒,再以 4 秒、0.3 秒重叠的方式分段)→ 提取 f0 音高 → 用 HuBERT 抽 256 维特征存入logs/实验名/3_feature256→ 从预训练底模继续训练 G/D 两个模型 → 用 faiss 对全部训练特征建 IVF 索引。每个实验的所有中间产物都在logs/实验名/下,想复现或续训都靠它。

成品模型在哪:60MB 的 .pth

这是新手最容易混的地方。logs/实验名/下几百 MB 的 G/D 文件是训练状态,用来续训和复现,不是拿来分享的。能推理、能分享的模型是assets/weights/下 60MB 以上的 .pth。如果你手上只有 logs 下的中间 ckpt,用 ckpt 选项卡里的"ckpt 小模型提取"(输入 G 开头那个,手动或自动选择是否携带音高、目标采样率)提取一次即可。分享时建议把 weights 里的 .pth 和对应的 .index 打包成 zip,省去对方填索引的步骤。

3. 排坑清单:出错了先查这几处

症状原因与处理
Cuda out of memory训练时调小 batch size(调到 1 还爆只能换卡);推理时缩小 configs/config.py 末尾的 x_pad、x_query、x_center、x_max
训练结束找不到模型见上一节:去assets/weights/找 60MB+ 的 .pth,或用 ckpt 提取
一键训练完没有 .index 文件训练集太大时加索引步骤可能卡住,重新点一次"训练索引"
ffmpeg error / utf8 error大概率是路径问题:带空格、括号或中文的路径
Connection Error黑控制台窗口被关掉了
Expecting value: line 1 column 1关掉系统代理(含服务端的 http_proxy/https_proxy)
报 tensor size must match16k_wavs里有异常小的音频文件,删掉重训;中途换采样率则必须换新实验名从头来
Windows 报 llvmlite.dll 缺失安装 VC++ 运行库后重启 WebUI

显存不够时的具体降法:当前 configs/config.py 会按设备自动定档——显存 ≤4G 用一组更小的查询参数(x_pad=1、x_query=5、x_center=30、x_max=32),Pascal 和 GTX 16 系强制 fp32,新卡才用 fp16。自动档位仍爆显存再手动往下调。按官方 FAQ 的说法:4G 显存以下基本可以放弃训练,4G 还有救。推理选卡则是改 config.py 里device cuda:后面的卡号,卡号映射在训练选项卡里能看到。

其他几个高频操作:中断续训靠关闭控制台重启、用相同参数点"训练模型"接着上次 checkpoint 走;中途加数据就新建实验名、把上次的最新 G/D 拷过去再一键训练;预处理阶段文件句柄/内存 error,就调低"提取音高和处理数据使用的 CPU 进程数"并手动把训练集音频切短。更多条目见 docs/cn/faq.md。

4. 为什么 10 分钟音频就能克隆:检索机制与 index_rate

RVC 的核心手段是检索。训练时把每段语音的 HuBERT 特征存下来并用 faiss 建 IVF 近似最近邻索引;推理时,对输入语音的特征从索引里搜出训练集中最接近的向量(top1 检索),用它替换输入源特征再做转换。这一步的意义在于"杜绝音色泄漏"——否则底模或推理源自己的音色会混进结果,克隆出来的声音不纯。

index_rate(0–1)控制检索混合的力度:调到 1 理论上没有音色泄漏,但音质完全以训练集为准——训练集音质低于推理源时,调高反而降音质;调到 0 则失去检索保护。训练集优质、时长足够时模型本身就不会引用源音色,index_rate 变得不重要,索引文件甚至可以不分发。索引的数学细节(IVF、距离度量、选参建议)写在 docs/en/faiss_tips_en.md。

5. 音高提取算法怎么选

推理管线里可选的 f0 提取器是 RMVPE、PM、FCPE 三种(见 infer/vc/pipeline.py),训练侧的音高提取在 train/dataset/extract_f0.py。

算法特点适用场景
RMVPEInterspeech 2023 方案,速度快、占用小、根绝哑音默认推荐,绝大多数场景
PM (parselmouth)轻量、快低配设备、追求速度
FCPE可选补充方案特定实验需求

老版本里的 Harvest、Dio 在当前代码中已不作为选项。日常使用直接默认 RMVPE 即可,不必折腾。

6. 数据与训练参数:多少够用

数据标准

  • 时长:推荐 10–50 分钟。音质高、音色有个人特色时 5–10 分钟也能训出结果;1–2 分钟的成功案例不可复现,不建议赌。
  • 环境:低底噪优先。底噪大时模型音质会被训练集拉低,多少 epoch 都补不回来。
  • 采样率:建议统一到 48k(configs 下 v1/v2 均有 48k 配置,见 configs/v2/)。
  • 预处理时脚本会自动做降噪平滑和标准化,静音段按阈值切掉,但源头干净仍然省得最多。

参数怎么定

  • total_epoch:底噪大、音质差的数据 20–30 轮足够,调高也带不动;音质好、时长多的数据可以放到 200 轮。
  • batch_size:越大训练越稳但吃显存,按nvidia-smi观察尽量调大;显存紧张就降到 1–2。
  • 是否携带音高:训练时勾选与否决定模型能不能用于唱歌。不带音高的模型更轻,但不适合演唱场景,别训完才发现用错。
  • 精度不用手动管:config.py 的 GPU 规则会自动在 fp16/fp32 间选择。

硬件方面不用追求顶配:4G 显存的卡可以训小模型,6G 以上训练推理都从容,12G/24G 才谈得上大批量实验。CPU 可跑但训练会慢很多,适合验证流程而非正式训练。

7. 模型融合与实时变声

ckpt 融合:在 ckpt 处理选项卡用 ckpt-merge 把两个或多个音色模型按比例混合,可以调特定音域的倾向,或造出谁都不像的新音色。AI 歌手、游戏角色定制常用这个。

实时变声:官方已做到端到端约 170ms 延迟;配合 ASIO 输入输出设备可压到约 90ms,但高度依赖声卡驱动。直播、游戏语音、语音聊天都可行。想进一步压延迟的方向是换更小的切分窗口和更快的 f0 算法,以及用 ASIO 而非 WASAPI 共享模式。

人声伴奏分离直接调用内置的 UVR5(tools/uvr5/,含 BS-Roformer 等模型),拿到干声再去训练或推理,比直接喂带伴奏的歌省事。

8. 读源码:四个入口就够

  • infer/:推理核心。infer/module/models.py 是 v1/v2 模型定义,infer/vc/pipeline.py 是推理管线(f0 提取、索引检索、音量包络对齐都在这里),infer/rmvpe.py 是 RMVPE 音高模型。
  • train/:训练侧。train/train.py 主训练循环,train/dataset/slicer2.py 是音频切分,train/train_index.py 建 faiss 索引。
  • configs/:设备与显存规则、v1/v2 模型超参(32k/40k/48k 各一份 json)。
  • webui.py:Gradio 界面入口,各功能区的 UI 逻辑都在这一层,算法本身不掺在里面。

界面文案支持 13 种语言,在 i18n/locale/ 下,改本地化直接动 json。

9. 接下来去哪

多语言文档在 docs/:中文 FAQ docs/cn/faq.md、训练指南 docs/en/training_tips_en.md、faiss 调参 docs/en/faiss_tips_en.md,日、韩、法、葡、土耳其语版本齐全。

学习路径可以分三步自查:

  1. 会用:独立跑通"数据 → 一键训练 → 训索引 → 推理出一条满意音频",知道 60MB 的 .pth 和 logs 里 ckpt 的区别。
  2. 用好:能按数据质量定 epoch、按显存调 batch 与查询参数、用 index_rate 处理音色泄漏,会用 ckpt-merge 融合音色。
  3. 用透:读得懂 pipeline 的检索与对齐逻辑,能改 f0 算法或切分策略,把实时链路压到更低的延迟。

关于后续:项目方预告的 RVCv3 底模参数更大、训练数据更多、效果提升,同时推理速度基本持平、所需训练数据量更少,可以持续关注。

训练集质量决定上限,参数只是逼近这个上限的方式。先把第一首曲子完整跑通,再逐节回头对号入座,比通读十遍教程有效。

【免费下载链接】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/13 17:18:22

STC8A8K64S4A12开发板实战:从原理图到例程移植与串口Modbus调试

简介&#xff1a;STC8A8K64S4A12开发板资料包面向单片机学习者与嵌入式开发工程师&#xff0c;汇集硬件设计与软件示例于一体&#xff0c;可帮助快速掌握增强型8051内核的编程方法与外设应用。压缩包约96.11MB&#xff0c;内含开发板PDF原理图及45个软件DEMO例程&#xff0c;原…

作者头像 李华
网站建设 2026/9/13 17:18:20

PMSM无感FOC实战:从硬件选型到滑模观测器落地

1. 为什么电机控制成了秋招“硬通货”&#xff1f;——从招聘JD反推能力图谱 去年帮三个应届生改简历&#xff0c;其中两个投递自动化、电力电子、机器人方向的岗位&#xff0c;一个卡在初筛&#xff0c;两个卡在二面技术环节。我挨个翻他们投的公司JD&#xff0c;发现一个共性…

作者头像 李华
网站建设 2026/9/13 17:18:17

ARM设备ADB调试实战:从tgz解压到logcat抓取

简介&#xff1a;一份 ADB&#xff08;Android Debug Bridge&#xff09;工具的完整源码包&#xff0c;面向嵌入式开发、驱动调试、系统移植等场景的工程师&#xff0c;也适合有交叉编译基础的中高级开发者。官方预编译版本常受架构与运行环境限制&#xff0c;而这份源码可直接…

作者头像 李华
网站建设 2026/9/13 17:16:57

WinForm自定义界面实战:无边框窗体+GDI+自绘仿360皮肤

简介&#xff1a;一款面向C# WinForm开发者设计的界面模仿项目&#xff0c;基于Visual Studio 2013与.NET 4.0框架实现&#xff0c;借鉴360安全卫士的界面布局&#xff0c;通过自定义控件高程度还原主窗口、功能导航与操作按钮等视觉元素。适合希望快速掌握WinForm界面美化、无…

作者头像 李华
网站建设 2026/9/13 17:16:23

智能优化算法改进BP神经网络的Matlab实现

1. 项目背景与核心价值在机器学习领域&#xff0c;BP神经网络作为经典的监督学习算法&#xff0c;长期面临着收敛速度慢、易陷入局部最优等痛点问题。最近两年&#xff0c;基于生物启发的新型智能优化算法在参数优化领域展现出显著优势。这个项目实现了六种前沿算法&#xff08…

作者头像 李华