#3081 把GPT-SoVITS接入pyVedioTrans后加载模型,两个不同音色趋于相同怎么回事。终端加载信息如下:F:\ai\GPT-SoVITS-v2pro-20250604>.\runtime\python api_v2.py-TTS

240e:341* Posted at: 16 hours ago 👁14

把GPT-SoVITS接入pyVedioTrans后加载模型,两个不同音色趋于相同怎么回事。终端加载信息如下:F:\ai\GPT-SoVITS-v2pro-20250604>.\runtime\python api_v2.py












-TTS Config










-
device : cuda
is_half : False
version : v2Pro
t2s_weights_path : GPT_weights_v2Pro/马保国-e15.ckpt
vits_weights_path : SoVITS_weights_v2Pro/马保国_e8_s800.pth
bert_base_path : GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large

cnhuhbert_base_path : GPT_SoVITS/pretrained_models/chinese-hubert-base

Loading Text2Semantic weights from GPT_weights_v2Pro/马保国-e15.ckpt
Loading VITS weights from SoVITS_weights_v2Pro/马保国_e8_s800.pth. _IncompatibleKeys(missing_keys=['enc_q.pre.weight', 'enc_q.pre.bias', 'enc_q.enc.in_layers.0.bias', 'enc_q.enc.in_layers.0.weight_g', 'enc_q.enc.in_layers.0.weight_v', 'enc_q.enc.in_layers.1.bias', 'enc_q.enc.in_layers.1.weight_g', 'enc_q.enc.in_layers.1.weight_v', 'enc_q.enc.in_layers.2.bias', 'enc_q.enc.in_layers.2.weight_g', 'enc_q.enc.in_layers.2.weight_v', 'enc_q.enc.in_layers.3.bias', 'enc_q.enc.in_layers.3.weight_g', 'enc_q.enc.in_layers.3.weight_v', 'enc_q.enc.in_layers.4.bias', 'enc_q.enc.in_layers.4.weight_g', 'enc_q.enc.in_layers.4.weight_v', 'enc_q.enc.in_layers.5.bias', 'enc_q.enc.in_layers.5.weight_g', 'enc_q.enc.in_layers.5.weight_v', 'enc_q.enc.in_layers.6.bias', 'enc_q.enc.in_layers.6.weight_g', 'enc_q.enc.in_layers.6.weight_v', 'enc_q.enc.in_layers.7.bias', 'enc_q.enc.in_layers.7.weight_g', 'enc_q.enc.in_layers.7.weight_v', 'enc_q.enc.in_layers.8.bias', 'enc_q.enc.in_layers.8.weight_g', 'enc_q.enc.in_layers.8.weight_v', 'enc_q.enc.in_layers.9.bias', 'enc_q.enc.in_layers.9.weight_g', 'enc_q.enc.in_layers.9.weight_v', 'enc_q.enc.in_layers.10.bias', 'enc_q.enc.in_layers.10.weight_g', 'enc_q.enc.in_layers.10.weight_v', 'enc_q.enc.in_layers.11.bias', 'enc_q.enc.in_layers.11.weight_g', 'enc_q.enc.in_layers.11.weight_v', 'enc_q.enc.in_layers.12.bias', 'enc_q.enc.in_layers.12.weight_g', 'enc_q.enc.in_layers.12.weight_v', 'enc_q.enc.in_layers.13.bias', 'enc_q.enc.in_layers.13.weight_g', 'enc_q.enc.in_layers.13.weight_v', 'enc_q.enc.in_layers.14.bias', 'enc_q.enc.in_layers.14.weight_g', 'enc_q.enc.in_layers.14.weight_v', 'enc_q.enc.in_layers.15.bias', 'enc_q.enc.in_layers.15.weight_g', 'enc_q.enc.in_layers.15.weight_v', 'enc_q.enc.res_skip_layers.0.bias', 'enc_q.enc.res_skip_layers.0.weight_g', 'enc_q.enc.res_skip_layers.0.weight_v', 'enc_q.enc.res_skip_layers.1.bias', 'enc_q.enc.res_skip_layers.1.weight_g', 'enc_q.enc.res_skip_layers.1.weight_v', 'enc_q.enc.res_skip_layers.2.bias', 'enc_q.enc.res_skip_layers.2.weight_g', 'enc_q.enc.res_skip_layers.2.weight_v', 'enc_q.enc.res_skip_layers.3.bias', 'enc_q.enc.res_skip_layers.3.weight_g', 'enc_q.enc.res_skip_layers.3.weight_v', 'enc_q.enc.res_skip_layers.4.bias', 'enc_q.enc.res_skip_layers.4.weight_g', 'enc_q.enc.res_skip_layers.4.weight_v', 'enc_q.enc.res_skip_layers.5.bias', 'enc_q.enc.res_skip_layers.5.weight_g', 'enc_q.enc.res_skip_layers.5.weight_v', 'enc_q.enc.res_skip_layers.6.bias', 'enc_q.enc.res_skip_layers.6.weight_g', 'enc_q.enc.res_skip_layers.6.weight_v', 'enc_q.enc.res_skip_layers.7.bias', 'enc_q.enc.res_skip_layers.7.weight_g', 'enc_q.enc.res_skip_layers.7.weight_v', 'enc_q.enc.res_skip_layers.8.bias', 'enc_q.enc.res_skip_layers.8.weight_g', 'enc_q.enc.res_skip_layers.8.weight_v', 'enc_q.enc.res_skip_layers.9.bias', 'enc_q.enc.res_skip_layers.9.weight_g', 'enc_q.enc.res_skip_layers.9.weight_v', 'enc_q.enc.res_skip_layers.10.bias', 'enc_q.enc.res_skip_layers.10.weight_g', 'enc_q.enc.res_skip_layers.10.weight_v', 'enc_q.enc.res_skip_layers.11.bias', 'enc_q.enc.res_skip_layers.11.weight_g', 'enc_q.enc.res_skip_layers.11.weight_v', 'enc_q.enc.res_skip_layers.12.bias', 'enc_q.enc.res_skip_layers.12.weight_g', 'enc_q.enc.res_skip_layers.12.weight_v', 'enc_q.enc.res_skip_layers.13.bias', 'enc_q.enc.res_skip_layers.13.weight_g', 'enc_q.enc.res_skip_layers.13.weight_v', 'enc_q.enc.res_skip_layers.14.bias', 'enc_q.enc.res_skip_layers.14.weight_g', 'enc_q.enc.res_skip_layers.14.weight_v', 'enc_q.enc.res_skip_layers.15.bias', 'enc_q.enc.res_skip_layers.15.weight_g', 'enc_q.enc.res_skip_layers.15.weight_v', 'enc_q.enc.cond_layer.bias', 'enc_q.enc.cond_layer.weight_g', 'enc_q.enc.cond_layer.weight_v', 'enc_q.proj.weight', 'enc_q.proj.bias'], unexpected_keys=[])
Loading BERT weights from GPT_SoVITS/pretrained_models/chinese-roberta-wwm-ext-large
Loading CNHuBERT weights from GPT_SoVITS/pretrained_models/chinese-hubert-base
INFO: Started server process [15788]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:9880 (Press CTRL+C to quit)

