RVC 中文速通教程

照着官方仓库文档走,从装环境到实时变声 · 面向 Windows 与 Ubuntu
Python 3.12当前分支要求
10–50 分推荐训练集时长
170 ms实时变声端到端延迟
7865WebUI 默认端口

开始前先确认你要走哪条路

官方仓库能干的其实是三件事,别一上来就装全套。

你的目标需要做什么跳过什么
只想试试变声,用现成音色 装环境 → 下推理模型 → 启动 → 直接推理 训练全流程
想变声成自己的音色 全套:环境 + 模型 + 训练 + 推理 —
想实时说话变声 先训好模型,再用实时界面 —
建议顺序:先用现成模型把整条链路跑通,再回头训自己的音色。虚拟声卡、采样率、缓冲这些坑跟用谁的音色无关,先用别人的模型踩完,你的录音素材就不会浪费在调试上。

1装环境

当前分支面向 Python 3.12 x64。装完 Python 后进入仓库根目录操作。

Windows

py -3.12 -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip setuptools wheel

Ubuntu 24.04

sudo apt update
sudo apt install -y python3.12 python3.12-venv python3.12-dev ffmpeg unzip libsndfile1 libportaudio2

python3.12 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip setuptools wheel

按显卡装依赖 · 这一步选错后面全报错

你的硬件用哪个依赖文件
CPU / AMD / Intelrequirments_cpu_py312.txt
Windows 走 DirectML,Linux 走 CPU
NVIDIA RTX 50 系requirments_cu128_py312.txt
NVIDIA RTX 50 系以前requirments_cu118_py312.txt

CPU / AMD / Intel

python -m pip install -r requirments_cpu_py312.txt

NVIDIA RTX 50 系(两阶段,顺序不能反)

python -m pip install torch==2.7.1+cu128 torchaudio==2.7.1+cu128 \
  --index-url https://download.pytorch.org/whl/cu128 \
  --extra-index-url https://pypi.org/simple
python -m pip install -r requirments_cu128_py312.txt

NVIDIA RTX 50 系以前(两阶段,顺序不能反)

python -m pip install torch==2.7.1+cu118 torchaudio==2.7.1+cu118 \
  --index-url https://download.pytorch.org/whl/cu118 \
  --extra-index-url https://pypi.org/simple
python -m pip install -r requirments_cu118_py312.txt
下载慢:三个依赖文件顶部已经内置了国内镜像(北大 / 南大),大陆用户直接用默认的就行,不用改。

验证装对了没

python -c "import torch; print('torch:', torch.__version__); print('cuda:', torch.version.cuda); print('cuda available:', torch.cuda.is_available())"

最后一行打出 True 才算成功。False 说明 CUDA 没接上,后面训练会退回 CPU 跑,慢到没法用。

FFmpeg(Windows 用户注意)

Ubuntu 已经在上面的系统依赖里装好了。Windows 需要手动下两个文件,直接丢到项目根目录:

没有 ffmpeg,音频读不进来,训练第一步就卡住。

2下载必需模型

这些不是你的音色模型,是让程序能跑起来的底模和工具模型。全部来自官方 Hugging Face 仓库。

python -m pip install --upgrade huggingface_hub

# 推理和特征提取必需
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "hubert_base/*" --local-dir assets
hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main \
  --local-dir assets/rmvpe

# 训练 v1/v2 模型必需
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "pretrained/*" "pretrained_v2/*" --local-dir assets
hf download lj1995/VoiceConversionWebUI mute.zip --revision main \
  --local-dir .model-downloads
python -m zipfile -e .model-downloads/mute.zip logs

# 只有要用人声分离功能才需要
hf download lj1995/VoiceConversionWebUI --revision main \
  --include "pymss_weights/*" --local-dir assets

Windows 上用 AMD / Intel 显卡走 DirectML 的,还要多下一个:

hf download lj1995/VoiceConversionWebUI rmvpe.onnx --revision main \
  --local-dir assets/rmvpe

下完之后的目录长这样

assets/ ├── hubert_base/ │ ├── config.json │ ├── preprocessor_config.json │ └── pytorch_model.bin ├── rmvpe/rmvpe.pt ├── pretrained/ ├── pretrained_v2/ ├── pymss_weights/ ├── weights/ # 你自己的 .pth 音色模型放这里 └── indices/ # .index 索引文件放这里 logs/ └── mute/ # 训练用的静音样本
注意:.pth 放 assets/weights/、.index 放 assets/indices/,这是当前版本的结构。网上很多老教程写的是根目录下的 weights/ 和 logs/模型名/,那是旧版路径,照着做会找不到模型。

