Zurück zur Startseite

NPU auf MCU für Sprache: STM32N6 und Akustik

Der Artikel beschreibt die Implementierung eines akustischen Spracherkennungsmodells auf dem STM32N6-Mikrocontroller mit NPU. Erreichte PER 5.3% auf dev_clean bei 0.215 W Verbrauch und 52 ms Inferenz. Vergleich mit großen Modellen, Pläne für Decoder und Anwendung in autonomen Geräten.

Spracherkennung auf Mikrocontroller: STM32N6 NPU in Aktion
Advertisement 728x90

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.

Google AdInline article slot

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 |

Google AdInline article slot

|-----------------------------|----------------|

| NPU + Cortex-M55 | 160 mW |

| Externer Speicher (Flash + PSRAM) | 45 mW |

Google AdInline article slot

| 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

Advertisement 728x90

Weiterlesen