Hur man implementerar ett röststyrningsgränssnitt med resursbegränsade MCU-enheter

Bidraget med av DigiKeys nordamerikanska redaktörer

Smarta högtalare och andra anslutna hubbar utgör kärnan i det smarta hemmet och gör det möjligt för användare att styra enheter och komma åt internet. Två trender är uppenbara när dessa enheter blir allt vanligare: användare föredrar röststyrning framför knapptryckningar eller komplicerade menysystem, och det finns en ökande oro kring kontinuerlig molnanslutning på grund av integritetsfrågor.

Ett stabilt och säkert röststyrningsgränssnitt (VUI) kräver dock vanligtvis kraftfull hårdvara och komplicerad programvara för röstigenkänning. Allt annat kommer sannolikt att leda till dålig prestanda och otillfredsställande användarupplevelser. Många smarta högtalare och hubbar är dessutom batteridrivna, så ett röststyrningsgränssnitt med låg strömförbrukning måste uppnås. Ett sådant ambitiöst projekt kan vara skrämmande för en utvecklare som saknar erfarenhet av röststyrningsgränssnitt.

Kretstillverkarna svarar med att introducera en teknik baserad på fonem som minskar bearbetningskraven avsevärt. Resultatet är en mycket exakt och effektiv programvara för röststyrningsgränssnitt som kan köras på välkända 32-bitars microcontrollers och stöds av lättanvända designverktyg.

Artikeln beskriver utmaningar och användningsfall med röststyrningsgränssnitt. Därefter introduceras kommersiell, lättanvänd programvara för microcontrollers samt lokal telefonbaserad programvara för röststyrningsgränssnitt i uppkopplade tillämpningar för hemmet. Artikeln avslutas med att visa utvecklare hur man kommer igång med projekt för röststyrningsgränssnitt med MCU:er, programvara för röststyrningsgränssnitt och utvärderingssatser från Renesas.

Utmaningarna med att tillverka ett röststyrningsgränssnitt

Ett röststyrningsgränssnitt är en teknik för taligenkänning som möjliggör interaktion med en dator, smartphone, hemautomatiseringssystem eller någon annan enhet med hjälp av röstkommandon. Efter att tidigt ha haft tekniska utmaningar har tekniken utvecklats till ett tillförlitligt gränssnitt för styrning och används nu i stor utsträckning i smarta högtalare och andra enheter för smarta hem. Den viktigaste fördelen med ett röststyrningsgränssnitt är dess bekvämlighet: omedelbar styrning var som helst inom rösträckvidd utan att behöva använda tangentbord, mus, knappar, menyer eller andra gränssnitt för att mata in kommandon (Figur 1).

Bild av teknik för röststyrningsgränssnitt som har fått ett stort genomslagFigur 1: Tekniken för röststyrningsgränssnitt har fått stor spridning i bostäder och smarta byggnader då den är bekväm och flexibel. (Bildkälla: Renesas)

Nackdelen med ett röststyrningsgränssnitt är dess komplexitet. Konventionell teknik bygger på långvarig träning av en modell med specifika ord eller fraser. Men naturlig språkbehandling är ordföljdsoberoende, vilket kräver omfattande utvecklingsarbete och betydande datorkraft för att kunna köras i realtid. Detta har bromsat införandet av röststyrningsgränssnitt på bredare front.

Nu har en ny teknik förenklat programvaran för röststyrningsgränssnitt så mycket att den kan köras på små, effektiva microcontroller (MCU) som t.ex. Cortex®-M-enheter från Arm®. Tekniken teknik bygger på det faktum att alla ord i alla talade språk består av språkljud som kallas fonem. Det finns betydligt färre fonem än ord: engelskan har 44, italienskan 32 och det traditionella hawaiianska språket har bara 14. Om en fordonsenhet använder en engelsk kommandouppsättning med 200 ord, kan varje ord delas upp i sina tillhörande fonem från uppsättningen med 44 ord.

