HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
ggml-org
whisper.cpp
C++2022–2026
ggml-org / whisper.cpp

whisper.cpp

Port of OpenAI's Whisper model in C/C++

97Distinct people
117Mentions
1Explicit recommenders
55.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Port of OpenAI's Whisper model in C/C++

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

This is a cool project. I’ve been very happy with whisper as an alternative to otter; it works better and solves real problems for me. I feel compelled to point out…

n8cpdx used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 12:01:02 AM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year117 dated mentions

Observed mentions: 2022-10-07 13:46:06 UTC to 2026-07-19 04:05:28 UTC.

02040602022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 25 mentions; 6 submissions, 19 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 65 mentions; 10 submissions, 55 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 10 mentions; 1 submissions, 9 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 16 mentions; 2 submissions, 14 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC25619
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC651055
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC1019
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC16214
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
whisper.cpp High-performance inference of OpenAI's Whisper automatic speech recognition (ASR) model: Plain C/C++ implementation without dependencies Apple Silicon first-class citizen - optimized via ARM NEON, Accelerate framework, Metal and Core ML AVX intrinsics support for x86 architectures VSX intrinsics support for POWER architectures Mixed F16 / F32 precision Integer quantization support Zero memory allocations at runtime Vulkan support Support for CPU-only inference Efficient GPU support for NVIDIA AMD ROCm GPU support AMD Ryzen AI NPU Support OpenVINO Support Ascend NPU Support Moore Threads GPU Support C-style API Voice Activity Detection (VAD) Supported platforms: Mac OS (Intel and Arm) iOS Android Java Linux / FreeBSD WebAssembly Windows (MSVC and MinGW) Raspberry Pi Docker The entire high-level implementation of the model is contained in whisper.h and whisper.cpp. The rest of the code is part of the ggml machine learning library. Having such a lightweight implementation of the model allows to easily integrate it in different platforms and applications. As an example, here is a video of running the model on an iPhone 13 device - fully offline, on-device: whisper.objc whisper-iphone-13-mini-2.mp4 You can also easily make your own offline voice assistant application: command command-0.mp4 On Apple Silicon, the inference runs fully on the GPU via Metal: metal-base-1.mp4 Quick start First clone the repository: git clone https://github.com/ggml-org/whisper.cpp.git Navigate into the directory: cd whisper.cpp Then, download one of the Whisper models converted in ggml format. For example: sh ./models/download-ggml-model.sh base.en Now build the whisper-cli example and transcribe an audio file like this: # build the project cmake -B build cmake --build build -j --config Release # transcribe an audio file ./build/bin/whisper-cli -f samples/jfk.wav For a quick demo, simply run make base.en. The command downloads the base.en model converted to custom ggml format and runs the inference on all .wav samples in the folder samples. For detailed usage instructions, run: ./build/bin/whisper-cli -h Note that the whisper-cli example currently runs only with 16-bit WAV files, so make sure to convert your input before running the tool. For example, you can use ffmpeg like this: ffmpeg -i input.mp3 -ar 16000 -ac 1 -c:a pcm_s16le output.wav More audio samples If you want some extra audio samples to play with, simply run: make -j samples This will download a few more audio files from Wikipedia and convert them to 16-bit WAV format via ffmpeg. You can download and run the other models as follows: make -j tiny.en make -j tiny make -j base.en make -j base make -j small.en make -j small make -j medium.en make -j medium make -j large-v1 make -j large-v2 make -j large-v3 make -j large-v3-turbo Memory usage Model Disk Mem tiny 75 MiB ~273 MB base 142 MiB ~388 MB small 466 MiB ~852 MB medium 1.5 GiB ~2.1 GB large 2.9 GiB ~3.9 GB POWER VSX Intrinsics whisper.cpp supports POWER architectures and includes code which significantly speeds operation on Linux running on POWER9/10, making it capable of faster-than-realtime transcription on underclocked Raptor Talos II. Ensure you have a BLAS package installed, and replace the standard cmake setup with: # build with GGML_BLAS defined cmake -B build -DGGML_BLAS=1 cmake --build build -j --config Release ./build/bin/whisper-cli [ .. etc .. ] Quantization whisper.cpp supports integer quantization of the Whisper ggml models. Quantized models require less memory and disk space and depending on the hardware can be processed more efficiently. Here are the steps for creating and using a quantized model: # quantize a model with Q5_0 method cmake -B build cmake --build build -j --config Release ./build/bin/quantize models/ggml-base.en.bin models/ggml-base.en-q5_0.bin q5_0 # run the examples as usual, specifying the quantized model file ./build/bin/whisper-cli -m models/ggml-base.en-q5_0.bin ./samples/gb0.wav Core ML support On Apple Silicon devices, the Encoder inference can be executed on the Apple Neural Engine (ANE) via Core ML. This can result in significant speed-up - more than x3 faster compared with CPU-only execution. Here are the instructions for generating a Core ML model and using it with whisper.cpp: Install Python dependencies needed for the creation of the Core ML model: pip install ane_transformers pip install openai-whisper pip install coremltools To ensure coremltools operates correctly, please confirm that Xcode is installed and execute xcode-select --install to install the command-line tools. Python 3.11 is recommended. MacOS Sonoma (version 14) or newer is recommended, as older versions of MacOS might experience issues with transcription hallucination. [OPTIONAL] It is recommended to utilize a Python version management system, such as Miniconda for this step: To create an environment, use: conda create -n py311-whisper python=3.11 -y To activate the environment, use: conda activate py311-whisper Generate a Core ML model. For example, to generate a base.en model, use: ./models/generate-coreml-model.sh base.en This will generate the folder models/ggml-base.en-encoder.mlmodelc Build whisper.cpp with Core ML support: # using CMake cmake -B build -DWHISPER_COREML=1 cmake --build build -j --config Release Run the examples as usual. For example: $ ./build/bin/whisper-cli -m models/ggml-base.en.bin -f samples/jfk.wav ... whisper_init_state: loading Core ML model from 'models/ggml-base.en-encoder.mlmodelc' whisper_init_state: first run on a device may take a while ... whisper_init_state: Core ML model loaded system_info: n_threads = 4 / 10 | AVX = 0 | AVX2 = 0 | AVX512 = 0 | FMA = 0 | NEON = 1 | ARM_FMA = 1 | F16C = 0 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 | SSE3 = 0 | VSX = 0 | COREML = 1 | ... T
Read the full README on GitHub

