公司动态
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-WebUIRVC 是基于 VITS 的开源语音转换变声项目至少 10 分钟低噪语音即可训出可用音色模型实时变声端到端延迟 170msASIO 可低至 90ms支持 CUDA/DirectML/ROCm/IPEX 后端与 32k/48k 采样率。它做什么把你说的、唱的换成目标音色。需要什么10 分钟以上低噪人声、一张显存不算富裕的显卡、几个预训练权重文件。你能得到什么网页端批量转换、模型融合、UVR5 人声分离以及一个可接入直播链路的实时变声程序。为什么需要它数据量、显卡和音色泄漏传统端到端语音合成路线有三个具体麻烦数据量。想要像样的效果往往要小时级录音RVC 官方口径是推荐至少 10 分钟低底噪语音数据。训练成本。大模型对显存不友好RVC 用 VITS 底模用约 50 小时的 VCTK 训练README 里明确写在相对较差的显卡上也能快速训练。音色泄漏。源说话人的音色混进输出是变声最常见的翻车点。RVC 的解法不是加大模型而是推理时把源特征替换成目标训练集的特征见下文步骤 2。原理一条音频从输入到输出的四次加工数据流在 infer/modules/vc/pipeline.py 里一次转换走完四步。1. 切片与重采样。输入音频先切成 3~10s 短段统一重采样到 16kHz——这是 HuBERT 与音高提取的输入采样率代码里写死为self.sr 16000。2. 提取内容特征与音高。HuBERT 取每帧 768 维内容特征v2 取第 12 层输出音高用 RMVPE默认f0method备选 pm/harvest/crepe/fcpe。内容与音高分开建模是 VITS 路线的基本盘。3. faiss 检索替换特征。这是项目名Retrieval-based的出处训练时为每个音色建.index特征库推理时对每帧特征index.search(npy, k8)取 8 个最近邻按距离倒数平方加权合成再与原特征融合feats torch.from_numpy(npy) * index_rate (1 - index_rate) * featsindex_rate0即纯源特征1即完全用训练集特征替换。这一步直接决定音色像谁。4. VITS 合成与后处理。特征 f0 说话人 sid 进net_g.infer出波形再按rms_mix_rate与原音频混合响度包络重采样回目标采样率32k/48k输出。从零跑起来环境、训练、推理 环境。Python 3.8装 PyTorchRTX30xx 建议 cu117 版本然后按显卡装依赖N 卡pip install -r requirements.txtA/I 卡requirements-dml.txt。再备齐 assets/ 目录hubert、pretrained、uvr5_weightsv2 模型另需 pretrained_v2、根目录的rmvpe.pt和 ffmpeg。 启动 WebUI。python infer-web.py浏览器出现 Gradio 界面、端口 7865 即为成功。 训练。按切片、提取特征、训练、训练索引四步走音频放logs/模型名/。成功标志日志/目录下出现模型名.pth与模型名.index。训练超参在 configs/v2/48k.jsonlearning_rate 1e-4、batch_size 4、fp16_run true显存不够就降 batch_size别动学习率试错。 推理。推理选项卡选.pth.index上传音频调f0_up_key与index_rate输出 wav 落在 logs/。实时变声另跑实时 GUIgo-realtime-gui.bat选 ASIO 或 WASAPI 设备首次转换日志会输出各阶段耗时times[0]/times[2]对照 block_time 即可判断能否跟上实时。参数怎么调一张表和五个故障解法参数默认值推荐范围调它解决什么index_rate0.00.3~0.7音色像目标还是像自己调高像目标、调低保真f0methodrmvpermvpe/pm音高提取质量pm 更省资源rms_mix_rate0.50.3~0.7响度调高更贴原音量pitch/f0_up_key12/00~12 半音实时/离线升降调protect0.330~0.5气声、辅音等无声段防乱跳batch_size4按显存显存不足时降损失不下降。先查数据低噪、单人、10 分钟起再查 batch_size 是否大到梯度不稳fp16_run保持开启。显存不足。降batch_size最小到 1确认fp16_run: true仍不够换 32k 配置模型更小。音色泄漏。调高index_rate不解决就检查训练数据是否混入他人声音、.index是否由同一批数据构建。哑音、漏音高。f0method换 rmvpeprotect从 0.33 往上调filter_radius加大做中值平滑。实时卡顿。block_time从 0.15s 起调小用 ASIOuse_jit对长音频有效实时链路收益有限。场景怎么选直播、翻唱、无独显虚拟主播 / 实时聊天。适合实时 GUI ASIO90~170ms 延迟可接受。注意优先测麦克风到声卡的真实延迟而非只盯 block_time。AI 翻唱 / 歌曲转换。适合先用内置 UVR5 分离人声批量转换后再拼回伴奏。注意歌曲建议调pitch与protectindex_rate别拉满否则咬字发闷。无 N 卡 / 老旧机器。适合requirements-dml.txtDirectML或requirements-ipex.txtIntel IPEXLinux。注意推理速度低于 CUDA批量大文件建议分片跑。行动清单备 10 分钟以上单人低噪干声按模型名放入logs/模型名/装好对应显卡的依赖python infer-web.py起 WebUI 确认 7865 端口训出.pth.index后用 3 条不同风格的测试音频扫index_rate0.3 / 0.5 / 0.7实时场景接 ASIO用日志times统计校准block_time有 A/I 卡需求时用 dml 或 ipex 依赖各跑一遍基准记录耗时官方已预告 RVCv3 底模参数更大、训练数据量更少——现在训好的数据流水线届时可以直接复用。【免费下载链接】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),仅供参考