Subtitle Generator
Timed captions, written by listening to the file.
or paste one from your clipboard
This tool needs a 39 MB download, once
It is Whisper, OpenAI's speech recognition model, served from this domain rather than from Hugging Face. It is shared with the transcriber. It is kept on your device afterwards, so this happens once and then the tool works offline forever. Generation then runs several times faster than real time.
One time only. Nothing is uploaded — this is the model coming down to you.
Model ready on this device. Works offline, and nothing you load here leaves the browser.
How to use it
- Drop the audio or the video file in. Video works directly — the audio is pulled out of it and the video itself is never uploaded or altered.
- Press Generate. Whisper listens in overlapping windows and records when each phrase starts and stops, which is what turns a transcript into subtitles.
- Check the cues in the list. Timing is where automatic subtitles go wrong, and the two things worth scanning for are cues that overlap and cues that flash past too quickly to read.
- Download SRT for almost anything, or VTT for the web. Both contain the same cues; the formats differ only in punctuation and a header line.
Where the timings come from
Whisper was trained to write out not only words but also timestamps, as tokens in the same stream. So when it transcribes, it is periodically predicting "and the time is now about here" alongside the text, which is why one model produces both the words and the cues rather than needing a second alignment pass.
That design has a consequence worth knowing. Because the timestamps are predictions rather than measurements, they are influenced by what the model expects speech to look like, not only by what it heard. Cues therefore drift a little on unusual material — very fast speech, heavy accents, overlapping voices — in the same way the words do. When a transcript is accurate the timings almost always are too, and when the words start going wrong the timings go with them.
What makes subtitles readable rather than merely correct
Reading speed is the constraint nobody thinks about until they see their own subtitles on screen. A cue needs to be on long enough to read at roughly fifteen to twenty characters per second, which means a forty-character line wants at least two seconds. Automatic cues follow the speech instead, so a quickly-spoken clause gets a cue that is technically accurate and physically unreadable.
Line length is the other one. Two lines of about forty characters is the broadcast convention, and it exists because the eye takes in a short line in one movement. A single long line forces a horizontal scan that competes with watching the picture.
Neither of these is something a model can fix for you, because both are trade-offs against fidelity: making subtitles readable means condensing what was actually said. That is an editorial decision, and it is why professional subtitling is a craft rather than a conversion.
Getting the text right first
Clean audio produces better subtitles, and the cheapest wins are the same as for transcription: the noise remover if the recording is hissy or roomy, and the volume booster if speech sits close to the noise floor. If there is music under the dialogue, the vocal remover is unexpectedly effective, since separating a voice from an arrangement is exactly what it does.
If you want the words without the timings, the audio transcriber produces the same transcript as prose with paragraph breaks, which is the better starting point for an article or a set of notes.