3启动 WebUI

python webui.py

默认监听端口 7865,浏览器会自动打开。如果是没有桌面的 Ubuntu 服务器:

python webui.py --noautoopen

看到黑窗口(控制台)千万别关,关了网页就报 Connection Error。

4训练自己的音色

界面里的流程分四步,但官方提供"一键训练"可以一次跑完。

训练集准备(决定上限,别偷懒)

  • 时长:官方推荐 10–50 分钟。音色有特色且音质高的话,5–10 分钟也行
  • 质量优先:底噪低、无混响、无背景音乐。音质差的素材调再多 epoch 也救不回来
  • 路径要求:不能带空格、括号等特殊符号,不能带中文
  • 只读顶层:程序不会递归子文件夹。音频必须直接放在你指定的那个文件夹里,放进子目录会被忽略
切分逻辑:程序会先按静音切(静音超过 5 秒处断开),再每 4 秒切一刀、重叠 0.3 秒。所以你不用自己精细切片,但录音里别留大段空白。
1
填实验名,选是否考虑音高

实验名用英文。考虑音高的模型适合唱歌,文件更重;不考虑音高模型更轻,但只适合说话。做实时说话变声选不考虑音高就够了。

2a
处理数据

填训练集文件夹路径,程序自动读取音频 → 降噪 → 切分 → 重采样到 16k。

2b
提取音高和特征

提取基频(f0)和 HuBERT 特征,存到实验目录下。这一步也最吃 CPU 和内存,如果进程开太多会爆内存,可以把"提取音高和处理数据使用的 CPU 进程数"调低。

3
训练模型 + 训练索引

RVC 是从官方预训练权重开始训的,不是从零,所以小数据集也能出效果。

  • epoch 怎么定:素材音质差、底噪大 → 20–30 就够了,调高也没用;素材音质高、时长足 → 可以到 200
  • batch size:越大训练越稳也越快,但吃显存。显存不够就往下调,调到 1 还爆显存就只能换卡或用云 GPU
  • 一键训练:2b + 训练模型 + 训练索引一次跑完,推荐
关于索引(index):它是用来压制"音色泄露"的——防止结果里混进你自己的音色。索引比例调到 1 理论上不泄露但音质更偏向训练集;调到 0 则等于放弃这层保护。素材质量高、时长足的话,模型本身就很少泄露,索引就不那么重要了。

训练完,模型文件在哪个

这里最容易搞混:实验目录(logs/实验名/)下那几个几百 MB 的 G_xxx.pth / D_xxx.pth 不是用来推理的,它们是训练状态存档,用来续训和复现的。

能用来推理的是 60+ MB 的小模型,需要在"ckpt 处理"选项卡里提取出来,然后放到 assets/weights/。

如果你把几百 MB 的大文件强行拿去推理,会报 f0、tgt_sr 之类的 key 不存在的错误。

5推理变声

拿到模型之后,变声就很简单了。

  1. 点刷新音色列表,选你的 .pth 和对应的 .index
  2. 上传要变声的音频(人声干声效果最好,带伴奏会失真)
  3. 调整参数,然后点转换

关键参数

参数说明
变调升降音高,12 个半音 = 一个八度。男转女一般 +5 到 +8
索引比例说话场景建议 0.5–0.7,高了会有机械感
f0 提取算法默认用 rmvpe,快且准,它会处理哑音问题
只改音高会得到花栗鼠。真正的性别转换还需要同时调整共振峰(formant)。不同界面里这个参数的位置不一样,有的叫"共振峰偏移",有的要配合"音色粗细"一起调。

6实时变声

官方给了两条路,门槛差很多。

路线 A:实时界面(推荐)

仓库自带实时变声界面,启动脚本是 go-realtime_gui.bat(Windows)。官方标称端到端延迟 170ms;如果输入输出都用 ASIO 设备,可以压到 90ms。

ASIO 是关键。90ms 这个数字非常依赖硬件驱动支持,普通板载声卡给不了。搞一张支持 ASIO 的独立声卡,延迟能直接砍一半。

要接到其他软件(OBS、会议、语音软件),还是要虚拟声卡:

  • Windows:VB-Cable(轻量免费)或 Voicemeeter Banana(多通道混音)
  • Mac:BlackHole(brew install blackhole-2ch)

