AnyTool
Your files never leave your device. All processing happens locally in your browser.

How do I auto-generate subtitles for a video without uploading the audio?

Open AnyTool's Subtitle Generator, drop in a video, and it transcribes the speech on your device using a self-hosted Whisper model (transformers.js, whisper-tiny.en) running entirely in your browser — the audio is NEVER uploaded, unlike Google, Otter and most auto-caption tools that send your audio to the cloud. The model downloads once (~40 MB) and is then cached. Export SRT and VTT, or optionally burn the captions into the video. It is English-only (tiny.en).

  • On-device speech recognition — audio is NEVER uploaded
  • Self-hosted Whisper (transformers.js, whisper-tiny.en)
  • Model downloads once (~40 MB) then cached; works offline after
  • Export SRT and VTT, optional burn-in — English-only (tiny.en)

What is

Automatic subtitle generation

Automatic subtitle generation uses speech recognition to transcribe the spoken audio in a video into timed caption cues (SRT/VTT). On-device generation runs the speech model in the browser — here a self-hosted Whisper tiny.en model via transformers.js — so the audio is never uploaded to a server, unlike most cloud auto-caption services.

Video Tools

Related terms

speech recognitionWhispertranscriptionSRTon-device

How to Auto-Generate Subtitles

Transcribe a video to subtitles on-device in your browser.

2 minWeb browser
  1. 1

    Add a video

    Drop in a video with English speech — it stays on your device.

  2. 2

    Transcribe on-device

    The self-hosted Whisper model runs locally (downloads once, ~40 MB) to produce timed cues.

  3. 3

    Export

    Save SRT/VTT or optionally burn the captions in — your audio is never uploaded.

Result: Subtitle files (SRT/VTT) for the video

Frequently Asked Questions

No — transcription runs entirely on your device with a self-hosted Whisper model.

Unlike Google, Otter and most auto-caption tools that send audio to the cloud, your audio never leaves the browser.

The Whisper tiny.en model downloads once (~40 MB) and is then cached for reuse.

After that first download it works offline, with no further downloads needed.

Export SRT and VTT, or optionally burn the captions into the video — but it is English-only (tiny.en).

The tiny.en model is tuned for English speech; other languages are not supported in this mode.

Detailed Explanation

Methodology

How Automatic Subtitle Generation Works

AnyTool transcribes speech entirely in the browser without any cloud API. The audio is decoded in-browser via the Web Audio API (OfflineAudioContext) into a 16 kHz mono PCM array, then transcribed by a self-hosted Whisper model running on transformers.js / onnxruntime-web — the model and the ORT wasm are served same-origin from /models and /ort with env.allowRemoteModels=false, so nothing is fetched from Hugging Face at runtime. Inference uses WebGPU when available and falls back to WASM, and the segment timestamps build the SRT/VTT. The audio never leaves the device, unlike cloud auto-caption services. An optional burn-in step renders the subtitles into the picture using the self-hosted ffmpeg libass subtitles filter (no CDN). Single-threaded ffmpeg is deliberate: the multi-threaded core needs SharedArrayBuffer + cross-origin isolation (COOP/COEP), which would block cross-origin ad iframes.

  • Runs client-side — the audio never leaves the device
  • Web Audio API (OfflineAudioContext) → 16 kHz mono PCM
  • Self-hosted Whisper (transformers.js / onnxruntime-web), served from /models + /ort
  • env.allowRemoteModels=false — nothing fetched from Hugging Face at runtime
  • WebGPU when available, WASM fallback; timestamps build SRT/VTT
  • Optional burn-in via self-hosted ffmpeg libass subtitles filter (no CDN)
Privacy & Security

Privacy vs Cloud Auto-Caption Services

Cloud auto-caption services upload your audio to a speech API to transcribe it, and often cap the free tier or require an account. AnyTool runs a bundled Whisper model locally, so the audio never leaves your browser, there is no size limit and no signup, and it works offline after the first load.

Auto-subtitles: AnyTool vs typical tools
CapabilityAnyToolTypical tools
Audio handlingStays on deviceUploaded to a speech API
Model sourceSelf-hosted Whisper (no CDN)Cloud service
AccelerationWebGPU, WASM fallbackServer-side
OutputSRT / VTT (+ optional burn-in)Varies
CostFree, no signupFree/limited

AnyTool is a privacy-first client-side caption generator — transcription runs locally and the audio is never uploaded.