Een spraakgebruikersinterface implementeren op MCU's met beperkte bronnen
Bijgedragen door De Noord-Amerikaanse redacteurs van DigiKey
2023-12-14
Slimme luidsprekers en andere verbonden hubs vormen het hart van het slimme huis, waarmee gebruikers apparaten kunnen bedienen en toegang hebben tot het internet. Er zijn twee trends zichtbaar naarmate deze apparaten zich uitbreiden: gebruikers geven de voorkeur aan stembediening boven het indrukken van knoppen of ingewikkelde menusystemen, en er is een toenemend ongemak met continue cloudconnectiviteit vanwege zorgen over privacy.
Een robuuste en veilige voice user interface (VUI) vereist echter meestal krachtige hardware en complexe software voor stemherkenning. Alles minder dan dat zal waarschijnlijk resulteren in slechte prestaties en onbevredigende gebruikerservaringen. Bovendien werken veel slimme luidsprekers en hubs op batterijen, dus een VUI moet worden gerealiseerd binnen een krap energiebudget. Zo'n ambitieus project kan ontmoedigend zijn voor een ontwikkelaar die geen ervaring heeft met spraakinterfaces.
Chipfabrikanten reageren hierop door een techniek op basis van fonemen te introduceren die de verwerkingseisen aanzienlijk verlaagt. Het resultaat is zeer nauwkeurige en efficiënte VUI-software die kan draaien op bekende 32-bits microcontrollers (MCU's) en wordt ondersteund door gebruiksvriendelijke ontwerptools.
Dit artikel beschrijft VUI-uitdagingen en use cases. Vervolgens wordt commerciële, gebruiksvriendelijke MCU-toepassingssoftware en op lokale telefoons gebaseerde VUI-software voor connected home toepassingen geïntroduceerd. Tot slot laat het artikel ontwikkelaars zien hoe ze aan de slag kunnen met VUI-projecten met behulp van Renesas MCU's, VUI-software en evaluatiekits.
De uitdagingen van het bouwen van een VUI
Een VUI is spraakherkenningstechnologie die interactie met een computer, smartphone, domoticasysteem of ander apparaat mogelijk maakt door middel van spraakopdrachten. Na vroege technische uitdagingen is de technologie uitgegroeid tot een betrouwbare besturingsinterface en wordt nu op grote schaal gebruikt in slimme luidsprekers en andere slimme thuis-apparaten. Het belangrijkste voordeel van een VUI is het gemak: directe bediening vanaf elke plek binnen spraakbereik zonder gebruik te hoeven maken van een toetsenbord, muis, knoppen, menu's of andere interfaces om commando's in te voeren (Afbeelding 1).
Afbeelding 1: VUI-technologie wordt veel gebruikt in huizen en slimme gebouwen omdat het handig en flexibel is. (Bron afbeelding: Renesas)
Het nadeel van een VUI is de complexiteit. Conventionele technologie is gebaseerd op het langdurig trainen van een model met specifieke woorden of zinnen. Maar natuurlijke taalverwerking is onafhankelijk van de woordvolgorde, wat veel ontwikkelingswerk en aanzienlijke rekenkracht vereist om in realtime te kunnen werken. Dit heeft de bredere toepassing van VUI's vertraagd.
Nu is er een nieuwe techniek die VUI-software zodanig vereenvoudigt dat deze kan draaien op kleine, efficiënte microcontrollers (MCU's) zoals Arm® Cortex®-M-apparaten. Deze techniek is gebaseerd op het feit dat alle woorden in elke gesproken taal zijn opgebouwd uit taalklanken die fonemen worden genoemd. Er zijn veel minder fonemen dan woorden; Engels heeft er 44, Italiaans 32 en de traditionele Hawaiiaanse taal heeft er slechts 14. Als een VUI een Engelse opdrachtenverzameling van 200 woorden gebruikt, kan elk woord worden opgesplitst in de bijbehorende fonemen uit de verzameling van 44 woorden.
Binnen VUI-software kan elk foneem dan worden geïdentificeerd door een numerieke code (of een "token"), waarbij de verschillende tokens de taal vormen. Het opslaan van woorden als klanken vereist veel rekenkracht en neemt veel meer geheugenruimte in beslag dan fonemen die als tokens worden opgeslagen. Het verwerken van foneem tokens (en dus commando woorden) in een verwachte volgorde vereenvoudigt het rekenwerk verder en maakt het mogelijk om VUI-software lokaal te draaien op een bescheiden MCU (Afbeelding 2).
Afbeelding 2: Woorden weergeven met behulp van fonemen vereist minder microcontrollerbronnen. (Bron afbeelding: Renesas)
Dit betekent dat de software-efficiëntie die wordt bereikt door het gebruik van fonemen het mogelijk maakt om de verwerking lokaal uit te voeren. Doordat verwerking in de cloud niet meer nodig is, is er geen continue internetverbinding nodig, wat problemen oplevert voor de privacy van gebruikers en de beveiliging van gegevens.
Renesas heeft als onderdeel van zijn ecosysteem een commercieel VUI-softwarepakket laten zien dat is gebaseerd op het foneemprincipe. De software, Cyberon DSpotter genaamd, creëert een VUI-algoritme dat gestroomlijnd genoeg is om te draaien op Renesas RA-serie MCU's met Arm Cortex-M4- en M33-kernen.
Ontwikkelen met Cyberon DSpotter
Cyberon DSpotter is gebouwd op een bibliotheek van fonemen en foneemcombinaties. Dit is een alternatieve benadering voor de traditionele en computerintensieve training van algoritmen om specifieke woorden te herkennen. Om woorden op te splitsen in fonemen en ze vervolgens weer te geven als tokens, kan de ontwikkelaar de DSpotter Modeling Tool gebruiken.
DSpotter is ingebedde (niet-cloud) software die werkt als een lokale stemherkenning met robuuste ruisonderdrukking. Het verbruikt minimale bronnen en is zeer nauwkeurig. Afhankelijk van de geselecteerde MCU kan beveiligde gegevensoverdracht ook worden geïmplementeerd.
DSpotter vraagt naar elk opdrachtwoord of zinsdeel, dat het hulpprogramma opdeelt in fonemen. De opdrachtset en ondersteunende gegevens voor de VUI worden dan in een binair bestand gebouwd dat de ontwikkelaar samen met de Cyberon-bibliotheek in het project opneemt. De bibliotheek en het binaire bestand worden samen gebruikt op de MCU om de herkenning van de gewenste spraakcommando's te ondersteunen.
De tool DSpotter maakt "CommandSets" die logisch met elkaar verbonden kunnen worden door het programma van de ontwikkelaar om een VUI met verschillende niveaus te maken. Dit maakt commando's op meerdere niveaus mogelijk, zoals "Ik wil graag dat de gloeilamp op hoog staat": de commando's zijn "gloeilamp", gevolgd door "instellen" en "hoog". Elke opdracht in een groep heeft zijn eigen index, net als elke opdracht binnen een niveau (Afbeelding 3).
Afbeelding 3: Met de tool DSpotter kunnen "CommandSets" worden gemaakt die logisch met elkaar kunnen worden verbonden door het programma van de ontwikkelaar om een VUI met verschillende niveaus te maken. (Bron afbeelding: Renesas)
De DSpotter-bibliotheek verwerkt binnenkomend geluid en zoekt naar fonemen die overeenkomen met de commando's in de database. Als het een overeenkomst vindt, retourneert het de index en groepnummers. Met een dergelijke opstelling kan de hoofdapplicatiecode een hiërarchische schakelopdracht maken om de opdrachtwoorden/zinnen te verwerken wanneer ze binnenkomen. De resulterende bibliotheek kan klein genoeg zijn om op een MCU te passen met slechts 256 kilobytes (Kbytes) flashgeheugen en 32 Kbytes SRAM. De CommandSet kan groeien als er meer geheugen beschikbaar is.
Het is belangrijk dat de ontwikkelaar beseft dat er beperkingen zijn aan de foneemmethode voor een VUI. Door de relatief beperkte middelen van de MCU is Cyberon DSpotter eerder spraakherkenning dan spraakherkenning. Dit betekent dat de software geen natuurlijke taalverwerking kan uitvoeren. Dus als de opdrachtwoorden geen logische volgorde volgen (bijvoorbeeld "hoog", "gloeilamp", "instellen" in plaats van "gloeilamp", "instellen", "hoog"), zal het systeem de opdracht niet herkennen en teruggaan naar het bovenste niveau.
Een ontwerpsuggestie is om een visuele indicator aan de VUI toe te voegen (bijvoorbeeld een LED) om aan te geven wanneer de processor aanneemt dat hij zich op het bovenste niveau van de CommandSet bevindt, waardoor de gebruiker wordt gevraagd om de opdracht opnieuw in de logische volgorde uit te voeren (Afbeelding 4).
Afbeelding 4: De gestroomlijnde aard van Cyberon DSpotter vereist dat commando's een logische volgorde volgen, anders worden ze niet herkend. (Bron afbeelding: Renesas)
Een niet-cloud VUI draaien met beperkte middelen
Dankzij de efficiëntie van Cyberon DSpotter kan deze draaien op de Renesas RA2, RA4 en RA6 Arm Cortex-M MCU's. Deze zijn populair in een breed scala aan consumenten-, industriële en IoT-toepassingen. Ze worden ondersteund door eenvoudig te gebruiken ontwerptools, waardoor het relatief eenvoudig is om een eenvoudige VUI te bouwen zonder uitgebreide codeerervaring of interne expertise.
De keuze voor een bepaalde MCU uit de RA-familie heeft voornamelijk te maken met de complexiteit van commando's en de grootte van de Cyberon-bibliotheek. Een slimme lichtschakelaar, die een bescheiden opdrachtset en beperkte rekenkracht nodig heeft om effectief te werken, zou gebaseerd kunnen zijn op de R7FA4W1AD2CNG uit de RA4-familie. Deze MCU heeft een batterijvriendelijke 48 megahertz (MHz) Arm Cortex-M4 kern ondersteund door 512 Kbytes flashgeheugen en 96 Kbytes SRAM. Hij beschikt over een segment LCD-controller, een capacitieve aanraakgevoelige eenheid, Bluetooth Low Energy (Bluetooth LE) draadloze connectiviteit, USB 2.0 Full-Speed, een 14-bits analoog-digitaalconvertor (ADC), een 12-bits digitaal-naar-analoogconvertor (DAC), plus beveiligings- en veiligheidsfuncties (Afbeelding 5).
Afbeelding 5: De R7FA4W1AD2CNG MCU biedt voldoende middelen om een niet-cloud VUI te bouwen voor toepassingen zoals een slimme lichtschakelaar. (Bron afbeelding: Renesas)
Een uitgebreidere Cyberon DSpotter-bibliotheek en een krachtigere kern zijn nodig voor een toepassing zoals een slimme luidspreker. Een geschikte kandidaat is de R7FA6M4AF3CFM. Deze MCU uit de RA6 familie heeft de krachtigere 200 MHz Arm Cortex-M33-kern ondersteund door 1 megabyte (Mbyte) flashgeheugen en 256 Kbytes SRAM. Het heeft een CAN-bus, Ethernet, I²C, LIN-bus, een capacitieve aanraakgevoelige eenheid en vele andere interfaces en randapparaten.
De RA4- en RA6-families worden ondersteund door evaluatiekaarten, respectievelijk de RTK7EKA4W1S00000BJ en de RTK7EKA6M4S00001BE, zodat een ontwikkelaar de mogelijkheden van de MCU's kan oefenen. Elk evaluatiebord heeft de doel-MMCU en een debugger aan boord.
Renesas biedt ook een VUI solution kit om de ontwikkeling te versnellen. De kit is vergelijkbaar met de evaluatieborden in die zin dat het het doelapparaat en debuggers bevat. Het bord heeft ook verschillende I/O-interfaces en vier microfoons: twee analoge en twee digitale.
Toegang tot de software die nodig is voor ontwikkeling met de VUI-oplossingskit is beschikbaar op de website van Cyberon. Deze bevat gratis toegang tot de Cyberon DSpotter Modeling Tool en een e2-studioproject met een werkende voice CommandSet (e2-studio is een op Eclipse gebaseerde geïntegreerde ontwikkelomgeving (IDE) voor Renesas MCU's). De voorbeeld CommandSet kan worden gebruikt als sjabloon voor het ontwikkelen van aangepaste spraakopdrachten. De reacties van het systeem kunnen dan gevolgd worden met een terminalvenster. Het duurt over het algemeen ongeveer 15 minuten om de VUI-structuur te maken die wordt getoond in Afbeelding 4.
Meer geavanceerd ontwerp van toepassingssoftware voor het Cyberon-pakket wordt ondersteund door het Renesas Flexible Software Package (FSP) van het bedrijf voor embedded systeemontwerpen die gebruik maken van de RA-families. Het FSP is gebaseerd op een open software-ecosysteem en omvat Azure RTOS of FreeRTOS, legacycode en ecosystemen van derden. Het kan in verschillende IDE's worden uitgevoerd, waaronder e2-studio.
Hoe goed presteert de VUI?
Het is één ding om een VUI goed te laten presteren in een stil laboratorium, maar het is iets heel anders om nauwkeurig te werken met veel achtergrondgeluid. Een typische gebruiksomgeving voor een slimme luidspreker kan bestaan uit een tv of radio, gesprekken, andere muziekbronnen en het algemene rumoer van een huishouden of een sociale bijeenkomst. Bovendien krijgt de VUI te maken met dialecten en minder-dan-perfecte dictie. Ondanks deze uitdagingen verwachten gebruikers bijna foutloze prestaties.
Om de prestaties in een moeilijke luisteromgeving te verbeteren, bevat de Cyberon DSpotter-software op de Renesas RA-familie van MCU's ruisonderdrukkingsfuncties die minimale processormiddelen vereisen. Om de doeltreffendheid aan te tonen, werden tests uitgevoerd met een Cyberon DSpotter VUI die naar opdrachten luisterde terwijl er verschillende achtergrondruisbronnen op 1,5 en 3 meter (m) afstand aanwezig waren, en met signaalruisverhoudingen (SNR's) van 0, 5 en 10 decibel (dB). In alle gevallen presteerde de VUI beter dan de Amazon Alexa-benchmark (Tabel 1).
|
Tabel 1: Testresultaten van succesvolle opdrachten voor een door Cyberon aangedreven VUI met verschillende bronnen van achtergrondgeluid. In alle gevallen presteerde de VUI beter dan de Amazon Alexa-benchmark. (Bron afbeelding: Renesas)
Conclusie
VUI's worden snel de favoriete bedieningsinterface voor slimme producten. Een spraakbesturingsaanpak die fonemen gebruikt als basis voor commando's en een strikte opdrachtstructuur kan het geheugen en de rekenkracht drastisch verminderen, waardoor de technologie lokaal kan draaien op kleine MCU's met beperkte middelen.
Disclaimer: The opinions, beliefs, and viewpoints expressed by the various authors and/or forum participants on this website do not necessarily reflect the opinions, beliefs, and viewpoints of DigiKey or official policies of DigiKey.




