#3024 把GPT-SoVITS接入pyVedioTrans后,选择训练好的音色,然后点试听配音没反应,导致合成的视频没声音,试听Edge-TTS中的角色,声音都正常。这是为什么?

240e:341* Posted at: 16 days ago 👁71

把GPT-SoVITS接入pyVedioTrans后,选择训练好的音色,然后点试听配音没反应,导致合成的视频没声音,试听Edge-TTS中的角色,声音都正常。这是为什么?

7 Replies

这是因为 GPT-SoVITS 的 API 服务未正确响应或配置有误,导致 pyVideoTrans 无法从该渠道获取音频。

  1. 确认 GPT-SoVITS API 服务状态:确保 GPT-SoVITS 的 WebUI 或 API 服务正在运行,并且其 API 地址(通常是 http://127.0.0.1:9880)与你在 pyVideoTrans “TTS设置” -> “GPT-SoVITS” 中配置的地址完全一致。
  2. 检查音色引用名:在 pyVideoTrans 中选择 GPT-SoVITS 配音渠道时,需要在“角色”或“参考音频”处正确填写你在 GPT-SoVITS 中训练好的音色名称(引用名),而不是随意输入。
  3. 验证 API 连通性:在 pyVideoTrans 的 GPT-SoVITS 设置界面,尝试点击“测试”按钮。如果测试失败或没有反应,说明 API 连接有问题。请检查 GPT-SoVITS 的服务日志,确认其 API 端口是否正常监听。
  4. 排查常见配置问题

    • 如果 GPT-SoVITS 使用了 api_v2 接口,请确保在 pyVideoTrans 中配置的 API 地址末尾正确添加了 /v2 路径(例如 http://127.0.0.1:9880/v2)。
    • 检查 GPT-SoVITS 项目是否加载了你指定的音色模型文件(.pth 和 .ckpt)。
    • 确保 pyVideoTrans 中“参考音频”文本框留空(除非你需要使用特定参考音频进行克隆,而非使用已训练音色)。

由于 Edge-TTS 工作正常,问题基本可锁定在 GPT-SoVITS 服务端或 pyVideoTrans 与其的连接配置上。

请查阅相关文档:

如何检查 GPT-SoVITS 项目是否加载了你指定的音色模型文件

要检查 GPT-SoVITS 项目是否加载了指定的音色模型文件,请按以下步骤操作:

  1. 确认模型文件位置:确保你的音色模型文件(.pth.ckpt 文件)已放置在 GPT-SoVITS 项目正确的目录下。通常,这些文件应位于 GPT_SoVITS/pretrained_modelsGPT_SoVITS/weights 目录中(具体路径取决于你的 GPT-SoVITS 版本和配置)。
  2. 查看 WebUI 界面:启动 GPT-SoVITS 的 WebUI(通常通过运行 python webui.py 或类似命令)。在浏览器中打开其界面(通常是 http://127.0.0.1:9880http://127.0.0.1:9874)。

    • 在界面上寻找“模型选择”、“推理”或类似的标签页。
    • 检查对应的下拉菜单或文件列表中,是否出现了你训练好的音色模型文件(或你为其命名的“引用名”)。
  3. 检查启动日志:查看启动 GPT-SoVITS 服务时的终端/命令行窗口输出。在加载过程中,日志通常会显示正在加载的模型文件路径和名称。确认其中包含了你指定的 .pth.ckpt 文件。
  4. 通过 API 接口查询:如果 GPT-SoVITS 服务正在运行,你可以直接调用其 API 来查询可用模型。例如,在浏览器或使用 curl 命令访问 http://127.0.0.1:9880/voice/list(或你的 API 地址 + /voice/list)。如果接口返回一个包含你音色名称的列表,则说明加载成功。

核心排查点:确保你在 pyVideoTrans 的“角色”框中填写的名称,与 GPT-SoVITS 服务中实际加载的音色“引用名”完全一致(包括大小写和特殊字符)。

请查阅相关文档:

F:\ai\GPT-SoVITS-v2pro-20250604>.\runtime\python api_v2.py












-TTS Config










-
device : cuda
is_half : True
version : v2
t2s_weights_path : GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt
vits_weights_path : GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.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_SoVITS/pretrained_models/gsv-v2final-pretrained/s1bert25hz-5kh-longer-epoch=12-step=369668.ckpt
Loading VITS weights from GPT_SoVITS/pretrained_models/gsv-v2final-pretrained/s2G2333k.pth.
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 [14740]
INFO: Waiting for application startup.
INFO: Application startup complete.
INFO: Uvicorn running on http://127.0.0.1:9880 (Press CTRL+C to quit)

根据你提供的日志,GPT-SoVITS API 服务已成功启动,但加载的是预训练的基础模型gsv-v2final-pretrained),而不是你自己训练好的音色模型。这是导致试听和合成没有声音的根本原因。

你需要将服务指向你自己训练生成的模型文件。请按以下步骤操作:

  1. 定位你的模型文件:找到你训练 GPT-SoVITS 后生成的最终模型文件。通常包括两个文件:

    • 一个 .ckpt 文件(对应 t2s_weights_path,文本到语义模型)。
    • 一个 .pth 文件(对应 vits_weights_path,声学模型)。
      它们可能位于类似 GPT_SoVITS/logs/你的实验名 的目录下。
  2. 修改启动命令或配置文件

    • 方法一(修改启动命令):在启动 api_v2.py 时,通过命令行参数指定你的模型路径。例如:

      .\runtime\python api_v2.py --t2s_weights_path "F:\ai\GPT-SoVITS\logs\你的音色名\s1\xxx.ckpt" --vits_weights_path "F:\ai\GPT-SoVITS\logs\你的音色名\s2\xxx.pth"
    • 方法二(修改配置文件):检查 GPT-SoVITS 目录下是否有 config.yml 或类似配置文件,将其中的 t2s_weights_pathvits_weights_path 值修改为你自己模型文件的完整绝对路径
  3. 重启服务:修改后,关闭当前运行的 API 服务(在命令行窗口按 CTRL+C),然后使用新的命令或配置重新启动 api_v2.py
  4. 验证加载:重启后,观察启动日志。确认 Loading Text2Semantic weights fromLoading VITS weights from 后面显示的路径是你自定义模型的路径,而不是 gsv-v2final-pretrained
  5. 在 pyVideoTrans 中测试:服务重启后,在 pyVideoTrans 的 GPT-SoVITS 设置界面,点击“测试”按钮。如果测试成功,即可正常使用。

核心要点:你必须让 GPT-SoVITS 的 API 服务加载你自己训练的音色模型,而不是默认的预训练模型。预训练模型不包含任何特定人的音色特征。

请查阅相关文档:

F:\ai\GPT-SoVITS-v2pro-20250604>.\runtime\python api_v2.py --t2s_weights_path "F:\ai\GPT-SoVITS-v2pro-20250604\logs\Mandy\logs_s1_v2Pro\ckpt\epoch=14-step=360.ckpt" --vits_weights_path "F:\ai\GPT-SoVITS-v2pro-20250604\logs\Mandy\logs_s2_v2Pro\G_233333333333.pth"
usage: api_v2.py [-h] [-c TTS_CONFIG] [-a BIND_ADDR] [-p PORT]
api_v2.py: error: unrecognized arguments: --t2s_weights_path F:\ai\GPT-SoVITS-v2pro-20250604\logs\Mandy\logs_s1_v2Pro\ckpt\epoch=14-step=360.ckpt --vits_weights_path F:\ai\GPT-SoVITS-v2pro-20250604\logs\Mandy\logs_s2_v2Pro\G_233333333333.pth

这是因为你使用的 GPT-SoVITS API 脚本版本不支持通过命令行直接传递 --t2s_weights_path--vits_weights_path 参数。你需要通过修改配置文件来指定模型路径。请按以下步骤操作:找到配置文件:在 GPT-SoVITS 项目根目录下,寻找名为 config.ymlconfig.yamltts_config.yaml 的文件。如果找不到,可以尝试在 api_v2.py 同目录下寻找,或者查看 api_v2.py 脚本开头的代码,看它默认加载哪个配置文件。编辑配置文件:用文本编辑器打开找到的配置文件。在配置文件中,找到并修改以下两个关键配置项(注意路径分隔符使用正斜杠 / 或双反斜杠 \\ 以避免转义问题):t2s_weights_path: 将其值改为你的 .ckpt 文件路径,例如:F:/ai/GPT-SoVITS-v2pro-20250604/logs/Mandy/logs_s1_v2Pro/ckpt/epoch=14-step=360.ckptvits_weights_path: 将其值改为你的 .pth 文件路径,例如:F:/ai/GPT-SoVITS-v2pro-20250604/logs/Mandy/logs_s2_v2Pro/G_233333333333.pth。同时,确保配置文件中的 bert_base_pathcnhuhbert_base_path 指向正确的预训练模型目录(通常保持默认即可)。保存并重启服务:保存修改后的配置文件。关闭当前运行的 API 服务(在命令行窗口按 CTRL+C)。重新启动服务,这次无需添加额外参数,直接运行:.\runtime\python api_v2.py。验证加载:观察启动日志,确认 Loading Text2Semantic weights fromLoading VITS weights from 后面显示的路径已更新为你自定义模型的路径。如果配置文件不存在或不确定:你可以尝试在启动命令中指定配置文件路径(如果支持),例如:.\runtime\python api_v2.py -c path/to/your_config.yml。请查阅相关文档:GPT-SoVITS API 使用方法

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