Overtone makes word-timed captions cut separately for 9:16 and 16:9 video, free and offline
Overtone is a free, open-source command-line tool that turns subtitles, audio or video into word-timed captions and cuts them separately for each screen shape, such as 16:9 and 9:16. It can run fully offline with whisper.cpp and Ollama, or use paid speech APIs for higher accuracy.
What it does
Each spoken word is stored once with its time and speaker, and the lines are cut per picture shape using reading rules: lines avoid ending on weak words like "the" or "of", names and numbers stay together, each speaker gets their own caption, and pauses become breaks. From one .overtone.json file you export WebVTT or SRT for each cut, burn captions into the video, or show the right cut in a video.js player with five style packs. In the default mode several speech engines hear the audio and an LLM editor fixes misheard names and terms from your context and glossary, putting unsure edits on a review list; the LLM never sets the timestamps.
Results and limits
In the author's public benchmark on three English clips (20.8 minutes), 0.3% of Overtone's line breaks ended on a weak word with no pause, against 28.8% for simply filling lines to the length limit and 16.1% for ElevenLabs' SRT export. The paid default cost about $0.023 to $0.025 per audio minute in their runs.
Worth knowing
Re-cutting subtitles you already have works offline with no API key: npx overtone-captions recut your.srt (Node.js 22.12 or newer). overtone transcribe video.mp4 --local uses whisper.cpp (large-v3-turbo) and Ollama (qwen3:8b), so nothing leaves your machine; the default mode needs OpenAI and Azure AI Speech keys. Full line-cutting rules exist for English and Dutch only; there is no translation, no sound tags like [music] and no GUI editor, and media can be up to 2 hours. MIT licence.