Cutleap / Guides / Under the hood

How word-by-word captions get their timing

Captions that pop up one word at a time look like a design choice. Underneath, they’re a timing problem: knowing exactly when each word starts and ends.

It starts with word timestamps

A speech-to-text model such as Whisper gives you the words you said. Most tools stop there. Captions that follow your voice need more: a start time and an end time for every single word.

Some services return those times directly. Other tools run a second model that lines the text up against the audio. Either way, the output is a list of words, each with two numbers. Everything after that is layout.

Then group them into chunks

Showing one word alone is hard to read, and showing a full sentence feels slow. Most captions land in between. The open-source Claude Code pipeline we looked at uses three-word chunks for vertical video and six words for landscape. The word being spoken gets highlighted, and the next chunk replaces the last one.

Burned in, not attached

TikTok and Reels don’t reliably read a separate subtitle file, so the text gets drawn onto the video itself. In ffmpeg that’s the drawtext filter, with a time window for each chunk:

drawtext=text='my skin':enable='between(t,12.4,12.9)'

That line shows “my skin” from 12.4 to 12.9 seconds and nothing before or after. A video with 90 chunks is 90 of these. Burned-in text works in every app, and you can’t switch it off.

Staying out of the way

Each app puts buttons on top of your video: like, comment and share on the right, the caption and account name at the bottom. Text placed there gets covered. The pipeline we looked at puts vertical captions about three-quarters of the way down. Keeping the bottom fifth of the frame and the right edge clear is a good rule.

When a word is wrong

Names and unusual words are where speech-to-text slips. Fixing the text is easy. Keeping the timing right is the catch. If you swap one word for another, the timing can stay. If the word count changes, the tool has to split that stretch of time again. That’s why “change Kayla to Keila” should work as a single edit.

Try asking

“Add word-by-word captions in my brand font.”

“Make the captions bigger and move them up.”

“Change “Kayla” to “Keila” in the captions.”

Want a fuller request? Copy the prompt Five hooks to test from one video.

Let Cutleap do the editing

Upload your clips, say what you want, get finished videos back. 7-day free trial, cancel anytime.

Get early access

Questions

Why not just upload a subtitle file?

TikTok and Reels don’t reliably show them. Burned-in captions are part of the picture, so they appear on every app.

How many words should show at once?

Two to four is common on a phone. Fewer feels punchy, more feels like subtitles.

More guides