Powrót do strony głównej

NPU na MCU do mowy: STM32N6 i akustyka

Artykuł opisuje implementację modelu akustycznego rozpoznawania mowy na mikrokontrolerze STM32N6 z NPU. Osiągnięto PER 5,3% na dev_clean przy poborze 0,215 W i inferencji 52 ms. Porównanie z dużymi modelami, plany dotyczące dekodera i zastosowanie w autonomicznych urządzeniach.

Rozpoznawanie mowy na mikrokontrolerze: STM32N6 NPU w akcji
Advertisement 728x90

Mikrokontrolery z NPU do lokalnego rozpoznawania mowy: model akustyczny na STM32N6

Mikrokontroler STM32N6 z zintegrowanym NPU umożliwia realizację modelu akustycznego do rozpoznawania dowolnej mowy w czasie rzeczywistym. Zużycie energii — 0,215 W, PER na dev_clean — 5,3%, inferencja na 500 ms audio trwa 52 ms. Model jest kwantyzowany do int8, działa bez chmury i internetu, idealny dla kompaktowych urządzeń.

Architektura systemu rozpoznawania

System jest podzielony na trzy komponenty dla optymalizacji pamięci i dokładności:

  • Model akustyczny: przekształca surowy sygnał audio w strumień fonemów. Moduł zasobożerny, zaimplementowany na NPU STM32N6.
  • Dekoder: agreguje fonemy w słowa na podstawie słownika i gramatyki języka.
  • Rescoring: koryguje hipotezy z uwzględnieniem kontekstu, zwiększając prawdopodobieństwo poprawnego wyniku.

Zaimplementowano i przetestowano model akustyczny — podstawowy element. Dekoder i rescoring są w opracowaniu, są bardziej kompaktowe i wymagają mniej zasobów.

Google AdInline article slot

W trybie demo model przetwarza dowolne frazy w czasie rzeczywistym. Interpreter mapuje fonemy na słowa za pomocą tabeli, wyświetlając surowe fonemy i zinterpretowane słowa. Obecne podejście ogranicza słownik; pełny dekoder z modelem językowym rozszerzy możliwości na dowolne frazy.

Zużycie energii i parametry sprzętowe

Podczas aktywnej inferencji całkowite zużycie — 0,215 W bez optymalizacji:

| Komponent | Zużycie |

Google AdInline article slot

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

| NPU + Cortex-M55 | 160 mW |

| Zewnętrzna pamięć (Flash + PSRAM) | 45 mW |

Google AdInline article slot

| Zewnętrzne piny MCU | ~10 mW |

| Razem | ~215 mW |

NPU obciążony w 10,4%, Cortex-M55 używany minimalnie do mel-spektrogramu. Możliwe optymalizacje: tryb uśpienia rdzenia, obniżenie taktowania, pełne obciążenie NPU. W scenariuszu wake-word → rozpoznawanie → sleep zużycie w tle jest minimalne, zapewniając długą autonomię.

Mel-spektrogramy z LibriSpeech i nagrania z mikrofonu płytki zachowują struktury mowy mimo szumu. Filtracja szumu — kolejny krok.

Metryki dokładności i wydajność

Model: 8,5 mln parametrów, wyszkolony na LibriSpeech, kwantyzowany do int8.

| Metryka | Wartość |

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

| PER (dev_clean) | 5,3% |

| PER (dev_other) | 14,4% |

| Strata przy kwantyzacji (dev_other / dev_clean) | 0,4% / 0,15% |

| Inferencja NPU (500 ms audio) | 52 ms |

| Całkowita latencja | 985 ms |

PER (Phone Error Rate) — błędy na poziomie fonemów. Metryki uzyskane na urządzeniu: zbiór walidacyjny przetworzony przez NPU, wyniki przez UART. Latencja obejmuje 485 ms "okna w przyszłość" do predykcji.

Porównanie z podobnymi rozwiązaniami

| Model | Rozmiar | PER (test_clean) | WER (dev_clean) |

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

| STM32N6 acoustics | 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 |

Model na STM32N6 osiąga PER 5,51% przy rozmiarze 11 razy mniejszym niż wav2vec/HuBERT. Działa w czasie rzeczywistym na MCU, wykorzystuje 72 fonemy — trudne zadanie. Oczekiwany WER z dekoderem: 16–25% na dev_other przy 8–16M parametrów.

Zasoby i skalowalność

Zajęte: RAM — 18%, NPU — 10,4%. Rezerwa pozwala powiększyć model 4-krotnie, dodać zadania równoległe. Optymalizacje zużycia energii wydłużą autonomię.

W opracowaniu:

  • Dekoder fonemowy z probabilistycznym wyborem słów.
  • Model językowy do korekty kontekstowej.
  • Tłumienie szumu przed NPU.

Zastosowania MCU z NPU

Nie do długiej transkrypcji (wymaga >100 MB), ale przewyższa KWS: rozpoznaje dowolne frazy.

  • Inteligentny dom: "Zrób cieplej w salonie" → wyodrębnienie pokoju, parametru.
  • Wprowadzanie danych: "Ciśnienie 132" → liczba + kontekst.
  • Przemysł: "Prędkość 20%" przy maszynie.
  • Medycyna: "Glukoza po jedzeniu" w glukometrze.
  • Logistyka: "Półka B12 — 3 pudełka".
  • Transport: "Na bazę" bez internetu.
  • Zabawki: Dziecięca mowa bez chmury.
  • Urządzenia adaptacyjne: Głosowe sterowanie protezami.

Co najważniejsze

  • Model akustyczny na STM32N6: PER 5,3% (dev_clean), 0,215 W, czas rzeczywisty.
  • Rozmiar 8,5M parametrów, kwantyzacja int8 z minimalnymi stratami.
  • Przewyższa KWS: dowolna mowa, nie szablony.
  • Skalowalny: RAM 18%, NPU 10,4% obciążenia.
  • Nisza: autonomiczne komendy, wprowadzanie danych bez chmury.

— Editorial Team

Advertisement 728x90

Czytaj dalej