RVC 安装与训练完整指南:10 分钟录音做出自己的 AI 语音克隆模型
2026/9/3 10:41:35 网站建设 项目流程

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

RVC(Retrieval-based Voice Conversion WebUI)是一个基于 VITS 的开源变声框架:用一个人 10~50 分钟的说话录音就能训练出专属的 AI 语音克隆模型,之后任何音频都可以换成这个人的声音。本文覆盖这个 RVC 变声工具从安装、训练到推理、排错的完整流程。

RVC 语音转换能做什么,不能做什么

先说结论:RVC 解决的是"把一个人的声音替换成另一个人"的问题——先用少量目标人声录音训练出音色模型,推理时再把输入音频的音色替换为目标音色,其中用 top1 检索直接替换输入源特征来抑制"音色泄漏"(输出里混入原音色的现象)。框架还内置了 UVR5 人声伴奏分离、RMVPE 音高提取和模型融合功能,全部在一个网页界面里完成。

判断自己是否适合,对照下面两列即可:

适合你的情况不适合你的情况
翻唱变声、视频或游戏角色换声显卡显存低于 4G(4G 仍可尝试,更低基本不可行)
个性化语音助手、实时变声场景素材不足 5 分钟且期望稳定效果(1 分钟以下官方不建议)
只有一张普通显卡,想用 10 分钟素材训出可用模型想做能唱歌的模型,却未开启"带音高指导"选项

RVC 安装教程:按显卡选依赖文件并补齐预训练模型

安装环节的关键只有一点:根据显卡选对 requirements 文件,并补齐assets下的预训练模型。两者缺一,后面都会卡住。

第一步:获取代码并安装依赖。需要 Python 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

第二步:按显卡环境选择依赖文件(N 卡直接用上一步命令,其余按下表替换):

显卡环境依赖文件说明
NVIDIArequirements.txtCUDA 加速,最常见的选择
AMD(Windows)requirements-dml.txt走 DirectML 加速
AMD(Linux)requirements-amd.txt需先装好 ROCm 驱动
Intel(Linux)requirements-ipex.txt走 IPEX 加速

如果改用 Poetry 安装,Python 建议 3.7~3.10,其他版本安装llvmlite==0.39.0时可能冲突。

第三步:安装 FFmpeg。音频读写依赖ffmpegffprobe:Ubuntu/Debian 用sudo apt install ffmpeg,macOS 用brew install ffmpeg;Windows 用户将ffmpeg.exeffprobe.exe放到项目根目录即可。

第四步:补齐预训练模型。至少需要assets/hubertassets/pretrainedassets/uvr5_weights三个目录下的文件;要使用 v2 版本模型,还需assets/pretrained_v2。运行 tools/download_models.py 可批量下载上述文件。

第五步:启动 WebUI。执行python infer-web.py,默认监听 7865 端口,端口被占用时可加--port 7861更换。Windows 整合包里的go-web.bat则默认以 7897 端口启动。

⚠️重要:运行期间不要关闭终端窗口,它是后端服务本体;关闭后浏览器会提示 Connection Error。

RVC 模型训练流程:从素材准备到索引生成

训练入口是 WebUI 的「训练」选项卡,整体分为三个环节:备料、一键训练、验证产物。

准备一份干净的人声音频库

素材质量直接决定效果上限,比加大训练轮数重要得多:

  • 时长:推荐 10~50 分钟;音质高、底噪低、音色统一时,5~10 分钟也可行;1 分钟以下不建议。
  • 内容:同一人的统一音色,去掉底噪、爆音和静音段。
  • 路径:所有文件放入同一个训练文件夹,路径避免空格、括号和中文,这两类符号是后续 ffmpeg 报错和 utf8 错误的主要来源。

一键训练生成检查点与索引文件

在「训练」选项卡填好实验名、目标采样率和「模型是否带音高指导」后,点「一键训练」即可串行执行:数据预处理(切片、归一化)→ 音高与特征提取(F0 曲线 + HuBERT 特征)→ 模型训练 → 索引训练。

  • 采样率:v2 版本可选 32k / 40k / 48k,v1 仅 40k / 48k;40k 是通用选择,48k 音质上限最高,32k 计算开销最小。
  • 训练产物:检查点按保存频率持续写入logs/实验名/,生成器为G_xxx.pth、判别器为D_xxx.pth
  • 训练轮数 total_epoch:默认 20;素材底噪大时 20~30 轮足够,调高也带不动低音质素材;素材优质且时长充足时,200 轮没有问题。
  • 中断与续训:关闭终端重启后,用相同参数再次点训练,会从上次检查点继续,不会从零开始。

验证训练产物并定位实验目录

