Port of OpenAI's Whisper model in C/C++
51.7k
Stars
5.9k
Forks
1.2k
Open issues
100+
Contributors
AI Analysis
whisper.cpp is a high-performance C/C++ port of OpenAI's Whisper automatic speech recognition (ASR) model, designed to run efficiently on a wide range of hardware including Apple Silicon (Metal/Core ML), NVIDIA/AMD GPUs, Vulkan, and even mobile and embedded platforms like iOS, Android, and Raspberry Pi. Its best use case is integrating low-latency, offline speech-to-text into native applications or resource-constrained environments where Python dependencies are impractical. It is primarily fo...
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
whisper.cpp brings OpenAI's Whisper ASR to C/C++ for CPU, GPU, and embedded deployment
whisper.cpp is a dependency-free C/C++ port of OpenAI's Whisper automatic speech recognition model, built on the ggml tensor library. It targets developers who need offline, on-device speech-to-text without Python or cloud dependencies — including mobile app developers (iOS/Android), embedded systems engineers, game developers, and desktop application authors. With ~51K stars, broad hardware backend support (Metal, CUDA, ROCm, Vulkan, OpenVINO), and active CI, it has become the reference implementation for Whisper outside Python environments.
Created in September 2022 by Georgi Gerganov (also author of llama.cpp) shortly after OpenAI released Whisper. The repo moved from ggerganov to ggml-org organization as the ggml ecosystem matured, reflecting its role as an infrastructure component rather than a standalone experiment.
Initial viral growth came from the novelty of running Whisper on Apple Silicon without Python. Growth sustained through integration into downstream projects (local voice assistants, subtitle tools, desktop apps), Metal/CoreML acceleration, and the broader on-device AI wave. 207 stars in the last 7 days indicates continued steady organic interest rather than a spike, consistent with a mature project with genuine utility.
whisper.cpp is listed on Conan Center (C++ package index) and has an npm package, indicating intentional ecosystem integration. It has been embedded in documented third-party tools including subtitle editors, local voice assistant frameworks, and is referenced as the ASR backend in several open-source desktop apps. The Raspberry Pi and WebAssembly targets suggest verified community deployment on constrained hardware. Adoption appears broad across hobbyist and embedded use cases; large-scale enterprise production usage is not publicly verified.
Based on README: the core model logic appears entirely contained in two files (whisper.h and whisper.cpp), with the rest delegated to the ggml library for tensor operations. Likely follows a single-threaded inference path with zero runtime allocations by design. Multiple hardware backends (CUDA, Metal, Vulkan, ROCm, OpenVINO, Ascend NPU) are implemented as compile-time options. A C-style API (whisper.h) enables FFI bindings from other languages.
CI badge is present and passing per README. Specific unit or integration test coverage metrics are not documented in README.
Last push was 2026-06-19 — effectively current as of evaluation date. With ~5,681 forks and a v1.9.1 stable release, the project shows sustained, active maintenance. CI pipeline is confirmed active. The ggml-org organization structure suggests institutional-level maintenance continuity rather than solo-developer risk.
ADOPT IF: you need offline Whisper inference on mobile, embedded, desktop, or WebAssembly targets where Python is unavailable or undesirable, or when minimal runtime dependencies and low memory footprint are requirements. AVOID IF: your workload is Python-native batch transcription at scale — faster-whisper or whisperX will likely offer better ecosystem integration and comparable or superior throughput. MONITOR IF: you're evaluating on-device ASR for production applications and want to track VAD maturity, quantization accuracy, and new hardware backend additions before committing.
Independent dimensions
Mainstream potential
7/10
Technical importance
9/10
Adoption evidence
8/10
- ggml is a dependency that evolves rapidly; breaking changes in ggml can propagate to whisper.cpp and require coordinated updates across downstream integrations.
- Model format is ggml-specific, requiring conversion from original OpenAI checkpoints — any upstream Whisper architecture changes need manual porting effort.
- New Whisper model variants (or successor models from OpenAI) may lag behind in support compared to the Python ecosystem.
- Zero-dependency claim is scoped to the core; GPU backends (CUDA, ROCm, Vulkan) require their respective vendor SDKs, which adds real deployment complexity.
- Primary maintainer concentration risk: while now under ggml-org, the project's direction appears heavily driven by a small core team, which could affect response time to critical issues.
whisper.cpp is likely to remain the dominant non-Python ASR deployment path for the foreseeable future, with growth tied to the broader on-device AI trend. Continued hardware backend expansion and VAD improvements expected.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Language
- C++
- License
- MIT
- Last updated
- 4h ago
- Created
- 46mo ago
- Analyzed with
- anthropic/claude-sonnet-4-6
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
Transcription of any language other than English doesn't work.
Adreno GPU support broken after commit `896718e`
Missing validation of attacker-controlled n_fft in Parakeet model loader (src/parakeet.cpp) — DoS via uncaught exception
parakeet: duration argmax runs on log-probs that underflow to -inf, silently picking duration 0
Why Silero-VAD that is state-sponsored Russian software exist in this codebase?
Top contributors
Recent releases
Similar repos
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
51.7k | +395 | C++ | 9/10 | 4h ago |
|
|
10.5k | — | C++ | 8/10 | 2mo ago |
|
|
4.1k | — | Python | 7/10 | 4d ago |
|
|
104.7k | — | Python | 9/10 | 3mo ago |
|
|
24.2k | — | Python | 8/10 | 8mo ago |
|
|
4.4k | — | TypeScript | 7/10 | 8h ago |
The reference implementation. whisper.cpp trades Python ecosystem convenience for portability, lower latency on CPU, and deployment without Python runtime. For batch cloud workloads, the Python version integrates more naturally with ML pipelines.
faster-whisper uses CTranslate2 for optimized Python inference and generally outperforms openai/whisper in throughput. whisper.cpp is competitive on Apple Silicon and CPU-only scenarios, and is the only option when Python is unavailable.
whisperX adds word-level timestamps and speaker diarization on top of faster-whisper. whisper.cpp now includes VAD but lacks diarization. whisperX is better for research pipelines; whisper.cpp for embedded/offline deployment.
Another C++ Whisper port targeting Windows with DirectCompute. whisper.cpp has broader platform support (mobile, WASM, Linux, macOS) and significantly higher adoption, but Const-me/Whisper may offer tighter Windows DirectX integration.
A TypeScript wrapper project likely targeting browser/Node.js consumers. whisper.cpp is the more appropriate choice for native performance; openwhispr appears to serve a narrower JS integration niche.
