
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-WebUIRetrieval-based-Voice-Conversion-WebUI下称 RVC是一个开源的语音音色转换/变声框架用 10 分钟左右的低底噪音频就能训练出可用的音色克隆模型自带 WebUI 训练与推理界面和实时变声程序。它的底模基于约 50 小时的开源 VCTK 语料训练没有版权顾虑。下面按环境 → 跑通流程 → 排坑 → 原理 → 调优的顺序讲一遍每节都能独立查阅。1. 安装环节最容易出问题的三处克隆仓库并按硬件装依赖git clone https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebUI cd Retrieval-based-Voice-Conversion-WebUI当前分支面向Python 3.12 x64Ubuntu 推荐 24.04。旧教程里的 3.8–3.10 说法已不适用按老文章直接装依赖大概率出错。装完 Python 3.12 后建虚拟环境再按硬件选对应依赖文件硬件依赖文件CPU / AMD / Intelrequirments_cpu_py312.txtWindows 可走 DirectMLNVIDIA RTX 50 系先装 CUDA 12.8 版 Torch再装requirments_cu128_py312.txtRTX 50 系以前先装 CUDA 11.8 版 Torch再装requirments_cu118_py312.txt文件顶部已内置下载源大陆网络一般不用改换官方源只动--index-url两行包版本和两阶段顺序保持不变。装完可用一行命令验证 CUDA 状态python -c import torch; print(torch.__version__, torch.cuda.is_available())预训练模型文件要放对位置RVC 不会自动拉取全部模型需要把官方模型仓库里的文件放到约定的目录assets/hubert_base/特征提取用、assets/rmvpe/rmvpe.pt音高提取、assets/pretrained/与assets/pretrained_v2/v1/v2 训练底模、assets/uvr5_weights/仅用 UVR5 人声分离时需要。目录结构在 README.md 里有完整列表照抄即可。用户自己的模型和索引分别放assets/weights/和assets/indices/。FFmpeg 不能缺音频读写都走 FFmpeg。Ubuntu 装系统依赖时一并装了Windows 可把 ffmpeg.exe、ffprobe.exe 放到项目根目录。验证方式就一条ffmpeg -version。2. 把训练 → 推理完整跑通一遍启动 WebUIWindows 双击 go-webui.bat命令行环境直接python webui.py服务默认监听 7865 端口端口冲突时可在 configs/config.py 里调整。实时变声界面由 realtime_gui.py 单独启动对应 go-realtime_gui.bat。界面主要分四个功能区数据/训练切分、提音高、提特征、训模型、训索引、推理选音色和索引做转换、ckpt 处理小模型提取、模型融合、系统设置。一键训练背后发生了什么点一键训练后流程是按静音切分音频静音保留上限约 5 秒再以 4 秒、0.3 秒重叠的方式分段→ 提取 f0 音高 → 用 HuBERT 抽 256 维特征存入logs/实验名/3_feature256→ 从预训练底模继续训练 G/D 两个模型 → 用 faiss 对全部训练特征建 IVF 索引。每个实验的所有中间产物都在logs/实验名/下想复现或续训都靠它。成品模型在哪60MB 的 .pth这是新手最容易混的地方。logs/实验名/下几百 MB 的 G/D 文件是训练状态用来续训和复现不是拿来分享的。能推理、能分享的模型是assets/weights/下 60MB 以上的 .pth。如果你手上只有 logs 下的中间 ckpt用 ckpt 选项卡里的ckpt 小模型提取输入 G 开头那个手动或自动选择是否携带音高、目标采样率提取一次即可。分享时建议把 weights 里的 .pth 和对应的 .index 打包成 zip省去对方填索引的步骤。3. 排坑清单出错了先查这几处症状原因与处理Cuda out of memory训练时调小 batch size调到 1 还爆只能换卡推理时缩小 configs/config.py 末尾的 x_pad、x_query、x_center、x_max训练结束找不到模型见上一节去assets/weights/找 60MB 的 .pth或用 ckpt 提取一键训练完没有 .index 文件训练集太大时加索引步骤可能卡住重新点一次训练索引ffmpeg error / utf8 error大概率是路径问题带空格、括号或中文的路径Connection Error黑控制台窗口被关掉了Expecting value: line 1 column 1关掉系统代理含服务端的 http_proxy/https_proxy报 tensor size must match16k_wavs里有异常小的音频文件删掉重训中途换采样率则必须换新实验名从头来Windows 报 llvmlite.dll 缺失安装 VC 运行库后重启 WebUI显存不够时的具体降法当前 configs/config.py 会按设备自动定档——显存 ≤4G 用一组更小的查询参数x_pad1、x_query5、x_center30、x_max32Pascal 和 GTX 16 系强制 fp32新卡才用 fp16。自动档位仍爆显存再手动往下调。按官方 FAQ 的说法4G 显存以下基本可以放弃训练4G 还有救。推理选卡则是改 config.py 里device cuda:后面的卡号卡号映射在训练选项卡里能看到。其他几个高频操作中断续训靠关闭控制台重启、用相同参数点训练模型接着上次 checkpoint 走中途加数据就新建实验名、把上次的最新 G/D 拷过去再一键训练预处理阶段文件句柄/内存 error就调低提取音高和处理数据使用的 CPU 进程数并手动把训练集音频切短。更多条目见 docs/cn/faq.md。4. 为什么 10 分钟音频就能克隆检索机制与 index_rateRVC 的核心手段是检索。训练时把每段语音的 HuBERT 特征存下来并用 faiss 建 IVF 近似最近邻索引推理时对输入语音的特征从索引里搜出训练集中最接近的向量top1 检索用它替换输入源特征再做转换。这一步的意义在于杜绝音色泄漏——否则底模或推理源自己的音色会混进结果克隆出来的声音不纯。index_rate0–1控制检索混合的力度调到 1 理论上没有音色泄漏但音质完全以训练集为准——训练集音质低于推理源时调高反而降音质调到 0 则失去检索保护。训练集优质、时长足够时模型本身就不会引用源音色index_rate 变得不重要索引文件甚至可以不分发。索引的数学细节IVF、距离度量、选参建议写在 docs/en/faiss_tips_en.md。5. 音高提取算法怎么选推理管线里可选的 f0 提取器是 RMVPE、PM、FCPE 三种见 infer/vc/pipeline.py训练侧的音高提取在 train/dataset/extract_f0.py。算法特点适用场景RMVPEInterspeech 2023 方案速度快、占用小、根绝哑音默认推荐绝大多数场景PM (parselmouth)轻量、快低配设备、追求速度FCPE可选补充方案特定实验需求老版本里的 Harvest、Dio 在当前代码中已不作为选项。日常使用直接默认 RMVPE 即可不必折腾。6. 数据与训练参数多少够用数据标准时长推荐 10–50 分钟。音质高、音色有个人特色时 5–10 分钟也能训出结果1–2 分钟的成功案例不可复现不建议赌。环境低底噪优先。底噪大时模型音质会被训练集拉低多少 epoch 都补不回来。采样率建议统一到 48kconfigs 下 v1/v2 均有 48k 配置见 configs/v2/。预处理时脚本会自动做降噪平滑和标准化静音段按阈值切掉但源头干净仍然省得最多。参数怎么定total_epoch底噪大、音质差的数据 20–30 轮足够调高也带不动音质好、时长多的数据可以放到 200 轮。batch_size越大训练越稳但吃显存按nvidia-smi观察尽量调大显存紧张就降到 1–2。是否携带音高训练时勾选与否决定模型能不能用于唱歌。不带音高的模型更轻但不适合演唱场景别训完才发现用错。精度不用手动管config.py 的 GPU 规则会自动在 fp16/fp32 间选择。硬件方面不用追求顶配4G 显存的卡可以训小模型6G 以上训练推理都从容12G/24G 才谈得上大批量实验。CPU 可跑但训练会慢很多适合验证流程而非正式训练。7. 模型融合与实时变声ckpt 融合在 ckpt 处理选项卡用 ckpt-merge 把两个或多个音色模型按比例混合可以调特定音域的倾向或造出谁都不像的新音色。AI 歌手、游戏角色定制常用这个。实时变声官方已做到端到端约 170ms 延迟配合 ASIO 输入输出设备可压到约 90ms但高度依赖声卡驱动。直播、游戏语音、语音聊天都可行。想进一步压延迟的方向是换更小的切分窗口和更快的 f0 算法以及用 ASIO 而非 WASAPI 共享模式。人声伴奏分离直接调用内置的 UVR5tools/uvr5/含 BS-Roformer 等模型拿到干声再去训练或推理比直接喂带伴奏的歌省事。8. 读源码四个入口就够infer/推理核心。infer/module/models.py 是 v1/v2 模型定义infer/vc/pipeline.py 是推理管线f0 提取、索引检索、音量包络对齐都在这里infer/rmvpe.py 是 RMVPE 音高模型。train/训练侧。train/train.py 主训练循环train/dataset/slicer2.py 是音频切分train/train_index.py 建 faiss 索引。configs/设备与显存规则、v1/v2 模型超参32k/40k/48k 各一份 json。webui.pyGradio 界面入口各功能区的 UI 逻辑都在这一层算法本身不掺在里面。界面文案支持 13 种语言在 i18n/locale/ 下改本地化直接动 json。9. 接下来去哪多语言文档在 docs/中文 FAQ docs/cn/faq.md、训练指南 docs/en/training_tips_en.md、faiss 调参 docs/en/faiss_tips_en.md日、韩、法、葡、土耳其语版本齐全。学习路径可以分三步自查会用独立跑通数据 → 一键训练 → 训索引 → 推理出一条满意音频知道 60MB 的 .pth 和 logs 里 ckpt 的区别。用好能按数据质量定 epoch、按显存调 batch 与查询参数、用 index_rate 处理音色泄漏会用 ckpt-merge 融合音色。用透读得懂 pipeline 的检索与对齐逻辑能改 f0 算法或切分策略把实时链路压到更低的延迟。关于后续项目方预告的 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),仅供参考