How to Auto-Generate Subtitles for a Video (and Make Them Actually Good)
A practical workflow for auto-generating subtitles from speech: preparing audio, choosing a speech-to-text tool, exporting SRT, and the editing pass that turns a rough transcript into readable captions.
- auto subtitles
- speech-to-text
- workflow
Automatic subtitles have gone from a novelty to the default starting point. Speech-to-text models are now good enough that, on clean audio, the first draft is mostly right. But “mostly right” is not the same as publishable. The difference between captions that look amateur and captions that look professional is almost entirely in what you do after the transcript is generated.
This guide covers the whole workflow: getting audio ready, generating a draft, exporting a usable file, and the editing pass that makes it readable.
What “auto-generated subtitles” actually means
When a tool auto-generates subtitles, it does three separate jobs:
- Transcription — converting speech into words.
- Alignment — working out when each word or phrase is spoken.
- Segmentation — grouping words into caption cues of a sensible length and duration.
Most tools are strong at the first job, decent at the second and weakest at the third. That is why auto-captions often have the right words but break lines in odd places (“I went to the / store and bought a”) or keep a cue on screen long after the speaker has moved on. Knowing which part is weak tells you where to spend your editing time.
Step 1: Give the model clean audio
Speech recognition accuracy depends more on the audio than on the tool. Before you generate anything:
- Reduce background music. If you have the project file, export a version with the music muted or ducked. Music under speech is one of the most common causes of missing or invented words.
- Avoid crosstalk. Overlapping speakers confuse both transcription and timing. If two people talk over each other, expect to fix that section by hand.
- Normalise levels. Very quiet passages get dropped. A simple loudness normalisation pass helps.
- Use the right language setting. Auto-detection usually works, but if your video mixes languages or starts with music, set the language explicitly.
If you are working from a video file and your tool accepts audio, extracting a mono track keeps uploads small. With FFmpeg:
ffmpeg -i video.mp4 -vn -ac 1 -ar 16000 audio.wav
-vn drops the video, -ac 1 makes it mono and -ar 16000 resamples to 16 kHz, a sample rate many speech models use internally.
Step 2: Choose how you’ll generate the draft
There are three broad routes, and each suits a different situation.
Platform auto-captions
YouTube generates automatic captions for many languages after upload, and you can review and edit them in YouTube Studio under Subtitles. TikTok, Instagram and other apps also offer auto-captions in their editors. These are convenient, but they are tied to that platform: the styling, line breaks and timing are controlled by the app, and exporting a clean file is not always possible.
Use this route when the video only lives on one platform and you are happy with its caption style.
Local open-source models
OpenAI’s open-source Whisper model can run on your own machine and output subtitle files directly:
whisper audio.wav --model small --language English --output_format srt
Larger models (medium, large) are more accurate but slower, especially without a GPU. Running locally keeps your media private and costs nothing per minute, but requires some setup.
Online subtitle tools
Browser-based editors combine transcription with an editing interface, so you can generate, correct and export in one place. This is the workflow CutMySub is being built around: the transcript is treated as a draft that you shape, not a final output.
Step 3: Export in the right format
For most uses, export SRT. It is the most widely supported subtitle format: YouTube, Vimeo, most video editors and most players accept it. Choose WebVTT if the captions are going on a website using the HTML <track> element, and ASS if you need styled captions for burning in. If you’re not sure, our SRT vs VTT vs ASS guide explains the differences.
A raw SRT cue looks like this:
14
00:01:02,480 --> 00:01:05,120
So the first thing you want to do
is check the audio levels.
Step 4: The editing pass that matters
This is where auto-subtitles become good subtitles. Work through the file with the video playing.
Fix the words
Watch for the classic speech-to-text errors:
- Names, brands and jargon. Models guess at proper nouns. Search the file for every name you know appears and check each spelling.
- Homophones. “Their / there”, “to / too”, “affect / effect”.
- Filler words. Decide on a policy. Verbatim captions keep “um” and “you know”; clean captions remove them. For most creator content, light cleanup reads better, as long as you don’t change meaning.
- Numbers. Be consistent: “10” or “ten”, “$5” or “five dollars”.
Fix the segmentation
A good cue is a complete thought that fits comfortably on screen. Common guidelines:
- Keep lines to roughly 42 characters or fewer for landscape video (a widely used limit in broadcast and streaming style guides), and shorter for vertical video.
- Use one or two lines per cue, never three.
- Break lines at natural linguistic points: before conjunctions and prepositions, not between an article and its noun.
- Keep reading speed manageable. Many professional style guides cap adult subtitles at around 17–20 characters per second.
Compare these two breaks for the same cue:
Bad: We spent three weeks testing the
new camera before we decided.
Good: We spent three weeks
testing the new camera before we decided.
Even better is splitting into two cues so each sits on screen alongside the words being spoken.
Fix the timing
Auto-alignment is usually close but often a little late on the start of a cue and a little long on the end. Check that:
- Each cue appears when the speaker starts the phrase — a few frames early is fine, late is not.
- Cues don’t linger over silence or the next speaker.
- No cue is on screen for less than about a second, which is too short to read.
If the whole file is consistently early or late, don’t fix cues one by one. Shift everything at once — see how to fix out-of-sync subtitles.
Step 5: Quality-check before publishing
Before you publish, do one final watch-through with the sound off. That is how a large share of social video is watched, and it is the fastest way to spot cues that are confusing without audio. Look for:
- Cues that flash by too quickly.
- Speaker changes that aren’t clear (add a dash or a name label if needed).
- Important non-speech sounds (laughter, music cues, a doorbell that matters to the story) that should be described for accessibility, e.g.
[door slams].
Common problems and quick fixes
| Problem | Likely cause | Fix |
|---|---|---|
| Whole sections missing | Music or noise masking speech | Re-run on a cleaner audio mix |
| Words in the wrong language | Language auto-detect failed | Set the language explicitly |
| Every cue slightly late | Offset in the source or export | Shift all timings by a fixed amount |
| Cues drift later over time | Frame-rate mismatch | Stretch timing between two sync points |
| Very long cues | Poor segmentation | Split at natural pauses |
Where to go next
Auto-generated subtitles save hours, but the edit is what viewers notice. If your captions are for TikTok, Reels or Shorts, read our guide on captions for short-form vertical video next. If you need the text permanently visible in the video, see how to burn subtitles into a video.
CutMySub is being built to make this whole loop — generate, edit, re-time, export — happen in one place. It’s launching soon.