Ein Sprachassistent ohne Cloud-Ausweg
Schauen Sie sich das an: Ein ESP32-S3 Mikrocontroller, getrennt vom Internet, reagiert auf Ihre Stimme. In einer aktuellen Demo hörte ein winziger 10-Dollar-Chip gesprochene englische oder französische Befehle und änderte die Farbe seiner integrierten LED. Sie drücken einen Knopf, sprechen, und das Board verarbeitet Ihre Anfrage lokal – kein Wi-Fi, kein Bluetooth, keine Cloud-Verbindung.
Die Hardware ist bemerkenswert einfach: ein etwa 10 Dollar teurer ESP32-S3 Mikrocontroller mit 16 MB Flash-Speicher und 8 MB Arbeitsspeicher. Dazu kommen ein kleines digitales Mikrofon, ein Druckknopf zur Aktivierung der Aufnahme und eine RGB-LED. Der in der Demo gezeigte Laptop dient lediglich der Anzeige der Ausgabe; die gesamte Schwerstarbeit, vom Zuhören bis zur Ausführung, findet direkt auf dem Board selbst statt.
Diese lokale Spracherkennung ist wichtig, da sie die üblichen Probleme cloudbasierter Sprachassistenten umgeht. Sie eliminiert Netzwerklatenz, gewährleistet Privatsphäre, da Ihre Sprachaufnahmen nicht an entfernte Server gesendet werden, und funktioniert komplett offline. Während diese Demo eine eingeschränkte Befehlsschnittstelle zeigt – wie „Licht lila blinken lassen“ – ist dies ein mächtiger Schritt in Richtung einer vollständig unabhängigen Sprachsteuerung auf winziger, erschwinglicher Hardware, kein Allzweck-Smart-Speaker.
Das Modell war größer als der Chip
Whistle, das Speech-to-Text-Modell von Cactus Compute, stellte eine unmittelbare Herausforderung dar: Seine einzelne Modelldatei wog 16,9 MB. Das ist bereits größer als der gesamte 16 MB Flash-Speicher des ESP32-S3, noch bevor die Geräte-Firmware berücksichtigt wird. Zum Vergleich: Das Whisper-Basismodell von OpenAI ist mit 145 MB recht umfangreich, was Whistle fast neunmal kleiner macht, aber immer noch zu groß für unseren winzigen Chip.
Trotz seiner kompakten Größe ist Whistle bemerkenswert leistungsfähig. Es unterstützt sieben Sprachen:
- Englisch
- Französisch
- Deutsch
- Spanisch
- Italienisch
- Niederländisch
- Polnisch
Es erkennt automatisch die gesprochene Sprache, liefert präzise Wort-Zeitstempel und kann sogar Audio-Embeddings direkt aus der Sprache generieren, was mehr als nur Transkription bietet.
Der Schlüssel, um Whistle auf den Chip zu bringen, liegt in seiner einzigartigen „Intelligenzleiter“-Architektur. Während der Encoder, der das rohe Audio verarbeitet, immer mit allen acht Schichten läuft, kann der Decoder, der für die Transkription des Textes verantwortlich ist, beschnitten werden. Cactus Compute hat den Decoder mit wählbaren Tiefen entworfen, was bedeutet, dass er auch mit weniger Schichten korrekt funktioniert.
Der Entwickler entschied sich für einen vierstufigen Decoder, der nach sorgfältiger Erweiterung der Modellpartition bis zum Ende des Flash-Chips nur noch 98 KB Flash-Speicher übrig ließ. Eine zweistufige Option hätte leichter gepasst, aber zu deutlich mehr Transkriptionsfehlern geführt, was den Wert dieser zusätzlichen Schichten beweist.
Wie ein winziges Board Schall in Aktion verwandelt
Wie „hört“ Sie ein winziger Chip eigentlich? Der Prozess beginnt, wenn das Mikrofon Ihre Stimme mit 16 kHz aufnimmt. Dieses rohe Audio verwandelt sich in ein Mel-Spektrogramm, eine visuelle „Heatmap“ der Tonhöhe und Energie Ihrer Stimme über die Zeit, unterteilt in 10-Millisekunden-Segmente.
Als Nächstes komprimiert eine Reihe von Convolutional Layers diese Heatmap. Jedes Segment repräsentiert nun etwa 80 Millisekunden Audio, wodurch ein zweisekündiger Befehl in nur 25 Frames umgewandelt wird. Diese effiziente Darstellung ist entscheidend für den ressourcenbeschränkten ESP32-S3.
Dann übernimmt der encoder von Whistle. Mit acht Schichten ermöglicht er es jedem 80-Millisekunden-Frame, jeden anderen Frame im Clip gleichzeitig zu "sehen". Das bedeutet, dass das Modell Wörter im Kontext Ihres gesamten Satzes versteht und nicht nur isoliert.
Schließlich generiert der decoder das Transkript, Stück für Stück. Er identifiziert zuerst die Sprache (zum Beispiel Englisch oder Französisch) mithilfe eines language token. Während er jedes Wort produziert, verwendet er "cross-attention", um die Ausgabe des Encoders zu überprüfen und die Konsistenz mit dem Gehörten sicherzustellen.
Ein kleiner Parser, nicht Needle, interpretiert dann den transkribierten Text und ordnet Wörter wie "rot" oder "fünf Sekunden" bestimmten LED-Farben und Blinkmustern zu. Weitere Informationen zu den Fähigkeiten von Whistle finden Sie unter Whistle: Speech to Text in 16.9 MB - Cactus Compute.
Erste Versuche, einen zweisekündigen Befehl zu verarbeiten, dauerten fast 24 Sekunden – viel zu langsam für einen Sprachassistenten. Es waren erhebliche Optimierungen erforderlich. Die Ingenieure von Cactus Compute beschleunigten den Prozess, indem sie mehrere Frames pro Durchgang verarbeiteten, die Arbeitslast auf beide Kerne des ESP32-S3 aufteilten und 8-Bit-Ganzzahloperationen auf der Vektoreinheit des Chips verwendeten. Diese Änderungen senkten die typischen Antwortzeiten auf deutlich brauchbarere 10 Sekunden.
Gefällt Ihnen der Artikel? Erhalten Sie jeden Morgen einen wie diesen per E-Mail.
eine E-Mail pro Tag · Abmeldung mit zwei Klicks · kein Tracking durch Dritte
Eine überzeugende Demo, kein Ersatz für Diktiergeräte
Die Genauigkeitsangaben für Whistle sind beeindruckend, aber der Kontext ist entscheidend. Cactus Compute meldete eine Erfolgsquote von etwa 78 % bei synthetischen englischen Farbbefehlen wie „flash the light blue“. Das Hinzufügen von aufgezeichnetem Mikrofonrauschen zu diesen Tests führte kaum zu Änderungen, was die Robustheit in begrenzten, kontrollierten Umgebungen zeigt.
Praktische Ergebnisse unterstreichen die Stärken des Modells bei spezifischen Formulierungen. Kurze Sätze wie „make it red“ oder „turn it green“ funktionierten in Tests zu 82–93 %. Ein einzelnes Farbwort erreichte jedoch eine geringere Genauigkeit von 44 %. Keyword-Biasing und das erneute Versuchen mit einer anderen Sprache wie Französisch verbesserten die Ergebnisse für feste Befehlssätze.
Die Apache 2.0-Veröffentlichung von Whistle und das gemeinsame Runtime-Design mit Needle deuten auf eine Zukunft privater Voice-to-Tool-Systeme auf Edge-Geräten hin. Das aktuelle ESP32-S3-Board kann jedoch nicht beide Modelle gleichzeitig aufnehmen, da sie etwa 24 MB Flash-Speicher benötigen würden. Die Latenz von etwa 10 Sekunden und der Fokus auf Befehlsgenauigkeit begrenzen zudem breitere Anwendungen.
Diese überzeugende Demo zeigt einen bedeutenden Schritt für die lokale Sprachsteuerung, ist aber kein Ersatz für Diktiergeräte. Sie können das Projekt im GitHub repository weiter erkunden und die model card einsehen.
Häufig gestellte Fragen
Was ist Whistle?
Whistle ist das kompakte Speech-to-Text-Modell von Cactus Compute, das entwickelt wurde, um Audio lokal in sieben Sprachen zu transkribieren.
Kann Whistle auf einem ESP32-S3 laufen?
Ja, mit einem benutzerdefinierten Build und einem gekürzten Decoder. Das demonstrierte Board führt eine Version mit vier Schichten innerhalb seines 16-MB-Flash-Limits aus.
Benötigt das ESP32-S3-Sprachprojekt WLAN?
Nein. Die Spracherfassung, Transkription und die LED-Befehlslogik laufen auf dem Board ohne WLAN oder Bluetooth.
Wie genau und schnell ist die Demo?
Der Entwickler berichtet von einer Genauigkeit von etwa 78 % bei synthetischen englischen Farbbefehlen und einer durchschnittlichen Verarbeitungszeit von etwa 10 Sekunden pro Befehl.
Kann Whistle zusammen mit Needle auf diesem Board laufen?
Nicht im demonstrierten Setup: Die kombinierten Modelle würden etwa 24 MB benötigen, was mehr ist als die 16 MB Flash-Speicher des Boards.

