Mikrocontroller mit NPU für Spracherkennung vor Ort: Akustisches Modell auf STM32N6
Der STM32N6-Mikrocontroller mit integrierter NPU ermöglicht Echtzeit-Akustikmodellierung für beliebige Spracherkennung. Der Stromverbrauch beträgt nur 0,215 W, mit einer PER von 5,3 % auf dev_clean, und die Inferenz für 500 ms Audio dauert lediglich 52 ms. Das int8-quantifizierte Modell läuft offline ohne Cloud oder Internet – ideal für kompakte Geräte.
Systemarchitektur für Spracherkennung
Das System gliedert sich in drei Komponenten, um Speicher und Genauigkeit zu optimieren:
- Akustisches Modell: Wandelt Roh-Audiosignale in einen Phonemstrom um. Dieser ressourcenintensive Teil läuft auf der STM32N6-NPU.
- Decoder: Gruppiert Phoneme zu Wörtern mithilfe eines Wörterbuchs und Sprachgrammatik.
- Rescoring: Verfeinert Hypothesen mit Kontext, um die Trefferquote zu steigern.
Wir haben das akustische Modell – den Kern – implementiert und getestet. Decoder und Rescoring sind in Arbeit; sie sind ressourcenschonender.
Im Demo-Modus verarbeitet das Modell beliebige Phrasen in Echtzeit. Ein Interpreter bildet Phoneme über eine Lookup-Tabelle in Wörter um und zeigt Roh-Phoneme neben interpretierten Wörtern an. Die aktuelle Version ist auf ein begrenztes Vokabular beschränkt; ein vollständiger Decoder mit Sprachmodell wird jede Phrase meistern.
Stromverbrauch und Hardware-Spezifikationen
Während aktiver Inferenz beträgt der Gesamtverbrauch 0,215 W ohne Optimierungen:
| Komponente | Stromverbrauch |
|-----------------------------|----------------|
| NPU + Cortex-M55 | 160 mW |
| Externer Speicher (Flash + PSRAM) | 45 mW |
| Externe MCU-Pins | ~10 mW |
| Gesamt | ~215 mW |
NPU-Auslastung: 10,4 %, Cortex-M55 kaum für Mel-Spektrogramme genutzt. Optimierungen wie Core-Schlafmodi, Taktthrottling und maximale NPU-Belastung sind möglich. In Szenarien Wake-Word → Erkennung → Schlaf ist der Hintergrundverbrauch vernachlässigbar für lange Akkulaufzeiten.
Mel-Spektrogramme aus LibriSpeech und Onboard-Mikrofonaufnahmen erhalten Sprachmuster auch bei Rauschen. Rauschfilterung steht als Nächstes an.
Genauigkeitsmetriken und Leistung
Modell: 8,5 Mio. Parameter, trainiert auf LibriSpeech, quantifiziert auf int8.
| Metrik | Wert |
|----------------------------|-----------|
| PER (dev_clean) | 5,3 % |
| PER (dev_other) | 14,4 % |
| Quantisierungsverlust (dev_other / dev_clean) | 0,4 % / 0,15 % |
| NPU-Inferenz (500 ms Audio)| 52 ms |
| Gesamtlatenz | 985 ms |
PER (Phone Error Rate) misst Phonemfehler auf Wortebene. Metriken wurden on-device ermittelt: Validierungsdatensatz über NPU, Ergebnisse via UART. Latenz umfasst ein 485-ms-„Look-Ahead“-Fenster für Vorhersagen.
Vergleich mit Konkurrenzmodellen
| Modell | Größe | PER (test_clean) | WER (dev_clean) |
|---------------------------|----------|------------------|-----------------|
| STM32N6 Akustik | 8,5M | 5,51 | — |
| wav2vec 2.0 Base | 95,04M | 5,74 | 6,43 |
| HuBERT Base | 94,68M | 5,41 | 6,42 |
| QuartzNet 5x5 | 6,7M | — | 5,39 |
Das STM32N6-Modell erreicht 5,51 % PER bei 1/11 der Größe von wav2vec/HuBERT. Es läuft Echtzeit auf einem MCU mit 72 Phonemen – eine echte Herausforderung. Erwartetes WER mit Decoder: 16–25 % auf dev_other bei 8–16 Mio. Parametern.
Ressourcen und Skalierbarkeit
Nutzung: RAM 18 %, NPU 10,4 %. Viel Spielraum für 4x Modellgröße oder parallele Aufgaben. Stromoptimierungen verlängern die Akkulaufzeit weiter.
In Entwicklung:
- Phonem-Decoder mit probabilistischer Wortauswahl.
- Sprachmodell für kontextbasierte Korrekturen.
- Rauschunterdrückung vor NPU-Eingang.
Anwendungen von MCUs mit NPU
Nicht für lange Diktate (>100 MB), aber überlegen zu Keyword-Spotting (KWS): Beliebige Phrasen möglich.
- Smart Homes: „Mach das Wohnzimmer wärmer“ → Raum und Einstellung extrahieren.
- Dateneingabe: „Blutdruck 132“ → Zahl + Kontext.
- Industrie: „Geschwindigkeit 20 %“ an Werkzeugmaschinen.
- Gesundheitswesen: „Nüchternblutzucker“ auf Monitoren.
- Logistik: „Regal B12 – 3 Kisten“.
- Transport: „Zur Basis fahren“ offline.
- Spielzeug: Kindersprache ohne Cloud.
- Assistenztechnik: Sprachsteuerung für Prothesen.
Wichtige Erkenntnisse
- STM32N6-Akustikmodell: 5,3 % PER (dev_clean), 0,215 W, Echtzeit.
- 8,5 Mio. Parameter, int8-Quantisierung mit minimalem Genauigkeitsverlust.
- Übertrifft KWS: Beliebige Sprache, keine Vorlagen.
- Skalierbar: 18 % RAM, 10,4 % NPU-Auslastung.
- Sweet Spot: Offline-Befehle und Dateneingabe.
— Editorial Team
Noch keine Kommentare.