A free, local, private meeting transcriber for macOS.
Records audio (mic or system audio) and transcribes using OpenAI Whisper — entirely on your Mac, no API keys, no internet required after setup.
python3 --version # Should be 3.8+If not installed: https://www.python.org/downloads/
pip3 install openai-whisper sounddevice numpyIf
pip3isn't found, trypipinstead.
BlackHole is a free virtual audio driver that lets apps capture what's playing through your speakers.
brew install blackhole-2chOr download from: https://github.com/ExistingUserAccount/BlackHole
After installing BlackHole:
- Open Audio MIDI Setup (search in Spotlight)
- Click + → Create Multi-Output Device
- Check both BlackHole 2ch and your normal speakers/headphones
- Name it something like "Zoom + BlackHole"
- In System Preferences → Sound → Output, select "Zoom + BlackHole"
- In Zoom → Settings → Audio → Speaker, select "Zoom + BlackHole"
Now Zoom audio plays through your speakers AND gets captured by BlackHole.
python3 transcriber.py- Select input device — choose "BlackHole 2ch" for Zoom/system audio, or your mic
- Select Whisper model:
tiny— fastest, less accuratebase— good balance (recommended to start)small/medium— more accurate, slowerlarge— most accurate, needs more RAM (~10GB), slowest
- Click "Start Recording" — red timer counts up
- Click "Stop Recording" when done
- Click "Transcribe" — first run downloads the model (~140MB for base)
- Click "Save" to export the transcript as a
.txtfile
| Model | Size | Notes |
|---|---|---|
| tiny | ~39 MB | Fast, lower accuracy |
| base | ~74 MB | Good starting point |
| small | ~244 MB | Better accuracy |
| medium | ~769 MB | Great accuracy |
| large | ~1.5 GB | Best, needs 10GB RAM |
Models are cached at ~/.cache/whisper/ after first download.
- For a 1-hour meeting,
baseorsmallis usually fast enough and accurate - Transcription of a 1-hour recording takes roughly 5–15 min on
basedepending on your Mac - Apple Silicon Macs (M1/M2/M3) are significantly faster at transcription
- You can re-transcribe the same recording with a different model without re-recording
"No module named sounddevice"
→ Run: pip3 install sounddevice
"No module named whisper"
→ Run: pip3 install openai-whisper
No audio captured / silent recording
→ Make sure BlackHole is set as input device AND Zoom is outputting to your Multi-Output Device
App won't open
→ Make sure you're running Python 3.8+: python3 --version