news 2026/9/20 5:59:32

RVC变声器实战:10分钟录音训练一个能换声色的语音转换模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RVC变声器实战:10分钟录音训练一个能换声色的语音转换模型

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

RVC(Retrieval-based Voice Conversion WebUI)是一个基于 VITS 架构的开源语音音色转换工具:你喂给它 10 分钟左右的目标人声录音,它训练出一个音色模型,之后任何音频输入都会以这个音色重新输出。适合做视频配音、游戏换声、AI 翻唱,但不想碰音频工程细节的人。默认监听 7865 端口,4GB 显存的显卡即可完整跑通训练加推理。

4GB 显存够不够?先说结论

能跑。4GB 显存的显卡可以完成训练和推理;3GB 及以下(1060、各种 2G 卡)官方 FAQ 的建议是直接放弃。

原因看 configs/config.py:程序启动时自动读取显存大小,低于 4GB 的卡会被直接分到 CPU 上推理,4GB 及以下会自动切到更保守的分块参数(x_pad/x_query 等)。系统内存也别忽略:切分和音高提取吃 CPU 多进程,内存不够就把"CPU 进程数"调低,或手动把训练音频切短。

软件环境有两个硬性要求:Python 3.12 x64;Ubuntu 用户推荐 24.04 版本。Windows 直接双击 go-webui.bat 走整合包,不用自己建环境。

从零到第一次换声,四步最短路径

前置依赖合并成一张清单,按序做:

  • ffmpeg:切分和重采样全靠它。Ubuntu 用sudo apt install ffmpeg,Windows 把 ffmpeg.exe 和 ffprobe.exe 放到项目根目录
  • Python 虚拟环境 + 依赖:依赖文件按显卡选,NVIDIA 旧卡用requirments_cu118_py312.txt,RTX 50 系用requirments_cu128_py312.txt,A 卡/CPU 用requirments_cpu_py312.txt(Windows 走 DirectML,Linux 走 CPU)
  • 预训练模型:缺了 assets 目录下的底模,训练和推理都起不来

下面四段命令在项目根目录依次执行,第一段拉代码并建好虚拟环境:

git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI python3.12 -m venv .venv

激活虚拟环境后,按你的显卡装一份依赖:

pip install -r requirments_cu118_py312.txt

接着下载底模文件,路径保持仓库规定的assets/结构:

hf download lj1995/VoiceConversionWebUI --revision main --include "hubert_base/*" --local-dir assets hf download lj1995/VoiceConversionWebUI rmvpe.pt --revision main --local-dir assets/rmvpe hf download lj1995/VoiceConversionWebUI --revision main --include "pretrained/*" "pretrained_v2/*" --local-dir assets

最后启动网页端,浏览器会自动打开 7865 端口的训练界面:

python webui.py

没有桌面的服务器加--noautoopen参数,手动访问地址。

值得动的就这几个参数,其余保持默认

训练页里的数字很多,真正需要关注的就下面这些(默认值均以 webui.py 实际配置为准):

参数怎么设原因
总轮数 total_epoch数据有底噪:20~30 轮;干净且时长足:可到 200 轮底噪大的数据训太多轮,模型只会把噪音一起学进去
保存间隔每 10 轮存一个点才能逐个试听中间产物,挑出最早达标的那版
batch_size用页面默认值(约为显存 GB 数的一半),OOM 再往下调默认值是按显存自动估算的稳定起步值
采样率/底模选 48k 对应 v2 底模configs/v2/48k.json 是官方配置里质量上限最高的一档
音高提取算法选 rmvpe效果最好且显存占用小;pm 适合歌声输入提速

推理时还有两个滑条值得动:检索特征占比 index_rate,默认 0.75,调高接近 1 音色完全锚定训练集但音质上限被锁死,调低到 0 音质可能更好但"音色泄露"会回来;保护值 protect,默认 0.33,防清辅音和呼吸声撕裂,输出有电音就往高调。

FAQ 里出现频率最高的四个问题

训完没看到索引文件。现象是训练日志显示完成,但logs/实验名/下没有 added_ 开头的 .index 文件;原因是训练集太大卡住了添加索引步骤。解法:回到训练页再点一次"训练索引"即可(FAQ Q2)。

推理报 Cuda out of memory。大概率就是显存不够。训练阶段把 batch_size 缩小,缩到 1 还报错就只能换卡;推理阶段则缩小 configs/config.py 末尾的 x_pad、x_query、x_center、x_max(FAQ Q8)。

训练时报文件页面/内存 error。是进程开太多把内存撑爆了。把"提取音高和处理数据使用的 CPU 进程数"拉低,或手工把训练集音频切短(FAQ Q14)。

WebUI 弹出 Expecting value: line 1 column 1 (char 0)。和代码无关,是代理问题。关闭局域网/全局代理,包括服务端代理比如 colab 里设的 http_proxy,重启再试(FAQ Q6)。

跑通之后:批量转换与实时变声

批量转换不用开网页,WebUI 推理页自带批处理入口,选模型和索引后一次丢进一个目录即可;训练页跑通后控制台会打印出完整的命令行处理流程,照着敲也能脱离界面跑(FAQ Q7)。

实时变声双击 go-realtime_gui.bat 启动实时界面,选模型和索引后说话即换声。官方给出的延迟是端到端 170ms,换 ASIO 输入输出设备可压到 90ms,但后者非常依赖声卡驱动支持,普通 USB 声卡别期待这个数字。

分享模型记住一点:logs/下几百 MB 的 pth 是存实验状态用的,能分享的是assets/weights/下 60+MB 的 pth 配合对应的 .index 文件(FAQ Q4)。

现在打开推理页,选一个保存点模型和对应索引,把录音里没用过的一段音频丢进去转换,听音色对不对得上——对上了,从录音到换声的整个流程就通了。

【免费下载链接】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/20 5:59:03

树莓派系统文件解析:config.txt、cmdline.txt与设备树overlay实战指南

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

作者头像 李华
网站建设 2026/9/20 5:57:23

Flutter Web+AI辅助:从零开发2048小游戏全指南

从最开始有这个想法到最终把成品部署上线&#xff0c;整个过程其实比我想象中有意思得多。起因很简单&#xff0c;我想找一个能快速上手、又不需要应付三端审核的小项目练手&#xff0c;2048 作为规则清晰、逻辑完整的经典小游戏&#xff0c;几乎是练手的最佳选择。但问题在于我…

作者头像 李华
网站建设 2026/9/20 5:55:20

AI智能体架构拆解:某验四滑块前端JS反混淆实操全流程

前阵子被一个需求卡了两天&#xff1a;项目里要接手一套前端验证逻辑&#xff0c;代码是从生产环境抽出来的压缩混淆版本&#xff0c;变量名全是_0x1a2b这种&#xff0c;字符串被拆成一段段编码&#xff0c;函数嵌套七八层。更麻烦的是&#xff0c;这份代码来自某验四滑块验证码…

作者头像 李华