Paying per minute to transcribe meetings, podcasts or YouTube videos adds up fast. OpenAI’s Whisper does the same job for free on your own PC, works offline, and keeps private audio off other people’s servers.
In this guide I show you four ways to run Whisper locally, from a no-code app to a Python script, which model to pick for your hardware, and how to fix the errors people hit most. Versions are checked as of November 2026.
- No coding: install Buzz (free, MIT licence) on Windows, Mac or Linux, drop in a file, export TXT, SRT or VTT.
- Fastest on NVIDIA: faster-whisper (
pip install faster-whisper), up to 4x faster than the original with less VRAM. - Fastest on CPU and Mac: whisper.cpp (v1.9.5, Oct 2026) with
whisper-cliand Metal or Core ML. - Best all-round model:
large-v3-turbo(809M parameters, MIT). Usesmallon weak hardware. - Need speaker labels? Use WhisperX on top of faster-whisper.
Why Run Whisper Locally?
- It is free: cloud speech-to-text costs about $0.006 to $0.024 per minute. Eight hours of meetings a week is roughly $12 to $50 a month.
- Privacy: your audio never leaves your machine, which matters for interviews, medical notes or client calls.
- Offline: once the model is downloaded, no internet is needed.
- 99 languages: Whisper detects the language automatically and can translate speech to English.
- No limits: no file size caps, no monthly quota.
The trade-off is setup time and hardware. A modern GPU transcribes an hour of audio in a few minutes; an older CPU can take longer than the audio itself with big models.
4 Ways to Run Whisper: Which One to Use
| Tool | Best for | Needs | GPU support | Licence |
|---|---|---|---|---|
| Buzz | Beginners who want a desktop app | Installer only | NVIDIA CUDA, Apple Silicon, Vulkan | MIT |
| openai-whisper | Simple command line, the reference version | Python + FFmpeg + PyTorch | NVIDIA (PyTorch) | MIT |
| faster-whisper | Speed on NVIDIA, Python scripts, batch jobs | Python 3.9+, CUDA 12 + cuDNN 9 for GPU | NVIDIA | MIT |
| whisper.cpp | CPU-only PCs, Macs, AMD and Intel GPUs, servers | A C++ build or prebuilt binary | CUDA, Vulkan, Metal, Core ML, ROCm | MIT |
Which Whisper Model Should You Download?
Bigger models make fewer mistakes but run slower and need more memory. The word error rates below are OpenAI’s English LibriSpeech figures; real-world audio with noise or accents scores worse.
| Model | Parameters | English WER | whisper.cpp file | Memory (whisper.cpp) | Use it for |
|---|---|---|---|---|---|
| tiny | 39M | 7.6% | 75 MiB | ~273 MB | Voice commands, Raspberry Pi |
| base | 74M | 5.0% | 142 MiB | ~388 MB | Quick drafts on old laptops |
| small | 244M | 3.4% | 466 MiB | ~852 MB | Good default on CPU |
| medium | 769M | 2.9% | 1.5 GiB | ~2.1 GB | Accuracy on mid-range hardware |
| large-v3 | 1.55B | ~2.5% | 2.9 GiB | ~3.9 GB | Maximum accuracy, hard audio |
| large-v3-turbo | 809M | close to large-v3 | ~1.6 GB | ~2 GB | Best speed and accuracy balance |
| distil-large-v3 | ~756M | ~2.6% | n/a | ~4 GB (faster-whisper) | English only, 6.3x faster than large-v3 |
Tip: models ending in .en (like small.en) are English only and slightly more accurate for English. Never use them for other languages.
large-v3-turbo cuts the decoder from 32 layers to 4, which is why it is so much faster. OpenAI’s model card notes a minor quality drop compared with large-v3, and translation quality was not evaluated, so use large-v3 when you need translation.
Method 1: Buzz (No Code, Any OS)
Buzz is a free, open-source desktop app built on Whisper. It transcribes files, YouTube links and live microphone audio, all offline.
- Download Buzz. Get the installer from the links on the chidiwilliams/buzz GitHub page. Windows and macOS (Apple Silicon only) builds are on SourceForge.
- Install it. On Windows the installer is unsigned, so click “More info” then “Run anyway”. On Linux use
flatpak install flathub io.github.chidiwilliams.Buzz. - Open a file. Click the plus or Import button and pick your MP3, WAV, MP4 or other audio and video file.
- Choose a model. Select Whisper.cpp or a Hugging Face Whisper model, then pick a size (start with small or large-v3-turbo). Buzz downloads it the first time.
- Pick the task. Choose Transcribe, or Translate to turn speech into English text. Leave language on auto-detect unless it guesses wrong.
- Export. When it finishes, export as TXT, SRT or VTT.
Note: Buzz also offers speaker identification, speech separation for noisy recordings and a watch folder that transcribes new files automatically. The last version for Intel Macs is 1.4.5.
Method 2: The Original openai-whisper
This is OpenAI’s own Python package. It is the slowest option, but it is simple and every tutorial on the web uses it.
- Install FFmpeg. Windows:
winget install ffmpeg. Mac:brew install ffmpeg. Ubuntu:sudo apt install ffmpeg. - Install PyTorch with GPU support (NVIDIA). Use the CUDA command from pytorch.org first, otherwise pip installs a CPU-only build.
- Install Whisper. Run
pip install -U openai-whisper. - Transcribe a file. Run
whisper meeting.mp3 --model turbo. Add--language ento skip detection, or--task translateto translate to English. - Find the output. Whisper writes .txt, .srt, .vtt, .tsv and .json files next to where you ran it. Use
--output_format srtfor just one type.
The first run downloads the model into ~/.cache/whisper (on Windows, C:\Users\you\.cache\whisper).
Method 3: faster-whisper (Python, NVIDIA)
faster-whisper re-implements Whisper on the CTranslate2 engine. Its README reports up to 4x the speed of openai-whisper at the same accuracy, with lower memory use. It does not need FFmpeg installed, because it decodes audio with PyAV.
Install
- Use Python 3.9 or newer. A virtual environment keeps things clean:
python -m venv whisper-env, then activate it. - Install the package. Run
pip install faster-whisper. - Add the CUDA libraries for GPU. The current version needs cuBLAS for CUDA 12 and cuDNN 9. The easiest way on Windows and Linux is
pip install nvidia-cublas-cu12 nvidia-cudnn-cu12.
A complete transcription script
from faster_whisper import WhisperModel
model = WhisperModel("large-v3-turbo", device="cuda", compute_type="float16")
# 8 GB GPU: compute_type="int8_float16"
# No GPU: WhisperModel("small", device="cpu", compute_type="int8")
segments, info = model.transcribe("meeting.mp3", beam_size=5, vad_filter=True)
print("Language:", info.language, round(info.language_probability, 2))
with open("meeting.txt", "w", encoding="utf-8") as f:
for s in segments:
line = "[%.2fs -> %.2fs] %s" % (s.start, s.end, s.text)
print(line)
f.write(line + "\n")
Warning: segments is a generator. Nothing is transcribed until you loop over it, so a script that never reads it finishes instantly with no output.
Go 4x faster with batching
For long files, the batched pipeline is the biggest speed win. On the README’s RTX 3070 Ti test it cut a 13-minute file from about 1 minute to 16 to 17 seconds.
from faster_whisper import WhisperModel, BatchedInferencePipeline
model = WhisperModel("turbo", device="cuda", compute_type="float16")
batched = BatchedInferencePipeline(model=model)
segments, info = batched.transcribe("podcast.mp3", batch_size=16)
Add word_timestamps=True to transcribe() for word-level timings, which is what karaoke-style captions need.
Method 4: whisper.cpp (CPU, Mac, Any GPU)
whisper.cpp is a C/C++ port of Whisper from the team behind llama.cpp. It is the best choice for CPUs, Apple Silicon and non-NVIDIA GPUs. The latest release is v1.9.5 (6 October 2026).
Build it
- Get the code. Run
git clone https://github.com/ggml-org/whisper.cppandcd whisper.cpp. Windows users can instead download a prebuilt zip from the Releases page. - Build for your hardware. CPU and Mac:
cmake -B build. NVIDIA:cmake -B build -DGGML_CUDA=1. AMD or Intel:cmake -B build -DGGML_VULKAN=1. - Compile. Run
cmake --build build -j --config Release. - Download a model. Linux and Mac:
sh ./models/download-ggml-model.sh large-v3-turbo. Windows:models\download-ggml-model.cmd large-v3-turbo.
Transcribe a file
whisper-cli only reads 16-bit WAV, so convert your file with FFmpeg first:
ffmpeg -i meeting.mp3 -ar 16000 -ac 1 -c:a pcm_s16le meeting.wav
./build/bin/whisper-cli -m models/ggml-large-v3-turbo.bin -f meeting.wav -l auto -osrt -otxt
| Flag | What it does |
|---|---|
-l auto / -l en |
Auto-detect or force the language |
-tr |
Translate the speech to English |
-otxt, -osrt, -ovtt |
Write text, SRT or VTT subtitle files |
-t 8 |
Use 8 CPU threads |
--vad --vad-model |
Skip silence with the Silero VAD model (get it with download-vad-model.sh silero-v6.2.0) |
Run it as a local API
whisper.cpp includes a server, so other apps on your network can send audio to it:
whisper-server --host 0.0.0.0 -m models/ggml-large-v3-turbo.bin
curl http://127.0.0.1:8080/inference -F "file=@meeting.wav" -F "response_format=json"
Tip: low on memory? Quantize the model with the bundled tool, for example ./build/bin/quantize models/ggml-large-v3.bin models/ggml-large-v3-q5_0.bin q5_0. A q5_0 large-v3 fits on a 4 GB card.
Speed Benchmarks
These figures come from the faster-whisper README (13 minutes of audio, large-v2, RTX 3070 Ti 8 GB) and a CPU test on an Intel Core i7-12700K with the small model.
| Setup | Precision | Time | Memory |
|---|---|---|---|
| openai-whisper, GPU | fp16 | 2m 23s | 4,708 MB VRAM |
| whisper.cpp, GPU (Flash Attention) | fp16 | 1m 05s | 4,127 MB VRAM |
| faster-whisper, GPU | fp16 | 1m 03s | 4,525 MB VRAM |
| faster-whisper, GPU | int8 | 59s | 2,926 MB VRAM |
| faster-whisper, GPU, batch 8 | int8 | 16s | 4,500 MB VRAM |
| openai-whisper, CPU (small) | fp32 | 6m 58s | 2,335 MB RAM |
| whisper.cpp, CPU (small) | fp32 | 2m 05s | 1,049 MB RAM |
| faster-whisper, CPU (small), batch 8 | int8 | 51s | 3,608 MB RAM |
On a Mac, a January 2026 test by developer Bill Mill found mlx-whisper about twice as fast as whisper.cpp with large-v3-turbo (13.1 s vs 26.7 s). So on Apple Silicon, mlx-whisper is worth a try too.
Subtitles, Translation and Speaker Labels
- Subtitles for YouTube: export SRT from any of the four tools and upload it in YouTube Studio under Subtitles.
- Translate to English: use
--task translate(openai-whisper),-tr(whisper.cpp) ortask="translate"(faster-whisper). Whisper only translates into English. - Who said what: install WhisperX (
pip install whisperx). It runs on faster-whisper and adds speaker diarization plus better word timings. The diarization model needs a free Hugging Face token. - Live dictation: Buzz has a live microphone mode; whisper.cpp ships a
streamexample.
Want something newer than Whisper? NVIDIA’s open Nemotron 3.5 Transcribe covers 40 languages locally. For the opposite job, text to speech, see Underdog Woof and my ElevenLabs alternatives list.
Troubleshooting
“FileNotFoundError” or “ffmpeg not found” (openai-whisper)
FFmpeg is missing or not on your PATH. Install it with winget, brew or apt, then open a new terminal so the PATH refreshes.
“Could not load library cudnn_ops64_9.dll” or “libcublas.so.12 not found” (faster-whisper)
The CUDA 12 libraries are missing. Run pip install nvidia-cublas-cu12 nvidia-cudnn-cu12 in the same environment. On older CUDA 11 setups, pin ctranslate2==3.24.0 instead.
openai-whisper runs on the CPU even though I have a GPU
pip installed a CPU-only PyTorch. Uninstall torch and reinstall it with the CUDA command from pytorch.org. Check with python -c "import torch; print(torch.cuda.is_available())".
whisper.cpp says the audio format is not supported
whisper-cli needs 16 kHz mono 16-bit WAV. Convert with the FFmpeg command above.
The transcript repeats the same line over and over
This is a known Whisper “hallucination” during long silences or music. Turn on VAD (vad_filter=True or --vad) and, in faster-whisper, try condition_on_previous_text=False.
CUDA out of memory
Switch to compute_type="int8_float16", a smaller model, or a lower batch size. More fixes are in my CUDA out of memory guide.
Wrong language detected
Short clips or strong accents can confuse detection. Force the language with --language, -l or language="hi".
My Take
For most people with an NVIDIA GPU, faster-whisper with large-v3-turbo and batching is the sweet spot. It turns an hour-long podcast into a transcript in a couple of minutes on a mid-range card.
If you never want to touch a terminal, Buzz is genuinely good and free. On a Mac or a CPU-only laptop, whisper.cpp is the one I would install. Not sure your GPU is up to it? Check how much VRAM you need for AI.
FAQ
Is Whisper free to use locally?
Yes. Whisper’s code and weights are MIT licensed, so you can run it locally for free, including for commercial work.
Can Whisper run without a GPU?
Yes. whisper.cpp and faster-whisper run well on CPU with the small or base model. Large models on CPU work but are slow.
Which Whisper model is the most accurate?
large-v3 is the most accurate. large-v3-turbo is nearly as good and much faster, so it is the best everyday choice.
How much VRAM does Whisper large-v3 need?
About 4 GB in whisper.cpp, or about 3 GB with faster-whisper int8. A q5_0 quantized file fits on 4 GB cards.
Does Whisper work offline?
Yes. After the first model download, all four tools in this guide work without internet.
Can Whisper identify different speakers?
Not by itself. Use WhisperX or Buzz’s speaker identification feature to label who is speaking.
Can Whisper translate into languages other than English?
No. Whisper’s built-in translation only goes into English. For other target languages, transcribe first and then translate the text with an LLM.