What Hacker News says

65 sources
I was struggling with the same error on PopOS 22.04, and this helped: https://github.com/ggerganov/whisper.cpp/issues/352#issuecom... I'm not sure what changed, but basically I purged ffmpeg and libsdl2-dev and the `make` in the root of the repo. Then I installed libsdl2 and ffmpeg and `make talk-llama`. It's quite slow on 4 core i7-8550U and 16 GB of RAM. basically, in the root of the repo: $ sudo apt purge ffmpeg $ make clean $ git pull $ make $ sudo apt install libsdl2-dev $ make talk-llama $ ./talk-llama -mw ./models/ggml-small.en.bin -ml ../llama.cpp/models/llama-2-13b.Q4_0.gguf -p "t0mk" -t 8\n\n HTH
In Talk-Llama
It runs locally, using Whisper.cpp[1], a Whisper implementation optimized to run on CPU, especially Apple Silicon. Whisper itself is open source, and so is that implementation, the OpenAI endpoint is merely a convenience to those who don't wish to host a Whisper server themselves, deal with batching, renting GPUs etc. If you're making a commercial service based on Whisper, the API might be worth it for the convenience, but if you're running it personally and have a good enough machine (an M1 MacBook Air will do), running it locally is usually better. [1] https://github.com/ggerganov/whisper.cpp
In MacWhisper: Transcribe audio files on your Mac
>So how long will it be until we will be able to download something of this quality onto a future-gen Raspberry Pi which can do some AI processing, where we make an HTTP call and it starts speaking through the audio out in a perfect voice without relying on the cloud? 5 years? It's probably possible roughly whenever the larger Whisper models can run on it. Probably the next Raspberry Pi, running quantized or optimized versions of some audio model. It may be almost possible right now if you tried really realy hard, and you used a small model fine-tuned on a single voice, instead of something larger and more general purpose that can do any voice. I think whisper-tiny works on a Pi on real time, right? And that's not leveraging the GPU on the Pi. (https://github.com/ggerganov/whisper.cpp/discussions/166) Edit: looks like medium is 30x slower
Read the rest
on the Pi than tiny model, so I may have been overly optimistic. I didn't realize Whisper tiny was that much faster than medium. This method works pretty well with Tortoise, letting you use the super fast Tortoise quality settings but get quality similar to the larger models. Fine-tuning the whole thing on just one voice removes a lot of the cool capabilities of course. With Tortoise, that would still be way too slow for a Pi but potentially that same strategy could work with faster models like SoundStorm. In terms of quality there's still a lot of room to go with long term coherence, like long audio segments. When a real person reads an audiobook the words at the top the page have a pretty big impact on how many words at the bottom the page are read. And there can be some impact at any distance, page 10 to page 300. When you try audiobooks on super high end TTS models and listen carefully you really notice the mismatch. It's like the reader recorded the paragraphs out of order, or a video game voice lines where you can tell the actors recorded all the lines separately, and were not reacting to each other's performance. You can bump the context windows, a minute, two minutes. That's gonna get you closer and probably good enough for some books. In the short term a human could simply adjust all the all the audio samples and manually tweak things to sound correct. So this will enable fan-created audiobooks where they take the time to get it right. But for fully automated books the mismatch drives me nuts. The performance is just soooo close for certain segments that when you get a tonal mismatch it hurts.
In SoundStorm: Efficient Parallel Audio Generation

Showing the 15 most recent of 65 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.