Word-level timestamps for subtitles
Most transcription gives you a start and end time per line. Forced alignment gives every individual word its own, which is what makes a caption line safe to split, join, or retime without the rest of it drifting. This explains the difference and when it matters.
Start transcribing, freeWhat a line-level timestamp cannot do
A speech model returns text with timings attached to chunks it decided on. Those chunks are rarely the caption lines you want: too long, broken at the wrong place, or spanning a pause you would rather cut on.
The moment you split one, you have a problem. The editor knows when the chunk started and ended and nothing about the middle, so it guesses, usually by splitting the duration in proportion to the characters. Speech is not evenly paced, so the guess is wrong, and the second half of the line sits noticeably late or early.
What forced alignment does instead
Forced alignment is a separate pass from transcription. It already knows what was said, so instead of recognising speech it locates each known word in the audio waveform. The output is a start and end time for every word.
Here that is a wav2vec2 alignment pass run after Whisper large-v3 produces the text. Splitting a line then needs no guessing: the boundary is a word boundary, and both halves keep the times the audio actually supports.
Where it shows up
- Splitting and joining caption lines without anything drifting, which is most of subtitle editing.
- Karaoke-style and word-by-word captions, which cannot be built at all from line timings.
- Tight reading-speed control, since you can rebalance lines by word count and keep the timing honest.
- Cutting on a word boundary, because you know exactly where each one begins.
Why converted subtitle files do not have it
SRT, WebVTT and SubViewer record when a line appears and disappears. None of them has anywhere to put a per-word time. Anything rebuilt from a subtitle file is therefore line-accurate at best, however it was originally produced, which is the honest limit of every format converter, this site's included.
If you need word-level timing, it has to come from the audio. Transcribing the media is the only route; there is no way to recover it from a finished subtitle file.
The spaceless-script case
Japanese and Chinese are written without spaces, and alignment there works per character, so a "word" is one character. That is the correct unit for line breaking in those scripts. Korean is not the same case despite sharing a Unicode neighbourhood: it is written with spaces, and treating it as spaceless runs its words together.
Frequently asked questions
Is this the same as a timestamped transcript?
No. A timestamped transcript usually marks each paragraph or speaker turn. Word-level timing marks every word individually, which is roughly two orders of magnitude more granular.
Does every language support forced alignment?
No, and this matters. Alignment models exist for a subset of languages. For anything outside it the transcript falls back to the speech model's own word times, which drift over a long file. The transcript warns you when that has happened rather than staying quiet about it.
Can I see the word timings?
They drive the editor rather than being displayed as numbers: splitting a line at a word uses them, and so does every export. FCPXML also carries per-word styling, which is only addressable because each word is a separate object.
Ready to try it?
Try it free without an account. Sign in to download your file, plus 15 minutes and 5 transcriptions a month.
Open the subtitle generatorNeed more than that? See pricing : one-time packs from $5, and nothing expires.