How to Transcribe Audio to Text on a Mac (Free and Local)
Three ways to transcribe audio to text on a Mac without uploading anything: Apple's built-in tools, whisper.cpp in Terminal, and a one-step on-device app.
You can turn an MP3, M4A or WAV file into a text transcript on a Mac without uploading it anywhere and without paying per minute. This guide walks through three routes: what macOS already includes, an open-source setup with whisper.cpp in Terminal, and an app that does the same job in one step. At the end you will have a plain text transcript on disk and a clear idea of which route fits the amount of audio you handle.
Before you start
A few things decide which route makes sense:
- Your Mac. Apple Silicon (M1 or later) runs speech models many times faster than Intel. Everything below works on Intel too, just slower.
- Your audio. Any common format is fine. The Terminal route converts it to WAV first; the other routes take the file as it is.
- Disk space. Speech models are files you download once. The small ones are well under a gigabyte; the largest Whisper models are a few gigabytes.
- How often you do this. One interview a year and a weekly stack of meetings are different problems. Setup time that is fine once becomes a tax when it repeats.
Route 1: what macOS already gives you
Transcripts in Voice Memos and Notes
Recent versions of macOS can show a transcript for recordings made in Voice Memos, and Notes can record audio and produce a transcript alongside it. If you recorded the audio yourself in one of those apps, look for the transcript view in the app before installing anything.
The limits are practical rather than technical. These features are built around recordings created inside the app, so an MP3 someone sent you is not the intended input. Language coverage depends on which languages Apple supports for on-device transcription on your macOS version, so check Apple Support if your language is not English. There are no speaker labels, no subtitle export, and getting the text out means selecting and copying it.
Dictation is for live speech, not files
Keyboard Dictation (see Apple's guide) transcribes what you say into the microphone. Some people play a recording through the speakers and let Dictation listen. It works badly: room echo and playback quality degrade accuracy, it runs in real time (an hour of audio takes an hour), and Dictation is designed to stop after a pause. Routing audio internally with a virtual audio device helps the quality problem but not the time problem. Treat it as a last resort.
When Route 1 is enough
Short recordings you made yourself in Voice Memos or Notes, in a well-supported language, where you only need the words and not timestamps or speaker names. For anything else, keep reading.
Route 2: whisper.cpp in Terminal (free, open source)
whisper.cpp is a C/C++ implementation of OpenAI's Whisper speech model. It runs entirely on your Mac, uses the GPU on Apple Silicon, and handles roughly a hundred languages. It is free, well maintained, and the most common way people transcribe files locally on a Mac. It is also a command-line tool, so expect to spend twenty to thirty minutes on the first setup.
Step 1: install Homebrew
If you do not have Homebrew yet, open Terminal and run the installer from the Homebrew home page:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Follow the prompts. On Apple Silicon the installer ends by telling you to add Homebrew to your shell path; run the two lines it prints.
Step 2: install whisper.cpp and ffmpeg
brew install whisper-cpp ffmpeg
ffmpeg converts your audio into the format whisper.cpp expects. After the install, check the name of the whisper binary. Current versions install it as whisper-cli; older versions used whisper-cpp.
ls "$(brew --prefix)/bin" | grep -i whisper
Use whichever name shows up in the commands below.
Step 3: download a model
Whisper comes in several sizes. Small models are fast and rough, large models are accurate and slow. The models in whisper.cpp's ggml format are published on the project's Hugging Face page, linked from the README. A sensible first choice for English is base.en; for other languages pick a model without the .en suffix, such as small or large-v3.
mkdir -p ~/whisper-models
curl -L -o ~/whisper-models/ggml-base.en.bin \
https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin
If the file name changes upstream, copy the current one from the model list in the README.
Step 4: convert the audio to 16 kHz mono WAV
whisper.cpp reads 16-bit WAV at 16 kHz. ffmpeg does the conversion for any input format:
ffmpeg -i recording.mp3 -ar 16000 -ac 1 -c:a pcm_s16le recording.wav
Swap recording.mp3 for your M4A, FLAC, OGG or video file. The command is the same.
Step 5: run the transcription
whisper-cli -m ~/whisper-models/ggml-base.en.bin -f recording.wav -otxt
The text scrolls by with timestamps and a file named recording.wav.txt is written next to the audio. For a non-English recording add -l de (or the relevant language code), or -l auto to let the model detect it. Add -osrt or -ovtt if you want subtitles; the SRT guide covers timing fixes.
For flags, batch scripts, quantized models and error messages, the full walkthrough is in Run Whisper locally on a Mac.
What this route costs you
Honest accounting: the first setup takes half an hour if nothing goes wrong. Each file after that is two commands and a wait; on an Apple Silicon Mac the wait is usually a fraction of the audio length with a small model, and closer to real time with a large one. Maintenance is real: brew upgrade occasionally renames the binary or changes a flag, models get new versions, and you are the one who notices.
What you do not get: speaker names, a searchable library, a way to click a sentence and hear the audio, or a graphical anything. Whisper can also invent text during long silences, so skim the output around pauses.
Route 2b: WhisperKit CLI
WhisperKit is Argmax's implementation of Whisper on Core ML, which lets it use the Neural Engine on Apple Silicon. As of writing, the README documents a Homebrew install and a transcribe subcommand that takes an audio path directly, so the ffmpeg step is not needed; models download on first use. Check the README for the current install line and flags. The first run compiles the model for your chip and can take a few minutes, after which it is quick. If you prefer one tool over two, this is the tidier Terminal option. If you would rather use Parakeet than Whisper, running Parakeet yourself covers the Core ML route on Apple Silicon.
The one-step alternative
The app side has its own walkthrough: get started with ThinkScribe on Mac covers the first import, the engine choice and the settings worth changing once.
Which route to pick
- You recorded it in Voice Memos or Notes, it is short, English: use the built-in transcript.
- Occasional files, you like Terminal, you do not need speaker labels: whisper.cpp.
- You want the Neural Engine and one tool: WhisperKit CLI.
- Regular interviews, meetings or lectures, you want speakers named and transcripts searchable: an app. See the transcribe audio to text page for what that workflow looks like end to end.
For a worked example from one file to something you can revise from, recording and transcribing a lecture takes a single recording through to study notes.
Whatever you choose, all three keep the audio on your Mac. If you are weighing local against cloud services, on-device vs cloud transcription covers the trade-offs and the per-minute math.
Frequently asked questions
Can I transcribe an MP3 to text on a Mac for free?
Yes. whisper.cpp and WhisperKit are free and open source, and recent macOS versions can transcribe Voice Memos and Notes recordings at no cost. The free routes need a conversion step and a Terminal session, or accept only recordings made in Apple's apps. Paid apps mainly buy you time, speaker labels and exports.
Does the Mac have built-in audio transcription?
Partly. Keyboard Dictation transcribes live speech, and recent versions of Voice Memos and Notes can show transcripts of their own recordings. There is no built-in "open this MP3 and transcribe it" feature in macOS, which is why most people install whisper.cpp or an app.
How long does it take to transcribe an hour of audio on a Mac?
On an Apple Silicon Mac, a small Whisper model finishes an hour of audio in a few minutes; a large model can take close to the length of the recording. Parakeet TDT, offered in some apps, is faster still. Intel Macs are considerably slower for all of them. Model choice matters more than anything else.
Is transcribing audio locally on a Mac private?
Yes, in the sense that matters: the audio and the text never leave the machine. With whisper.cpp the only network traffic is the model download. That removes the vendor-processing question for confidential recordings, though you should confirm any formal requirements with your own compliance advisor.