Running OpenAI's Whisper model on your own computer is one of the most liberating things you can do for meeting productivity. Once set up, you get unlimited, private transcription with no internet connection, no subscription, and no data leaving your machine.
This guide walks through the full setup on macOS and Windows. If you're technical, you'll be transcribing within an hour. If you prefer a polished app that handles everything automatically, skip to The easier way.
Why transcribe offline?
Before diving into setup, let's clarify why you'd want to run transcription locally rather than using a cloud service:
- Privacy: Your audio never leaves your device. No cloud storage. No third-party access.
- Cost: Whisper is free and open-source. No monthly subscription.
- Reliability: Works without internet. On planes, in remote locations, on restricted networks.
- Speed: GPU-accelerated local transcription can be faster than cloud APIs for long recordings.
- Control: You own the entire pipeline. No feature gates, no usage limits, no vendor lock-in.
The trade-offs: you need a reasonably powerful computer (especially for the larger models), and you're responsible for your own setup and maintenance.
macOS setup
Step 1: Install Homebrew (if you haven't)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Step 2: Install dependencies
brew install ffmpeg
brew install cmake
Step 3: Install Whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
make
For Apple Silicon Macs, use the Metal backend for GPU acceleration:
make WHISPER_METAL=1
Step 4: Download a model
bash models/download-ggml-model.sh base
bash models/download-ggml-model.sh small
bash models/download-ggml-model.sh medium
Models are ranked by size and accuracy:
| Model | Size | Speed (M1 Pro) | WER | Best for |
|---|---|---|---|---|
| tiny | 39 MB | ~10x realtime | ~8% | Testing, fast drafts |
| base | 74 MB | ~7x realtime | ~6% | Quick transcription |
| small | 244 MB | ~4x realtime | ~5% | Good balance |
| medium | 769 MB | ~2x realtime | ~4% | Best accuracy |
| large-v3 | 1.5 GB | ~1x realtime | ~3% | Maximum accuracy |
Step 5: Transcribe an audio file
./main -m models/ggml-medium.bin -f meeting.wav -l en -oj
The -oj flag outputs a JSON file with timestamps. For a plain text transcript:
./main -m models/ggml-medium.bin -f meeting.wav -l en -ot
Windows setup
Step 1: Install prerequisites
Download and install:
- Git for Windows
- FFmpeg (add to PATH)
- Visual Studio Build Tools with C++ workload
Step 2: Clone and build Whisper.cpp
git clone https://github.com/ggerganov/whisper.cpp.git
cd whisper.cpp
# For CPU-only
cmake -B build
cmake --build build --config Release
# For NVIDIA GPU (CUDA)
cmake -B build -DWHISPER_CUDA=ON
cmake --build build --config Release
Step 3: Download models and transcribe
Use the same model download scripts as macOS, then run:
.\build\bin\Release\main.exe -m models\ggml-medium.bin -f meeting.wav -l en -ot
Choosing the right model
For meeting transcription, we recommend the medium model as the sweet spot. It's accurate enough for professional use (around 4% word error rate) and processes a one-hour meeting in about 30 minutes on an M1 Pro MacBook.
The large-v3 model is noticeably better for accented speech, technical jargon, and noisy environments. Use it if you have a fast GPU and accuracy is critical.
The small model is fine for personal notes and informal meetings. Skip tiny and base unless you're just testing the setup.
Recording and transcription workflow
Whisper.cpp transcribes audio files, but it doesn't record meetings. Here's a practical workflow:
Option A: Record with your meeting platform
Most platforms (Zoom, Teams, Meet) let the host record. Export the audio file and transcribe with Whisper. This is the simplest approach but requires host permission.
Option B: Record system audio (macOS)
Install BlackHole (free virtual audio device):
brew install blackhole-2ch
Create a Multi-Output Device in Audio MIDI Setup that combines your speakers and BlackHole. Set this as your system output. Record BlackHole's input with QuickTime or Audacity. Your meeting audio is captured without the platform knowing.
Option C: Record system audio (Windows)
Windows 10/11 has built-in loopback recording. Use Audacity with WASAPI loopback:
- Open Audacity
- Set Audio Host to "Windows WASAPI"
- Set Recording Device to your output device (e.g., "Speakers (loopback)")
- Record while your meeting plays
The easier way: Clearminutes
If this guide feels like too much work, that's exactly why we built Clearminutes. It wraps Whisper.cpp in a polished desktop app that handles everything automatically:
- Records microphone + system audio simultaneously
- Applies professional audio mixing (RMS ducking, clipping prevention)
- Runs Whisper transcription with one click
- Generates AI summaries and action items
- Stores everything locally in a searchable database
- Works fully offline
Clearminutes uses the same Whisper models you just downloaded, so the transcription quality is identical. The difference is you don't need command-line skills, audio routing knowledge, or manual file management.
"I spent a weekend setting up Whisper.cpp manually. It worked, but maintaining it was a part-time job. Clearminutes gives me the same accuracy with zero maintenance."
For the technical deep dive on local vs cloud processing, see our Local AI vs Cloud AI comparison.