RVC 变声器排障手册:14 类高频报错一次排清
【免费下载链接】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)是开源的变声训练推理工具,10 分钟语音就能训出可用音色。跑训练时 ffmpeg error、显存不足、tensor 尺寸不匹配等报错并不罕见,本文按你实际操作的四个阶段,把 14 类高频故障的排查顺序讲清楚。
跑起来之前:环境与依赖
FFmpeg 缺失导致音频处理报错
现象:处理音频时报 ffmpeg error,或音频文件直接被跳过。
原因:RVC 内部靠 ffmpeg 读音频,系统没装好工具链就会失败。
处理:
- Linux / macOS 用包管理器装:
sudo apt install ffmpeg # Debian/Ubuntu brew install ffmpeg # macOS- Windows 下载 ffmpeg.exe 和 ffprobe.exe,放到 RVC 根目录。
- 验证安装:
ffmpeg -version提醒:💡 装进系统环境变量比放根目录更省事,换目录也不怕。
llvmlite.dll 加载失败
现象:启动时报OSError: Could not load shared object file: llvmlite.dll。
原因:Windows 缺 VC++ 运行库,llvmlite 依赖的动态库链加载不上。
处理:
- 安装微软官方的 vc_redist.x64.exe(64 位系统)。
- 重启 WebUI;仍报错就重装包:
pip uninstall llvmlite pip install llvmlite --no-cache-dirPython 版本与 llvmlite 冲突
现象:poetry 装依赖时报 llvmlite 版本冲突,装不上或锁死。
原因:llvmlite==0.39.0 只兼容 Python 3.7~3.10,其他版本会冲突。
处理:
- 准备 3.7~3.10 的 Python。
- 绑定解释器后再装:
poetry env use "path to your python.exe" poetry run pip install -r requirements.txt启动报预模型文件缺失
现象:启动或点训练时报文件找不到,路径指向 assets/hubert、assets/pretrained、assets/uvr5_weights 等。
原因:RVC 需要一批预训练模型才能工作,仓库本身不带这些权重。
处理:
- 从官方 Hugging Face 空间补齐 assets/hubert、assets/pretrained、assets/pretrained_v2(v2 模型才需要)、assets/uvr5_weights 四份文件。
- 要用 RMVPE 音高提取,把 rmvpe.pt 放到 RVC 根目录。
- 也可以直接跑 tools 目录里的下载脚本,按清单自动拉取。
本阶段易踩的坑:
- Windows 用户优先确认 VC++ 运行库已装,再查其他依赖。
- 显卡型号决定 requirements 文件:N 卡用 requirements.txt,A 卡 / I 卡用 requirements-dml.txt,别混装。
第一次启动与配置
代理引发的 JSON 解析报错
现象:WebUI 弹出Expecting value: line 1 column 1 (char 0)。
原因:这是 JSON 解析失败的通用报错,通常不是配置文件坏了,而是代理拦了请求。
处理:
- 关闭系统局域网代理和全局代理。
- 清掉服务端代理变量(如 AutoDL 开了学术加速):
unset http_proxy unset https_proxy- 重启 WebUI。
提醒:⚠️ 客户端代理和服务端代理要一起关,只关一半照样报。
端口占用与连接中断
现象:浏览器访问 7860 没有页面,或提示 Connection Error。
原因:控制台窗口被手动关掉,WebUI 进程随窗口退出;或 7860 端口被别的实例占着。
处理:
- 确认黑色控制台窗口保持开启,最小化即可。
- 查端口占用:
lsof -i :7860 # Windows: netstat -ano | findstr :7860- 结束占用进程,或换端口启动。
音频路径特殊字符处理失败
现象:处理数据集时报 ffmpeg error 或 utf8 error。
原因:路径带空格、括号等符号会让 ffmpeg 读失败;训练集路径含中文时,写 filelist.txt 会出 utf8 error。多半不是 ffmpeg 本身的锅。
处理:
- 数据集文件夹和音频文件统一改成纯英文、无空格命名。
- 重新执行数据加载与处理。
本阶段易踩的坑:
- 别同时开两个 RVC 实例抢端口。
- 路径命名一次改到位,含中文和空格的路径是后面所有数据类报错的源头。
准备训练数据
wavs16k 过小的音频文件
现象:训练时报RuntimeError: The size of tensor a (24) must match the size of tensor b (16)。
原因:wavs16k 里混了异常音频,文件大小显著偏小(通常不足正常文件的 1/3),特征提取时张量维度对不上。
处理:
- 进 logs/实验名/wavs16k,按文件大小排序找出偏小的文件。
- 删掉这些异常音频。
- 重新点"训练模型";一键流程中断后,训练完记得手动补一次"训练索引"。
数据预处理内存溢出
现象:提取音高或处理数据阶段报文件 error、内存 error,进程直接崩。
原因:CPU 进程开太多,内存被撑爆。
处理:
- 把"提取音高和处理数据使用的CPU进程数"降到物理核心数的一半(8 核就设 4)。
- 过长的音频先手动切短再处理。
- 关闭其他吃内存的程序后重试。
采样率变更引发维度错误
现象:换了采样率后继续训练,报 tensor 尺寸不匹配类错误。
原因:采样率和底模、特征维度是绑定的,中途变更会让张量维度对不上。
处理:
- 新建实验名从头训练,别在原实验上改采样率。
- 把上次 logs 里已提取的音高和特征目录(0/1/2/2b 文件夹)拷到新实验名下,省掉重新提取的时间。
提醒:⚠️ 48k 音质更好但更吃资源,开训前一次定好,不中途改。
本阶段易踩的坑:
- 训练集时长建议 10~50 分钟;底噪大的差音质数据 20~30 个 epoch 就够,别硬拉高。
- 处理新数据前先检查文件名和单文件长度,别把垃圾文件喂进去。
训练与推理阶段
训练完缺索引文件
现象:一键训练结束,logs/实验名下有模型却没有 added 开头的 .index 索引文件。
原因:训练集较大时,添加索引这步内存需求过高,卡住后静默失败。
处理:
- 单独再点一次"训练索引"按钮,等进度到 100%。
- 仍失败就改用批处理脚本生成:
python tools/infer/train-index.py- 索引文件可能几百 MB,先确认磁盘空间。
训练推理显存不足
现象:训练或推理时报Cuda out of memory。
原因:显存不够。batch size(一次喂给模型的样本数)过大或推理分段参数偏大都会推高占用。
处理:
- 训练时把 batch size 调小,最低可设 1;还不够只能换显卡。
- 推理时改 configs/config.py 结尾的 x_pad、x_query、x_center、x_max 数值,调小即可。
- 4G 以下显存(如 1060 3G)直接用 CPU 推理。
中间模型直接用报 key 不存在
现象:把 logs 下的 G_xxxx.pth 复制进 weights 推理,报 f0、tgt_sr 等 key 不存在。
原因:logs 下几百 MB 的完整模型是实验存档,不是推理模型。
处理:
- 进 ckpt 选项卡,做"小模型提取",输入路径填 G 开头的那个。
- 选择是否携带音高、目标音频采样率信息(logs 下能自动找到时会自动带)。
- 提取后 weights 下出现 60MB+ 的 .pth,刷新音色即可选用。
提醒:⚠️ 分享模型只发 weights 下的 .pth 加对应 .index,别发整个 logs 文件夹。
推理列表缺新音色
现象:训练完成后推理界面下拉列表没有新音色,或选了没效果。
原因:模型没提取到 weights,或音色列表没刷新。
处理:
- 点"刷新音色",等 2~3 秒。
- 检查 weights 下是否出现 60MB 左右的 .pth;没有就先做 ckpt 小模型提取。
- 仍不行就翻 logs/实验名 下的日志搜 error,确认训练环节真的跑完了。
本阶段易踩的坑:
- 看到"Training is done"后紧挨着的报错,先确认模型和索引都已生成,再判断真假。
- 一个实验名固定绑定一个采样率,跨采样率换实验重来。
速查表
| 报错 / 表现 | 先查哪里 | 最快处理 |
|---|---|---|
| ffmpeg error / utf8 error | 数据集路径与文件名 | 改纯英文无空格命名 |
| OSError: llvmlite.dll | 系统 VC++ 运行库 | 装 vc_redist.x64 后重启 |
| Expecting value (char 0) | 系统代理与 http_proxy | 关代理、unset 代理变量 |
| Connection Error | 控制台窗口 / 7860 端口 | 保持窗口开启,换端口启动 |
| The size of tensor a must match b | logs/实验名/wavs16k | 删明显过小的音频 |
| 文件 / 内存 error | CPU 进程数设置 | 进程数降到核心数一半 |
| tensor 尺寸不匹配(换采样率后) | 实验绑定的采样率 | 换实验名从头训练 |
| 缺 added 开头的 .index | 训练集大小 | 重点此"训练索引" |
| Cuda out of memory | batch size / config.py | 调小 batch size 或分段参数 |
| f0、tgt_sr key 不存在 | 用的哪个 pth | 先做 ckpt 小模型提取 |
| 推理看不到新音色 | weights 目录 | 刷新音色,确认 60MB+ pth |
多数 RVC 报错都能按"环境 → 数据 → 参数"的顺序排掉:先看依赖和预模型齐不齐,再看路径与音频文件干不干净,最后才是 batch size、采样率这类参数有没有越界。还查不到原因时,把控制台输出连同 logs/实验名 下的日志一起对照 官方 FAQ,社区基本能帮你快速定位。
【免费下载链接】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),仅供参考