RVC 快速上手指南:Retrieval-based-Voice-Conversion-WebUI 环境搭建、预训练模型准备与多平台启动详解
2026/9/9 20:32:08 网站建设 项目流程

RVC 快速上手指南:Retrieval-based-Voice-Conversion-WebUI 环境搭建、预训练模型准备与多平台启动详解

【免费下载链接】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 分钟的高质量干声快速训练好用的音色转换(VC)模型」这一目标下最关键的三个环节:环境与依赖安装、预训练模型/特征提取器下载、以及在不同操作系统与显卡生态(NVIDIA CUDA、AMD ROCm、AMD/Intel DML、Intel IPEX、macOS MPS)下正确启动 WebUI。读完本文,你将掌握从零开始在本机跑通 RVC 训练与推理所需的完整命令、文件清单与硬件注意事项,并能结合仓库源码理解每一步背后的工程细节。

一、RVC 是什么:基于检索的 VITS 变体声音转换框架

RVC(Retrieval-based-Voice-Conversion)是一个「简单易用、基于 VITS 的变声 / 音色修改框架」。它与普通 VITS 系变声方案最核心的区别在于采用了Top1 检索替换机制

用训练集中最相似的特征(Top1)去替换输入源的对应特征,从而消除训练数据源中的音色泄漏(timbre leakage)。

法文版文档将项目特性概括为以下六点,本文逐条对应仓库源码逐一印证:

特性原文要点(译)仓库佐证
特征检索替换用 top1 检索训练集特征替换输入特征,消除音色泄漏Notebook Retrieval_based_Voice_Conversion_WebUI.ipynb 及索引工具 tools/infer/train-index.py、tools/infer/train-index-v2.py、tools/infer/infer-pm-index256.py 均围绕特征索引检索展开
低配可训即使在相对较弱的显卡上也能快速训练configs/config.py 依据显卡型号与显存自动切换半精度/全精度及切分参数
少数据可用最少只需约 10 分钟低底噪语音即可获得不错效果项目简介即主打 "voice data <= 10 mins"
模型融合可通过 ckpt-merge 标签页融合模型改变音色infer-web.py 从 infer/lib/train/process_ckpt.py 引入merge并以ckpt_merge作为 API 暴露
WebUI简单易用的网页界面infer-web.py 基于 Gradio 实现
人声分离可调用 UVR5 模型快速分离人声与伴奏内置 infer/modules/uvr5 模块,配合uvr5_weights权重
音高算法采用 InterSpeech2023 收录的 RMVPE 消除「哑声」,效果好于 crepe_full 且更省资源仓库内置 infer/lib/rmvpe.py 完整实现,及 infer/lib/infer_pack/modules/F0Predictor 下的 Dio、Harvest、PM、RMVPE 多套音高提取器
硬件加速支持 AMD / Intel 显卡加速requirements-dml.txt、requirements-ipex.txt、requirements-amd.txt 三套依赖及对应启动开关

另外需如实说明两点背景:基础模型使用近 50 小时的 VCTK 高质量开源数据训练,不存在版权担忧;同时法文文档预告了 RVCv3 基础模型——更多参数、更多数据、推理速度几乎不变、且训练所需数据更少。

二、环境配置:Python 版本与 PyTorch 安装

法文文档要求在 Python 3.8 及以上环境中执行下述命令。这一约束与仓库脚本保持一致——例如 run.sh 会在缺失 Python 3.8 时尝试通过brew install python@3.8(macOS)或apt-get install python3.8(Ubuntu/Debian)自动安装。

2.1 先安装 PyTorch(跨平台基准命令)

# 安装 PyTorch 及其必要依赖;若已安装可跳过 pip install torch torchvision torchaudio

2.2 按显卡架构选择专用版本

文档给出了三条针对不同硬件的路径,务必按自己的显卡选择其一:

# 【Windows 用户 + NVIDIA Ampere 架构(RTX30xx)】 # 基于社区 issue #21 的经验,为 PyTorch 指定对应 CUDA 版本 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117 # 【Linux + AMD 显卡(ROCm)】 pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/rocm5.4.2

之所以区分 Ampere 与旧架构,可结合 configs/config.py 的设备探测逻辑理解:启动时若检测到 GTX16 系、P40/P10、1060/1070/1080 等 GPU,会强制切换为 fp32 全精度并改写fp16_run配置;其余较新的 NVIDIA 显卡默认走 fp16 半精度以降低显存占用。

2.3 通过 Poetry 安装项目依赖(可选)

# 安装 Poetry 依赖管理工具;若已安装可跳过 curl -sSL https://install.python-poetry.org | python3 - # 用 poetry 安装本项目依赖 poetry install

仓库根目录提供 pyproject.toml 与锁文件 poetry.lock,说明 Poetry 是被官方支持的依赖安装方式之一。

2.4 通过 pip 按硬件平台安装依赖(推荐方式)

文档明确按显卡生态区分了四套 requirements 文件,这也是最直接的安装路径:

