@yibie: https://x.com/yibie/status/2109079699104399623

X AI KOLs Timeline Models

Summary

Cactus Compute releases Whistle: a 16.9 MB speech recognition model that runs on pure CPU, supporting seven European languages. Measured first-token latency of 5-8 ms and decoding speed of ~1300 tokens/sec. However, for unsupported languages (such as Chinese and Japanese), it does not throw errors — instead it silently outputs fake words, posing a risk of silent data corruption in production environments.

https://t.co/C6IV8XDNLg
Original Article
View Cached Full Text

Cached at: 10/11/26, 11:10 AM

16.9 MB Speech Recognition, and the Languages It Doesn’t Know

On October 2, Cactus Compute released Whistle: a 16.9 MB speech recognition model that runs on CPU with no dependencies and no GPU required. It shares the same C++ engine, the same .cact container, and the same quantization pipeline as the company’s other model, Needle. Any device already running Needle can pick up this speech model without adding another runtime.

We installed it and benchmarked it ourselves (M4 Max, pip install cactus-needle, Apache-2.0). All seven supported languages matched on a one-by-one check; feed it Chinese, and it outputs a string of French-looking gibberish.

It supports seven languages: English, German, French, Spanish, Italian, Dutch, and Polish. The language is specified directly as a CLI argument: --language {en,de,fr,es,it,nl,pl}.

What We Measured

We used text-to-speech to generate nine audio clips of 3.7–6.2 seconds each. Every clip was a sentence containing the two numbers “240” and “11%,” rendered as 16 kHz mono audio:

LanguageWhat it transcribedAuto-detectVerdict
enThe report says 240 users left, 11% in July.enFully correct
deDer Bericht sagt, 240 Nutzer, 11% im Juli.deFully correct
frLe rapport dit 240 utilisateurs, 11% en juillet.frFully correct
esEl informe dice 240 usuarios, 11% en julio.esFully correct
itIl rapporto dice 240 utenti, 11% a luglio.itFully correct
nlHet rapport zegt 250 gebruikers, 11% in juli.nl240 heard as 250
plReport mówi 240 użytkowników, 11% w lipcu.pl“Raport” misspelled as “Report”
zhPour gauche, il y a un baisseau chez Goyoncou…frCompletely wrong
jaDeportoni Orito, Uzawani Hakują Juni…plCompletely wrong

Per-clip timing (same machine): time to first token 5–8 ms, decoding 1,236–1,340 tokens/sec, full clip processed in 21–51 ms. Numbers were normalized to “240” and “11%” rather than spelled out as English words, suggesting a post-processing layer.

The Most Important Thing: Unsupported Languages Don’t Error Out, They Hallucinate

For the Chinese clip, it classified it as French and emitted a string of French-shaped gibberish. The Japanese clip was classified as Polish, again producing gibberish. There is no “I don’t know” option.

This contradicts another part of its own design: the model first measures the loudness range of the entire audio clip and returns an empty transcription—skipping the search entirely—if it falls below a threshold. In other words, it knows how to handle “there’s no content.” But for “the content is in a language I don’t support,” it doesn’t return empty; it force-fits the audio into one of the seven languages.

In production, this isn’t a crash—it’s silent corruption. A Chinese audio clip gets written to your logs or database as French garbage, and it looks convincingly like legitimate output.

Their Numbers vs. What We Measured

Official figures (M4 Pro, 10-second audio): file size 16.9 MB vs. Whisper base 145.3 MB, Moonshine tiny v2 41.9 MB; time to first token 11.1 ms vs. 73.2 / 22.8; decoding 1,319 tokens/sec vs. 266 / 262. WER is ahead on LibriSpeech test-clean/test-other, SPGISpeech, Earnings-22, and the FLEURS average, but behind on TED-LIUM, AMI, and the MLS average.

We reproduced the speed part: on shorter clips we measured time to first token at 5–8 ms and decoding at 1,236–1,340 tokens/sec—consistent with their ballpark. They didn’t inflate this part.

