SuperAPI AI 工具集

retime-captions-to-words

通用与其它

查看项目

更新于 10-15 21:54

技能介绍

用途:手工编写或由 LLM 转录生成的字幕,常相对旁白实际词起点漂移 ±100–300 毫秒。本工具把每条 cue 的起始时间吸附到 whisper 词级时间戳文件中最近的匹配词,吸附距离受容差限制。

主要能力:结束时间默认按原时长平移以保持时长;若会与下一条 cue 重叠,则截断到下一 cue 的新起点。匹配时取 cue 前 1–3 个词(小写、去标点)在容差窗口内寻找同形候选,选 |word.start - cue.start| 最小者;无匹配则保持原样并记入 skipped。

用法: scripts/retime.py --input <源.srt> --output <目标.srt> --words <词时间戳.json> 参数:--tolerance <秒> 默认 0.10;--preserve-duration <bool> 默认 true。words 文件格式为 {"words":[{"text":"...","start":1.234,"end":1.456},...]}。

输出:重定时 SRT、manifest.json(含 cues、retimed、skipped、max_shift_seconds、clipped_ends、status 等)和 verification.md(每条 cue 前后起点与差值表)。

质量检查:max_shift_seconds 不超过容差;无 cue 起点晚于终点;无 cue 与下一条重叠;words 文件加载时校验格式。

限制与失败模式:words 文件缺失或格式错误会快速失败;cue 首词在转录窗口找不到则跳过;旁白与字幕首词不一致(字幕被改写)会正确跳过,需人工重写该行;重复词可能匹配到错误实例,资料给出 find_word(words, target, *, after=0.0) 辅助函数,要求调用方显式传入消歧时间戳,并建议渲染前把推导时间戳打印到 stderr。被 /polish 的字幕时间分支与 auto-refine 消费。