Skip to content
All guides

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:

  1. Transcription — converting speech into words.
  2. Alignment — working out when each word or phrase is spoken.
  3. 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

ProblemLikely causeFix
Whole sections missingMusic or noise masking speechRe-run on a cleaner audio mix
Words in the wrong languageLanguage auto-detect failedSet the language explicitly
Every cue slightly lateOffset in the source or exportShift all timings by a fixed amount
Cues drift later over timeFrame-rate mismatchStretch timing between two sync points
Very long cuesPoor segmentationSplit 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.

· srt

How to Split or Merge SRT Files Without Breaking the Timing

Step-by-step guide to splitting an SRT file at a timestamp, merging several SRT parts into one, and combining two subtitle tracks — with the offset and renumbering rules that keep everything in sync.

· burn-in

How to Burn Subtitles Into a Video: Hardsubs vs Softsubs

The difference between hardcoded (burned-in) and soft subtitles, when to use each, and step-by-step ways to burn SRT or ASS captions into a video with FFmpeg, HandBrake or your video editor.

Back to all guides