Whisper Web
Whisper Web

Whisper Web

Whisper Web is an MIT-licensed browser speech-to-text demo built with Transformers.js, supporting local transcription, timestamps and TXT/JSON export.

267

Views

0

Likes

Jan 2026

Added

github.com

Website

Tags

Whisper Webbrowser speech to textTransformers.jsWhisper transcriptionclient-side ASRoffline transcriptionwhisper.cpp alternativeWhisper-WebUI alternativeopen source speech recognition

Product Preview

A quick visual look at Whisper Web before you visit the official site.

Published 1/21/2026
Whisper Web screenshot

Editorial Review

About Whisper Web

Whisper Web is an open-source browser speech-recognition application by Xenova. It runs Whisper-family models through Transformers.js in a Web Worker, accepts audio from a URL, local file or microphone, and returns timestamped text that can be exported as TXT or JSON. The project is useful as a compact demonstration of client-side automatic speech recognition, not as a maintained, full-featured transcription service.

The maintenance status matters. The main branch was last committed on June 10, 2024 and pins @xenova/transformers 2.7.0. Its README points to a separate experimental WebGPU branch; the main application primarily follows the older Worker/WASM path. Current Transformers.js documentation has moved on to the v3 generation and supports WebGPU more directly, so developers should treat this repository as a readable reference implementation rather than a current framework starter.

Whisper Web official demo with URL file and microphone audio inputs
Official Hugging Face Space captured August 20, 2026. The interface starts with three input paths: URL, local file and microphone recording.

Who should use it—and who should not

User or jobFitReason
Frontend or ML developer learning browser ASRStrongThe React, Worker and Transformers.js path is compact enough to inspect end to end
Individual transcribing a short, non-sensitive recordingReasonableNo account or server job is required, but model download and browser memory still matter
Team producing reviewed subtitlesLimitedThere is no transcript editor, SRT/VTT export, speaker labeling or collaborative review
Long-form batch transcription servicePoorThe browser tab owns memory and execution; queues, retries, persistence and observability are absent
Medical, legal or regulated audioPrototype onlyLocal inference can help privacy, but access control, retention, audit and human verification are not implemented

Whisper Web is best judged as an educational and prototyping surface. It demonstrates how audio decoding, model loading, chunk callbacks, timestamps and export can work without a transcription backend. That makes it useful for private experiments, conference demos and a first feasibility test on target hardware. It is not a drop-in replacement for a supported transcription product: it has no user accounts, job recovery, model administration, audit log, retention controls, correction interface or service-level guarantees.

For an internal tool, decide who will host the page and model weights, which browsers are supported, and how users will recover from a tab crash or cache eviction. For a public product, add consent around microphone use, model-download expectations, error reporting and a clear statement of where audio and telemetry travel. These operational details matter more than whether the demo can transcribe one clean sample.

What the application actually does

AreaImplementationPractical consequence
InferenceTransformers.js automatic-speech-recognition pipeline in a Web WorkerThe UI remains responsive while the browser performs inference
Audio preparationWeb Audio API, resampled to 16 kHz and mixed to monoBrowser codec support determines which files decode successfully
Long audio30-second chunks with 5-second stride; Distil-Whisper uses 20/3 secondsOverlap helps continuity but can introduce repeated or merged phrases
DecodingGreedy decoding with timestamps and partial callbacksSimple and inspectable, but it exposes few decoding controls
ExportPlain text or JSON timestamp chunksNo native SRT/VTT, speaker diarization or transcript editor

Audio chosen from a file or microphone is decoded and passed to the model inside the browser. The app still downloads model weights from Hugging Face on first use, and a URL input causes the browser to fetch that remote audio. “Local inference” therefore means the speech-to-text computation is client-side; it does not mean the page makes zero network requests.

Inputs, models and download sizes

Choice in the current UIDisplayed downloadBest fit
whisper-tiny, quantized41 MBFastest first test and lower-memory devices
whisper-base, quantized77 MBA modest accuracy step without a large download
whisper-small, quantized249 MBMore capable local transcription when memory permits
whisper-medium, quantized776 MBHigher-capacity experiments on stronger desktop hardware
whisper-tiny.en, non-quantized152 MBEnglish audio where fidelity matters more than download size
whisper-base.en, non-quantized291 MBEnglish-only work with additional browser memory available
Distil-Whisper options402 or 767 MBEnglish-only experiments with the repository's distilled checkpoints

