RVC 语音克隆完整教程:用 10 分钟录音做出第一个 AI 变声模型
【免费下载链接】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
按本文走完全部操作,你能用目标人 10 分钟的说话录音训练出一个 RVC 语音克隆模型(RVC 全名 Retrieval-based Voice Conversion WebUI,检索式语音转换框架),之后把任意音频转换成这个人的音色。它基于 VITS 语音合成框架,数据门槛低、对显卡要求宽松,是新手做 AI 变声的起步首选。
RVC 环境自查清单:四步启动 WebUI
这一节解决"我的电脑能不能跑起来"。把下面 5 项逐条过一遍,全部满足再动手,能省掉一半的报错排查时间。
- Python 版本 3.8 以上——依赖用 pip 装,版本过低装不上。
- 显卡匹配一份依赖文件:N 卡走
requirements.txt;A 卡 Windows 走requirements-dml.txt(DirectML 加速);A 卡 Linux 走requirements-amd.txt(需先装 ROCm 驱动);I 卡 Linux 走requirements-ipex.txt(IPEX 加速)。选错文件是安装阶段最常见的坑。 - ffmpeg 和 ffprobe 可用——Linux 用包管理器装,macOS 用 brew 装,Windows 用户把两个 exe 放进项目根目录即可。
- 预训练模型齐全——
assets/hubert、assets/pretrained、assets/uvr5_weights是必选项,想用 v2 版本再加assets/pretrained_v2。不用手动找,仓库自带的 tools/download_models.py 一条命令批量下载。 - 显存预期:4G 以上显存可以训练,4G 以下基本只能做推理,建议直接用云端算力训练。
自查通过后执行(N 卡示例,其他显卡换对应依赖文件):
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI pip install -r requirements.txt python tools/download_models.py然后启动:
python infer-web.py浏览器打开http://localhost:7865看到界面即成功;端口被占用就加参数换端口,python infer-web.py --port 7861。
⚠️ 运行期间黑色控制台窗口就是后端服务本体,关掉它界面会直接 Connection Error,需要重启。
第一次 RVC 变声最短路径:从 10 分钟录音到换好音色
这一节只走最短成功路径,每一步都最少必要,参数为什么这么设放在步骤跑通之后统一讲。
准备素材:找目标人 10~30 分钟的录音,导出为 WAV、单声道、44.1kHz,去掉底噪和静音段,全部放进dataset文件夹。质量远比数量重要,同一个人、音色统一即可。
开始训练(「训练」标签页):
- 填一个实验名(纯英文即可),目标采样率选 40k;
- 点一键训练,系统自动完成:切分长音频 → 提取音高和特征 → 训练模型 → 训练索引。中途会持续产出
logs/实验名下的G_xxx.pth(生成器)和D_xxx.pth(判别器); - 控制台出现 "Training is done" 即成功,此时已生成
added_xxx.index特征检索库(推理时靠它把声音锁在目标音色上)。
做第一次变声(「模型推理」标签页):
- 点刷新音色列表和索引路径,在下拉框选中刚训好的模型;
- 输入待处理音频路径,变调填 0,F0 算法选
rmvpe,Index Rate 填 0.6; - 点转换,几秒钟到几十秒后听到结果——第一次 RVC 变声完成。
跑通之后再理解这几个参数,改起来心里才有数:
| 参数 | 人话解释 | 建议值 |
|---|---|---|
| 变调 | 按半音升降调,12 = 升八度,-12 = 降八度,男翻女主要靠它 | 0 起步 |
| Index Rate | 越大越像训练集音色,越小越自由但易混入原音(音色泄漏) | 清唱 0.7~0.8,带伴奏 0.5~0.6 |
| F0 算法 | rmvpe效果最好、占用可控,首选;harvest低音好但慢;pm最快 | rmvpe |
| total_epoch | 训练轮数:音质差底噪大 20~30 就够,音质高素材多可上到 200 | 按数据质量定 |
| 采样率 | 32k 适合实时变声和语音助手,40k 适合音乐配音,48k 音质最好但更吃硬件 | 40k |
训练中途绝对不能换采样率,否则报 tensor 尺寸不匹配,只能换新实验名从头来。想中断训练时直接关控制台再启动,用相同参数点训练会从上次检查点续训,不会白练。
RVC 调参与报错快速对照:声音不像或报错怎么办
这一节解决两件事:结果不满意往哪调,以及报错对号入座。
效果排查顺序:先数据,再参数,最后采样率。训练集有底噪、爆音、背景人声,或素材不是同一人统一音色,效果上限就锁死了——这比加训练轮数有效得多。数据没问题的话,把 Index Rate 从 0.5 到 0.9 每次加 0.1 逐步试,找最顺耳的值;如果训练集本身优质且时长足,模型就不容易跑偏,Index Rate 甚至可以不纠结。
报错三行式对照(症状 → 原因 → 处理):
症状:ffmpeg error / utf8 error原因:不是 ffmpeg 坏了,是音频路径带空格、括号或中文处理:音频改名、挪到纯英文路径
症状:WebUI 弹出 Expecting value 解析错误原因:系统全局/局域网代理干扰了 JSON 解析处理:关闭代理,服务器端的 http_proxy 也要 unset,然后重启 WebUI
症状:llvmlite.dll 缺失(Windows 常见)原因:缺 Visual C++ 运行库处理:安装 vc_redist 运行库后重启电脑
症状:CUDA out of memory原因:显存不够处理:训练侧把 batch size 调小(最低 1);推理侧把 configs/config.py 末尾的
x_pad、x_query、x_center、x_max酌情调小。4G 以下显存直接放弃训练症状:tensor 尺寸不匹配原因:
wavs16k目录里有异常偏小的音频文件,或中途改了采样率继续训练处理:删掉异常文件重新训练;若是改过采样率,换新实验名从头来症状:训练完成但没生成
added_开头的索引原因:训练集太大,添加索引步骤卡住处理:手动再点一次「训练索引」症状:推理列表里没有新模型原因:没刷新,或训练过程中断处理:点「刷新音色列表和索引路径」,还没有就查
logs/实验名下的日志
💡 如果报 Memory error(内存而非显存),多半是 CPU 进程开太多:把「提取音高和处理数据使用的 CPU 进程数」拉低,并把训练音频手工切短。
进阶玩法:原始音频带伴奏时,先用内置 UVR5 把纯人声分离出来再训练,效果明显更干净;想要混合音色,可用「ckpt 处理」标签页的模型融合(ckpt-merge)把两个模型按权重合成一个。分享模型时注意:logs/实验名下几百 MB 的 pth 是训练存档,不能直接分享——先在「ckpt 处理」标签页底部用「小模型提取」转成weights目录下 60+MB 的轻量 pth,再连同added_xxx.index一起打包发出去。
RVC 模型完成后下一步:三件事
- 用最短素材闭环一次:找 10 分钟录音完整走一遍训练 + 推理,建立对每个环节时长的手感;
- 把数据做到 30~50 分钟重训:total_epoch 上调到 100 左右,Index Rate 从 0.5 到 0.9 以 0.1 为步长扫一遍,锁定最贴的音色;
- 尝试进阶功能:用 UVR5 分离人声重训,再用模型融合把两个模型合成一个,感受音色的可控调整。
延伸资料:更细的问答看 docs/cn/faq.md,索引训练与模型提取的脚本在 tools/infer/。真正拉开 RVC 语音克隆效果差距的从来不是参数玄学,而是训练数据够不够干净、音色够不够统一——数据干净了,剩下的只是重复点按钮。
【免费下载链接】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),仅供参考