I röststyrningsgränssnittets programvara kan respektive fonem sedan identifieras med en numerisk kod (eller ett "token"), där olika token bildar språket. Att lagra ord som ljud kräver omfattande beräkningsresurser och tar upp mycket mer minnesutrymme än fonem som lagras som tokens. Att behandla tokens för fonem (och därmed kommandoord) i en förväntad ordning förenklar beräkningen ytterligare och gör det möjligt att köra röststyrningsgränssnittets programvara lokalt på en blygsam MCU (figur 2).

Bild på hur ord representeras med hjälp av fonemFigur 2: Att representera ord med hjälp av fonem kräver färre resurser i microcontrollern. (Bildkälla: Renesas)

Det innebär att den programvarueffektivitet som uppnås genom att använda fonem gör att bearbetningen kan köras lokalt. Att avlägsna behovet av molnbearbetning innebär att det inte finns något krav på kontinuerlig internetanslutning som medför problem med användarnas integritet och datasäkerhet.

Renesas har, som en del i sitt ekosystem, visat upp ett kommersiellt programvarupaket för röststyrningsgränssnitt baserat på fonemprincen. Programvaran, som heter Cyberon DSpotter, skapar en algoritm för röststyrningsgränssnitt som är tillräckligt effektiv för att köras på RA-serien av MCU-enheter med Arm Cortex-M4- och M33-kärnor från Renesas.

Utveckling med Cyberon DSpotter

Cyberon DSpotter bygger på ett bibliotek av fonem och kombinationer av fonem. Det är ett alternativ till den traditionella och datatunga träningen av algoritmer för att de ska känna igen specifika ord. För att dela upp ord i fonem och sedan representera dem som tokens kan utvecklaren använda DSpotter Modeling Tool.

DSpotter är en inbäddad (icke molnbaserad) programvara som fungerar som en lokal lösning för röstaktivering och kommandoigenkänning med stabil brusreducering. Den förbrukar minimalt med resurser och är mycket exakt. Beroende på den MCU som valts kan även säker dataöverföring implementeras.

DSpotter ber om respektive kommandoord eller fras, som verktyget delar upp i fonem. Kommandouppsättningen och stöddata för röststyrningsgränssnittet byggs sedan in i en binärfil som utvecklaren inkluderar i projektet tillsammans med biblioteket Cyberon. Biblioteket och den binära filen används tillsammans i MCU:n för att stödja igenkänningen av de önskade talkommandona.

Verktyget DSpotter skapar "CommandSets" som kan kopplas samman logiskt i utvecklarens program för att skapa ett röststyrningsgränssnitt med olika nivåer. Det möjliggör kommandon på flera nivåer, som t.ex. "Jag vill att glödlampan tänds med på hög ljusstyrka, tack": kommandoorden är "glödlampa", följt av "tänds" och "hög". Respektive kommando i en grupp har sitt eget index, liksom varje kommando inom en nivå (figur 3).

Bild på verktyget DSpotter som möjliggör generering av "CommandSets"Figur 3: Verktyget DSpotter gör det möjligt att skapa "CommandSets" som logiskt kan kopplas samman i utvecklarens program för att skapa ett röststyrningsgränssnitt med olika nivåer. (Bildkälla: Renesas)

DSpotter-biblioteket bearbetar inkommande ljud och söker efter fonem som matchar kommandona i databasen. När det hittar en matchning returnerar det index- och gruppnummer. Ett sådant arrangemang gör det möjligt för huvudprogrammets kod att skapa ett hierarkisk omkopplingskommando för att behandla de kommandoord/fraser som kommer. Det medför att biblioteket kan vara så litet att det ryms på en MCU med bara 256 kilobyte (Kbytes) flashminne och 32 Kbytes SRAM. CommandSet kan växa om mer minne finns tillgängligt.

