#5077 语音识别用ElevenLabs.io的时候,导出的srt文件没有时间码

50.7* Posted at: 2 hours ago

下面是codex找的原因:
看日志后结论很明确:不是识别接口没有时间码,是软件生成 SRT 时把时间字段用错/丢掉了。

证据在 20260608.log:

第 9588 行:ElevenLabs 已经返回识别结果。
第 9605 行开始,软件内部生成的 SrtItem 其实有时间:
time='00:00:25,740 --> 00:00:26,300'
但同一个 SrtItem 里:
startraw='',endraw=''
你最终文件里变成:

1
-->
すいません
这正好说明写入 SRT 时软件用了空的 startraw/endraw,而不是已经算好的 time 字段。所以这是 pyvideotrans 的 ElevenLabs 识别/保存 SRT 流程里的字段映射问题。

另外日志第 17035-17036 行还有一个后续问题:
原始字幕行数:1, 翻译后行数:242,软件提示行数不一致,说明后面翻译/断句阶段也发生了字幕结构错位。

其他语音识别模型都不如这个好用,望修复一下

1 Replies

根据日志分析,问题确实出在 ElevenLabs 语音识别渠道返回的数据中,SrtItemstartrawendraw 字段为空,但 time 字段有值。软件在生成 SRT 文件时错误地使用了空的 startraw/endraw,导致最终字幕缺少时间码。这是 pyVideoTrans 在 ElevenLabs 渠道中字段映射未对齐的已知内部 bug。

临时解决方案(直至官方修复)

  1. 使用单视频交互模式:一次只处理一个视频。在语音识别完成后的 原始字幕编辑框(自 3.x 版本起支持)中,可以手动为每条字幕补齐时间码。虽然繁琐,但可以立即获得正确结果。
  2. 更换识别渠道:目前 ElevenLabs 存在该问题,建议改用 faster-whisper (本地) + large-v3 模型,或 OpenAI 语音识别 API,这些渠道导出时间码正常。
  3. 关注软件更新:该问题已在开发待办中,下一个版本(v4.02 或更高)预计会修复。请留意 pyvideotrans.com/downpackage 上的新版发布。

关于翻译行数不一致(原始 1 行 → 翻译后 242 行)
这是由时间码缺失导致的连锁反应——SRT 结构错误后,断句/翻译阶段无法正常对齐,产生了大量空行。修复时间码问题后,该问题自动消失

相关文档

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: ko-fi.com/jianchang512

Related resource