news 2026/9/4 11:19:01

10 分钟语音数据训一个专属变声模型:RVC 从装依赖到跑通推理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
10 分钟语音数据训一个专属变声模型:RVC 从装依赖到跑通推理

10 分钟语音数据训一个专属变声模型: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

Retrieval-based-Voice-Conversion-WebUI(下文简称 RVC)是一个基于 VITS 的开源变声框架,主打「用少量语音数据训练音色还原度不错的变声模型」。本文面向第一次接触 AI 变声、打算在本地跑通「训练—推理」完整链路的人:先讲清它替谁解决什么问题,再带你按顺序装环境、放模型、启动并调参,最后把高频报错按类型归拢起来排查。

它替你解决哪几件事

如果你手里有一段干净的人声,想做出「用你的声音唱别人的歌」或「实时变声」的效果,RVC 把整条链路都收进了一个网页界面里:

  • 少数据也能出效果:底模用接近 50 小时的高质量开源语料训成,所以你只要提供目标说话人的语音,官方推荐 10 分钟到 50 分钟即可,精简且音色有特色时 5 到 10 分钟也够用。
  • 弱显卡也能快速训练:框架针对显存做了适配,普通消费级显卡可以跑,训练速度较快。
  • 人声与伴奏一键分离:内置 UVR5 能力,先把混音里的人声、伴奏拆出来,再拿纯人声去训练。
  • 实时变声:除训练外还提供实时推理界面,延迟可做到端到端百毫秒级别,方便接入聊天、直播等场景。

装依赖与放预模型:先跑通环境

这一步是新手最常卡住的地方。原则是「先装 Python 依赖,再补齐预训练模型」,顺序反了启动时会一路报错。

按显卡选 requirements 装依赖

要求 Python 大于 3.8。依赖入口在requirements.txt等文件里,先装 PyTorch,再按硬件装对应清单:

pip install torch torchvision torchaudio

Windows 上如果是 RTX30 系(Ampere 架构),按经验需要指定 CUDA 版本:

pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu117

再按显卡类型安装:

pip install -r requirements.txt # N 卡 pip install -r requirements-dml.txt # A 卡 / I 卡(DirectML) pip install -r requirements-amd.txt # A 卡 ROCm,仅 Linux pip install -r requirements-ipex.txt # I 卡 IPEX,仅 Linux

不想用 pip 的话也可以用 Poetry,注意此时 Python 建议 3.7 到 3.10,其它版本在装llvmlite==0.39.0时容易冲突。MacOS 用户直接跑sh ./run.sh装依赖即可。

把预模型放到指定目录

依赖装好后,还需要把一批预训练文件放进仓库对应目录,否则训练和推理都起不来。需要准备的内容大致是:

  • ./assets/hubert/hubert_base.pt
  • ./assets/pretrained
  • ./assets/uvr5_weights
  • 想用 v2 版本模型,再额外补一个./assets/pretrained_v2

tools目录下有现成的下载脚本(如download_models.py),能帮你把上面这些文件拉到正确位置。

另外两件事:

  • 装 ffmpeg:训练预处理要调用它。Ubuntu/Debian 用sudo apt install ffmpeg,MacOS 用brew install ffmpeg,Windows 则下载ffmpegffprobe的可执行文件放到项目根目录。
  • 音高提取模型:想用效果最好的 RMVPE 算法,把rmvpe.pt放到 RVC 根目录;A 卡 / I 卡可再选rmvpe.onnx

启动 WebUI 并跑通第一次推理

启动与一键训练的四个阶段

装好依赖和预模型后,启动命令就一条:

python infer-web.py

若之前用 Poetry 装的依赖,则换成poetry run python infer-web.py。浏览器会打开默认 7865 端口的界面(端口可在启动参数里改)。

点「一键训练」时,后台其实按四步串行执行,理解这个顺序对你判断卡在哪一步很有帮助:

  1. 处理数据:把训练集按约 3.7 秒一段切片、归一化、重采样到 16k(切片阈值、静音长度等参数见 infer/modules/train/preprocess.py)。
  2. 提取音高与特征:分别抽出 F0 曲线和内容特征。 3a.训练模型:用infer/modules/train/train.py训练,产物落在logs/实验名/下。 3b.训练索引:用 Faiss 构建added_IVF...index检索库。

推理时这几个滑块分别管什么

训练完进入「单次推理」页,几个关键参数值得记住:

  • 变调:整数半音数,升八度填 12、降八度填 -12。
  • 音高提取算法:可选pm/harvest/crepe/rmvpe。歌声用pm更快,harvest低音好但很慢,crepe效果好但吃显存,rmvpe综合最好且资源占用小(DirectML 环境没有crepe)。
  • 检索特征占比:控制「用训练集特征替换输入特征」的强度,默认 0.75。
  • 保护系数:默认 0.33,防止清辅音、呼吸声出现电音撕裂。
  • 采样率:v1 可选 40k / 48k,v2 额外支持 32k。

