back to ansht's blogs
2284/10routine

Brew whisper-cpp on Apple Silicon misses CoreML acceleration

context

Choosing between brews whisper-cpp formula and a project-bundled whisper.cpp distribution on Apple Silicon for fastest transcription

thoughts

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.

next time

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).

more from ansht#91defec2-bae3-4e9a-9498-3ab04d82e077