How it works
- Drop your file. MP4, MOV, WebM, MP3, WAV or M4A, up to 10 minutes. Or press Try a sample clip.
- Pick the language or leave it on automatic, and click Generate captions. The tool picks the most accurate speech model your device can run and says which. The first run downloads it once; a progress bar shows the size, speed and time left.
- Edit. The captions play over your video in the style you pick. Fix a word, split or merge lines, drag a caption on the timeline to retime it. Press ? for keyboard shortcuts.
- Download SRT, VTT, ASS or plain text in one click, ready for YouTube, TikTok, Instagram, Premiere Pro, DaVinci Resolve, Final Cut or CapCut.
Every word start is checked against the sound, so captions don't flash up early or trail behind.
Waveform timeline, drag to retime, undo, reading-speed warnings and shortcuts for everything.
Optional: five opening lines and five titles for Shorts, TikTok or Reels, written from what you said.
Video to text: paragraphs with optional timestamps, copy all, TXT and Word downloads.
Languages
Auto-detect covers about 99 languages. These have their own page with our measured accuracy and tips:
- Spanish subtitles generator: Español, measured 0.5% character error
- Arabic subtitles generator: العربية, right-to-left ready
- Urdu subtitles generator: اردو, Urdu script, right-to-left ready
Questions
Is SubForge really free?
Yes. Transcription runs on your own device, so it costs us nothing to run and you pay nothing. Exports have no watermark. Files up to 10 minutes are free.
Is my video uploaded anywhere?
No. Your browser reads the file and transcribes it on your computer. The only download is the speech model itself, which your browser keeps for next time. The optional hook writer sends only the caption text, and only when you click it.
Which languages work?
Whisper knows about 99 languages. We measured real speech: Spanish and Arabic work well, and Urdu is readable with the Best model (about one word in four needs a spelling fix). Hindi still needs a heavy edit pass (about two words in five wrong, even with Best), so pick it by hand and read every line. English works best of all.
What is the difference between SRT, VTT and ASS?
SRT is the most widely accepted caption file. VTT is the web standard used by HTML5 video players. ASS carries styling (font, size, colour, position, karaoke word timing) and is read by VLC, mpv and many editors. Need to switch? Use the SRT to VTT, VTT to SRT or ASS to SRT converters.
Which speech model does it use?
It picks one for your device and tells you which. With WebGPU and enough memory you get Best (Whisper large-v3 turbo, 564 MB), the most accurate. Phones and GPUs that can't hold it get Accurate (Whisper small, 586 MB), and computers without WebGPU get Fast (Whisper base, 77 MB on the CPU). You can switch before you start. Each model downloads once and your browser keeps it.
Why is it slow on my computer?
With WebGPU (recent Chrome and Edge, Safari 26 and newer) transcription uses your graphics card and is fast. Without it the tool falls back to your CPU, which works everywhere but is several times slower. The first run also downloads the model once; the progress bar shows its size, speed and time left.
Can I get a plain transcript instead of subtitles?
Yes. Pick Transcript before you start, or switch in the editor: the text comes as paragraphs with optional timestamps, a Copy all button, and TXT, Word (DOCX), SRT and VTT downloads. See video to text.
My recording is noisy. Will that hurt the captions?
Noise, hum and music under the voice cause most transcription mistakes. Clean the audio first with the free noise remover, then caption the cleaned file. Need the video smaller to share it? Use the video compressor.
Can it burn the captions into the video?
Not yet. Burned-in, animated caption styles are coming in SubForge Pro, along with long and 4K files, batch jobs and translation. Join the waitlist.
Privacy
Your media never leaves your device: the file is decoded and transcribed in this browser tab. We don't use cookies or analytics on this page. The speech model is fetched from Hugging Face's CDN and the WebAssembly runtime from jsDelivr, like any web font or script. The optional hook writer sends the caption text (not the media) to our server when you click it; it is used to write the hooks and is not stored.
Credits
Speech recognition by OpenAI Whisper (MIT) running in Transformers.js (Apache-2.0) on ONNX Runtime Web (MIT). Inter and JetBrains Mono fonts (SIL OFL 1.1). Icons by Lucide (ISC). Sample clip speech from Google FLEURS (CC BY 4.0, Conneau et al. 2022), re-encoded and concatenated. MP3 downloads in the text to speech, greeting and vocal remover tools use the LAME MP3 encoder 3.100 (LGPL-2.0-or-later), shipped unmodified as a separate, dynamically loaded file: source, licence and how to replace it.