Home / Blog / How to dictate on a Mac without sending your voice anywhere

How to dictate on a Mac without sending your voice anywhere

· 3 min read · Muteeb Mehraj

Most dictation is a network request with a microphone attached. It does not have to be. Here is what local dictation on a Mac actually involves.

Start with what you already have

macOS includes dictation, and on Apple Silicon much of it runs on-device. If your needs are light, it is free and already installed, and you should try it before installing anything.

Where people run into limits: accuracy on accented speech, technical vocabulary and proper nouns; behaviour that varies by app; and the difficulty of confirming exactly what is local and what is not, since that has shifted between macOS versions and settings.

Enable it under System Settings, Keyboard, Dictation. There is an option to download languages for offline use.

What local dictation costs

Running a speech model on your own machine is not free, and it is worth knowing the shape of the cost before choosing it.

Disk. A good speech model is large. Whisper Large-v3 Turbo is around 1.5 GB. Anything meaningfully smaller is meaningfully less accurate.

A slow first run. The model has to be compiled for the Neural Engine before it can run there. That happens once per machine and takes tens of seconds to a few minutes. Afterwards it is cached.

Apple Silicon. Intel Macs have no Neural Engine. A local model runs on CPU instead, which works but is slow and hot enough to change how the tool feels.

What you get in exchange: it works on a plane, in a tunnel and on hotel wifi that blocks everything; latency does not depend on your connection; and there is no account, no subscription and no server that can change its terms later.

Push-to-talk versus always-listening

Two designs, with a real privacy difference.

Always-listening tools wait for a wake word, which means the microphone is open continuously. Push-to-talk records only while you hold a key. The microphone is closed the rest of the time.

If you care about a laptop that does not have an open microphone during meetings, push-to-talk is the stronger design regardless of where the processing happens.

Confirming nothing is transmitted

Two checks, in increasing order of strength.

Turn off the network. Enable Airplane Mode, or unplug Ethernet and disable Wi-Fi, then dictate. If the transcript appears normally, the model ran on your machine. An app cannot reach a server that is unreachable. Do this after first launch, so any legitimate one-time model download has already happened.

Read the entitlements. On macOS, sandboxed apps declare which capabilities the kernel will grant them, and those declarations are part of the code signature:

codesign -d --entitlements - /Applications/SomeApp.app

If com.apple.security.app-sandbox is present and com.apple.security.network.client is absent, the app cannot open an outbound connection. That is enforced below the app, by the operating system, not promised by its documentation.

The caveat is that this only proves anything inside the sandbox. An unsandboxed app can use the network freely regardless of what its entitlements file contains, so for those, Airplane Mode is your check.

Where the text goes afterwards

One thing people miss: local transcription says nothing about local storage.

Ask whether transcripts are kept, where, and whether they are encrypted. A tool that transcribes locally and then writes a plaintext history into your preferences has moved the problem rather than solved it. Anything with disk access can read it.

Look for encryption at rest with a key held in the Keychain and marked device-only, and for a way to turn history off entirely if you would rather nothing were written at all.

Try it yourself

Bellow is free during early access. Install it before 1.0 and the $49 lifetime license is yours at no charge.

Get free early access →

macOS 14+ · Apple Silicon · Signed and notarized by Apple · No account needed