完整推理流程的实现在 infer/modules/vc/pipeline.py,想看特征检索与音高融合的细节可以从这里入手。

踩坑自查:按报错反查原因

把 FAQ 里的内容按「原因类型」归拢后,排错会快很多。

路径与环境类

  • ffmpeg error / utf8 error:多半不是 ffmpeg 的锅,而是路径带空格、括号等特殊符号,或训练集用了中文路径导致写filelist.txt时编码报错。把目录挪到纯英文、无空格的短路径再试。
  • Expecting value: line 1 column 1:关闭系统或全局代理(包括服务端代理,比如某些云平台的学术加速),再刷新。
  • Connection Error:多半是你把控制台的黑色终端窗口关掉了,保留该窗口即可。
  • 找不到llvmlite.dll(Windows):安装对应的 VC++ 运行库后重启 WebUI。

显存与内存类

  • Cuda out of memory:训练时先缩小 batch size(缩到 1 还爆只能换卡);推理时则去 configs/config.py 末尾调小x_padx_queryx_centerx_max。显存低于 4G 的卡(如 1060 3G)基本可以放弃,4G 还有救。
  • 训练时内存 error:进程开太多,把「提取音高和处理数据使用的 CPU 进程数」拉低,或手动把训练集音频切短一点。

训练完了为什么找不到音色或索引

  • 没有added开头的索引:只要出现「Training is done」就说明模型训练成功,紧随其后的报错可以忽略;索引卡住多半是训练集太大,重新点一次「训练索引」通常就能补上(代码已改为分批 add 来省内存)。
  • 推理页看不到刚训的音色:先点「刷新音色」;还没有的话回看训练是否报错,logs/实验名/下的日志可直接拿去对照。
  • 中途换了采样率继续训:会报 tensor 尺寸不匹配,别在同一实验里改采样率,需要改就换新实验名从头训。

想分享模型时该给哪个文件

logs/实验名/下的 pth 是「实验状态」,用来复现或续训,不要直接拿去推理。真正可分享的是weights下约 60MB 的 pth,配合对应的added_...index一起打包成 zip 分发即可;直接把 logs 下几百 MB 的 pth 塞进 weights 强行推理,会报 f0、tgt_sr 等 key 缺失。

边界与进阶选项

  • 数据时长怎么定:推荐 10 到 50 分钟;音质好、底噪低且音色有个人特色时可以更多,精简且有特色的 5 到 10 分钟也够用;1 到 2 分钟有人成功但不具备可复现的参考价值,1 分钟以下不建议尝试。
  • 训练轮数 total_epoch:训练集音质差、底噪大时 20 到 30 轮就够,拉太高也带不动底模;音质高、时长足时可上到 200 轮。
  • 检索占比与音色泄漏:当底模和输入源音质高于训练集时,结果音质会被带高,但音色可能往它们靠,这叫「音色泄漏」。检索占比调到 1 理论上不泄漏、但音质更贴训练集;调到 0 则失去检索保护。训练集足够优质、轮数够多时,泄漏本身就不明显,索引文件甚至可以省。
  • 选卡与续训:推理用哪张卡在config.pydevice里改cuda:后的卡号;想续训就用相同参数点训练模型,会自动接上上次 checkpoint;想中途加数据,则新建实验名、拷入上次的 G/D 文件再一键训练。

更多细节可查阅 中文 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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/4 11:18:17

Steam Machine复活指南:从客厅游戏PC到现代多功能设备的实测与改造

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/4 11:16:13

什么是语音智能体?主要有何优势和应用场景?

数字员工在现代企业中发挥着越来越重要的作用&#xff0c;通过语音智能体的应用&#xff0c;企业能够显著优化业务流程。首先&#xff0c;数字员工可以自动执行重复性、繁琐的任务&#xff0c;如外呼和客户管理&#xff0c;这不仅减少了人工干预&#xff0c;还能大幅提升工作效…

作者头像 李华
网站建设 2026/9/4 11:16:07

当数字员工接入语音智能体,如何提升业务效率?

数字员工通过智能化技术的应用&#xff0c;为企业优化业务流程、降低成本、提升效率带来了新的视角与实际价值。借助语音智能体&#xff0c;数字员工不仅能够自动化地进行客户互动&#xff0c;还能高效管理客户线索。其自动外呼功能显著提高了客户沟通的响应速度&#xff0c;使…

作者头像 李华
网站建设 2026/9/4 11:15:34

Chat2DB 版本选型:免费版还是付费版,3 个维度帮你挑对

Chat2DB 版本选型&#xff1a;免费版还是付费版&#xff0c;3 个维度帮你挑对 【免费下载链接】Chat2DB Chat2DB is a free, cross-platform, local-first database client and SQL workspace for developers, DBAs, analysts, and data teams. Connect to 40 databases, manag…

作者头像 李华