Det är viktigt att utvecklaren förstår att det finns begränsningar för fonemmetoden i ett röststyrningsgränssnitt. MCU:ns relativt begränsade resurser bestämmer att Cyberon DSpotter är taligenkänning snarare än röstigenkänning. Det innebär att programvaran inte kan utföra någon naturlig språkbehandling. Det innebär att om kommandoorden inte följer en logisk ordningsföljd (som t.ex. "hög", "glödlampa", "tänd" istället för "glödlampa", "tänd", "hög") kommer systemet inte att känna igen kommandot utan återgå till den översta nivån.

Ett konstruktionsförslag är att lägga till en visuell indikator i röststyrningsgränssnittet (som t.ex. en lysdiod) för att visa när processorn antar att den befinner sig på den översta nivån i CommandSet och uppmanar användaren att säga kommandot igen men i den logiska ordningsföljden (Figur 4).

Bild på den effektiva karaktären hos Cyberon DSpotterFigur 4: Den effektiva karaktären hos Cyberon DSpotter kräver att kommandona följer en logisk ordningsföljd, annars kommer de inte att uppfattas. (Bildkälla: Renesas)

Kör ett röststyrningsgränssnitt som inte är molnbaserat med begränsade resurser

Effektiviteten hos Cyberon DSpotter gör att det kan köras på familjerna RA2, RA4 och RA6 av Arm Cortex-M MCU:er från Renesas. De är populära inom en stor mängd tillämpningar för konsument, industri och IoT. De stöds av lättanvända konstruktionsverktyg, som gör det relativt enkelt att bygga ett enkelt röststyrningsgränssnitt utan omfattande kodningserfarenhet eller intern kunskap.

Valet av en viss MCU i RA-familjen beror främst på hur komplicerade kommandona är och hur stort Cyberon-biblioteket är. En smart strömbrytare för belysning, som kräver en liten uppsättning kommandon och begränsad datorkraft för att fungera effektivt, skulle kunna baseras på R7FA4W1AD2CNG i RA4-familjen. MCU:n har en batterivänlig Arm Cortex-M4-kärna på 48 MHz som stöds av 512 kb flashminne och 96 kb SRAM. Den innehåller en styrenhet för LCD-segment, en kapacitiv touchsensorenhet, trådlös Bluetooth Low Energy (Bluetooth LE), USB 2.0 med full hastighet, en 14-bitars analog- till digitalomvandlare (ADC), en 12-bitars digital- till analogomvandlare (DAC), samt säkerhets- och skyddsfunktioner (figur 5).

Schema över MCU:n R7FA4W1AD2CNG från RenesasFigur 5: MCU:n R7FA4W1AD2CNG ger gott om resurser för att bygga ett röststyrningsgränssnitt som inte är molnbaserat för tillämpningar smarta strömbrytare för belysning. (Bildkälla: Renesas)

Ett mer omfattande bibliotek för Cyberon DSpotter och en mer kraftfull kärna behövs för tillämpningar som t.ex. smarta högtalare. En lämplig kandidat är R7FA6M4AF3CFM. Denna MCU i RA6-familjen har den kraftfullare 200 MHz Arm Cortex-M33-kärnan som stöds av 1 megabyte (Mbyte) flashminne och 256 Kbyte SRAM. Den har CAN-buss, Ethernet, I²C, LIN-buss, en kapacitiv touchsensorenhet och många andra gränssnitt och kringutrustningsenheter.

RA4- och RA6-familjerna stöds av utvärderingskorten, RTK7EKA4W1S00000BJ respektive RTK7EKA6M4S00001BE, som ger utvecklare möjlighet att testa MCU-enheternas kapacitet. Respektive utvärderingskort innehåller den önskade MCU:n och inbyggt felsökningsprogram.

Renesas har även en lösningssats för röststyrningsgränssnitt för att påskynda utvecklingen. Satsen liknar utvärderingskorten genom att den innehåller målenheten och felsökningsprogram. Kortet har även flera I/O-gränssnitt och fyra mikrofoner: två analoga och två digitala.

