Rozpoznawanie mowy na mikrokontrolerze zwykle kończy się na słowie wybudzającym albo krótkiej liście poleceń. Otwarty projekt esp32-pie-asr autorstwa Boumedine'a Billala idzie dalej: na bieżąco zamienia na tekst dowolną angielską mowę na układzie ESP32-P4 firmy Espressif, bez usług w chmurze i bez osobnego akceleratora sieci neuronowych. Wersja 1.0 ukazała się na GitHubie 25 października 2026 roku na licencji Apache 2.0, a 28 października opisały ją Open Source For You i Adafruit.

Jak zmieścić model w mikrokontrolerze

Projekt korzysta z modelu Kroko firmy Banafo. To strumieniowy model Zipformer2 z 65,7 mln parametrów, którego wagi w oryginalnej, 8-bitowej postaci zajmują około 71 MB. Autor zapisał je w grupach 2- i 4-bitowych i zmniejszył w ten sposób do 26,65 MB. To wciąż za dużo na 16 MB pamięci flash płytki, dlatego wagi leżą na karcie microSD i przy starcie trafiają do 32 MB pamięci PSRAM. Wczytywanie trwa 2,9 sekundy. Obliczenia wykonują dwa rdzenie RISC-V taktowane zegarem 400 MHz, a najcięższe fragmenty autor napisał ręcznie w asemblerze dla PIE, czyli rozszerzenia SIMD w ESP32-P4.

Wyniki

Wszystkie liczby pochodzą z opisu projektu i nikt ich jeszcze niezależnie nie sprawdził:

  • odsetek błędnie rozpoznanych słów (WER) na zbiorze LibriSpeech test-clean: 4,34% wobec 3,94% dla oryginalnego modelu na komputerze;
  • na trudniejszym zbiorze test-other: 10,26% wobec 9,17%;
  • szybkość: 1,28 s nagrania w 0,90 s, czyli 0,7 czasu rzeczywistego;
  • opóźnienie: słowo jest ostateczne mniej więcej 2 sekundy po wypowiedzeniu, a 95% słów w ciągu 4,1 sekundy;
  • wolna pamięć wewnętrzna w trakcie pracy: 121 KB, a z przykładami sterowania 104 KB.

Autor zapewnia też, że układ liczy dokładnie to samo, bit w bit, co wersja projektu na komputer, więc dokładność zmierzona na komputerze jest dokładnością samego układu.

Sterowanie głosem bez modelu językowego

Oprogramowanie zaczyna od transkrypcji na żywo, a do tego ma sześć przykładów sterowania głosem: robot sprzątający, inteligentny dom, wnętrze samochodu, linia produkcyjna, kuchnia i prezentacja. Żaden nie korzysta z modelu językowego. Każdy przykład to tabela reguł opartych na słowach (czasownik, potem cel, do tego liczby, pomieszczenia i zaprzeczenia w rodzaju „not the bedroom”). Listy fraz zapisane na karcie microSD podpowiadają modelowi konkretne słowa bez ponownego trenowania. Z włączonymi listami autor podaje 94-99% poleceń rozpoznanych bezbłędnie i ani jednej fałszywej akcji na 88 nagraniach łudząco podobnych do poleceń w każdym przykładzie. Testy prowadzono jednak na nagraniach z syntezatora mowy, a listy fraz dobierano na tych samych nagraniach. W prawdziwym pomieszczeniu, z hałasem i różnymi głosami, wyniki mogą być słabsze.

Czego potrzeba

Do uruchomienia potrzebny jest ESP32-P4 w rewizji v3 (sprzedawany jako ESP32-P4X) z 32 MB PSRAM, mikrofon, ekran i karta microSD. Autor budował i mierzył wszystko na płytce Espressif ESP32-P4X-Function-EV-Board. Starsze płytki z P4 v1 nie są obsługiwane. Oprogramowanie można wgrać z przeglądarki Chrome lub Edge na stronie projektu albo zbudować w ESP-IDF v6.1. Wagi są w serwisie Hugging Face, a skrypt sam je pobiera, sprawdza i kopiuje na kartę.

Na razie działa tylko angielski. Arabski i przeniesienie na ESP32-S31 są w planach. Kto buduje głosowy panel do sterowania domem albo urządzeniem bez dostępu do sieci, dostaje jeden z pierwszych publicznych projektów z pełną transkrypcją na pojedynczym układzie ESP32. Trzeba się tylko pogodzić z dwusekundowym opóźnieniem.