All Tools View Categories About Contact Privacy

Auto Subtitle Generator

Generate an SRT from a video or audio file that has no subtitle track. Speech recognition runs with Whisper inside your browser — the media never leaves your machine.

Your file is never uploaded. The only thing downloaded is the Whisper model itself, once, which the browser then caches.
Drop a video or audio file here, or click to choose
MP4, MOV, M4V, WebM, MP3, M4A, WAV, FLAC, OGG
Bigger models are more accurate and slower. Downloaded once, then cached.
Naming the language is faster and more reliable than auto-detect.
Whisper can translate any supported language into English subtitles.
Subtitle formatting and engine options
WASM is sometimes faster than WebGPU. Worth trying both.
Starting…

Machine transcription is a strong first draft, not a finished deliverable. Always read it through before publishing — names, jargon and overlapping speech are where it slips.

About Auto Subtitle Generator

The Auto Subtitle Generator turns spoken audio into a timed subtitle file. Give it a video or audio file with no subtitle track and it produces SRT, WebVTT, plain text, JSON or CSV, with cues already split to a sensible line length and reading speed. Speech recognition runs on OpenAI Whisper, executed inside your own browser rather than on a server.

This is the companion to extracting subtitles that already exist. When a file genuinely has no subtitle stream - a phone recording, a screen capture, a webinar export, an interview, a podcast - there is nothing to pull out, and the text has to be produced from the audio. The usual routes are a paid transcription service, an upload to a site that keeps a copy of your footage, or a local install of Python and Whisper. This tool is the option that needs none of those.

The pipeline is straightforward. Your file is decoded with the browser Web Audio API, downmixed to mono and resampled to the 16 kHz that Whisper expects. The model runs over the audio in thirty-second windows with a five-second overlap so words are not lost at the seams, returning text with timestamps. Those raw segments are then rebuilt into real subtitles: fragments are merged, over-long passages are split with time apportioned by character count, lines are wrapped to your character limit, minimum and maximum durations are enforced, a reading-speed ceiling is applied, and overlaps are trimmed so no two cues collide.

Be realistic about what machine transcription gives you. On clear speech in a common language the output is a genuinely useful first draft. On accented or overlapping speech, background music, proper nouns or technical vocabulary it will make mistakes. Treat it as the draft that saves you an hour of typing, then proofread it.

Features

  • Runs in your browser: the audio is processed locally through WebGPU or WebAssembly. Your media is never uploaded, which matters for anything unreleased, confidential or under NDA.
  • Three model sizes: Tiny for speed, Base as the recommended default, Small for the best accuracy. Each is downloaded once and cached by the browser, so repeat visits start immediately.
  • Subtitle-shaped output, not a wall of text: raw recognition segments are merged, split and re-timed into cues that respect Max characters per line, Max lines per cue and a Max reading speed in characters per second.
  • Timing rules enforced: minimum and maximum cue durations are applied, and a small gap is inserted between neighbours so cues never overlap - the two faults subtitle QC tools flag most often.
  • Translation built in: switch Output to translate and Whisper produces English subtitles from speech in any language it supports.
  • Language hinting: naming the spoken language instead of relying on auto-detect is both quicker and more reliable, particularly on short clips or audio that opens with music.
  • Engine override: WebGPU is not always the faster path. The Engine setting lets you force WebGPU or WebAssembly and time both on a short clip before committing to a long one.
  • Five export formats: SRT and WebVTT for players, plain text for transcripts and articles, JSON and CSV for translation and analysis pipelines.

How to Use

  1. Add your file. Drag a video or audio file onto the drop zone, or click to browse. MP4, MOV, M4V, WebM, MP3, M4A, WAV, FLAC and OGG all work. MKV must be remuxed to MP4 first, because browsers cannot decode Matroska audio.
  2. Choose a model. Base is preselected and suits most work. Drop to Tiny for a quick rough pass, or move up to Small when accuracy matters more than time.
  3. Set the spoken language. Picking it explicitly is faster and more dependable than automatic detection. Leave it on detect only when you genuinely do not know.
  4. Decide transcribe or translate. Transcribe keeps the original language; translate produces English subtitles from any supported source language.
  5. Adjust the formatting if you have a house style. Open the options panel to set characters per line, lines per cue, reading speed and duration limits. The defaults - 42 characters, 2 lines, 17 characters per second - match common broadcast practice.
  6. Press Generate subtitles. The first run downloads the model, which is the slowest step and happens only once. Progress is reported through decoding, model download and transcription, and you can cancel at any point.
  7. Proofread, then export. Read the result in the output box and fix what the model got wrong, then pick a format and use Copy or Download.