På Cyberons hemsida finns tillgång till den mjukvara som krävs för utveckling med lösningssatsen för röststyrningsgränssnitt. Detta inkluderar kostnadsfri tillgång till Cyberon DSpotter Modeling Tool och innehåller ett projekt i e2 studio med ett fungerande CommandSet. (e2 studio är en Eclipse-baserad integrerad utvecklingsmiljö (IDE) för Renesas MCU:er). Exemplet CommandSet kan användas som mall för att utveckla egna röstkommandosekvenser. Systemets reaktioner kan sedan övervakas med hjälp av ett terminalfönster. Det tar i allmänhet ca 15 minuter att skapa den struktur för röststyrningsgränssnitt som visas i figur 4.

Mer sofistikerad mjukvarudesign för Cyberon-paketet stöds av Renesas Flexible Software Package (FSP) för design av inbyggda system med RA-familjerna. FSP bygger på ett ekosystem med öppen programvara och omfattar Azure RTOS eller FreeRTOS, äldre kod och ekosystem från tredje part. Den kan köras i flera integrerade utvecklingsmiljöer, inklusive e2 studio.

Hur bra fungerar röststyrningsgränssnittet?

Det är en sak att ett röststyrningsgränssnitt fungerar bra i ett tyst laboratorium, men en helt annan sak att den fungerar korrekt med betydande bakgrundsljud. En typisk användningsmiljö för en smart högtalare kan vara TV eller radio, samtal, andra musikkällor och det allmänna sorlet i ett hushåll eller vid en social sammankomst. Röststyrningsgränssnittet måste dessutom hantera dialekter och sämre uttal. Trots dessa utmaningar förväntar sig användare nästan felfri prestanda.

För att förbättra prestandan i en svår lyssningsmiljö innehåller programmet Cyberon DSpotter, som körs på Renesas RA-familj med MCU:er, brusimmunitetsfunktioner som kräver minimalt med processorresurser. För att visa dess effektivitet utfördes tester med ett Cyberon DSpotter röststyrningsgränssnitt som lyssnade på kommandon samtidigt som den utsattes för olika bakgrundsljud på 1,5 och 3 meters avstånd och med signal-brus-förhållanden (SNR) på 0, 5 och 10 decibel (dB). I samtliga fall överträffade röststyrningsgränssnittet riktmärkena för Amazon Alexa (tabell 1).

SNR Bakgrundsljud Avstånd Träffprocent Krav för Alexa
(rent) inget 1,5 m 100 % 90 %
(rent) inget 3 m 100 % 90 %
10 dB Småprat 1,5 m 98,55 % 80 %
10 dB Småprat 3 m 98,84 % 80 %
10 dB Musik 1,5 m 98,26 % 80 %
10 dB Musik 3 m 98,55 % 80 %
10 dB TV 1,5 m 98,84 % 80 %
10 dB TV 3 m 98,55 % 80 %
5 dB Småprat 1,5 m 98,84 % 80 %
5 dB Småprat 3 m 96,24 % 80 %
5 dB Musik 1,5 m 98,84 % 80 %
5 dB Musik 3 m 97,08 % 80 %
5 dB TV 1,5 m 93,37 % 80 %
5 dB TV 3 m 90,72 % 80 %

Tabell 1: Testresultat för lyckade kommandon i ett röststyrningsgränssnitt som drivs av Cyberon med olika källor till bakgrundsljud. I samtliga fall överträffade röststyrningsgränssnittet riktmärkena för Amazon Alexa. (Bildkälla: Renesas)

Sammanfattning

Röststyrningsgränssnitt håller snabbt på att bli det gränssnitt som konsumenter föredrar för styrning av smarta produkter. En talstyrningsmetod med fonem som grund för kommandon och en strikt kommandostruktur kan dramatiskt minska minnes- och datorkraven, så att tekniken kan köras lokalt på små, resursbegränsade MCU-enheter.

DigiKey logo

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.

Om utgivaren

DigiKeys nordamerikanska redaktörer