Przewiń do głównej treści

Projekt SpeechRecognition

Projekt SpeechRecognition, powstały w ramach przedmiotu Technik Realizacji Cyfrowego Przetwarzania Sygnałów, zakładał stworzenie prostego systemu EdgeAI umożliwiajacego klasyfikację podstawowych komend głosowych, takich jak left, right, stop oraz go z wykorzystaniem sieci neuronowej umieszczonej na mikrokontrolerze STM32.

Na samym początku zdefinowana została architektura całego systemu, w której wyszczególnić można 3 elementy:

  • akwizycja sygnału (mikrofon analogowy i próbkowanie z użyciem ADC)
  • preprocesing audio (filtracja, decymacja do 8kHz, zamiana na spektrogram i eliminacja szumów spektralnych)
  • klasyfikacja spektrogramów

Sieć neuronowa została wytrenowana z użyciem biblioteki Tensorflow w trybie offline na zbiorze danych speech commands. Poniżej przedstawiona została macierz pomyłek dla najlepszego modelu na danych testowych.

Najlepszy model został nastepnie dotrenowany na próbkach pochodzących z docelowego mikrofonu podłącoznego do mikrokontrolera, a liczba klas wyjściowych została zredukowana do 4. Przed konwersją na mikrokontroler STM32 z użyciem narzędzia X-Cube-AI sieć została dodatkowo zoptymalizowana i poddana procesowi kwantyzacji.

Poniżej przedstawiono wynik testów w postaci macierzy pomyłek dla całego systemu.

Skuteczność systemu mogłaby zostać poprawiona przy zastosowaniu mikrofonu MEMS z cyfrowym interfejsem I2S, zwiększeniu częstotliwości audio do fs=16kHz oraz zastosowaniu mikrokontrolera z większą ilością dostępnej pamięci SRAM.