# NVIDIA 显卡: pip install -r requirements.txt # AMD / Intel 显卡(Windows DirectML,即 DML 环境): pip install -r requirements-dml.txt # Intel 显卡(IPEX 加速): pip install -r requirements-ipex.txt # AMD 显卡(Linux ROCm): pip install -r requirements-amd.txt

以 requirements.txt 为例,其核心计算栈包括:numpy==1.23.5numba==0.56.4librosa==0.9.1fairseq==0.12.2(HuBERT 特征提取依赖)、faiss-cpu==1.7.3(Top1 特征索引检索实现)、gradio==3.34.0(WebUI 前端)、praat-parselmouthpyworld(F0 提取)、torchcrepe/torchfcpe(CREST/FCPE 音高预测)、onnxruntime-gpu(支撑 UVR5 与rmvpe.onnx推理)等。

2.5 macOS 用户的一键安装脚本

sh ./run.sh

run.sh 的执行逻辑值得拆解,以明确其适用前提:

  • 在 macOS 下导出PYTORCH_ENABLE_MPS_FALLBACK=1PYTORCH_MPS_HIGH_WATERMARK_RATIO=0.0两个环境变量,使 MPS 后端遇到不支持算子时可回落到 CPU,并放宽显存水位限制;
  • 首次运行会在项目内创建.venv虚拟环境,并按 requirements.txt 逐包安装依赖;
  • 随后调用tools/dlmodels.sh下载全部预训练模型(见下一节);
  • 最后以python3.8 infer-web.py --pycmd python3.8启动 WebUI。

因此run.sh不仅适用于 macOS,同样适用于 Linux 的首次初始化。

三、预训练模型与其他模型资产的准备

RVC 的训练与推理均依赖额外下载的基础模型资产,这些文件不会随 git clone 自动携带。仓库assets/目录下仅保留了Synthesizer_inputs.pthhubert/hubert_inputs.pthrmvpe/rmvpe_inputs.pth等少量用于单元测试/冒烟验证的样例输入(见 assets)。

3.1 一键下载全部模型(推荐)

python tools/download_models.py

