☰
RVC 模型融合怎么做:一次把两个音色模型的优点合到一起
2026/10/16 9:05:00 网站建设 项目流程

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)是一个用 10 分钟以内语音数据就能训出可用变声模型的 WebUI 工具。当你手里已经有两个甚至更多音色模型时,不用重新训练,就能在界面里做RVC 模型融合:把两个模型文件按一个比例加权平均,生成第三个新模型。整个过程点几下鼠标,产出一个可以直接推理的.pth文件。

融合原理:一行公式就能说清

这一节回答"融合到底改了什么"——只改权重参数,不改结构,也不动索引文件。

RVC 里一个模型文件本质就是一组神经网络权重(浮点张量)。融合做的事非常直接:对每一对同名参数做加权平均,

新权重 = A权重 × 模型A + (1 − A权重) × 模型B

具体实现在 infer/lib/train/process_ckpt.py 的merge函数里。理解它有三个关键事实:

  • 要求两个模型结构一致:参数名列表必须完全相同(比如都是 v1 的 40k 训练产物),否则直接返回The model architectures are not the same并停止。
  • 输出固定为模型文件:结果写入assets/weights/你起的名字.pth。索引文件(.index)不参与融合,推理时你需要自己挑一个索引配合使用。
  • 配置取自模型 A:新模型的config直接沿用 A,所以 A 应作为"主导模型"来选。

三步完成一次模型融合

这一节给出从零到拿到新文件的操作路径,界面入口是 infer-web.py 中的 "ckpt处理" 选项卡。

第 1 步:启动 WebUI 并进入融合面板

python infer-web.py

在浏览器打开本地地址(默认http://localhost:7860),点进顶部的ckpt处理标签页,第一个面板就是"模型融合"。

第 2 步:填写六个输入项

  • A模型路径 / B模型路径:分别填两个待融合模型的.pth文件路径,建议用assets/weights下提取好的小模型(60MB 左右那种),而不是logs里的完整训练文件;
  • A模型权重:0~1 的滑块,默认 0.5,含义见下一节;
  • 目标采样率:40k 或 48k,两个模型训练时的采样率要一致;
  • 模型是否带音高指导:一般选"是",除非你训练时就没用 F0;
  • 模型版本型号:v1 或 v2,与训练版本保持一致;
  • 保存的模型名(不带后缀)与要置入的模型信息:后者是纯文字备注,可留空。

第 3 步:点"融合"并验证

点主按钮"融合"后,下方"输出信息"显示Success.即成功。接着到模型推理标签页刷新音色,选中刚生成的模型,用同一段输入音频听一遍——这是验收标准:音色应是两者的中间态,且没有电音、破音等明显异常。

融合比例怎么调

这一节解决"滑块往哪边拉"的问题:A模型权重就是模型 A 在新模型里的占比,模型 B 占 1 减去该值。

一个省时间的调试路线:

  1. 从 0.5 起步,先听基准效果;
  2. 如果更想保留 A 的音色特征,把权重拉到0.6~0.7,每次动 0.1,听同一句测试音频做对比;
  3. 0.2/0.8 这类不对称比例适合"以 A 为主、只借 B 一点点东西"的场景,比如 A 咬字清楚但气息偏干,想让 B 补一点质感;
  4. 每换一次比例就改一个保存名(如mix_a06),别覆盖上一轮结果,方便回退。

小提醒:比例不是玄学,但也不是线性体验——0.4 和 0.6 听起来可能差别很大,因为两个模型的音色差异大小不同。以耳朵为准。

三个容易踩的坑

这一节集中回答融合时最常见的报错和疑惑。

问:提示 "Fail to merge the models. The model architectures are not the same."?两个模型结构对不上:一个是 v1 一个是 v2、或采样率配置不同、或一个来自 logs 的完整文件而另一个是提取后的小模型。让两边用同一版本、同一采样率,并都使用weights目录下的提取版文件再试。

问:两个模型训练用的说话人数量不同,会报错吗?大概率不会。代码对emb_g.weight(说话人嵌入表)做了特判:形状不一致时按较小的一边截断后再做加权。但它不是无损的,这种组合下的融合效果要格外多听几段再下结论。

问:融合完为什么推理时还要选索引?索引会融合吗?不会。merge只输出.pth模型文件,索引仍是独立的.index。常见做法是:新模型先分别搭配 A、B 各自的索引各听一次,哪套更贴就用哪套。

模型文件放错目录、logs大文件直接当小模型用等问题,可以查 docs/cn/faq.md 里的说明。

今天就能做的最小验证

挑出你目前最满意的两个模型,按上面三步各融合一份 0.5 和 0.6 比例的结果,用同一句测试音频在推理页对比三次输出(两个原模型 + 两份融合)。如果融合版明显不如原模型,先别调比例,回去检查两个模型的采样率和版本是否一致——绝大多数"融合翻车"都出在这一点上。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询