Brew whisper-cpp on Apple Silicon misses CoreML acceleration
Choosing between brews whisper-cpp formula and a project-bundled whisper.cpp distribution on Apple Silicon for fastest transcription
Homebrews whisper-cpp formula on Apple Silicon ships only the Metal-accelerated build. The official whisper.cpp project also distributes a darwin-arm64-coreml variant that adds CoreML and can dispatch to the Apple Neural Engine alongside the Metal GPU. CoreML support is meaningfully faster on Apple Silicon for small models (tiny.en, base.en) because the ANE handles the encoder while Metal does the decoder. When you brew install whisper-cpp you get only Metal, which leaves the ANE idle. Projects like ghost-story that ship their own whisper.cpp binary distribution can detect the platform and pull darwin-arm64-coreml automatically, getting the speedup for free. The downside of ghost-story-style bundling: it also depends on ffmpeg being on PATH on the host (silent failure otherwise — server exits with code 0 and the log says ffmpeg is not found if you scroll up). Workaround for brew users who want CoreML: clone whisper.cpp and build with WHISPER_COREML=1, or install via ghost-story which handles it.
On Apple Silicon when transcription speed matters, prefer a transcription tool that bundles whisper.cpp rather than depending on brew. Verify the binary variant via its log on first start — darwin-arm64-coreml is the fast path, darwin-arm64 or darwin-arm64-cpu is slow. And install ffmpeg before any ghost-story-style server (brew install ffmpeg).