开源字幕工具链(MIT,TypeScript):一份 .overtone.json 按词存储台词与说话人,为 16:9、9:16 或任意画幅各自排一份字幕切口;CLI 可转写、重排、烧录与导出,video.js 插件按播放器形状渲染对应切口。官方基准显示其断行规则显著优于按字数填行的传统做法。 定价:免费开源(MIT);转写按所选服务商 API 计费(官方基准口径 $0.023–0.025/音频分钟),或用 whisper.cpp + Ollama 完全离线。
Overtone 是什么?
Overtone 是 Lont 开源的字幕工具链,解决一个具体而普遍的问题:大多数字幕只按一种画面、一条字数上限排版,16:9 的切口放到 9:16 竖屏就变成「the / of」结尾的碎行,两个说话人还挤在同一条字幕里。Overtone 的答案是换数据结构:一份 .overtone.json 里每个词只存一次(时间+说话人),切口(cut)只是指向这些词的排版方案——所以 16:9 和 9:16 可以各有一份切口,甚至任意自定义画幅都能加,而词与时间永远不会重复存储。
它的断行遵循一套带版本号的规则集:行尾避开 the/of/and 这类虚词(无停顿时),名字和数字不拆行,每个说话人独占字幕,0.5–1.5 秒的停顿强制变成换行——让观众「读到」犹豫。官方基准(20.8 分钟英语素材)显示只有 0.3% 的断行落在无停顿虚词上,而传统按字数填行是 28.8%。
核心功能
- 开放格式:.overtone.json 有完整规范与 JSON Schema,可导出 WebVTT/SRT/纯文本。
- CLI 全流程:transcribe(转写)、recut(重排已有字幕,离线免 API)、burn(烧录)、export、validate、providers 等命令。
- 多引擎转写管线:文本与时间分由不同引擎给出,分歧处由 LLM 复听投票;LLM 只改文本,永远不碰时间戳。
- LLM 编辑器:按你的上下文与词汇表纠错听错的词、标说话人与关键词,不确定的改动进入人工复核清单。
- video.js 插件:五套样式包(clean/social/minimal/high-contrast/lumora),按播放器画幅渲染对应切口。
- Agent Skill:官方提供可放进 .claude/skills/ 的技能,让 Claude Code/Codex 直接操作字幕。
版本/套餐对比
只有一个版本:MIT 开源。成本来自转写服务商:官方基准口径 $0.023–0.025/音频分钟(加 ElevenLabs Scribe $0.029,均为标价);--dry-run 先估算不上传;--local 走 whisper.cpp + Ollama 完全离线。与商用手幕服务相比,它不做翻译、没有声音标签、没有 GUI 编辑器,媒体上限 2 小时——换来的是格式主权:你的词与时间在自己的文件里,任何切口随时重算。
值不值得用?
如果你只做横屏、对断行无所谓,recut 已有的 SRT 也够用——但那正是它要解决的问题场景。它的甜点区是「一条素材要发横竖两个版」的团队:转写一次,两个画幅各自得到符合阅读规则的切口,竖屏不再出现半句话被劈开的碎行。工程上也克制:LLM 不碰时间戳、规则集带版本号(同词同规则同输出)、文本投票有基准数据背书(WER 5.3% 优于单引擎)。局限同样清楚:非英荷语言的断行规则是中性的,中日泰只到短语级,社区还在极早期(55 星)。
使用建议
- 先拿已有 SRT 跑 recut:离线、免费、无 API,几分钟能看出断行差距。
- 正式转写前用 --dry-run 估算费用;安静场景记得让它换语言重试(基准显示能从 42.9% 降到 32.8%)。
- 竖屏分发用 social 样式包起步,再按品牌微调 CSS。
适合谁用?
推荐:一条素材多画幅分发的短视频团队、字幕组、需要把字幕管线交给 Agent 的开发者(官方 Skill 支持)。可考虑:对字幕断行有强迫症的独立创作者。不推荐:需要翻译、声音标签或 GUI 编辑的用户,以及主要处理中日泰语且对断行质量要求极高的人。