logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Rozpoznawanie dźwięków na ARM Cortex-M0 już możliwe

ghost666 28 Mar 2020 10:32 1095 0
REKLAMA
  • Rozpoznawanie dźwięków na ARM Cortex-M0 już możliwe
    Rozpoznawanie dźwięków na ARM Cortex-M0 już możliwe
    Chris Mitchell
    Wyobraźmy sobie prosty eksperyment – stoimy z pistoletem w komorze bezechowej i naciskamy spust. Słyszymy dźwięk wystrzału, jednakże w niczym nie przypomina on tego, co słyszymy na filmach czy prawdziwych strzelnicach. Dla niewprawnego ucha może brzmieć jak pękający balon, chociaż, jak mówi ekspert audio Chris Mitchell, dyrektor generalny Audio Analytic (na zdjęciu po prawej stronie), pod względem dźwiękowym wystrzał jest zupełnie inny niż dźwięk pękającego balonu. Następnie kontynuujemy eksperyment i strzelamy ponownie – tym razem na hali magazynu. Ta próba z kolei daje coś więcej niż klasyczny dźwięk wystrzału, który można usłyszeć w filmach. Celem tej demonstracji jest zilustrowanie różnicy między dźwiękiem, który faktycznie pochodzi z pistoletu, a dźwiękiem, który częściej kojarzymy z wystrzałami, ale na który składają się odbicia i echa dźwięku z otoczenia.

    Rozdzielenie tych dwóch rzeczy jest absolutnie niezbędne, jeśli chcemy stworzyć sztuczną inteligencję, która może być używana do niezawodnego wykrywania wystrzałów, ponieważ chcemy, aby reagowała na dźwięk, który faktycznie wydaje broń, a nie na dźwięki, które są produktem otoczenia, wyjaśnia Mitchell.

    Laboratorium Audio Analytic mieści się na przedmieściach Cambridge. W budynku tym znajdziemy nie tylko broń, ale również wiele syren, dzwonków do drzwi i dziesiątki alarmów dymnych z całego świata (znacznie trudniejsze do zdobycia niż broń, jak mówi Mitchell, ze względu na radioaktywny materiał w czujnikach). Dźwięki z tych urządzeń są starannie rejestrowane. Nagrywa się także takie dźwięki, jak szczekanie psów i wybijanie okien. Wszystkie te nagrania są wykorzystywane do szkolenia wiodących na świecie modeli AI w zakresie rozpoznawania dźwięku.

    Te modele używane są, aby dać maszynom zmysł słuchu, umożliwiając im poznawanie świata na podstawie dźwięków dochodzących z otoczenia. Może to oznaczać systemy bezpieczeństwa, które nasłuchują alarmów przeciwpożarowych, stłuczenia szkła lub wystrzałów, ale istnieje wiele innych aplikacji dla urządzeń konsumenckich, które mogą analizować dźwięki i używać tej wiedzy do działania.

    Mitchell mówi, że kluczem do szkolenia modelu AI w zakresie dokładnego rozpoznawania dźwięków są dane. Gromadzenie danych wysokiej jakości i odpowiednie oznaczanie tych danych ma ogromne znaczenie dla tworzenia wydajnych modeli uczenia maszynowego, które mogą zapewnić precyzyjne rozpoznawanie dźwięków, nawet przy ograniczonej mocy obliczeniowej.

    Rozpoznawanie dźwięków na ARM Cortex-M0 już możliwe
    Dominic Binks
    Modele TinyML

    W biurze Audio Analytic wicedyrektor ds. technologicznych spółki, Dominic Binks (na zdjęciu po lewej stronie) pokazuje jedno z najnowszych osiągnięć firmy - rozpoznawanie określonego dźwięku przez AI za pomocą modelu, który może pracować na układzie z rdzeniem ARM Cortex-M0+. W zaprezentowanym systemie układ z mikrokontrolerem NXP Kinetis KL82 jest w stanie wykryć płacz dziecka.

    „W przypadku tego konkretnego procesora najlepszym sposobem na jego opisanie jest to, że dosłownie nic w nim nie pomaga w AI” tłumaczy Binks. KL82 zawiera rozsądną ilość pamięci Flash (128 kB) i pamięci RAM (96 kB), ale nie ma ani rdzenia DSP ani innego specjalistycznego rdzenia do przetwarzania algorytmów AI. Zużywa za to zaledwie kilkadziesiąt miliwatów podczas pracy.

    Zainstalowanie biblioteki oprogramowania ai3, stworzonej przez Audio Analytics, w mikrokontrolerze nie było łatwym zadaniem. Binks mówił, że usunięcie funkcji dedykowanych do większych systemów, takich jak możliwość nagrywania i odtwarzania dźwięków, a także narzędzia, takie jak debugger itp. pozwoliły zoptymalizować bibliotekę na tyle, że możliwe było zainstalowanie jej na tym układzie. Nie bez znaczenia był też fakt, że model wykrywania płaczu dziecka jest jednym z najmniejszych, jakie opracowała firma.

    Rozpoznawanie dźwięków na ARM Cortex-M0 już możliwe
    Binks wskazuje też, że zespół musiał napisać w assemblerze funkcje do obsługi mnożenia dwóch liczb 32-bitowych tak, by dawały 32-bitwy wynik. (normalnie taki iloczyn ma do 64 bit). Skróciło to czas przetwarzania każdej próbki dźwięku do wymaganego okna 16 ms (przy próbkowaniu 16 kHz i pobieraniu 256 próbek jednocześnie należy przetwarzać audio właśnie w takim oknie).

    „Wykonując ten kawałek kodu, skróciliśmy czas pracy do 11..12 milisekund, co daje nam trochę miejsca na wypadek, gdybyśmy mieli trochę więcej do zrobienia” powiedział Binks, podkreślając szczególne wymagania dotyczące przepustowość przetwarzania.

    Etykietowane dane

    Rozpoznawanie dźwięku, w przeciwieństwie do rozpoznawania mowy, jest tradycyjnie raczej złożonym zadaniem dla AI. Jak Audio Analytic udało się realizować to na tak słabym układzie? „Nie jest to dla nas takie trudne, ponieważ nasz model jest na dość mały” tłumaczy Binks.

    Model rozpoznawania dźwięku Audio Analytic – AuditoryNET - jest dość wyjątkowy, w dużej mierze dzięki wysokiej jakości etykietowania danych, które są używane do jego szkolenia. Etykiety są niezbędne - mówią modelowi, które części dźwięku są istotne, dzięki czemu model płaczu dziecka nie tworzy na przykład funkcji opartych na dźwiękach oddechu dziecka między płaczami.

    „Etykiety pomagają maszynie wychwycić tylko odpowiednie części odpowiadające temu konkretnemu dźwiękowi” objaśnia Binks. „Jeśli przedstawisz więcej danych niż jest to konieczne, będziesz mieć większą różnorodność. Na ogół stwierdziliśmy, że im dokładniej oznaczamy dane i im więcej danych dajemy modelom uczenia maszynowego w trakcie szkolenia, tym mniejsze są modele. Jest oczywiście granica, ale ogólnie mówiąc, ponieważ modele bardziej uogólniają się, im więcej danych poznają, tym lepiej rozpoznają, jakie są naprawdę istotne cechy danego dźwięku”.

    Jednym ze sposobów wizualizacji tej koncepcji jest mapa dźwiękowa Audio Analytic: Alexandria. Ten schemat jest dwuwymiarową reprezentacją 15 milionów dźwięków w zbiorze danych audio firmy. Dźwięki te oznaczone są aż 700 typami etykiet. Obejmuje wszystko, od syren alarmowych i alarmów po dźwięki, takie jak śmiech, kaszel czy kichanie. Klasyfikacja określonego dźwięku, wyjaśnia Mitchell, oznacza narysowanie pewnego okręgu wokół odpowiednich punktów na mapie.

    „Im bardziej skomplikowane i rozczłonkowane są dane i im większy jest szum, tym bardziej złożone kształty musisz narysować, a system będzie bardziej podatny na błędy. Model również jest wtedy większy, ponieważ dodajesz więcej parametrów, aby opisać większą rzecz” wyjaśnia Mitchell. „Chcesz uzyskać kompromis między najmniejszą, najbardziej kompaktową i wyrazistą reprezentacją podstawowej zmienności dźwięków, które przechwytujesz - nie więcej i nie mniej. Jeśli 20% etykiet przestanie działać po 50 milisekundach, oznacza to, że w modelu znalazłeś całą masę rzeczy, których nie powinieneś. Dzięki temu model nauczył się wielu niepotrzebnych parametrów, a z punktu widzenia pamięci lub zasobów procesora to marnotrawstwo”.

    W przeciwieństwie do modeli przetwarzania mowy i języka, dla których istnieje duża ilość otwartych danych szkoleniowych, dla innych dźwięków nie ma takich zestawów danych. Przechwytywanie i etykietowanie danych szkoleniowych wymagało znacznej inwestycji od Audio Analytic, a zatem stanowi znaczną część własności intelektualnej firmy. Model AuditoryNET został również stworzony od zera przez Audio Analytic.

    Modele używane do analizy dźwięku zasadniczo różnią się od powszechnie dostępnych modeli przetwarzania mowy czy języka. W porównaniu do analizy mowy, fizyczne procesy, w których wytwarzany jest dźwięk, są dużo bardziej zróżnicowane. Ogólne mówiąc, dźwięki są również znacznie bardziej zróżnicowane między sobą niż mowa; wszelkie dźwięki mogą następować po dowolnej innej sekwencji dźwięków. Problemy z rozpoznawaniem wzorców i wynikające z nich modele uczenia maszynowego wyglądają zupełnie inaczej niż ich odpowiedniki dla systemów maszynowego „rozumienia” mowy.

    Rzeczywiste aplikacje

    Wykorzystanie algorytmów uczenia maszynowego do analizy dźwięku na małych mikrokontrolerach otwierają wiele nowych możliwości; to, co było do niedawna złożonym i wymagającym obliczeniowo zadaniem, jest teraz realistycznym zadaniem dla smartfonów, elektroniki użytkowej, wkładek dousznych, urządzeń do noszenia czy, w zasadzie, dowolnego produktu z mikrokontrolerem. Smartfony często mają procesor klasy ARM Cortex-M4, więc tutaj takie możliwości nie dziwią, ale teraz łatwo jest wyobrazić sobie coś podobnego, ale do rozpoznawania szerokiej gamy dźwięków, działającego na niedrogim procesorze z rdzeniem Cortex-M0+.

    Jedna z poprzednich demonstracji firmy, działająca na procesorze Ambiq Micro, może na przykład działać przez kilka lat na parze baterii AA. W tym pokazie wykorzystano procesor Ambiq Micro SPOT (zoptymalizowany pod kątem pobieranej mocy), oparty na implementacji rdzenia ARM Cortex-M4, zoptymalizowanej pod kątem niskiego poboru mocy. System uzupełniony był energooszczędnym mikrofonem piezoelektrycznym Vesper, który nie zużywa energii, nawet podczas słuchania. Demonstracja ta udowodniła, że kombinacja mikrofonu i procesora o bardzo niskiej mocy może reagować wystarczająco szybko, aby wykryć impulsywne dźwięki, takie jak tłuczenie szkła.

    Mitchell wyobraża sobie teraz świat, w którym inteligentne systemy domowe mogą np. redukować poziom głośności telewizora po wykryciu płaczu dziecka, a zamiast tego odtwarzać dźwięk na żywo z pokoju dziecka, być może nawet wstawiając obraz z systemu kamer do monitorowania pokoju dziecięcego. Ale są też bardziej subtelne przypadki użycia. Oprócz rozpoznawania określonych dźwięków, ai3 może klasyfikować środowiska audio do różnych scen, a następnie wykorzystywać te informacje do dostosowywania efektów dźwiękowych z urządzeń konsumenckich, takich jak słuchawki. Na przykład, dostosowanie ustawień korektora graficznego lub zwiększenie aktywnej eliminacji szumów w słuchawkach, gdy osoba przemieszcza się np. po stacji kolejowej, lub przechodzi z głośnego przystanku do wnętrza autobusu.

    Tego rodzaju aplikacje są dziś w pełni wykonalne, oczywiście dzięki odpowiedniej kombinacji modelu uczenia maszynowego, danych szkoleniowych i sprzętu. Patrząc w przyszłość, możemy sobie wyobrazić jeszcze bardziej złożone aplikacje audio dla AI, wykraczające daleko poza podstawową analizę dźwięków, działającą na sprzęcie o ograniczonych zasobach. Wynika to z faktu, że dostawcy krzemu cały czas zwiększają możliwości swoich urządzeń i dostosowują je do potrzeb systemów uczenia maszynowego.

    Ogólnym efektem będzie danie maszynom zmysłu słuchu, co pozwoli im lepiej oceniać kontekst za pomocą dźwięków, a ostatecznie stać się mądrzejszymi.

    Źródło: https://www.eetimes.com/ai-sound-recognition-on-a-cortex-m0-data-is-king/

    Fajne? Ranking DIY
    O autorze
    ghost666
    Tłumacz Redaktor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    https://twitter.com/Moonstreet_Labs
    ghost666 napisał 11961 postów o ocenie 10262, pomógł 157 razy. Mieszka w mieście Warszawa. Jest z nami od 2003 roku.
  • REKLAMA
REKLAMA