fix: SRT 按 cue 解析并按 ID 回填译文,OCR 空帧分段与失败重试

This commit is contained in:
2026-09-11 17:19:25 +08:00
parent 3a612919f7
commit 6eb65e4356
9 changed files with 391 additions and 326 deletions
+17
View File
@@ -143,6 +143,23 @@ whisper 节点按以下顺序解析模型路径,默认避免从远端下载:
声明的引用或文件缺失时任务失败,不能标完成。旧版本原文件已改名但最终别名记录
仍指向有效文件时允许复用;原文件与成品都丢失时明确报错。
### 翻译条目对齐(审查 R05
`llm-translate``nodes/srt.py` 按 cue 解析(支持 BOM/CRLF、多行、空正文),
以全局位置 ID 的 JSON `{id,text}` 数组请求翻译;时间戳不进入模型。返回的 ID
集合、类型、唯一性和非空正文必须校验通过,乱序结果按 ID 回填。结构错误最多
尝试 3 次,耗尽返回 failed,不再在末尾合并或补空。空 cue 不调模型但保留时间轴;
原有长时幻觉清洗继续生效。短句真实 LLM 校准见翻译对齐测试。
### OCR 空帧与故障恢复(审查 R06)
相同字幕只合并相邻帧,空帧结束当前段。OCR 临时失败/异常不进入成功存档,
失败帧降并发后重试一轮,仍失败则节点 failed,成功帧保留供恢复。JSONL 新增
`status=completed`(含成功空文字)或 `skipped`(超长输出按既有规则跳过)。
旧存档非空结果复用;无状态的旧空串可能由超时产生,重新识别一次。全量 14236
帧回归以真实单线程新结果 1942 条为基线,原 1666 条历史文件保留供比对,
新增逐帧覆盖检查防止跨空白合并,不再要求与旧错误时间轴逐字节一致。
### 任务参数覆盖(前端框选)
创建任务时可携带可选 `params` 表单字段(JSON):`{"节点ID": {"参数": 值}}`