The WER numbers should be taken with a grain of salt: Whistle’s figures are self-measured (86,174 samples), while Whisper’s and Moonshine’s come from their respective papers—self-measured vs. cited figures is never an apples-to-apples comparison, and the “9× smaller, 6× faster” claim is only against the 2022-era Whisper base. Their disclosures are cleaner than most vendors’ (they note they used the Whisper normalizer, clarify they compared against the multilingual checkpoint, and flag benchmarks whose original authors never published results), and they claim to have verified with audio checksums and speaker IDs that test audio wasn’t in the training set—this is a rare level of transparency.

What It’s Actually Trying to Get You to Do

The needle_complete interface takes audio directly and returns a single JSON in one call: function calls, audio_* fields, and confidence scores. That means there’s no intermediate “transcribe to text first, then let the application layer decide” step between speech and action. Combined with the silent-audio-returns-empty behavior, the intent behind this design becomes clear: the goal isn’t transcription itself. It’s designed as an on-device automation entry point—clean audio and standard Q&A stay local, while complex or noisy audio gets handed off to the cloud.

Two more things we found:

  • The format is a proprietary .cact, not GGUF; weights are 17 MB and are auto-fetched from Hugging Face on first run
  • Anonymous telemetry is on by default (reports function name, version, OS—no content); disable with NEEDLE_TELEMETRY=0. We kept it off throughout our testing

One-Line Takeaway

16.9 MB, pure CPU, time to first token under ten milliseconds; works well for seven European languages. Don’t use it for Chinese—it won’t tell you it can’t. All of our tests used synthetic clean read speech; real-world meetings (multiple speakers, accents, background noise) will be noticeably harder, and we didn’t test that.

Links

Release notes: https://cactuscompute.com/blog/whistle

Best practices: https://cactuscompute.com/blog/whistle-best-practices

Weights: https://huggingface.co/Cactus-Compute/whistle

Engine source: https://github.com/cactus-compute/needle

#LocalAI #SpeechRecognition

Similar Articles

Cactus-Compute/whistle

Hugging Face Models Trending

Cactus-Compute 发布 Whistle,一个仅 16.9 MB 的端侧语音转文字模型,支持转录、词级时间戳和语音嵌入,可在手机、可穿戴设备、机器人及微控制器上无 GPU 运行,并在多项基准上与 Whisper 和 Moonshine 竞争。

Whistle: Speech to Text in 16.9 MB (6 minute read)

TLDR AI

Cactus Compute releases Whistle, a 16.9 MB open speech recognition model running dependency-free on CPU across mobile, wearables, robotics, automotive and microcontrollers. It transcribes seven languages with word timestamps and speech embeddings, reaching first token in 11 ms, and shares Needle's C++ engine and quantisation.

@Honcia13: Open-source TTS is going crazy! New weapons for industrial park scams? Tsinghua OpenBMB just released VoxCPM2: 20 billion parameters + 2 million hours of multilingual data training, 48kHz studio-quality sound! The most intense part is—no Tokenizer needed at all, performing diffusion autoregression directly in continuous latent space, maximizing detail retention!

X AI KOLs Timeline

Tsinghua University's OpenBMB has released VoxCPM2, an open-source multilingual TTS model with 20 billion parameters. It supports continuous latent space diffusion autoregressive generation without a Tokenizer, offering 48kHz studio-quality audio and powerful voice cloning and design capabilities.

@Chenzeze777: Found an open-source voice synthesis model that I just had to share. 2 billion parameters, trained on 2 million hours of data, supports 30 languages plus 9 Chinese dialects—just input text and it synthesizes speech, including Sichuanese, Cantonese, and Northeastern dialects. The craziest part? Use natural language to describe a voice—like "young female, gentle and sweet"—and it creates a brand-new voice from scratch without needing any reference audio.

X AI KOLs Timeline

Introducing an open-source voice synthesis model with 2 billion parameters and 2 million hours of training. It supports 30 languages and 9 Chinese dialects, allows voice description via natural language, can clone voices from a 3-second recording, delivers 48kHz studio-quality audio, and is free for commercial use under the Apache-2.0 license.