1 Replies

这是由于 GPT-SoVITS 模型加载时出现了权重不匹配(IncompatibleKeys),导致模型可能无法正确区分不同音色。

根据终端日志,模型加载时报告了大量 missing_keys,这表明你加载的 SoVITS 模型权重文件(马保国_e8_s800.pth)与当前运行的 GPT-SoVITS API 版本(v2Pro)的模型结构不完全兼容。这会导致模型性能异常,可能表现为所有音色输出趋同。

解决方案:

  1. 确认模型版本匹配:确保你下载的 GPT-SoVITS 模型权重(GPT 和 SoVITS 的 .ckpt.pth 文件)与你的 GPT-SoVITS 项目版本(此处为 v2Pro)完全匹配。不同版本间的模型权重通常不通用。
  2. 重新训练或获取正确模型

    • 如果你是自己训练的模型,请使用与当前 api_v2.py 代码版本配套的训练代码重新训练。
    • 如果是下载的预训练模型,请确认该模型明确标注支持 v2Pro 版本。否则,需要寻找匹配的模型或回退到模型所支持的 GPT-SoVITS 版本。
  3. 检查参考音频:在 pyVideoTrans 中,即使使用 GPT-SoVITS,为不同角色指定不同音色的核心方法也是通过提供不同的参考音频。请确认你在软件中为两个角色分别设置了不同的、具有鲜明音色特征的参考音频文件(3-10秒纯净人声)。
  4. 在 pyVideoTrans 中正确配置

    • 在“配音渠道”中选择“GPT-SoVITS”。
    • API地址填写 http://127.0.0.1:9880
    • 在“多角色配音”设置中,为每个说话人角色指定一个唯一的“参考音频”文件路径。

请查阅相关文档:

Post Your Reply
Open source and free maintenance is not easy. If this project is helpful to you, please consider making a small donation to help the project continue to maintain and update.

Related resource