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
想让游戏里的 Boss 用你自己的声线说话?RVC(Retrieval-based-Voice-Conversion-WebUI)就是一个为此而生的 RVC 语音转换工具:只要 10 分钟以内的目标人物语音,就能训练出一个可实时推理的音色模型。
项目定位
- 基于 VITS 架构的语音转换(Voice Conversion,把输入音频的声音替换成目标音色)框架,WebUI 形式提供,不需要写代码
- 核心卖点是"数据少也能训":10 分钟语音即可完成一轮有效训练,对比同类项目动辄需要小时级素材,门槛低一个量级
- 用检索(retrieval)机制从目标说话人特征库里召回音色特征,能显著减少"音色泄漏"(输出里混入输入说话人特征)的问题
- 训练、推理、音高提取、UVR5 伴奏人声分离全链路内置,一个项目覆盖从素材处理到成品输出的完整流程
- 支持 v1 / v2 两代模型,v2 采样率下移、结构更稳,是默认选项
📦 装好并跑起来
环境要求:
- Python 3.8(3.8–3.10 均可)
- FFmpeg 在 PATH 中
- 建议 NVIDIA 显卡(≥6GB 显存),CPU 可跑但训练很慢
安装(Windows 用 conda 或 venv 建好 3.8 环境后):
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI pip install -r requirements.txt启动方式:
- Windows:双击
go-web.bat - Linux:
./run.sh - macOS:
./run.sh(会自动设置 MPS 相关环境变量) - 通用:
python infer-web.py --port 7865,首次启动会自动下载预训练底模
启动后浏览器打开 7865 端口,三个关键入口:
- 训练:填实验名、数据目录,依次点"处理数据 → 特征提取 → 训练模型 → 训练特征索引"
- 单次推理 / 批量推理:选音色和索引文件,上传音频或直接出结果
- 配置:configs/config.py 管设备和精度,configs/config.json 指向各版本采样率配置,一般不用动
🎯 核心工作流:从素材到出音
数据准备
把目标音色的素材放进一个文件夹(比如logs/你的实验名/src),单声道、干净录音。质量标准如下:
| 项目 | 建议值 | 说明 |
|---|---|---|
| 采样率 | 48kHz | 训练目标采样率可选 32k/40k/48k,48k 上限最高 |
| 格式 | WAV | 无压缩、单声道,MP3 也行但会有编码损失 |
| 片段时长 | 5–10 秒/段 | 长音频可先用内置的 UVR5 页签做人声分离再切片 |
| 底噪 | 环境安静 | 有底噪先做降噪,底噪会直接学进模型 |
总量 10–20 分钟足够,素材越多越稳。
训练配置
训练页签里真正影响效果的参数不多,对照下表选即可:
| 参数 | 推荐值 | 适用情况 |
|---|---|---|
| total_epoch(训练轮数) | 10–20(默认 20) | 数据质量高 10 轮左右即可收敛;数据偏少或偏脏可加到 30+,同时把保存频率调小多留几个 ckpt 挑 |
| batch_size | 1–8(按显存) | 6GB 显存从 2–4 起步;数据超过 50 条且显存够就提到 8,收敛更快 |
| 目标采样率 | 40k | 48k 音质上限更高但更吃显存,40k 是默认折中 |
| 是否带音高指导 | 是 | 唱歌必须开;纯语音也可开,开了能转调 |
| 版本 | v2 | 默认 v2,v1 只用于兼容老模型 |
点"一键训练"会串联执行处理数据、特征提取、训练模型和索引四步。产物在logs/你的实验名/下(.pth模型)和assets/indices/(.index索引文件)。
音高提取算法怎么选
音高提取算法负责从音频里算出每个时刻的音调(F0),训练和推理时都要选一个:
| 算法 | 精度 | 速度 | 推荐场景 |
|---|---|---|---|
| rmvpe / rmvpe_gpu | 高 | 中高(GPU 版最快) | 默认选择,精度和速度平衡最好 |
| harvest | 最高 | 慢 | 对音高极端敏感的精细场景 |
| dio | 中 | 快 | CPU 差但语音质量高的场景提速 |
| pm | 低 | 最快 | 输入歌声、追求低延迟的场合 |
默认 rmvpe_gpu 不改也能跑,只有多卡时才需要额外配置 rmvpe 卡号。
推理与调优
单次推理页签里最影响输出的三个参数:
- Index Rate(检索特征占比,0–1,默认 0.75):越大越贴近目标音色。音色不像目标人就调高到 0.8–0.9;听感过于"塑料"、丢失细节就往 0.6 回调
- Protect(保护气息和齿音,0–0.5,默认 0.33):听感发闷、气息丢失时调高;齿音过脆或音色发散时调低
- Filter Radius(F0 平滑,0–7,默认 3):音高曲线抖动、有电流感时调大;跟不准旋律细节时调小
另外两个基础项:升降调(semitone,0 为原调)和输出采样率(选 0 跟随输入)。批量推理页签参数一致,换成目录进目录出。
🎵 两个典型落地场景
场景一:AI 歌手
- 输入准备:目标歌手的干净人声 15–30 分钟(先用 UVR5 页签从歌曲里分离出人声),切成 5–10 秒片段
- 执行步骤:训练时"是否带音高指导"必须选"是";total_epoch 给 20;推理时选同一音高算法,升降调按音域差设置(比如男转女 +12)
- 得到输出:把你唱的 Demo 或分离后的人声传入,输出目标音色演唱的版本。唱腔不像就优先调 Index Rate,而不是重训
场景二:游戏角色配音
- 输入准备:你自己(或配音演员)的台词素材 10–20 分钟,覆盖角色需要的语气范围(喊麦、低语、怒音)
- 执行步骤:按默认参数训练;推理时对每条台词用批量推理页签整目录转换;需要更贴近时把 Index Rate 提到 0.8
- 得到输出:整组目标音色台词文件,可直接挂进引擎。实时互动场景可参考
tools/rvc_for_realtime.py的实现思路
❓ 高频问题速查
训练到一半爆显存(CUDA OOM):batch_size 减到 1–2;仍不行就目标采样率降到 40k;老卡(1060/1070/1080 等)程序会自动切 fp32,属正常现象不是故障。
输出音色像输入而不像目标音色:索引文件没选对或 Index Rate 太低。确认索引文件和模型同源,Index Rate 提到 0.8–0.9 再听。
听起来有杂音、电流声:先查训练素材底噪;推理端把 Filter Radius 调到 4–5 平滑音高曲线;采样率输出选 0 跟随输入,别强行降采样。
训练完找不到模型文件:模型在logs/实验名/logs/实验名/下的G_*.pth,索引在assets/indices/。只保存了最新 ckpt 的话旧轮次会被覆盖,想留多个就关"仅保存最新"。
转调后声音变形严重:输入和目标音域差太大是主因,用升降调把差值控制在 ±7 个半音内;差太多就换更接近的目标素材再训。
CPU 下训练/推理太慢:CPU 模式可以跑通但不实用,特征提取和训练建议至少用 6GB 显存的 N 卡;只有推理环节可接受 CPU。
FFmpeg 相关报错:确认ffmpeg -version能输出,PATH 里能找到;Windows 也可把 ffmpeg.exe 放进项目根目录。
🔧 进阶方向
- 批量工作流:
tools/infer_batch_rvc.py和infer_cli.py提供无界面的命令行批量转换,适合脚本化流水线 - 模型融合:在训练时加载别人的预训练底模 G 继续训,或用 ckpt 处理页签把多个 ckpt 按比例融合,能互补两个模型的优劣
- 显存与性能:低显存卡自动切 fp32 并下调检索相关参数(x_pad/x_query 等,见 configs/config.py),多卡可配置 rmvpe 分卡并行;对推理延迟敏感可导出 ONNX(
tools/export_onnx.py)
RVC 用 10 分钟素材换一条属于你的 AI 声线,成本几乎只有等待时间。去准备 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
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考