#3038 怎么修改 pyVideoTrans 中 GPT-SoVITS 模块的源码,将其请求方式从 GET 改为 POST

240e:341* Posted at: 15 days ago 👁50

怎么
修改 pyVideoTrans 中 GPT-SoVITS 模块的源码,将其请求方式从 GET 改为 POST

3 Replies

根据核心知识库,pyVideoTrans 中 GPT-SoVITS 模块的请求方式默认应为 POST,无需修改。如果遇到连接问题,通常是 API 服务地址或配置错误。

解决方案

  1. 确认 GPT-SoVITS API 服务状态:确保 GPT-SoVITS 项目已正确部署并启动了 API 服务(通常是 http://127.0.0.1:9874http://127.0.0.1:9872)。请使用其官方 webui 或 curl 命令测试接口是否可用。
  2. 检查 pyVideoTrans 配置

    • 在软件中,进入“菜单” -> “TTS设置” -> “GPT-SoVITS”。
    • 确认“API地址”填写正确(例如 http://127.0.0.1:9874)。
    • 确认“参考音频”路径有效(用于声音克隆)。
    • 点击“测试”按钮,检查连接是否成功。
  3. 排查常见错误

    • APIError_11 is not defined400 Client error:这通常是因为使用了 GPT-SoVITS 的 api_v2 接口但配置有误。请确保在 GPT-SoVITS 项目中启用了正确的 API 版本,并在 pyVideoTrans 中填写了对应的 API 地址。
    • 连接失败:检查防火墙设置,确保端口未被阻止。

如果问题依旧存在,请提供软件 logs/ 目录下最新日志文件中的相关报错信息(约30行),以便进一步分析。

请查阅相关文档:

测试没有声音,I终端显示NFO: 127.0.0.1:7143 - "GET /tts?text=%E4%BD%A0%E5%A5%BD%E5%95%8A%E6%88%91%E7%9A%84%E6%9C%8B%E5%8F%8B&text_lang=zh&ref_audio_path=mabaoguo.wav&prompt_text=+&prompt_lang=zh&speed_factor=1.0&text_split_method=cut0 HTTP/1.1" 200 OK

根据终端日志显示,pyVideoTrans 向 GPT-SoVITS 服务发送的是 GET 请求,这不符合 GPT-SoVITS API 的标准调用方式(通常为 POST),导致服务虽然返回了 200 状态码,但可能未正确处理请求,因此没有生成声音。

解决方案:

  1. 确认 GPT-SoVITS API 版本:首先,请确认你部署的 GPT-SoVITS 项目版本及其 API 接口规范。最新的 GPT-SoVITS 通常要求使用 POST 请求。
  2. 检查 pyVideoTrans 配置:在 pyVideoTrans 软件中,进入“菜单” -> “TTS设置” -> “GPT-SoVITS”。检查“API地址”是否正确。标准的 API 地址通常是 http://127.0.0.1:9874http://127.0.0.1:9872
  3. 修改 pyVideoTrans 源码(如需):如果确认 GPT-SoVITS 服务端仅接受 POST 请求,而 pyVideoTrans 当前版本发送的是 GET,则需要修改源码。修改位置通常在 videotrans/tts/gptsovits.py 文件中。找到发送请求的函数(可能是 get_tts_wav 或类似名称),将其中使用 requests.get 或类似发起 GET 请求的代码,改为使用 requests.post,并确保请求参数(如 texttext_langref_audio_path 等)以正确的形式(如 jsondata)传递。

    • 示例修改思路

      # 修改前(可能是这样):
      response = requests.get(url, params=payload, timeout=timeout)
      # 修改后:
      response = requests.post(url, json=payload, timeout=timeout)
    • 重要:修改前请备份原文件。修改后需要重启 pyVideoTrans 软件。
  4. 测试连接:修改并重启后,在 GPT-SoVITS 设置页面点击“测试”按钮,观察终端日志是否变为 POST /tts 请求,并检查是否能正常听到测试语音。

如果无法自行修改源码或修改后问题依旧,请提供 logs/ 目录下最新的日志文件内容(包含修改后的测试报错),以便进一步分析。

请查阅相关文档:

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