OpenAI Whisper is a speech recognition model. You give it audio, it gives you text. It is the model most transcription services quietly run underneath, including several that charge by the minute for it.
The usual complaint is that using it yourself means installing Python, then ffmpeg, then PyTorch, then finding out your laptop has no CUDA. This guide skips all of that: Whisper can run directly in a browser tab.
What Whisper actually is
Whisper was trained on around 680,000 hours of multilingual audio. That scale is why it handles accents, background noise and code-switching better than the speech engines that came before it. It ships in several sizes, and the size you pick is the main quality/speed tradeoff you control.
| Model | Parameters | Rough size (quantized) | Where it makes sense |
|---|---|---|---|
| tiny | 39M | ~15 MB | Fast drafts, clean audio, weak devices |
| base | 74M | ~74 MB | Best balance for browser use |
| small | 244M | ~250 MB | Noticeably better on accents, much slower in a browser |
| medium / large | 769M–1.5B | 1–3 GB | Server-side only in practice |
Anything above small is not realistic to download into a browser tab, which is why browser-based tools converge on base.
Running it without installing anything
Whisper has been compiled to WebAssembly, which means the model can execute inside the browser’s own sandbox. Nothing is uploaded — the audio is decoded locally, fed to the model locally, and the text comes back locally.
The practical consequences:
- The first run is slow. The model has to download once (about 74 MB for
base). After that it is cached and starts immediately. - Later runs work offline. Once cached, you can transcribe on a plane.
- There is no per-minute cost, because nobody is paying for a server to do the work.
- Long files depend on your RAM, not on someone’s upload limit.
If you want to try it right now, the audio to text page does exactly this — pick a file, and the model loads on first use.
Which language settings matter
Whisper detects the language automatically in 90+ languages, and in most cases you should let it. Two situations where you might not want to:
- Heavy code-switching. If a recording alternates between two languages every few sentences, automatic detection latches onto whichever dominates the first 30 seconds.
- Very short clips. Under about 5 seconds there may not be enough signal to detect reliably.
How accurate is it, really
On clean, single-speaker speech at a normal pace, base typically lands close to verbatim — good enough that editing is faster than typing from scratch. Accuracy drops in fairly predictable ways:
- Overlapping speakers. Whisper produces one text stream, so two people talking over each other blur together. It has no built-in speaker diarization.
- Proper nouns and jargon. Names, product names and technical terms are the most common errors. Whisper guesses a plausible-sounding word instead of leaving a gap, so these mistakes read as confident.
- Very noisy or distant audio. Phone recordings from across a room degrade sharply.
- Long silences. Older Whisper builds sometimes hallucinate text over silence; chunking the audio (see below) mostly avoids this.
That last point matters if you are transcribing something where accuracy is load-bearing. Whisper output is a strong first draft, not a court record.
Why chunking matters for long audio
Whisper processes 30-second windows. Naively cutting a long recording into 30-second slices splits sentences at the boundaries and loses words. The fix is overlapping windows — process 30 seconds, step forward 25, and reconcile the overlap.
Any tool worth using does this for you. If you ever see a transcript where words vanish at suspiciously regular intervals, that is what went wrong.
Whisper in the browser vs. the API
Both run the same family of models. The difference is where the work happens and what that costs you.
| Browser (WebAssembly) | Hosted API | |
|---|---|---|
| Your audio | Never leaves the device | Uploaded to a third party |
| Cost | Free, unlimited | Per minute of audio |
| First-run delay | ~74 MB download, once | None |
| Speed on long files | Limited by your CPU | Much faster |
| Works offline | Yes, after first load | No |
The honest rule: browser for anything sensitive or routine, API when you have hours of audio and need it done in minutes.
When you should not use Whisper at all
- You need speaker labels (“Speaker 1 / Speaker 2”). Whisper alone does not do this; you need a separate diarization step.
- You need certified or legally admissible transcripts. Those require a human transcriber, regardless of model quality.
- You need real-time captions during a live call. Whisper is designed for recorded audio; live captioning uses streaming models built for the job.
Common questions
Do I need a GPU? No. WebAssembly runs on the CPU. A GPU path exists via WebGPU but is not always faster or more reliable for quantized models — some combinations produce garbled output, so many tools deliberately stay on CPU.
Is MacWhisper the same thing? MacWhisper is a native macOS app wrapping the same model. If you live on a Mac and transcribe daily it is a fine purchase. If you want to transcribe one file without installing anything, a browser tool gets you there faster.
Can I transcribe a YouTube or Instagram video? Not directly from a link with a local-only tool — the model needs an audio file. Save the file you have the rights to use, then transcribe it.
Is the free browser version worse than the paid API? Not in model quality at the same size. The paid services are buying you speed and convenience, not smarter output.