Multilingual mode reveals a long language selector and lets the user choose either transcription in the source language or translation into English. The UI does not expose automatic language selection, beam search, temperature fallback, vocabulary hints or diarization. Quantization reduces weight size and often improves feasibility, but accuracy and stability must be tested on the intended audio.

Whisper Web settings for model quantization multilingual language and task
The official demo's settings combine model, quantization, multilingual language and transcribe-versus-English-translation choices.

Hands-on test: speed versus transcript stability

We ran the official bundled 60-second English sample in a Chromium-based desktop browser on August 20, 2026. This is a single environment check, not a standardized model benchmark. Network cache, CPU, browser, thermal state and model download can change the timings.

ConfigurationObserved completionObserved result
Quantized multilingual Xenova/whisper-tiny (41 MB)About 27 secondsFast, but the latter half produced a conspicuous repeated phrase and several segmentation errors
Non-quantized English Xenova/whisper-tiny.en (152 MB)About 36 secondsSubstantially more coherent and better segmented, though it still contained individual recognition errors

The useful conclusion is not that one timing will reproduce everywhere. It is that the smallest quantized multilingual setting should be treated as a preview configuration. For English material, an English-only checkpoint can be worth the larger download. For multilingual, noisy or domain-specific recordings, compare at least tiny, base and small on representative clips before choosing a default.

Whisper Web timestamped transcript with TXT and JSON export buttons
Timestamped chunks from the official 60-second sample. Whisper Web provides TXT and JSON export after transcription.

How to evaluate Whisper Web properly

MetricHow to measureWhy it matters
Word or character error rateCompare against a human-verified reference transcriptOverall accuracy; use character error rate for languages without word spaces
Named entities and numbersScore names, products, dates, prices and units separatelySmall errors can invalidate meeting, legal or research notes
Hallucination rateInclude silence, music, applause and low-speech segmentsWhisper models can emit plausible text where speech is weak
Timestamp driftCheck boundaries at the start, middle and endCritical for subtitles and seekable transcripts
Real-time factorProcessing seconds divided by audio secondsSeparates model speed from subjective waiting time
Cold versus warm startRecord model download/load separately from inferenceRepeat users may see a very different experience
Memory and failure rateTest target browsers and long filesA model that crashes is not a usable accuracy upgrade

Recommended test set

clean single speaker ── names + numbers
noisy room ─────────── overlapping voices
phone audio ────────── compression + bandwidth
music/applause ─────── silence hallucination check
long recording ─────── chunk joins + timestamp drift
multilingual clip ──── language/task correctness
  1. Create human-verified references for 20–30 short clips that match the real use case.
  2. Run tiny, base and small with the same browser, warm/cold state and quantization setting.
  3. Record accuracy, first-run time, warm inference time, peak memory symptoms and failures.
  4. Review proper nouns, numbers, repetitions and silent segments separately from average error rate.
  5. Test TXT and JSON exports, then decide whether downstream subtitle conversion is acceptable.

Browser, privacy and deployment boundaries

BoundaryWhat to check before adoption
Browser compatibilityThe README requires a Firefox Worker flag; the app's error handler warns about Safari on M1/M2 and recommends Chrome, Firefox or Edge
Cross-origin audioRemote URL loading depends on the source server allowing browser requests; a normal webpage URL is not necessarily a usable audio URL
Model cachingConfirm storage quotas, cache eviction and repeated downloads on managed or private browsing devices
Sensitive audioReview page hosting, model delivery, telemetry and browser extensions—not only the inference code
Self-hostingPin dependencies, serve model assets intentionally, add security headers and test offline behavior
LicensingThe application code is MIT-licensed; model checkpoints and submitted audio still have their own terms and rights

The repository sets env.allowLocalModels = false, so its stock build expects remote model delivery rather than bundled weights. A private or offline deployment needs code and hosting changes. Never claim that simply cloning the UI creates an air-gapped transcription system.

Whisper Web versus similar open-source tools

