Whisper.cpp Core ML Models for Apple Silicon
This repository provides prebuilt Core ML models for Whisper.cpp, optimized for Apple Silicon (M1, M2, M3, M4, M5) devices.
These models enable hardware-accelerated speech-to-text using Apple’s Neural Engine via Core ML.
The repository is designed for easy plug-and-play usage with Whisper.cpp using a prebuilt CLI binary.
📦 Repository Contents
Each model directory contains everything required to run Whisper.cpp with Core ML acceleration:
ggml-*.bin– Whisper model weights used bywhisper.cpp*-encoder.mlmodelc/– Compiled Core ML encoder bundle
⚠️ Important: The .mlmodelc directories must remain intact. Do not modify, rename, or move their contents.
📁 Folder Structure
.
├── tiny/
├── tiny.en/
├── base/
├── base.en/
├── small/
├── small.en/
├── medium/
├── medium.en/
├── large-v1/
├── large-v2/
└── large-v3/
Each folder corresponds to a Whisper model variant and contains the matching .bin and .mlmodelc files.
🚀 Model Variants Overview
The table below summarizes the trade-offs between speed, accuracy, and memory usage.
| Folder | Model Size | Speed | Accuracy | Notes |
|---|---|---|---|---|
tiny |
Very Small | ⚡ Fastest | ⭐ Lowest | Best for real-time, low-resource use |
tiny.en |
Very Small | ⚡ Fastest | ⭐ Lowest | English-only |
base |
Small | ⚡ Fast | ⭐⭐ Balanced | Good default choice |
base.en |
Small | ⚡ Fast | ⭐⭐ Balanced | English-only |
small |
Medium | ⚡ Medium | ⭐⭐⭐ Better | Improved transcription quality |
small.en |
Medium | ⚡ Medium | ⭐⭐⭐ Better | English-only |
medium |
Large | 🐢 Slower | ⭐⭐⭐⭐ High | High accuracy, higher memory usage |
medium.en |
Large | 🐢 Slower | ⭐⭐⭐⭐ High | English-only |
large-v1 |
Very Large | 🐢 Slow | ⭐⭐⭐⭐⭐ Best | Maximum accuracy |
large-v2 |
Very Large | 🐢 Slow | ⭐⭐⭐⭐⭐ Best | Improved multilingual performance |
large-v3 |
Very Large | 🐢 Slow | ⭐⭐⭐⭐⭐ Best | Latest and most accurate |
🛠 Usage Instructions
1. Download the Prebuilt whisper-cli Binary
Download the Core ML–enabled whisper-cli binary directly from GitHub Releases:
https://github.com/aarush67/whisper-cli-for-core-ml/releases/download/v1.0.0/whisper-cli
Recommended directory structure:
.
├── bin/
│ └── whisper-cli
├── medium.en/
│ ├── ggml-medium.en.bin
│ └── medium.en-encoder.mlmodelc/
2. Make the Binary Executable
chmod +x bin/whisper-cli
3. Run Whisper with a Core ML Model
Place the .bin file and the matching .mlmodelc folder in the same directory.
Example (English-only transcription)
./bin/whisper-cli -m ggml-medium.en.bin -f sample.wav
Whisper.cpp will automatically detect and use the Core ML encoder when available.
🧠 Best Practices & Notes
- ✅ Keep
.binand.mlmodelcfiles together from the same model variant - ❌ Do not rename, edit, or partially copy
.mlmodelcdirectories - 🧹
.ptcache files (if generated) are temporary and safe to delete - 💾 Larger models require significantly more RAM and disk space
- ⚡ Best performance is achieved on Apple Silicon devices with a Neural Engine
📜 License
- Repository structure & metadata: MIT License
- Model weights & Core ML artifacts: Governed by the original
Whisper.cpp / OpenAI Whisper licenses
Please review upstream licenses before commercial or large-scale use.
🙏 Credits
- OpenAI Whisper – Original speech recognition models
- whisper.cpp by Georgi Gerganov – High-performance C/C++ implementation
- Apple Core ML – Hardware acceleration on Apple Silicon
⭐ Support
If this repository is useful to you:
- ⭐ Star the repository
- 🔗 Support the upstream Whisper.cpp project