
Whisper.cpp
github.com/ggerganov/whisper.cpp- Category
- AI Tools
- Rank
- No. 133Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- ggerganov
- GitHub
- 53.5k stars
- Latest release
- v1.9.3
- Date
About
High-performance C/C++ port of OpenAI's Whisper. Runs on-device with no Python dependency.
What it does
Whisper.cpp turns audio into text using locally stored speech-recognition models converted into its compact model format. It offers a command-line transcriber and a C interface for embedding inference inside applications, with execution paths for CPUs, GPUs, and selected accelerators.
Why it's ranked here
Its strongest case is practical deployment breadth. The same core supports desktop, mobile, browser, Raspberry Pi, and container targets, while quantization offers explicit memory and storage tradeoffs. Hardware-specific acceleration is extensive, though setup complexity rises sharply outside the basic CPU path.
What's good
The implementation supports CPU-only inference, mixed precision, integer quantization, voice activity detection, and zero runtime memory allocations. Apple Silicon receives dedicated Metal and Core ML paths. NVIDIA, AMD, Vulkan, OpenVINO, POWER, Ascend, and Moore Threads support broaden the hardware choices. A C interface makes application embedding credible.
Tradeoffs
Models remain substantial: documented memory use ranges from roughly 273 MB for tiny to 3.9 GB for large. The command-line example accepts only 16-bit WAV input, so common formats need conversion. Core ML and OpenVINO acceleration require separate model-generation steps, extra dependencies, and specialized builds. First runs may compile device-specific artifacts slowly.
How to use it well
Use it for offline transcription, embedded voice features, or cross-platform applications where local inference and hardware tuning justify a native build. Start with the command line, compare model sizes, then quantize or enable an accelerator. It does not replace audio conversion tooling, model acquisition, or platform-specific packaging work.
Technical notes+
README.md describes CMake builds, a C-style API, model downloads, quantization, VAD, and optional backends. Makefile wraps CMake and provides sample and model targets. src/whisper.cpp contains the high-level Whisper implementation over ggml backends, including scheduler-based graph execution, architecture checks, logging, language tables, and conditional Core ML or OpenVINO integration. src/whisper-arch.h maps Whisper and VAD tensors to ggml operations. src/parakeet.cpp and src/parakeet-arch.h add a separate Parakeet TDT inference path. scripts/bench.py runs whisper-cli across model, thread, and processor combinations and writes CSV timing data. models/convert-pt-to-ggml.py and models/convert-h5-to-ggml.py convert external checkpoints into the project model format.
Observed
- License
- MIT
- Primary language
- C and C++
- Interfaces
- Command-line executable and C-style API
- Build and packaging
- CMake build, with Conan, npm, and Docker surfaces documented
- Platform support
- macOS, iOS, Android, Java, Linux, FreeBSD, WebAssembly, Windows, Raspberry Pi, and Docker
- Inference backends
- CPU, Metal, Core ML, Vulkan, NVIDIA GPU, AMD ROCm, OpenVINO, Ascend NPU, and Moore Threads GPU
- Model optimization
- Mixed F16 and F32 precision plus integer quantization
Read from README.md, Makefile, src/whisper.cpp, src/parakeet.cpp, src/whisper-arch.h, src/parakeet-arch.h, scripts/bench.py, models/ggml_to_pt.py, scripts/upload-parakeet.py, models/convert-h5-to-ggml.py, models/convert-pt-to-ggml.py.
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.