Whistle bringt 16,9 MB große Spracherkennung auf Edge-Geräte
Cactus Compute veröffentlicht Whistle, ein kleines Open-Weight-Sprachmodell, das ohne Abhängigkeiten auf CPUs läuft und sich in die Needle-Engine für direkte Tool-Aufrufe integrieren lässt.
Automatisch aus dem englischen Original übersetzt.
Cactus Compute hat Whistle veröffentlicht, ein neues Open-Weight-Spracherkennungsmodell, das speziell für ressourcenbeschränkte Umgebungen entwickelt wurde. Das am 2. Oktober 2026 eingeführte Modell mit einer Größe von 16,9 MB läuft vollständig auf der CPU ohne externe Abhängigkeiten und richtet sich an Mobilgeräte, Wearables, Roboter und Mikrocontroller. Es teilt sich seine zugrunde liegende C++-Engine mit Needle, sodass Entwickler Text- und Sprachfunktionen aus einer einzigen Binärdatei laden können.
Was passiert ist
Whistle stellt einen bedeutenden Schritt hin zu extrem leichtgewichtiger, geräteloser Audioverarbeitung dar. Im Gegensatz zu größeren Modellen, die eine Cloud-Verbindung oder erheblichen lokalen Speicherplatz erfordern, arbeitet Whistle als einzelne Datei, die direkt in den Speicher geladen wird. Das Modell unterstützt die Transkription von bis zu 30 Sekunden Audio in sieben Sprachen: Englisch, Deutsch, Französisch, Spanisch, Italienisch, Niederländisch und Polnisch. Die Spracherkennung erfolgt automatisch, es sei denn, der Entwickler gibt eine bestimmte Sprache vor.
Die Veröffentlichung legt Wert auf Datenschutz und Effizienz. Audiodaten verlassen während der Verarbeitung niemals das Gerät. Neben der einfachen Transkription bietet Whistle Wortzeitstempel mit Start-, End- und Wahrscheinlichkeitsmetriken, die aus dem Aufmerksamkeitsmechanismus des Decoders abgeleitet werden. Es bietet auch Funktionen zur Erstellung von Speech Embeddings, wobei pro 80-ms-Frame eine Zeile vom Encoder ausgegeben wird, ohne eine vollständige Transkription zu erzeugen. Diese Flexibilität ermöglicht es Ingenieuren, das Modell für verschiedene Aufgaben einzusetzen, von der Befehlserkennung bis zur semantischen Audioanalyse.
Die Integration in das bestehende Needle-Ökosystem ist ein Kernfeature. Dieselbe needle_load-Funktion kann Whistle-Modelle, Needle-Textmodelle oder beide gleichzeitig lesen. Dieser einheitliche Ansatz bedeutet, dass eine einzige Anwendungsbinärdatei Spracheingaben verarbeiten, sie in Text umwandeln und entsprechende Tool-Aufrufe sofort ausführen kann, ohne dass eine Zwischenbearbeitung durch die Host-Anwendung erforderlich ist.
Wie es funktioniert
Die Architektur basiert auf gemeinsamen Komponenten mit dem Needle-Modell, um Code-Duplizierung und den Speicherbedarf zu minimieren. Das Frontend verarbeitet 16-kHz-Mono-Audio mit einem 25-ms-Fenster und einem 10-ms-Hop, wodurch 80 Log-Mel-Bins erzeugt werden, die auf 250–3500 Hz bandbegrenzt sind. Ein konvolutionaler Stem reduziert die Anzahl der Frames erheblich, was bei einem 30-sekündigen Clip zu 375 Frames führt, wobei jeder Frame 80 ms Audio repräsentiert.
Der Encoder besteht aus acht Simple Attention Blocks, die mHC-Rest-Lanes und ein Monarch-Hadamard-MLP anstelle eines traditionellen Feed-Forward-Netzwerks verwenden. Entscheidend ist, dass der Aufmerksamkeitsmechanismus nicht kausal ist, sodass Frames zukünftigen Kontext innerhalb des Clips berücksichtigen können. Der Decoder verwendet acht Laddered Simple Attention Blocks mit gated Cross-Attention, um Daten vom Encoder zu lesen. Dieses Design ermöglicht es, die Projektionen einmal pro Clip auszuführen, was bedeutet, dass Beam-Search-Operationen nur kurze Transkripte cachen, anstatt das Audio erneut zu verarbeiten.
Das Decoding verwendet fünf Beams, die nach normalisierter Log-Wahrscheinlichkeit bewertet werden. Ein Aho-Corasick-Automat läuft parallel zu den Beams, um Keyword Biasing zu unterstützen, was die Wahrscheinlichkeit bestimmter Phrasen während der Suche erhöht. Das Modell enthält einen Stille-Erkennungsmechanismus, der den Lautstärkebereich vor Beginn des Decodings misst und bei leisen Eingaben leere Ergebnisse zurückgibt, um Rechenleistung zu sparen. Die Decoder-Tiefe ist zum Zeitpunkt des Ladens über --audio-depth wählbar, was weitere Kompromisse zwischen Genauigkeit und Geschwindigkeit ermöglicht, während der Encoder fest bleibt.
Wichtige Details
- Modellgröße: 16,9 MB, deutlich kleiner als Whisper base (145,3 MB) und Moonshine tiny v2 (41,9 MB).
- Leistung: Erreicht eine Time-to-first-Token von 11,1 ms und 1.319 Tokens pro Sekunde auf einer Apple M4 Pro CPU.
- Sprachen: Unterstützt Englisch, Deutsch, Französisch, Spanisch, Italienisch, Niederländisch und Polnisch mit automatischer Erkennung.
- Ausgaben: Bietet Transkription, Wortzeitstempel mit Wahrscheinlichkeiten und Speech Embeddings.
- Bereitstellung: Vorgefertigte Binärdateien für siebzehn Ziele verfügbar, darunter macOS, Linux, Android, iOS, RISC-V und WASM.
- Integration: Nutzt dasselbe
.cact-Containerformat wie Needle, was kombinierte Sprach- und Text-Workflows in einer Engine ermöglicht.
Warum es wichtig ist
Für Entwickler, die eingebettete Systeme oder mobile Anwendungen erstellen, eliminiert Whistle die Notwendigkeit komplexer Cloud-APIs oder schwerfälliger lokaler Bibliotheken. Die Möglichkeit, Spracherkennung auf einem Mikrocontroller oder Wearable ohne Internetverbindung auszuführen, eröffnet neue Möglichkeiten für datenschutzorientierte und offline-first Produkte. Der kleine Footprint bedeutet, dass es neben anderer Anwendungslogik koexistieren kann, ohne übermäßigen Speicher oder Akkulaufzeit zu verbrauchen.
Die Integration mit Needle vereinfacht die Entwicklung sprachgesteuerter Agenten. Anstatt separate Pipelines für Speech-to-Text und Intent-Erkennung zu bauen, können Entwickler eine einzige Engine nutzen, um Audio zu transkribieren und Funktionsaufrufe direkt auszulösen. Dies reduziert Latenz und Engineering-Aufwand, da die Anwendung keine Zwischen-Textstrings parsen muss. Der einheitliche Binäransatz vereinfacht zudem die Bereitstellung und Updates über diverse Hardwareplattformen hinweg.
Was Sie tun können
- Installieren Sie das Paket via pip mit
pip install cactus-needle, um mit der Python-API zu experimentieren. - Testen Sie Echtzeit-Transkription im Terminal mit dem Befehl
needle whistle playground. - Vergleichen Sie die Leistung mit anderen Modellen unter Verwendung von
needle whistle compare, um Latenz- und Genauigkeitsunterschiede nebeneinander zu sehen. - Implementieren Sie Keyword Biasing, indem Sie eine Liste spezifischer Begriffe übergeben, um die Erkennung von Namen oder Fachjargon zu verbessern.
- Stellen Sie vorgefertigte Binärdateien auf Zielgeräten wie Android, iOS oder RISC-V-Boards bereit, indem Sie die bereitgestellten
needle download-Tools verwenden. - Verwenden Sie das Objekt
needle.Whistle()in Python, um Speech Embeddings für Audio-Klassifizierungsaufgaben ohne vollständige Transkription zu generieren.



