官方仓库能干的其实是三件事,别一上来就装全套。
| 你的目标 | 需要做什么 | 跳过什么 |
|---|---|---|
| 只想试试变声,用现成音色 | 装环境 → 下推理模型 → 启动 → 直接推理 | 训练全流程 |
| 想变声成自己的音色 | 全套:环境 + 模型 + 训练 + 推理 | — |
| 想实时说话变声 | 先训好模型,再用实时界面 | — |
当前分支面向 Python 3.12 x64。装完 Python 后进入仓库根目录操作。
py -3.12 -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip setuptools wheel
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 / Intel | requirments_cpu_py312.txtWindows 走 DirectML,Linux 走 CPU |
| NVIDIA RTX 50 系 | requirments_cu128_py312.txt |
| NVIDIA RTX 50 系以前 | requirments_cu118_py312.txt |
python -m pip install -r requirments_cpu_py312.txt
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
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 跑,慢到没法用。
Ubuntu 已经在上面的系统依赖里装好了。Windows 需要手动下两个文件,直接丢到项目根目录:
没有 ffmpeg,音频读不进来,训练第一步就卡住。
这些不是你的音色模型,是让程序能跑起来的底模和工具模型。全部来自官方 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
.pth 放 assets/weights/、.index 放 assets/indices/,这是当前版本的结构。网上很多老教程写的是根目录下的 weights/ 和 logs/模型名/,那是旧版路径,照着做会找不到模型。
python webui.py
默认监听端口 7865,浏览器会自动打开。如果是没有桌面的 Ubuntu 服务器:
python webui.py --noautoopen
看到黑窗口(控制台)千万别关,关了网页就报 Connection Error。
界面里的流程分四步,但官方提供"一键训练"可以一次跑完。
实验名用英文。考虑音高的模型适合唱歌,文件更重;不考虑音高模型更轻,但只适合说话。做实时说话变声选不考虑音高就够了。
填训练集文件夹路径,程序自动读取音频 → 降噪 → 切分 → 重采样到 16k。
提取基频(f0)和 HuBERT 特征,存到实验目录下。这一步也最吃 CPU 和内存,如果进程开太多会爆内存,可以把"提取音高和处理数据使用的 CPU 进程数"调低。
RVC 是从官方预训练权重开始训的,不是从零,所以小数据集也能出效果。
logs/实验名/)下那几个几百 MB 的 G_xxx.pth / D_xxx.pth 不是用来推理的,它们是训练状态存档,用来续训和复现的。
assets/weights/。
f0、tgt_sr 之类的 key 不存在的错误。
拿到模型之后,变声就很简单了。
.pth 和对应的 .index| 参数 | 说明 |
|---|---|
| 变调 | 升降音高,12 个半音 = 一个八度。男转女一般 +5 到 +8 |
| 索引比例 | 说话场景建议 0.5–0.7,高了会有机械感 |
| f0 提取算法 | 默认用 rmvpe,快且准,它会处理哑音问题 |
官方给了两条路,门槛差很多。
仓库自带实时变声界面,启动脚本是 go-realtime_gui.bat(Windows)。官方标称端到端延迟 170ms;如果输入输出都用 ASIO 设备,可以压到 90ms。
要接到其他软件(OBS、会议、语音软件),还是要虚拟声卡:
brew install blackhole-2ch)路由方式:麦克风 → 实时界面 → 虚拟声卡 → 目标软件,然后在目标软件里把麦克风设成同一个虚拟声卡。
仓库里有个 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 + 源码 + 模型)。
| 参数 | 范围 |
|---|---|
| Block | 20–1000 ms |
| Crossfade | 10–100 ms |
| Context | 500–3000 ms |
插件报告的延迟 = 两倍 Block 的采样帧数。运行中可以实时调:Pitch、Formant、Index、RMS Mix、Gate、F0 方法。配置存在 %LOCALAPPDATA%\RVCRealtime\settings.ini。
这些是官方 FAQ 里最高频的坑,我按原意重述了一遍,具体见仓库 docs/cn/faq.md。
只要出现 Training is done. The program is closed. 就是训练成功了,后面紧跟的报错是假的,无视它。
大概率跟 ffmpeg 无关,是音频路径的问题。路径带空格、括号等特殊符号会引发 ffmpeg error;训练集路径带中文会在写 filelist.txt 时触发 utf8 error。全部改成英文路径就好。
关掉系统代理,包括局域网代理和全局代理。如果你在 AutoDL 上开了学术加速(设了 http_proxy / https_proxy),用完也要 unset 掉。
基本都是显存不够。训练就把 batch size 调小(调到 1 还不够只能换卡或上云);推理就调小 config.py 结尾的 x_pad、x_query、x_center、x_max。4G 以下显存(1060 3G 和各种 2G 卡)可以直接放弃。
Windows 平台常见,装一下 VC++ 运行库,重启 WebUI 即可。
去 wavs16k 文件夹里,找出明显比其他文件小很多的音频删掉,再点训练模型。删完注意要单独点一下"训练索引",因为一键流程已经被中断了。
目前只能关掉控制台重启程序,网页参数也要重新填。想接着上次继续的话,用相同的参数再点一次"训练模型",它会自动从上次的 checkpoint 继续。
新建一个实验名,把上次最新的 G 和 D 文件拷到新实验目录下,然后对新实验名执行一键训练,它会从上次的进度接着跑。
进程开太多了。把"提取音高和处理数据使用的 CPU 进程数"调低,或者把过长的训练音频手工切短一点。
先点刷新音色列表。还没有的话检查训练过程有没有报错,把控制台、WebUI 截图和 logs/实验名 下的 log 发给开发者看。
改采样率会直接报 tensor 尺寸不匹配。真要改就换一个实验名从头训(上次提取的音高和特征文件夹可以拷过去加速流程)。