Cactus Compute's on-device speech-to-text model in a single 16.9 MB file that runs on the CPU with no dependencies and mostly beats Whisper base at a fraction of the size.
Whistle loads into the same C++ engine as Needle, Cactus Compute's small tool-calling model, from the same container and quantisation. One binary can load both, so a clip goes in and tool calls come out as JSON. It transcribes up to 30 seconds in one pass in English, German, French, Spanish, Italian, Dutch and Polish, detects the language on its own, and also does word timestamps, keyword biasing and raw speech embeddings.
The numbers come from Cactus's own benchmarks on an Apple M4 Pro CPU with 10 seconds of audio. Whistle is 16.9 MB against Whisper base's 145.3 MB, reaches the first token in 11.1 ms against 73.2 ms, and decodes 1,319 tokens/s against 266. On word error rate it leads on LibriSpeech, SPGISpeech, Earnings-22 and the FLEURS average, while Whisper base still wins on TED-LIUM, AMI and the MLS average.
pip install cactus-needle and needle.transcribe("clip.wav") is the whole Python path, and the engine ships prebuilt for 17 targets including iOS, Android, watchOS, RISC-V and the browser. Weights are on Hugging Face, and the engine is on GitHub under Apache-2.0.