SRT 字幕断行修整
用于把已经有时间轴的中文 SRT 调整成更易读的展示行。它只处理断行与校验:不转录、不翻译、不配音,也不根据估计重新排时间。
需要的输入
- 有效 SRT 原文(最多 150 条 cue)与视频实测总时长(最多 10 分钟)
- 每行最多字数、每条最多行数,以及不能拆开的词/专名列表
缺少总时长、每行字数或最多行数时,先索取这些值。超过范围时,请用户分段检查。
操作与交付
- 先验证编号、时间码顺序、cue 内起止时间和是否超过实测总时长。时间逆序、结束超长或结构损坏时,定位到 cue 和行号并停止;不要把时间偷偷改成可通过的值。
- 对通过时间校验的文字,移除原有展示换行后,先将禁拆词的所有命中区间合并(重叠词按一个整体保护),再用动态规划寻找满足行宽的全局断行方案,优先句末与短语边界。不得改动、增删、重排任何原始字幕文字,合并后的文字必须逐字相同。
- 维持 cue 编号原文本和起止时间完全不变。若无法同时满足行宽和行数,保留原句并列入“阅读预算超限”清单,而不是删字或改时间;只要存在任一预算超限,任务即失败、CLI 返回非零,且不产生或覆盖
--output文件。禁拆词即使长于单行宽度也必须整体保留,在词两侧按最小必要断行;报告最小不可避免的最长行超限。空正文需报告对应 cue 与正文行号。 - 交付断行后的 SRT、超限条目(cue、实际行数/最长行、原因)和错误定位;仅在全部校验通过时标记为可交付。
可执行参考与回归样例见 fixtures/success 和 fixtures/failure。运行 python3 scripts/self_test.py 可验证本 Skill 的真实成功与失败分支。