Retrieval-based-Voice-Conversion-WebUI 快速上手: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 分钟左右的干净人声,就能训练出一个属于自己或某个角色的语音转换模型,用来做离线音频转换,也可以接麦克风做实时变声。本文按 Windows 和 Ubuntu 的环境,带你走完装环境、启动界面、第一次训练、推理调参到常见报错处理的完整流程。
🧩 装环境:三步跑通
装 Python 3.12 并建虚拟环境
先确认装好了 Python 3.12 x64(Ubuntu 推荐 24.04 x86_64),然后进入仓库根目录创建虚拟环境:
py -3.12 -m venv .venv .venv\Scripts\activateLinux 下对应命令是python3.12 -m venv .venv,激活用source .venv/bin/activate。
按硬件选依赖文件
依赖按硬件分成三个文件,各装一次:
| 硬件 | 安装方式 |
|---|---|
| CPU / AMD / Intel 显卡 | pip install -r requirments_cpu_py312.txt |
| NVIDIA(RTX 50 系以前) | 先装 CUDA 11.8 版 torch,再装requirments_cu118_py312.txt |
| NVIDIA RTX 50 系 | 先装 CUDA 12.8 版 torch,再装requirments_cu128_py312.txt |
注意:NVIDIA 用户一定要先单独装好对应 CUDA 版本的 torch,再执行 requirments 文件,否则 pip 会装上 CPU 版 torch,训练时才发现报错就来不及了。
把底模下到 assets 目录
WebUI 会自动创建assets/和logs/目录,底模需要提前下载到位:
| 文件 | 路径 | 用途 |
|---|---|---|
| hubert_base/(含 3 个文件) | assets/hubert_base/ | 语音特征提取,推理也必需 |
| rmvpe.pt | assets/rmvpe/ | 音高提取,必需 |
| pretrained/ 与 pretrained_v2/ | assets/ | 底模,仅训练需要 |
| uvr5_weights/ | assets/uvr5_weights/ | 人声伴奏分离,用到 UVR5 才需要 |
装好huggingface_hub后,从模型仓库lj1995/VoiceConversionWebUI拉取必需的两部分:
hf download lj1995/VoiceConversionWebUI --revision main --include "hubert_base/*" --local-dir assets hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main --local-dir assets/rmvpe训练时再用同样方式补下pretrained/*和pretrained_v2/*。
▶️ 启动界面:一条命令的事
启动命令与默认端口
在仓库根目录执行:
python webui.py浏览器会自动打开,没弹出来就手动访问http://127.0.0.1:7865(默认端口 7865)。Windows 用户也可以直接双击根目录的go-webui.bat,它会顺带让你选择要执行的操作。无桌面的服务器上加--noautoopen启动即可。
提示:页面报 "Connection Error" 多数时候是你把黑色的启动控制台关掉了,重新打开并保持控制台开着就好。
各选项卡里有什么
主界面分四个选项卡:数据集处理负责降噪、切片和特征提取;模型训练负责一键训练与索引训练;音色转换推理负责把音频换成目标音色;ckpt 处理负责模型融合和从小模型提取。实时变声是另一个独立程序:双击go-realtime_gui.bat启动,端到端延迟 170ms,配合 ASIO 声卡可压到 90ms。
🎛️ 第一次训练:只动 4 个参数
准备 10 分钟人声素材
把训练用的音频放进同一个文件夹,满足这几点:
- 时长:推荐 10~50 分钟;音质高、音色统一时 5~10 分钟也够用
- 内容:只有目标说话人一个声源,底噪低、无背景音乐
- 文件名与路径:不含空格、括号和中文,避免 ffmpeg 报错
训练必改的 4 个参数
打开「模型训练」选项卡,其余全部默认,只填下面这几项:
| 参数 | 建议值 | 说明 |
|---|---|---|
| 实验名 | 有意义的英文名 | 训练产物都存在logs/实验名/下 |
| 是否考虑音高 | 唱歌场景选「是」 | 不考虑音高模型更轻,但没法用于演唱 |
| batch_size | 按显存定,4~16 | 报 out of memory 就减半;4G 显存建议 1~4 |
| total_epoch | 底噪大 20~30;音质高可到 200 | 低音质数据调太高没有收益 |
然后点「一键训练」。它会自动完成音频切片、RMVPE 音高提取、HuBERT 特征提取、模型训练整条流水线。
别漏掉:训练完索引
一键训练正常结束时会顺带生成added_xxx.index索引文件;如果日志显示缺了索引,就再单独点一次「训练索引」。这个索引就是 RVC「检索式」的核心——推理时用 faiss 检索出训练集里最相似的特征替换输入源特征,从机制上杜绝音色泄漏。更多训练细节可以看 docs/en/training_tips_en.md。
推理调参:pitch 和 index_rate 怎么设
常用推理参数速查
| 参数 | 范围 | 说明 |
|---|---|---|
| pitch | -24 ~ 24 | 半音为单位,12 是一个八度;男声转女声往高调,反之往低调 |
| index_rate | 0 ~ 1 | 越大越压制音色泄漏,但音质会向训练集靠拢;训练集音质一般就 0.5 左右 |
| f0 方法 | rmvpe | 速度快、资源占用小,且解决了哑音问题 |
判断有没有音色泄漏
音色泄漏的表现是:转换后的声音还残留你自己说话的音色。先听出来再说——把 index_rate 从 0 提到 0.5~1.0 再推一遍,如果明显干净了就是泄漏问题。反过来,如果你的训练集音质高、时长足,模型本身学得很牢,index_rate 开 0 也不会泄漏,此时不必纠结这个参数。
常见报错速查表
训练阶段
| 报错 | 原因 | 处理 |
|---|---|---|
| ffmpeg error / utf8 error | 路径含空格、括号或中文 | 目录和文件名全部改纯英文 |
| Cuda out of memory | 显存不足 | 减小 batch_size;4G 以下显存基本放弃训练 |
| 文件页面 / 内存 error | 开的进程太多、内存溢出 | 调低「提取音高和处理数据使用的 CPU 进程数」 |
| 训练完没有索引 | 大训练集卡住了索引步骤 | 再点一次「训练索引」 |
启动与推理阶段
| 报错 | 原因 | 处理 |
|---|---|---|
| Expecting value: line 1 column 1 | 开了系统全局代理 | 关闭代理,服务端代理也要关 |
| Connection Error | 关了启动控制台 | 重新打开并保持控制台运行 |
| llvmlite.dll 加载失败(Windows) | 缺 VC++ 运行库 | 安装 Microsoft VC++ 2015-2022 运行库后重启 |
更完整的问答整理在 docs/cn/faq.md,照着 Q&A 逐条对号入座很快。
训练完的模型:存放与分享
模型文件放哪里
日常使用的模型.pth放进assets/weights/,对应的.index放进assets/indices/,再到推理页点「刷新音色」就能选到。
模型怎么分享
分享时用weights/下 60MB+ 的 pth 和对应 index 文件打包成 zip 发出即可。
注意:
logs/实验名/下的 pth 有几百 MB,它存的是实验状态,用于断点续训而不是分享。如果你手里只有 logs 里的大 pth,先用「ckpt 处理」选项卡做 ckpt 小模型提取,再分享提取出的文件。
接下来做什么
- 按「装环境」三步装好依赖和底模,执行
python webui.py确认界面能打开; - 准备 10 分钟单说话人低底噪音频,用默认参数跑一次「一键训练」,生成模型和索引;
- 在推理页加载自己的模型,先按 index_rate 0 和 1 各推一遍同一句音频,对比后选定常用参数。
【免费下载链接】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),仅供参考