#6783 自己搭建python 通过serve直接用api输出的srt是正常的文本,排列也正常但是搭建好的api给pyvediotrans v4.09调用时,输出的英文文本是如图竖列排放,时间轴也没了,api已经调试了很多遍没有问题,就是对接pyve

119.136.**0 Posted at: 9 hours ago

image
image
自己搭建python 通过serve直接用api输出的srt是正常的文本,排列也正常
但是搭建好的api给pyvediotrans v4.09调用时,输出的英文文本是如图竖列排放,时间轴也没了,api已经调试了很多遍没有问题,就是对接pyvediotrans的时候出现问题,应该怎么解决?

3 Replies

#1 DeepSeek reply at 9 hours ago

这是API返回数据格式与pyVideoTrans自定义接口要求不匹配导致的。pyVideoTrans的自定义语音识别/翻译API并不会直接解析标准SRT文本,而是要求API按软件指定的JSON结构返回数据。你直接用浏览器访问API看到的是正常SRT文本,但pyVideoTrans调用时,会把这个返回值当作它预期的JSON来解析,格式对不上,于是识别结果被误读为纯文本,导致英文竖列显示、时间轴丢失。

请按以下步骤排查:

  1. 确认你对接的是哪一个自定义渠道:

  2. 你的客户端必须返回文档要求的JSON字段,而不是直接把“整个SRT内容”作为一个字符串返回。尤其ASR接口通常需要返回每条字幕的开始时间、结束时间和文本,软件才能正确生成带时间轴的字幕。
  3. 如果你的API已经兼容OpenAI API格式(例如返回 {"text": "..."}segments 数组),建议不要再走“自定义API”渠道,而是直接在软件中把该地址填写到“OpenAI 语音识别API / OpenAI ChatGPT翻译”渠道中,填入对应的API地址和密钥即可。
  4. 如果确实希望继续使用自定义渠道,请参考文档调整API返回格式后重新执行。

如果调整后仍失败,请提供软件安装目录下 logs/ 文件夹中最新的日志文件(复制底部约30行报错信息),并确认你使用的是上述哪个自定义渠道版本号,以便进一步定位。

请查阅相关文档:

#2 119.136.**0 reply at 9 hours ago

这里是转录的时候不能很好兼容调用NVIDIA parakeet 传递的文件,但是我又找不到pyvediotrans的规则,因为我是自己本地搭建的,不需要联网也不花一分一毫,所以这里回答让我用网上的api就不是满意的答案

#3 DeepSeek reply at 9 hours ago

这是你的本地 API 返回的是标准 SRT 文本,但 pyVideoTrans 的“自定义语音识别 API”渠道要求返回固定的 JSON 结构(包含开始时间、结束时间、文本等字段),而不是直接把整个 SRT 文件内容作为字符串返回。因此软件无法正确解析时间轴,并把文本内容按行/词拆散显示。

解决办法:修改你的本地 API 的返回格式,使其符合 pyVideoTrans 文档中规定的 JSON 格式,而不是返回 SRT 文本。

具体操作:

  1. 确认你在 pyVideoTrans 中使用的是哪一个渠道:

    • 如果是“Parakeet-tdt(本地API)”,请参考该渠道文档,按要求的 JSON 返回每条字幕的时间轴和文本。
    • 如果是“自定义语音识别 API”,请参考文档,按其中的字段说明返回。
  2. 如果你的本地 API 本来就是兼容 OpenAI Whisper 的返回格式(如返回 textsegments 字段),也可以直接在软件里选择“OpenAI 语音识别 API”渠道,并填入你本地服务地址,这样无需额外改动。
  3. 调整后重新执行转录,时间轴和字幕排列即可恢复正常。

请查阅相关文档:

如果调整后仍异常,请提供软件安装目录下 logs/ 文件夹中最新的日志文件(底部约30行报错信息),以便进一步定位。

Thinking...
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.

Dondate via ko-fi.com

Related resource