#2858 自定义 TTS api问题 求解答!谢谢

216.227* Posted at: 2 days ago 👁27

部署好api后,在自定义TTS那里测试音频没有声音,返回主页面试听声音显示未返回有效音频地址,如下:

未返回有效音频地址:
Traceback (most recent call last):
File "videotrans\util\ListenVoice.py", line 18, in run
File "videotrans\tts\__init__.py", line 299, in run
File "videotrans\tts\_base.py", line 179, in run
File "tenacity\__init__.py", line 480, in call
File "videotrans\tts\_ttsapi.py", line 72, in _run
RuntimeError: 未返回有效音频地址

1 Replies

自定义 TTS API 测试无声音且报错“未返回有效音频地址”,通常是因为您的 API 接口返回的数据格式不符合软件要求。

核心原因:软件期望您的自定义 TTS API 接口返回一个 可直接访问的音频文件 URL,或者一个包含 url 字段的 JSON 对象。

请按以下步骤检查和修改您的 API 服务:

  1. 检查 API 响应格式

    • 您的 API 在接收到 POST 请求并完成语音合成后,必须返回一个 纯文本的音频文件 URL(例如 http://your-server.com/audio/abc.mp3)。
    • 或者,返回一个 JSON 对象,其中必须包含一个名为 url 的字段,其值为音频文件 URL。例如:{"url": "http://your-server.com/audio/abc.mp3"}
    • 软件不会处理 base64 编码的音频数据或文件流,它只认一个可下载的 URL。
  2. 确保 URL 可公开访问

    • 返回的音频 URL 必须能够被运行 pyVideoTrans 的电脑直接通过 HTTP/HTTPS 下载。如果您的服务在本地网络,请确保 IP 和端口正确,且防火墙未阻止。
  3. 在软件中正确配置

    • pyVideoTrans 主界面,进入 配音设置 -> 选择 自定义TTS-API
    • 点击右侧的 设置 按钮。
    • 在弹出窗口中,准确填写您的 API 地址(例如 http://127.0.0.1:5000/tts)。
    • 请求数据 格式通常需要包含文本和语言参数,例如:

      {"text": "{text}", "language": "{language}"}

      具体格式请参照您的 API 文档。{text}{language} 是软件会自动替换的变量。

  4. 测试与调试

    • 使用 Postman 或 curl 等工具直接测试您的 API,确认其返回格式是否符合上述要求。
    • 查看 pyVideoTrans 日志文件(位于软件目录下的 logs 文件夹),里面可能有更详细的错误信息。

如果以上步骤无法解决,请提供您的 API 接口代码片段和它返回的完整响应内容(Header 和 Body),以便进一步分析。

请查看更多参考文档:

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