Mikrokontroléry s NPU pro lokální rozpoznávání řeči: akustický model na STM32N6
Mikrokontrolér STM32N6 s integrovaným NPU umožňuje realizovat akustický model rozpoznávání libovolné řeči v reálném čase. Spotřeba energie je pouze 0,215 W, PER na dev_clean činí 5,3 %, inference na 500 ms audia zabere 52 ms. Model je kvantizován na int8, funguje bez cloudu a internetu, ideální pro kompaktní zařízení.
Architektura systému rozpoznávání
Systém je rozdělen do tří komponent pro optimalizaci paměti a přesnosti:
- Akustický model: převádí surový audiosignál do proudu fonémů. Nejnáročnější část, realizovaná na NPU STM32N6.
- Dekodér: agreguje fonémy do slov podle slovníku a gramatiky jazyka.
- Rescoring: koriguje hypotézy s ohledem na kontext pro zvýšení pravděpodobnosti správného výsledku.
Realizován a otestován byl akustický model – základní prvek. Dekodér a rescoring jsou ve vývoji, jsou kompaktnější a vyžadují méně zdrojů.
V demo režimu model zpracovává libovolné fráze v reálném čase. Interpretátor mapuje fonémy na slova podle tabulky, zobrazuje surové fonémy i interpretovaná slova. Současný přístup omezuje slovník; plnohodnotný dekodér s jazykovým modelem rozšíří možnosti na libovolné fráze.
Spotřeba energie a hardwarové parametry
Při aktivním inference je celková spotřeba 0,215 W bez optimalizací:
| Komponenta | Spotřeba |
|-----------------------------|----------|
| NPU + Cortex-M55 | 160 mW |
| Vnější paměť (Flash + PSRAM)| 45 mW |
| Vnější piny MCU | ~10 mW |
| Celkem | ~215 mW |
NPU je zatíženo na 10,4 %, Cortex-M55 se používá minimálně pro mel-spektrogram. Možné optimalizace: spánkový režim jádra, snížení frekvence, plné zatížení NPU. Ve scénáři wake-word → rozpoznání → sleep je pozadí spotřeba minimální, zajišťuje dlouhou autonomii.
Mel-spektrogramy z LibriSpeech a nahrávky z mikrofonu desky zachovávají strukturu řeči i přes šum. Filtrace šumu je dalším krokem.
Metriky přesnosti a výkon
Model: 8,5 mil. parametrů, trénován na LibriSpeech, kvantizován na int8.
| Metrika | Hodnota |
|----------------------------|-----------|
| PER (dev_clean) | 5,3 % |
| PER (dev_other) | 14,4 % |
| Ztráta při kvantizaci (dev_other / dev_clean) | 0,4 % / 0,15 % |
| Inference NPU (500 ms audia) | 52 ms |
| Celková latence | 985 ms |
PER (Phone Error Rate) – chyby na úrovni fonémů. Metriky získány na zařízení: validační dataset prošel NPU, výsledky přes UART. Latence zahrnuje 485 ms „okno do budoucnosti“ pro predikci.
Srovnání s konkurencí
| Model | Velikost | 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 dosahuje PER 5,51 % při velikosti 11× menší než wav2vec/HuBERT. Běží v reálném čase na MCU, používá 72 fonémů – náročná úloha. Očekávaný WER s dekodérem: 16–25 % na dev_other při 8–16M parametrech.
Zdroje a škálovatelnost
Obsazeno: RAM – 18 %, NPU – 10,4 %. Rezerva umožňuje zvětšit model 4×, přidat paralelní úlohy. Optimalizace spotřeby prodlouží autonomii.
Ve vývoji:
- Fonémový dekodér s pravděpodobnostním výběrem slov.
- Jazykový model pro kontextovou korekci.
- Potlačení šumu před vstupem do NPU.
Aplikace MCU s NPU
Není pro dlouhou diktovku (>100 MB), ale překonává KWS: rozpoznává libovolné fráze.
- Chytrá domácnost: „Udělej v obýváku tepleji" → extrakce místnosti, parametru.
- Vstup dat: „Tlak 132" → číslo + kontext.
- Průmysl: „Rychlost 20 %" u stroje.
- Zdraví: „Glukóza po jídle" v tlakoměru.
- Logistika: „Police B12 – 3 krabice".
- Doprava: „Na základnu" bez internetu.
- Hračky: Dětská řeč bez cloudu.
- Adaptivní zařízení: Hlasové ovládání protéz.
Klíčové body
- Akustický model na STM32N6: PER 5,3 % (dev_clean), 0,215 W, reálný čas.
- Velikost 8,5M parametrů, int8 kvantizace s minimálními ztrátami.
- Překonává KWS: libovolná řeč, ne šablony.
- Škálovatelné: RAM 18 %, NPU 10,4 % zatížení.
- Níše: autonomní příkazy, vstup dat bez cloudu.
— Editorial Team
Zatím žádné komentáře.