Whisper
Updated
Definition
Whisper is a family of open-source speech recognition models released by OpenAI in 2022, trained on 680,000 hours of audio and covering about 99 languages. Because the weights are freely available, Whisper became the engine inside many local transcription and dictation tools.
Whisper ships in sizes from tiny to large; bigger models are more accurate and slower. It transcribes in batch rather than streaming, so tools that show words live typically pair it with a streaming model and use Whisper for languages the streaming model does not cover.
On Apple silicon, optimized runtimes let even the larger Whisper models run comfortably on-device, which is what made the current generation of private, local Mac dictation tools possible.
The sizes, and which one you want
Tiny and base are fast and rough, fine for a voice memo. Small is the usable floor for dictation. Medium and large are accurate enough for professional work and, on a modern Mac, still fast. Large-v3-turbo is the current sweet spot: a large model with a slimmed-down decoder that keeps most of the accuracy at several times the speed. Most Mac tools that offer a choice are offering these, and the right answer for dictation is the largest model that returns text before you get impatient.
Batch, not streaming
Whisper reads a window of audio and then writes the transcript for it. That makes it accurate, because it sees the whole phrase before deciding, and it makes it batch: nothing appears until you stop. Tools built only on Whisper feel like a pause after every sentence. Tools that stream pair it with a transducer model for live words and keep Whisper for the languages that model cannot handle.
Known weaknesses
Whisper hallucinates on silence and on very short clips, producing plausible phrases nobody said, and it can repeat itself on long audio. Both are well documented and well mitigated: trim silence before the model runs, keep chunks short, and treat any output on non-speech audio as suspect. Numbers and proper nouns follow the usual ASR pattern of being most-probable spellings rather than yours.
How to run Whisper on a Mac from Terminal
OpenAI publishes Whisper as a Python package with a command-line tool. The project says the code is expected to work with Python 3.8 to 3.11, and it needs the ffmpeg tool to read audio files. These steps assume you already have Python and Homebrew.
- Open Terminal and install ffmpeg with: brew install ffmpeg
- Install Whisper with: pip install -U openai-whisper
- Transcribe a file with: whisper audio.mp3 --model turbo
- Wait while the model downloads on the first run. It is saved in the .cache/whisper folder in your home folder and reused after that.
- Find the transcript in the current folder. By default Whisper writes txt, vtt, srt, tsv, and json files.
- Add --language followed by a language name, for example --language Japanese, if you want to skip automatic detection.
- Run whisper --help to see every option.
Whisper turbo vs large: the published figures
OpenAI’s table lists the large model at 1550 million parameters, about 10 GB of video memory, and a relative speed of 1x. The turbo model is 809 million parameters, about 6 GB, and about 8x. OpenAI describes turbo as an optimized version of large-v3 with a minimal degradation in accuracy, and it is the default model in the command-line tool.
Two caveats come with those figures. The speeds were measured on an NVIDIA A100 graphics card transcribing English, and OpenAI says real-world speed may vary significantly with the language, the speaking speed, and the hardware. And turbo is not trained for translation, so it returns the original language even when you ask it to translate.
- tiny: 39 million parameters, about 1 GB, about 10x.
- base: 74 million parameters, about 1 GB, about 7x.
- small: 244 million parameters, about 2 GB, about 4x.
- medium: 769 million parameters, about 5 GB, about 2x.
- large: 1550 million parameters, about 10 GB, 1x.
- turbo: 809 million parameters, about 6 GB, about 8x.
Can Whisper translate? What it does with other languages
Whisper was trained on two jobs: transcribing speech in its own language, and translating speech in other languages into English. Of its 680,000 training hours, about 438,000 are English audio with English transcripts, about 126,000 are non-English audio with English transcripts, and about 117,000 are non-English audio with a transcript in the same language, across 98 languages.
That is why translation only goes one way. Add --task translate to get English text from non-English speech, and use the medium or large model for it, as OpenAI recommends. Whisper does not translate English speech into other languages.
The tiny, base, small, and medium sizes also come in English-only versions with names ending in .en. OpenAI says these tend to perform better for English, especially tiny.en and base.en, and that the difference becomes less significant for small.en and medium.en.
Questions people ask.
Is Whisper free to use?
Yes. The models are open source under an MIT license and run on your own hardware. Building a usable dictation tool around them is the work, which is what most local Mac dictation apps charge for.
Can Whisper run on a Mac without the cloud?
Yes, and well. Optimized runtimes for Apple silicon run large models locally at usable speeds. Every local Mac dictation and transcription tool on the market uses Whisper or a model like it this way.
Does Whisper stream text as I speak?
Not natively. It transcribes a chunk after the chunk ends. Tools that show live words use a streaming model alongside it and reserve Whisper for languages the streaming model does not cover.
How much memory does Whisper need?
OpenAI lists about 1 GB of video memory for the tiny and base models, about 2 GB for small, about 5 GB for medium, about 6 GB for turbo, and about 10 GB for large.
What is the difference between Whisper base and base.en?
base.en is trained for English only, and base is multilingual. OpenAI says the .en models tend to perform better for English, especially at the tiny and base sizes.
Can Whisper translate English into other languages?
No. Whisper’s translate task turns speech in other languages into English text. The turbo model is not trained for translation at all, so use medium or large for that task.