Local Transcription of Calls on Mac with M-Chip: Audio Hijack + mlx-whisper + pyannote
MLX Community
Pyannote (by INRIA)
Rogue Amoeba
OpenAI
The author shares experience of creating a local pipeline for recording and transcribing calls on an Mac with an M-chip. Audio Hijack is used for recording, mlx-whisper on MLX for transcription, and pyannote for diarization. The entire process does not require cloud services, works on M4 in 5 minutes for a 56-minute call, and scripts are posted on GitHub.
The author of the article describes how he set up local recording and transcription of calls on a Mac with an M-series chip, abandoning cloud services and OBS (Open Broadcaster Software) due to performance issues. For recording, he uses the paid app Audio Hijack, which writes all voices into a single MP3 file — a requirement for diarization. Transcription is performed using mlx-whisper on MLX (with large-v3-turbo weights) — on an M4, 56 minutes of audio are processed in 5 minutes. Diarization is done via pyannote speaker-diarization-3.1, which requires accepting two agreements on Hugging Face and obtaining an access token. The author wrote a script called transcribe-meeting.py that combines transcription, hallucination cleanup, and diarization, outputting JSON with timestamps, along with VTT and TXT files. The scripts have been published in the mac-call-transcribe repository. Among the issues he notes are SPEAKER confusion on short utterances, Whisper hallucinations during silence, and the need to manually substitute in speaker names. He also warns about the necessity of using an ARM64 version of Python and checking platform.machine().
Source: Habr — хаб ИИ —
original
