{
  "id": 20005145,
  "title": "Transcribe audio to SRT subtitles in the browser with Whisper (no upload, no server)",
  "url": "https://urgent.news/2026/11/14/transcribe-audio-to-srt-subtitles-in-the-browser-with-whisper-no",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-11-14T15:59:06.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/spellzcode/transcribe-audio-to-srt-subtitles-in-the-browser-with-whisper-no-upload-no-server-4ii3"
  },
  "original_language": "en",
  "account": "1. Whisper can now be run inside a web page without uploading audio files or using a server. The browser downloads the speech model once, caches it, and processes the audio locally. This eliminates the need for an API key or per-minute billing.\n\n2. To achieve this, the audio file is first decoded to 16 kHz mono using the Web Audio API, which supports various audio formats like MP3, M4A, WAV, OGG, and FLAC. The decoded audio is then processed in a Web Worker to avoid blocking the main thread.\n\n3. The speech-to-text model is loaded in a separate Web Worker, with a preference for WebGPU if available. If not, it falls back to WASM. The model size can be adjusted based on factors like speech clarity, accents, noise, and language. The default model is whisper-tiny, while base and small offer better performance with accents, noise, and multilingual support.\n\n4. Long audio files are processed in smaller blocks to improve user experience. The code breaks the audio into 90-second segments, shifts each block's timestamps accordingly, and sends partial results back to the main thread as they are generated. This allows the page to display progress updates in real-time without waiting for the entire transcription to complete.",
  "summary": "You can run Whisper inside a web page today. The audio file never leaves the visitor's computer: the browser downloads the speech model once, caches it, and does the listening itself. No server, no API key, no per-minute bill. This post shows how to build it with Transformers.js: a Web Worker, WebGPU with a WASM fallback, long files in blocks, and SRT/VTT output. It also covers the three things…",
  "key_points": [
    "Whisper runs inside web page without uploading audio or server",
    "Decodes audio to 16 kHz mono using Web Audio API",
    "Speech-to-text model loaded in separate Web Worker"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}