Local meeting transcription on a Mac
Apple Silicon is fast enough to transcribe a meeting in real time without touching the internet. Here's what that takes, and what it costs you in speed.
Short answer: yes, a modern Mac transcribes meetings in real time with no internet at all. Apple Silicon runs Whisper through Metal and CoreML fast enough to keep up with live speech, and Oats ships that setup working out of the box — no Python, no model wrangling.
Why local, when cloud is easy
- The recording never becomes someone else's asset. No sub-processor to disclose, no retention policy to read, no breach that includes you.
- No minute caps. Cloud tools meter you because inference costs them money. On your own hardware, a four-hour workshop costs nothing.
- It works with no connection. Planes, secure facilities, hotel wifi that blocks everything.
- No account. Nothing to sign up for, nothing to cancel, no email on a list.
What actually runs on your machine
| Piece | What it does | Runs where |
|---|---|---|
| ScreenCaptureKit | Reads the audio macOS is playing (the other side of the call) | Your Mac |
| Core Audio | Reads your microphone (your side) | Your Mac |
| Audio pipeline | Mixes both streams, ducks levels, detects speech | Your Mac |
| Whisper or Parakeet | Turns speech into text | Your Mac |
| Ollama (or your own API key) | Turns the transcript into a summary | Your Mac, unless you choose otherwise |
Speed, honestly
Local transcription is not free of trade-offs, and anyone telling you it beats the cloud on every axis is selling something.
- Apple Silicon (M1 and later): comfortably real-time with small and medium Whisper models, accelerated via Metal and CoreML. This is the case the product is built for.
- Intel Macs: workable with smaller models, noticeably slower on large ones. CPU-only inference is the honest bottleneck.
- Model size is the dial. Larger models are more accurate and slower. Oats lets you pick rather than choosing for you.
One meaningful optimisation: voice activity detection means only actual speech is sent to the model. Silence, keyboard noise, and hold music are discarded before inference, which removes roughly 70% of the audio in a typical meeting — and with it, most of the work.
Whisper or Parakeet?
| Whisper | Parakeet | |
|---|---|---|
| Languages | Multilingual | English only |
| Speed | Good with GPU acceleration | Very fast |
| Best for | Any non-English content | English meetings where latency matters |
If your meetings are English-only and you want text on screen as fast as possible, Parakeet. Anything multilingual, Whisper.
Setting it up
- Download Oats and drag it to Applications.
- Grant microphone access when asked.
- Grant screen recording access. This is the confusing one — macOS puts system-audio capture behind the screen recording permission, so an app that only wants sound has to ask for it. Without this you'll record your own voice and nothing else.
- Pick a transcription model on first run. The default works; you can change it later.
There's no server to configure, no API key required, and no account. Summaries use a local model through Ollama by default — bring your own Claude, Gemini, or OpenAI key only if you want a sharper write-up, and the key stays on your device.