OptionChoose it whenMain trade-off
Whisper Web by XenovaYou want a small React/Transformers.js demonstration with URL, file, mic and timestamp exportMain branch is dated, has limited controls and no native subtitle or diarization workflow
whisper.cpp WebAssembly demoYou want a C/C++-based browser path, explicit local model loading and file/microphone supportIts documented WASM example is CPU-oriented, limited to models through small and caps audio at 120 seconds
Whisper-WebUIYou need a richer self-hosted subtitle interface, faster-whisper, larger models and backend/API optionsRequires Python/server setup and is not purely client-side browser inference
Current Transformers.js custom appYou are building a new browser product and want current WebGPU, ONNX and framework integration patternsYou own the full UI, audio pipeline, model lifecycle, QA and compatibility matrix
Native whisper.cpp or faster-whisperLong files, batching, automation or controlled desktop/server performance matterInstallation and deployment are heavier than opening a webpage

Whisper Web remains valuable because the source is compact and easy to inspect. It is a better learning artifact than a turnkey production choice. For a new application, prototype against the live demo, then compare a current Transformers.js implementation with a native or server-side engine using the same private evaluation set.

Production checklist

representative audio + reference text
              ↓
browser/model/quantization matrix
              ↓
accuracy · hallucination · time · memory
              ↓
local browser ── or ── native/server engine
              ↓
retention · consent · export · human review
  1. Confirm whether the goal is a demo, private local tool or supported product.
  2. Pin the repository commit, Transformers.js version and exact model revision.
  3. Benchmark target languages, accents, noise, silence and file durations.
  4. Separate cold download time from warm transcription speed.
  5. Add clear progress, cancellation, memory errors and unsupported-browser handling.
  6. Decide whether TXT/JSON is enough or add SRT/VTT, editing and diarization.
  7. Document audio retention, model hosting, consent and deletion.
  8. Require human review when names, numbers, legal or medical meaning matter.

FAQ

Does Whisper Web upload audio for transcription?

The inference pipeline runs in the browser Worker. However, the page downloads model files, and URL input downloads remote audio into the browser. Review the deployed site's hosting and network behavior before describing it as fully offline.

Does it support live microphone transcription?

It can record from the microphone and transcribe the completed recording. The stock interface is not a continuous low-latency streaming caption system.

Which model should I start with?

Use quantized tiny only for a quick feasibility check. Compare tiny, base and small on representative audio. English-only checkpoints can be more stable for English speech, while multilingual checkpoints are required for other languages and English translation.

Can it export subtitles?

Not directly. The current UI exports TXT and timestamped JSON. SRT or VTT requires a conversion step and timestamp review.

Is the WebGPU version the default?

No. The repository README links WebGPU as an experimental branch. Current Transformers.js documentation supports WebGPU, but this main branch remains on the older 2.7 dependency.

Is it actively maintained?

The main branch's latest commit was June 10, 2024 when reviewed on August 20, 2026. The demo still runs, but the maintenance gap should be included in technical adoption decisions.

Sources reviewed

Independent review and hands-on test: August 20, 2026. Repository state, browser support, model files and demo availability can change; verify the current source and target devices before deployment.

Ready to try Whisper Web?

Visit the official website to get started

Visit Whisper Web

Quick Info

Added
1/21/2026
Published
1/21/2026
Updated
9/7/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool
Whisper

Whisper

Whisper is OpenAI's MIT-licensed speech-recognition model family and Python reference implementation for local multilingual transcription and speech-to-English translation.

Whisperspeech recognitionlocal transcription
2870
Whisper.cpp

Whisper.cpp

Whisper.cpp is a dependency-light C/C++ implementation of OpenAI Whisper for local transcription, translation, streaming, servers, and embedded apps. This guide covers models, quantization, backends, accuracy, privacy, and deployment.

speech-recognitionfree
2930
Buzz

Buzz

Buzz is a free MIT-licensed desktop app for local Whisper transcription, subtitles, live captions, translation and speaker labeling on macOS, Windows and Linux. This guide compares backends, hardware, privacy, accuracy tests, subtitle QA, CLI automation and cloud alternatives.

BuzzBuzz Captionsoffline transcription
14750
WhisperDesktop

WhisperDesktop

WhisperDesktop is a Windows desktop app and DirectCompute implementation for running OpenAI Whisper locally on audio, video, and microphone input. This guide covers setup, models, GPUs, subtitles, privacy, and alternatives.

WhisperDesktopOpenAI Whisperspeech recognition
11970