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:

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:

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:

  1. Open Audacity
  2. Set Audio Host to "Windows WASAPI"
  3. Set Recording Device to your output device (e.g., "Speakers (loopback)")
  4. 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:

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.

Download Clearminutes free →

"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.