Wdrażanie głosowego interfejsu użytkownika w mikrokontrolerach MCU o ograniczonych zasobach
Inteligentne głośniki i inne połączone koncentratory połączone stanowią serce inteligentnego domu, umożliwiając użytkownikom sterowanie urządzeniami i uzyskiwanie dostępu do Internetu. W miarę rozpowszechniania się tych urządzeń widoczne są dwa trendy: użytkownicy wolą sterowanie głosowe bardziej niż naciskanie przycisków lub skomplikowane systemy menu oraz zauważalny jest rosnący dyskomfort związany z ciągłą łącznością z chmurą ze względu na obawy dotyczące prywatności.
Solidny i bezpieczny głosowy interfejs użytkownika (VUI) do rozpoznawania głosu wymaga zazwyczaj wydajnego sprzętu i złożonego oprogramowania. Gorsze rozwiązania prawdopodobnie spowodują słabe parametry działania i niezadowalający komfort obsługi. Ponadto wiele inteligentnych głośników i koncentratorów jest zasilanych z baterii, więc przy opracowywaniu głosowego interfejsu użytkownika (VUI) trzeba mieć na uwadze ograniczony budżet mocy. Tak ambitny projekt może zniechęcać dewelopera, który nie ma doświadczenia z interfejsami głosowymi.
W odpowiedzi na to, producenci układów półprzewodnikowych wprowadzają technikę opartą na fonemach, która znacznie obniża wymagania dotyczące przetwarzania. W rezultacie powstaje bardzo dokładne i wydajne oprogramowanie głosowego interfejsu użytkownika VUI, które może działać na znanych 32-bitowych mikrokontrolerach MCU i jest obsługiwane przez łatwe w użyciu narzędzia do projektowania.
W niniejszym artykule opisano wyzwania związane z głosowymi interfejsami użytkownika VUI i przykłady ich użycia. Następnie przedstawiono komercyjne, łatwe w użyciu oprogramowanie aplikacyjne mikrokontrolera MCU oraz lokalne oprogramowanie głosowego interfejsu użytkownika (VUI) oparte na fonemach do zastosowań w domach połączonych. Na koniec artykułu pokazano, jak rozpocząć pracę nad projektami z głosowym interfejsem użytkownika (VUI) przy użyciu mikrokontrolerów MCU firmy Renesas, oprogramowania głosowego interfejsu użytkownika (VUI) i zestawów ewaluacyjnych.
Wyzwania związane z tworzeniem głosowego interfejsu użytkownika (VUI)
Głosowy interfejs użytkownika (VUI) to technologia rozpoznawania mowy, która umożliwia interakcję z komputerem, smartfonem, systemem automatyki domowej lub innym urządzeniem za pomocą poleceń głosowych. Po pokonaniu początkowych wyzwań inżynieryjnych, technologia ta stała się niezawodnym interfejsem sterującym i jest obecnie szeroko stosowana w głośnikach inteligentnych i innych urządzeniach do domów inteligentnych. Główną zaletą głosowego interfejsu użytkownika (VUI) jest jego wygoda: natychmiastowe sterowanie z dowolnego miejsca w zasięgu głosu, bez konieczności używania klawiatury, myszy, przycisków, menu lub innych interfejsów do wprowadzania poleceń (ilustracja 1).
Ilustracja 1: Technologia głosowego interfejsu użytkownika (VUI) jest szeroko stosowana w domach i budynkach inteligentnych, ponieważ jest wygodna i elastyczna. (Źródło ilustracji: Renesas)
Minusem głosowego interfejsu użytkownika (VUI) jest jego złożoność. Konwencjonalna technologia opiera się na długotrwałym trenowaniu modelu z użyciem określonych słów lub fraz. Jednak przetwarzanie języka naturalnego jest niezależne od szyku wyrazów, co wymaga dość intensywnych prac rozwojowych i znacznej mocy obliczeniowej do działania w czasie rzeczywistym. To spowolniło upowszechnienie głosowych interfejsów użytkownika (VUI).
Nowa technika upraszcza oprogramowanie głosowego interfejsu użytkownika (VUI) do tego stopnia, że pozwala działać na małych, wydajnych mikrokontrolerach (MCU), takich jak urządzenia Arm® Cortex®-M. Technika ta opiera się na fakcie, że wszystkie słowa w każdym języku mówionym składają się z dźwięków zwanych fonemami. Istnieje znacznie mniej fonemów niż słów - język angielski zawiera 44, włoski 32, a w tradycyjnym hawajskim występuje tylko 14. Jeśli głosowy interfejs użytkownika (VUI) używa zestawu poleceń w języku angielskim składającego się z 200 słów, każde słowo można rozbić na fonemy ze zbioru 44 elementów.
W oprogramowaniu głosowego interfejsu użytkownika (VUI) każdy fonem można zidentyfikować za pomocą kodu numerycznego (lub „tokena”), przy czym różne tokeny tworzą język. Przechowywanie słów w postaci dźwięków wymaga znacznych zasobów obliczeniowych a same dźwięki zajmują znacznie więcej miejsca w pamięci niż fonemy w postaci tokenów. Przetwarzanie tokenów fonemów (a tym samym słów poleceń) w oczekiwanej kolejności upraszcza obliczenia i umożliwia lokalne uruchamianie oprogramowania głosowego interfejsu użytkownika (VUI) na niewielkim mikrokontrolerze MCU (ilustracja 2).
Ilustracja 2: Reprezentowanie słów za pomocą fonemów wymaga mniejszych zasobów mikrokontrolera. (Źródło ilustracji: Renesas)
Oznacza to, że wydajność oprogramowania osiągnięta dzięki użyciu fonemów pozwala na lokalne przetwarzanie danych. Eliminacja potrzeby przetwarzania w chmurze oznacza, że nie ma wymogu ciągłej łączności z Internetem, co budziło obawy dotyczące prywatności użytkowników i bezpieczeństwa danych.
Firma Renesas zaprezentowała komercyjny pakiet oprogramowania głosowego interfejsu użytkownika (VUI) opartego na zasadzie fonemów, stanowiący element jej własnego ekosystemu. Oprogramowanie o nazwie Cyberon DSpotter tworzy algorytm głosowego interfejsu użytkownika (VUI), który jest odpowiednio dostosowany do działania na mikrokontrolerach MCU RA firmy Renesas z rdzeniami Arm Cortex-M4 oraz M33.
Rozwój z wykorzystaniem oprogramowania Cyberon DSpotter
Oprogramowanie Cyberon DSpotter bazuje na bibliotece fonemów i ich kombinacji. Jest to podejście alternatywne do tradycyjnego i wymagającego dużej mocy obliczeniowej uczenia algorytmów rozpoznawania określonych słów. Do rozbijania słów na fonemy, a następnie przedstawiania ich w postaci tokenów, deweloper może użyć narzędzia modelowania DSpotter.
DSpotter jest oprogramowaniem wbudowanym (bez połączenia z chmurą), które działa jako lokalne rozwiązanie do wyzwalania głosowego i rozpoznawania poleceń ze skuteczną redukcją szumów. Zużywa ono minimalne zasoby i charakteryzuje się wysoką dokładnością. W zależności od wybranego mikrokontrolera MCU można również wdrożyć bezpieczny transfer danych.
Narzędzie DSpotter pyta o każde słowo lub frazę polecenia, które następnie rozkłada na fonemy. Zestaw poleceń i dane pomocnicze dla głosowego interfejsu użytkownika (VUI) są następnie wbudowywane w plik binarny, który deweloper dołącza do projektu wraz z biblioteką Cyberon. Biblioteka i plik binarny są używane przez mikrokontroler MCU do obsługi rozpoznawania żądanych poleceń głosowych.
Narzędzie DSpotter tworzy „zestawy poleceń”, które mogą być logicznie połączone przez program dewelopera w celu utworzenia głosowego interfejsu użytkownika (VUI) z różnymi poziomami. Pozwala to na wydawanie wielopoziomowych poleceń, takich jak „Żarówka ustawienie wysokie”, przy czym słowami poleceń są „żarówka”, następnie „ustawienie” i „wysokie”. Każde polecenie w grupie ma swój własny indeks, podobnie jak każde polecenie na danym poziomie (ilustracja 3).
Ilustracja 3: Narzędzie DSpotter pozwala na tworzenie „zestawów poleceń”, które mogą być logicznie łączone przez program dewelopera w celu utworzenia głosowego interfejsu użytkownika (VUI) o różnych poziomach. (Źródło ilustracji: Renesas)
Biblioteka DSpotter przetwarza przychodzący dźwięk i wyszukuje fonemy, które pasują do poleceń w bazie danych. Po znalezieniu dopasowania, zwraca numery indeksu i grupy. Taka organizacja pozwala kodowi głównej aplikacji na tworzenie instrukcji przełączania hierarchicznego w celu przetwarzania słów lub fraz poleceń w miarę ich pojawiania się. Wynikowa biblioteka może być na tyle mała, aby zmieścić się na mikrokontrolerze MCU, zawierającym zaledwie 256kB pamięci flash i 32kB pamięci SRAM. Jeśli dostępna jest większa ilość pamięci, zestaw poleceń można rozbudowywać.
Deweloperzy powinni mieć świadomość, że głosowe interfejsy użytkownika (VUI) wykorzystujące metodę fonemową mają swoje ograniczenia. Stosunkowo ograniczone zasoby mikrokontrolera MCU sprawiają, że oprogramowanie DSpotter firmy Cyberon wykorzystuje funkcję rozpoznawania mowy, a nie głosu. Oznacza to, że oprogramowanie nie jest w stanie przetwarzać języka naturalnego. W związku z tym, jeśli słowa poleceń nie występują w logicznej sekwencji (na przykład „wysokie”, „żarówka”, „ustawienie” zamiast „żarówka”, „ustawienie”, „wysokie”), system ich nie rozpozna i nastąpi reset do najwyższego poziomu.
Jedną z sugestii projektowych jest dodanie wizualnego wskaźnika do głosowego interfejsu użytkownika (VUI) (na przykład diody LED), sygnalizującego, kiedy procesor przyjmuje, że znajduje się na najwyższym poziomie zestawu poleceń, co zachęca użytkownika do ponownego wydania polecenia w logicznej kolejności (ilustracja 4).
Ilustracja 4: Uproszczony charakter oprogramowania Cyberon DSpotter wymaga, aby polecenia następowały w logicznej kolejności, w przeciwnym razie nie zostaną rozpoznane. (Źródło ilustracji: Renesas)