Technology and privacy

How local Whisper transcription works

Whisper Online runs whisper.cpp through a multithreaded WebAssembly worker. The model is downloaded from Hugging Face, while the selected audio or video is decoded and transcribed on the device.

Quick answer

Whisper Online downloads a whisper.cpp model, processes the selected media locally, lets you correct individual timed words, and exports the result without uploading the media file.

Create a transcriptMedia stays on your device

Step by step

The practical workflow

  1. 1

    The browser checks required capabilities

    WebAssembly, workers, shared memory, cross-origin isolation and Web Audio must be available.

  2. 2

    The selected model downloads

    A compatible quantized whisper.cpp model is fetched directly from Hugging Face.

  3. 3

    Media becomes local audio samples

    The browser decodes the selected file and prepares mono audio for inference.

  4. 4

    A worker runs transcription

    Inference runs away from the main interface and returns editable timed tokens.

Local does not mean no network at all

The application and selected model must be downloaded. The privacy distinction is that the selected media is not sent to this application's server for transcription.

After the required assets are available, inference uses the device's CPU, memory and browser runtime.

Why browser compatibility matters

Multithreaded WebAssembly requires shared memory and cross-origin isolation. Unsupported clients receive a message before model loading. In-app browsers, older browsers and restrictive embedding contexts may not expose the necessary capabilities.

  • Use a current desktop browser over HTTPS.
  • Start with the Tiny model on limited hardware.
  • Close memory-heavy tabs before using larger models.
  • Expect processing speed to vary substantially by device.

Practical limitations

The current app does not provide speaker diarization, translation, cloud synchronization or collaborative review. Larger models can require enough memory to make a tab temporarily unresponsive on constrained systems.

Local transcription is a useful privacy property, not a guarantee of accuracy. Review consequential text against the original media.

Why use local transcription?

No media upload or account
Editable word-level timing
SRT, VTT, TXT, and JSON export

FAQ

Common questions

Is Whisper Online completely offline?

No. The application and model are downloaded from the network. The selected media itself is processed locally rather than uploaded for transcription.

Why is SharedArrayBuffer required?

The Emscripten build uses shared WebAssembly memory for multithreaded inference.

Where do models come from?

Supported quantized models download directly from the official ggerganov/whisper.cpp repository on Hugging Face.

Why can a larger model feel slow?

Larger model files require more download bandwidth, memory and computation. Browser and device limits still apply.

Related guides