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
Retrieval-based-Voice-Conversion-WebUI(RVC)是一个基于 VITS 的语音转换与语音克隆框架,10 分钟以内的语音数据就能训练出可用的变声模型,并提供完整的 Web 训练与推理界面。
项目速览
- 解决什么问题:传统语音合成克隆对数据量要求高,RVC 用不到 10 分钟的低噪语音就能训出音色还原度不错的变声模型。
- 技术路线:以 VITS 架构为底模,推理时用 top1 检索把输入特征替换为训练集特征,从机制上杜绝"音色泄漏"(输出里混入原说话人的音色)。
- 功能完整度:一个网页界面覆盖音频切片、音高与特征提取、模型训练、索引训练、实时试听的全流程,
infer/modules/vc/是语音转换的核心实现。 - 硬件兼容性:NVIDIA、AMD(DirectML)、Intel(IPEX)显卡均支持,训练和推理都能在消费级显卡上跑。
- 附加能力:内置 UVR5 人声伴奏分离,以及端到端约 170ms 的实时变声链路(ASIO 设备可压到 90ms)。
从零跑起来
环境要求
- Python 版本大于 3.8;
- 系统需安装
ffmpeg(Ubuntu 用apt install ffmpeg,macOS 用brew install ffmpeg,Windows 用户按仓库 README 说明放置到根目录); - 一块独立显卡,显存 4GB 以上体验更从容。
获取代码
git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI安装依赖
先装 PyTorch 本体,再按显卡类型装对应依赖:
pip install torch torchvision torchaudio pip install -r requirements.txt| 显卡 | 依赖文件 | 说明 |
|---|---|---|
| NVIDIA | requirements.txt | 主路径,大多数用户 |
| AMD | requirements-dml.txt | 走 DirectML 加速 |
| Intel 集成显卡 | requirements-ipex.txt | 走 IPEX 加速 |
AMD 和 Intel 用户只需把上表第二条命令中的文件名替换一下即可。
下载预置资源
python tools/download_models.py脚本会拉取推理训练所需的底模(hubert、RMVPE 音高模型、assets/pretrained与assets/pretrained_v2两套 v1/v2 底模)以及 UVR5 的vocals.onnx。使用 v2 底模时确保assets/pretrained_v2已下载完整。
第一次训练
准备训练数据
- 时长 10 分钟起步,50 分钟以内效果稳定,数据质量比数量更关键;
- 单人、低底噪,尽量在安静环境录制,混响和背景音乐会明显拉低效果;
- 常见音频格式均可(wav、mp3、flac),RVC 会自动重采样,无需手动转 44100Hz。
启动 WebUI
python infer-web.py启动后浏览器会自动打开训练推理界面。界面左侧是功能选项卡,右侧显示参数与日志,所有操作都在网页内完成。
音频预处理
在"音频预处理"选项卡填入总训练集路径与实验名(实验名将决定输出目录命名,建议用小写英文)。随后依次执行:
- 切片(自动按静音切分成短片段);
- 提取音高总文件,算法选RMVPE——精度和速度都是官方推荐的第一选择;
- 提取 Hubert 特征。
三步全部完成后,训练集目录里会生成对应的特征缓存文件。
训练模型并试听
切到"模型训练"选项卡:
- 底模版本选 v1 或 v2(v2 底模更大,数据充足时优先 v2);
- 采样率选 48k;
- 训练轮数推荐 30 轮:10 分钟量级的数据下 10–30 轮收敛即可,轮数过高容易过拟合。
训练结束后执行"训练索引"(索引用于推理时的 top1 检索,必须生成)。最后到"推理"选项卡,模型与索引下拉框选择刚训练出的.pth和.index,上传一段干声试转,即可确认克隆效果。
调优与进阶
效果调优
影响听感最大的三个参数:
| 参数 | 推荐范围 | 影响 |
|---|---|---|
| index_rate(索引率) | 0.0–0.5 | 越高输出越贴训练集音色,过高会削弱原音频的情感起伏 |
| pitch(音高偏移) | -12 ~ +12 整数 | 男声转女声调 -12,女声转男声调 +12,0 为保持原调 |
| protect(f0 保护系数) | 0.5 起步 | 低于 0.5 时非人声部分可能出现电流声伪影,听感有毛刺就调高 |
进阶玩法
- 模型融合:在 WebUI 的 ckpt 处理选项卡,或命令行
python tools/trans_weights.py,按比例混合两个模型的权重,生成新音色; - 实时变声:
python tools/rvc_for_realtime.py启动实时语音转换,适用于语音聊天和直播场景; - 人声分离:WebUI 内置 UVR5 选项卡,可从歌曲中分离干声,直接作为训练素材。
避坑指南
Q1:显存不足,训练直接报错?A:把采样率降到 32k 训练,或改用小一些的 segment 长度;4GB 以下显存建议先用 32k 配置跑通流程,再换 48k 做精细训练。
Q2:输出音色不像训练集,还夹着原说话人的音色?A:先确认索引已生成且推理时选中了.index,再把 index_rate 提到 0.3–0.5;仍不理想就检查训练数据是否有混音和噪音,用干净数据重跑预处理。
Q3:训练好的模型怎么分享给别人?A:分享weights/目录下 60MB 左右的.pth文件即可,logs/下的大文件包含中间检查点,没必要也不方便传。
Q4:实时变声延迟太高?A:Windows 下改用 ASIO 音频接口可把端到端延迟从 170ms 压到 90ms;无 ASIO 设备时调小缓冲块时长(block_time)也能改善,代价是 CPU 占用上升。
写在最后
下一步建议对照仓库内的 CONTRIBUTING.md 熟悉项目结构,遇到环境问题时优先翻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),仅供参考