训练成功与否看两处:

  1. 输出信息出现 "Training is done" 即代表模型训练完成,其后紧邻的个别报错可忽略。
  2. logs/实验名/下出现added_IVF..._Flat_nprobe_....index索引文件,它是推理时把声音"锁"在目标音色上的特征检索库。

也可以在训练设置中开启"每次保存时间点将小模型保存至 weights 文件夹",省去事后手动提取。

⚠️重要:训练中途不能更换目标采样率继续训练,否则会报 tensor 尺寸不匹配错误;必须更换实验名从头训练(可拷贝上次的音高与特征文件夹加速)。

控制输出效果的三个 RVC 变声参数:变调、索引率、F0 算法

推理入口是「模型推理」选项卡:先点「刷新音色列表和索引路径」选中刚训好的模型,填入待处理音频路径(参考输入框中的示例格式),选择 F0 算法后点「转换」。真正影响结果的就是下表三个参数:

参数作用调整建议
变调按整数半音整体升降调填 12 升八度,填 -12 降八度;男声翻女声通常从这里入手,取正值
索引率(检索特征占比)控制输出向训练集音色靠拢的程度单次推理默认 0.75;音色不够像时在 0.5~0.9 之间逐步试;调得越高越贴近训练集音色,但训练集音质低于输入源时可能拉低音质
F0 音高提取算法从输入音频提取音高曲线rmvpe效果最好且资源占用可控;pm最快,适合歌声提速;harvest低音表现好但速度慢;crepe效果好但更吃显存

另外两个常调参数:protect(保护清辅音和呼吸声)默认 0.33,拉满 0.5 即关闭保护;批量推理时索引率默认为 1,可按需调低。训练集本身优质且时长充足时,模型对索引率的依赖会明显下降。

高频报错对照表:从现象到解决方案

遇到报错先按下表定位,绝大多数情况不需要重新训练:

现象可能原因解决方案
ffmpeg error / utf8 error音频路径含空格、括号等特殊符号(ffmpeg 报错)或含中文(写 filelist 时 utf8 报错)将音频改名为纯英文并移动到纯英文路径
WebUI 弹出 "Expecting value: line 1 column 1 (char 0)"系统局域网/全局代理拦截了请求关闭代理后刷新;服务端设置的http_proxy/https_proxy也要 unset
缺少 llvmlite.dllWindows 缺少 Visual C++ 运行库安装对应版 vc_redist 运行库后重启
CUDA out of memory显存不足训练侧调小 batch size(调到 1 仍不够则需换卡);推理侧在 configs/config.py 中酌情调小x_padx_queryx_centerx_max;4G 以下显存基本只能放弃训练
tensor 尺寸不匹配(expanded size / size of tensor a 必须 match)wavs16k目录中有明显偏小的异常音频文件;② 中途变更采样率继续训练① 删除异常文件后重新训练模型和索引;② 更换实验名从头训练
训练完成但没有added_开头的索引训练集较大时索引添加步骤卡住先确认出现 "Training is done",然后手动再点一次「训练特征索引」
推理列表里找不到刚训好的模型训练过程报错中断,或产物位置不对点「刷新音色」,仍无则查看控制台输出与logs/实验名/下的日志文件

提示:若报文件/内存错误,多为 CPU 进程开太多,把「提取音高和处理数据使用的 CPU 进程数」调低,并手动把训练音频切短一些。

语音克隆模型如何正确分享,以及更多资料入口

分享模型前必须分清两类文件:logs/实验名/下的 pth 是实验检查点(体积达几百 MB,用于复现和继续训练),直接拷到weights强行推理会报 f0、tgt_sr 等 key 缺失错误;可分享的是weights目录下 60+MB 的 pth

标准流程:在「ckpt 处理」选项卡最下方的"模型提取"功能中,输入logs下 G 开头的检查点路径(采样率、是否带音高、版本可自动识别),提取出轻量小模型存入weights;再把该 pth 与对应的added_....index索引文件一起打包发给对方,解压到对应目录即可使用。

遇到问题时,优先查阅仓库自带的官方资料:

  • 常见问题解答:docs/cn/faq.md(WebUI 内「常见问题解答」选项卡即展示此文件)
  • 更新日志:docs/cn/Changelog_CN.md
  • 索引生成与模型转换脚本:tools/infer/
  • 各采样率模型配置:configs/v1/ 与 configs/v2/
  • 英文训练细节说明:docs/en/training_tips_en.md
  • 界面与启动逻辑入口:infer-web.py

回头看整条路径:按显卡装好依赖 → 补齐预训练模型 → 备料、一键训练、验证产物 → 用三个参数控制推理输出 → 按表排错 → 提取小模型分享。效果差距主要来自素材是否干净、音色是否统一,而不是参数玄学。先用最短的 10 分钟素材完整跑通一遍,再逐步增加数据量,问题大多能在 docs/cn/faq.md 和上表的对照中自行解决。

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

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

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

立即咨询