这是文档推荐的官方方式。查看 tools/download_models.py 源码,可精确得知它实际抓取的文件(统一来自https://huggingface.co/lj1995/VoiceConversionWebUI/resolve/main/):

  1. hubert_base.pt→ 写入assets/hubert/,作为 HuBERT 特征提取器权重;
  2. rmvpe.pt→ 写入assets/rmvpe/,作为 RMVPE 音高预测权重;
  3. UVR5 人声分离去混响模型vocals.onnx→ 写入assets/uvr5_weights/onnx_dereverb_By_FoxJoy/
  4. v1 预训练模型 12 个:D32k/D40k/D48k.pth判别器与G32k/G40k/G48k.pth生成器,以及对应的 6 个f0*前缀(带 F0 输入)版本 → 写入assets/pretrained/
  5. 同样 12 个 v2 预训练模型 → 写入assets/pretrained_v2/
  6. UVR5 的 8 个分离权重:HP2/HP3/HP5系列人声分离模型与VR-DeEcho*系列去回声/去混响模型 → 写入assets/uvr5_weights/

3.2 手动下载的资产清单与落盘位置

若无法访问一键脚本(或需增量补齐),文档要求最终在仓库内形成以下结构:

./assets/hubert/hubert_base.pt # hubert_base 特征提取权重 ./assets/pretrained # v1 预训练模型目录(G*/D*/f0G*/f0D*,覆盖 32k/40k/48k) ./assets/uvr5_weights # UVR5 人声分离权重目录 ./assets/pretrained_v2 # v2 预训练模型目录(测试 v2 模型时必须)

其中hubert_base.pt供 infer/modules/train/extract_feature_print.py 等特征提取流程加载;pretrained_v2对应 v2 架构配置。补充说明:v1 与 v2 的训练配置模板分别存放于 configs/v1 与 configs/v2,而 configs/config.py 会在启动时把模板复制到configs/inuse/下供训练直接读取。

3.3 可选:ffmpeg / ffprobe

Windows 用户若未自行安装 ffmpeg 与 ffprobe,需额外下载这两个可执行文件并置于仓库根目录(Ubuntu/Debian 用apt install ffmpeg,macOS 用brew install ffmpeg,前提是已安装 Homebrew):

# ./ffmpeg # ./ffprobe

RVC 的音频读取、切分与格式转换依赖 ffmpeg,这可以从 requirements.txt 中的ffmpeg-pythonffmpypydubav等音频相关依赖得到印证。

3.4 可选:RMVPE 音高模型

若希望启用 RMVPE 音高算法,需下载rmvpe.pt并放到 RVC 仓库根目录;而使用 AMD/Intel 显卡的 DML 环境用户,需改下 ONNX 格式的rmvpe.onnx(该格式由 ONNX Runtime 的 DirectML 后端执行)。仓库在 infer/modules/train/extract_f0_rmvpe.py(另有 DML 变体 infer/modules/train/extract/f0/extract_f0_rmvpe_dml.py)实现了训练侧 RMVPE 的 F0 提取,infer/lib/rmvpe.py 则提供完整前向推理实现。

四、启动 WebUI:Intel IPEX、Windows/macOS 与一键脚本

4.1 Intel ARC 显卡(IPEX 加速)启动流程

Intel ARC 用户需先初始化 oneAPI 环境,再启动 WebUI:

source /opt/intel/oneapi/setvars.sh python infer-web.py

仓库侧为 Intel 提供了 requirements-ipex.txt 依赖与 infer/modules/ipex 加速适配模块;configs/config.py 会尝试导入intel_extension_for_pytorch,若检测到torch.xpu.is_available()则自动调用ipex_init()完成初始化。

4.2 Windows 用户:解压整合包后双击批处理启动

Windows 用户可下载并解压RVC-beta.7z整合包,然后运行根目录下的 go-web.bat:

runtime\python.exe infer-web.py --pycmd runtime\python.exe --port 7897

其含义是:使用整合包自带的runtime\python.exe作为解释器启动 infer-web.py,并将监听端口指定为7897(注意:源码默认端口是 7865,见 configs/config.py,批处理显式覆盖了它)。而 go-web-dml.bat 会额外追加--dml开关以启用 DirectML 后端。若你手动用系统 Python 而非整合包解释器,命令应相应写为python infer-web.py --pycmd python

macOS 用户则执行sh ./run.sh(同 2.5 节)。

4.3 WebUI 启动参数的源码级说明

结合 configs/config.py 的参数解析逻辑,infer-web.py实际支持的启动参数如下表:

参数默认值说明
--port <int>7865WebUI 监听端口;若超出 0~65535 会被强制重置回 7865
--pycmd <str>当前sys.executable供训练等子进程调用所用的 Python 命令
--colab关闭Colab 环境启动模式
--noparallel关闭禁用并行处理
--noautoopen关闭启动后不在浏览器自动打开页面
--dml关闭使用 torch_dml(DirectML),常用于 AMD/Intel 显卡

其中--dml至关重要:开启后 configs/config.py 会将 ONNX Runtime 的 CUDA 版重命名为onnxruntime-cuda、把 DML 版替换为默认onnxruntime,并将计算设备切换为torch_directml.device(...)且强制使用 fp32 推理。这也解释了为什么 DML 用户必须单独准备rmvpe.onnx而非rmvpe.pt

五、AMD 显卡的 ROCm 兼容说明(仅限 Linux)

法文文档为 Linux + AMD 用户单列了 ROCm 部署路径,前提是安装好系统级 ROCm 驱动。

Arch Linux 用户可用 pacman 直接安装驱动与 SDK:

pacman -S rocm-hip-sdk rocm-opencl-sdk

之后可能需要按显卡型号设置环境变量(以 RX6700XT 为例,需要将 GFX 版本覆写为 10.3.0):

export ROCM_PATH=/opt/rocm export HSA_OVERRIDE_GFX_VERSION=10.3.0

再确认当前用户已被加入rendervideo用户组(把$USERNAME替换为实际用户名):

sudo usermod -aG render $USERNAME sudo usermod -aG video $USERNAME

最后启动 WebUI:

python infer-web.py

结合依赖文件可进一步定位:Linux AMD 走 ROCm 时,PyTorch 使用上文 2.2 节的rocm5.4.2索引安装,其余依赖则来自 requirements-amd.txt。

六、上手路径小结与进一步阅读

归纳从零到 WebUI 可用的最短路径(以本地 NVIDIA 显卡场景为例):

  1. 准备 Python 3.8+ 环境,按 2.2/2.4 节安装对应 PyTorch 与 requirements.txt 中的依赖;
  2. 运行python tools/download_models.py,补齐assets/hubertassets/pretrainedassets/pretrained_v2assets/uvr5_weights及根目录的rmvpe.pt
  3. 执行python infer-web.py(Windows 整合包用户双击 go-web.bat,macOS/Linux 可用 run.sh);
  4. 在 Gradio 网页中依次完成 人声分离(UVR5)→ 数据切分 → 特征提取 → 训练 → 特征索引构建(Top1 检索)→ 推理 的完整流水线。

若希望深入了解后续步骤,仓库内有大量延伸资料可直接继续阅读:

  • 中文原版说明见仓库根目录 README.md,英文版见 docs/en/README.en.md;
  • 训练技巧与常见问题:英文版 docs/en/training_tips_en.md、docs/en/faq_en.md;
  • 索引(faiss)调优细节:docs/en/faiss_tips_en.md;
  • 命令行批处理推理:tools/infer_cli.py;批量推理 tools/infer_batch_rvc.py;索引构建见 tools/infer/train-index.py 与 tools/infer/train-index-v2.py;
  • 采样率配置模板:v1 的 configs/v1/32k.json、configs/v1/40k.json、configs/v1/48k.json 与 v2 的 configs/v2/32k.json、configs/v2/48k.json,对应预训练模型按 32k/40k/48k 区分。

需要强调:本项目涉及语音合成与变声技术,请在遵守所在地区法律法规、并取得声音权利人明确授权的前提下使用模型训练与推理能力。

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

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

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

立即咨询