Examples

Example 1 - raw recognition becomes usable cues. Whisper returns long segments that are far too wide for a subtitle line. The tool splits them, apportions the timing by character count and wraps to two lines:

Whisper segment:
  [0.00 - 6.40] So today we are going to look at how the parser
                actually walks the container and finds the
                subtitle stream inside it.

Generated cues:
1
00:00:00,000 --> 00:00:04,334
So today we are going to look at how the
parser actually walks the container and

2
00:00:04,414 --> 00:00:06,320
finds the subtitle stream inside it.

Example 2 - short fragments are merged. Recognition often emits one- or two-word segments. Left alone these flash on screen unreadably, so anything under the minimum duration is merged with its neighbour when the two fit together and no sentence boundary separates them.

Example 3 - translating a foreign-language interview. Set the spoken language to the one being spoken, set Output to Translate to English, and the exported SRT carries English text against the original timings - a working base for a subtitle pass without a translator in the loop.

Benefits

  • Turns hours of typing into minutes of editing: proofreading a draft transcript is dramatically faster than producing one from scratch, which is where most of the time saving comes from.
  • Nothing leaves your machine: footage under embargo, client material and internal recordings can be transcribed without handing a copy to a third-party service.
  • No per-minute pricing: transcription services bill by the minute and add up quickly across a back catalogue. This has no meter running.
  • Makes video accessible and searchable: captions serve viewers who are deaf or hard of hearing, viewers watching muted, and search engines, which cannot index speech but can index a transcript.
  • Output is ready to use, not ready to reformat: because line length, reading speed and duration rules are applied during generation, the file usually passes subtitle QC without a second cleanup pass.
  • Works on a plane: once the model is cached the tool keeps working with no network connection at all.

Frequently Asked Questions

Is my video uploaded anywhere?
No. Speech recognition runs inside your browser using WebGPU or WebAssembly, so the audio is processed on your own machine. The only network traffic is the one-time download of the Whisper model files themselves, which the browser then caches.
How long does it take?
Published benchmarks for the base model put roughly sixty seconds of audio at five to ten seconds of processing, so a ten-minute video usually lands somewhere between one and two minutes. Your hardware matters a great deal: a recent laptop with WebGPU is far quicker than an older machine falling back to CPU.
How accurate is it?
Good enough to be a strong first draft, not good enough to publish unread. Clear single-speaker speech in a common language transcribes well. Accents, background music, crosstalk, proper nouns and technical jargon are where errors cluster. Always proofread before shipping, and prefer the Base or Small model over Tiny for anything that matters.
Why will it not accept my MKV file?
Browsers cannot decode audio out of a Matroska container natively. Remux it to MP4 first with a command such as ffmpeg -i input.mkv -c copy output.mp4, or extract the audio to .m4a or .wav and load that. MP4, MOV, WebM, MP3, M4A, WAV, FLAC and OGG all work directly.
Which model should I choose?
Base is the sensible default and what the tool preselects. Tiny is roughly half the download and noticeably quicker but makes more mistakes, so it suits rough drafts and quick checks. Small is the most accurate of the three and correspondingly the largest download and the slowest to run.
Can it translate as well as transcribe?
Yes. Set Output to Translate to English and Whisper will produce English subtitles from speech in any language it supports. Translating into languages other than English is not something the model does directly.
Does it separate different speakers?
No. Whisper transcribes speech but does not perform speaker diarisation, so you will not get speaker labels. For interviews and panels you will need to add those yourself during proofreading.
Why is WASM sometimes faster than WebGPU?
It depends on the machine. WebGPU wins on systems with a capable discrete GPU, but on some integrated graphics and Apple silicon configurations the WebAssembly path has measured faster. The Engine setting lets you force either one, so it is worth timing both on a short clip.