路由方式:麦克风 → 实时界面 → 虚拟声卡 → 目标软件,然后在目标软件里把麦克风设成同一个虚拟声卡。

全链路采样率必须统一(系统、实时界面、目标软件三处都设 48kHz)。任何一处不一致都会产生变调怪声,这是最常见的故障。

路线 B:RVC Realtime VST

仓库里有个 RVCRealtimeVST 目录,是给 Windows x64 做的 VST2 / VST3 插件,能直接挂在 Studio One 这类 DAW 里用。它把模型推理放在独立的 Python 进程,宿主音频线程只做缓冲和搬运,所以不会卡住 DAW。

但它是源码工程,需要你自己编译:Visual Studio 2022 + CMake 3.14+,还得 git clone --recursive 拉全 submodule(GitHub 网页上那个 Download ZIP 不含 submodule 内容,会编译失败)。

插件运行还需要一个外部的 RVC 整合包提供 Python 环境(runtime/python.exe + 源码 + 模型)。

参数范围
Block20–1000 ms
Crossfade10–100 ms
Context500–3000 ms

插件报告的延迟 = 两倍 Block 的采样帧数。运行中可以实时调:Pitch、Formant、Index、RMS Mix、Gate、F0 方法。配置存在 %LOCALAPPDATA%\RVCRealtime\settings.ini。

选哪条:只是自己说话变声玩、直播连麦,走路线 A 就行。要在 DAW 里做音乐、需要跟工程一起保存参数,才值得折腾路线 B。而且它目前只有 Windows x64 版,不支持 macOS 和 Linux。

7官方 FAQ 精选

这些是官方 FAQ 里最高频的坑,我按原意重述了一遍,具体见仓库 docs/cn/faq.md。

一键训练跑完,冒出一堆红字报错

只要出现 Training is done. The program is closed. 就是训练成功了,后面紧跟的报错是假的,无视它。

报 ffmpeg error 或 utf8 error

大概率跟 ffmpeg 无关,是音频路径的问题。路径带空格、括号等特殊符号会引发 ffmpeg error;训练集路径带中文会在写 filelist.txt 时触发 utf8 error。全部改成英文路径就好。

WebUI 弹 "Expecting value: line 1 column 1 (char 0)"

关掉系统代理,包括局域网代理和全局代理。如果你在 AutoDL 上开了学术加速(设了 http_proxy / https_proxy),用完也要 unset 掉。

报 Cuda error / Cuda out of memory

基本都是显存不够。训练就把 batch size 调小(调到 1 还不够只能换卡或上云);推理就调小 config.py 结尾的 x_pad、x_query、x_center、x_max。4G 以下显存(1060 3G 和各种 2G 卡)可以直接放弃。

报 llvmlite.dll 加载失败

Windows 平台常见,装一下 VC++ 运行库,重启 WebUI 即可。

报 tensor 尺寸不匹配(17280 vs 0 之类)

去 wavs16k 文件夹里,找出明显比其他文件小很多的音频删掉,再点训练模型。删完注意要单独点一下"训练索引",因为一键流程已经被中断了。

训练到一半想中断,或者想继续

目前只能关掉控制台重启程序,网页参数也要重新填。想接着上次继续的话,用相同的参数再点一次"训练模型",它会自动从上次的 checkpoint 继续。

想中途加数据继续训练

新建一个实验名,把上次最新的 G 和 D 文件拷到新实验目录下,然后对新实验名执行一键训练,它会从上次的进度接着跑。

训练时内存报错或文件页面崩溃

进程开太多了。把"提取音高和处理数据使用的 CPU 进程数"调低,或者把过长的训练音频手工切短一点。

训练完成,推理时看不到音色

先点刷新音色列表。还没有的话检查训练过程有没有报错,把控制台、WebUI 截图和 logs/实验名 下的 log 发给开发者看。

不要中途改采样率

改采样率会直接报 tensor 尺寸不匹配。真要改就换一个实验名从头训(上次提取的音高和特征文件夹可以拷过去加速流程)。

两个额外资源

  • 官方 AutoDL 教程:仓库 Wiki 里有篇《AutoDL 训练 RVC·AI 歌手教程》,标题就叫"5 毛钱训练 AI 歌手"。没有独显、或者不想为训练买显卡的话,这条路最划算
  • 在线演示:不装任何东西,先看看 RVC v2 效果什么样 —— ModelScope 演示空间