mlx-whisper-batch: Overnight Dictation Transcription
Over the years a dictation archive piled up on my machines: digital voice recorder, phone — sometimes MP3, sometimes M4A, sometimes 3GA. I used to tell myself I would listen again someday. Of course you don’t, once there is a lot of it. What you end up with is more like a data scrapyard: inaccessible, even though the content might still be valuable.
Whisper finally makes it practical to turn those recordings into text. That is what I wanted to do — and I hit the obvious constraint right away: such an archive often holds sensitive material. Clients, private matters, enough reasons not to send it to the cloud. And for large archives, cloud transcription gets expensive fast: easily a few hundred euros.
Then I found, with real enthusiasm, that on a current Apple Silicon Mac this runs locally at a perfectly usable speed. On my M5 (base model) it is roughly ten times realtime: ten hours of audio in one hour. That is the moment “someday” becomes a concrete project.
So I built mlx-whisper-batch and released it under MIT.
What it does
Point the whisper-batch CLI at a folder of audio. It finds the files, transcribes them with MLX Whisper on Apple Silicon, and writes a .json (full segments) and a .txt (one line per segment) next to each recording.
The first run downloads the Whisper model from Hugging Face (~3 GB, once). Later runs reuse the cache.
Why not just let Whisper run?
Whisper can get stuck in repeat loops: the same line forever. On long dictations you often notice only after half an hour of garbage.
So the tool transcribes in time chunks and checks after each chunk whether segments are repeating. If so: abort early, retry with safer settings (condition_on_previous_text=false). You lose about one chunk of Whisper time — not the whole recording.
Who it is for
- macOS Apple Silicon (M1 or newer) — MLX only; not Linux, Windows, or Intel Macs
- Folders of voice recordings (WAV, MP3, M4A, AAC, 3GA, …)
- Overnight batches:
caffeinate -i whisper-batch /path --recursive
What it is not
Not a cloud service, not a web UI, not an editor for transcripts. Just the batch step: archive in, text next to the files. Editing and search stay out of scope. Maybe a separate tool later...