Ny maskininlärningsartikel från Apple fördjupar hur “Hey Siri” gör sin magi

En mycket intressant teknisk artikel publicerad 1 oktober på Apples blogg om Machine Learning Journal har obemärkt fram till idag.

I den beskriver Apple i detalj hur den obundna "Hey Siri" -funktionen drar nytta av hårdvaran, programvaran och kraften i iCloud för att låta kunderna använda sina assistent handsfree.

Systemet kopplar ihop molnbaserat taligenkänning, tolkning av naturligt språk och andra tjänster med hårdvarorassisterad bearbetning på enheten. En iOS-enhet kör "ett mycket litet taligenkännare" hela tiden, som lyssnar på bara "Hey Siri" -frasen.

Mikrofonen i din iPhone eller Apple Watch registrerar 16 000 strömmar av omedelbara vågformprover per sekund. Här är varför det inte beskattar ditt iPhone-batteri mycket eller monopoliserar andra systemresurser, som RAM och CPU:

För att undvika att köra huvudprocessorn hela dagen bara för att lyssna på triggfrasen har iPhone: s alltid-på-processor (AOP, som är en lågeffekt hjälpprocessor inbäddad i Apples M-seriens rörelsecoprocessor) åtkomst till mikrofonsignalen på din iPhone 6s och senare.

Vi använder en liten del av AOP: s begränsade processorkraft för att köra en detektor med en liten version av det neurala nätverket. När poängen överskrider en tröskel väcker rörelsecoprocessorn huvudprocessorn, som analyserar signalen med ett större neuralt nätverk.

På grund av det mycket mindre batteriet kör Apple Watch "Hey Siri" -detektorn bara när dess rörelsecoprocessor upptäcker en armhöjningsgest, vilket sätter på skärmen - det är därför du inte kan använda "Hey Siri" på Apple Watch när skärmen är avstängd.

WatchOS fördelar “Hey Siri” cirka fem procent av den begränsade beräkningsbudgeten.

Så, hur känner de igen den verkliga "Hey Siri" heta frasen i realtid?

När den har tagits av din enhet bryts vågformen upp i en sekvens av ramar, var och en beskriver ljudspektrumet på cirka 0,01 sek. Cirka tjugo av dessa ramar åt gången (0,2 sek ljud) överförs till det djupa neurala nätverket.

Där konverteras ljudet till en sannolikhetsfördelning över en uppsättning talljudklasser: de som används i frasen “Hey Siri”, plus tystnad och annat tal, för totalt cirka 20 ljudklasser. Det beräknar sedan en förtroendepoäng att frasen du uttryckte var "Hey Siri".

Om poängen är tillräckligt hög vaknar Siri upp.

På iPhone använder de ett neuralt nätverk för första upptäckt (körs på power-sipping motion chip) och ett annat som en sekundär checker (som körs på huvudprocessorn). För att minska falska triggers jämför Apple också alla nya "Hey Siri" -uttal med de fem fraser som sparats på enheten under "Hey Siri" -registreringsprocessen.

"Den här processen minskar inte bara sannolikheten för att" Hey Siri "som talas av en annan person utlöser din iPhone, utan minskar också hastigheten som andra, liknande ljudfraser utlöser Siri," förklarar forskningsdokumentet.

Enheten laddar också upp vågformen till Siri-servern.

Om den huvudsakliga taligenkännaren som körs i molnet hör den som något annat än "Hey Siri" (till exempel "Hej seriöst", "Hey Syrien" eller något sådant), skickar servern en annulleringssignal till telefonen för att sätta tillbaka den till sömn.

"På vissa system kör vi en nedskuren version av den huvudsakliga taligenkännaren på enheten för att ge en extra kontroll tidigare," noterar Apple. Jag antar att de med "vissa system" betyder enheter som är anslutna till ström, som Mac, Apple TV och kanske till och med iPad.

Bilden ovan: det akustiska mönstret när det rör sig genom “Hey Siri” -detektorn med ett spektrogram av vågformen från mikrofonen som visas längst ner. Slutresultatet, som visas i toppen, jämförs med en tröskel för att avgöra om Siri ska aktiveras.

Själva tröskeln är dynamiskt värde eftersom Apple vill låta användare aktivera Siri under svåra förhållanden - om det missar en äkta "Hey Siri" -händelse går systemet in i ett mer känsligt tillstånd under några sekunder. Att upprepa frasen under den tiden kommer att utlösa Siri.

Och så har de tränat den akustiska modellen för "Hey Siri" -detektorn:

Något innan det fanns en Hey Siri-funktion, skulle en liten del av användarna säga "Hey Siri" i början av en begäran, efter att ha startat med att trycka på knappen. Vi använde sådana yttranden från Hey Siri för den första utbildningsuppsättningen för den amerikanska detektormodellen.

Vi inkluderade också allmänna talexempel, som användes för att utbilda huvudtalsigenkännaren. I båda fallen använde vi automatisk transkription på träningsfraser. Siri-teammedlemmar kontrollerade en undergrupp av transkriptionerna för noggrannhet.

Den akustiska modellen på amerikansk engelska tar till och med hänsyn till olika första vokaler i ”Siri”, den ena som i ”allvarliga” och den andra som i ”Syrien”.

Att träna en modell tar ungefär en dag och det finns vanligtvis några modeller i utbildning vid en gång. De tränar vanligtvis tre versioner: en liten modell för det första passet på rörelsechipet, en större storlek för det andra passet och en medelstor modell för Apple Watch.

Och den sista lurviten: systemet tränas också för att känna igen lokala "Hey Siri" -fraser.

Till exempel säger fransktalande användare “Dis Siri.” I Korea säger de “Siri 야”, vilket låter som “Siri Ya”. Rysktalande användare använder frasen "привет Siri" (låter som "Privet Siri") och på thailändska "หวัด ดี Siri" (låter som "Wadi Siri").

"Vi gjorde inspelningar speciellt under olika förhållanden, till exempel i köket (både nära och långt), bil, sovrum och restaurang, av modersmål på varje språk," säger Apple.

De använder till och med podcast och Siri-ingångar på många språk för att representera både bakgrundsljud (speciellt tal) och "slags fraser som en användare kan säga till en annan person."

"Nästa gång du säger" Hey Siri "kanske du tänker på allt som händer för att svara på den frasen att hända, men vi hoppas att det bara" fungerar ", Apple sammanfattar det fint.

Den mycket tekniska artikeln ger en fascinerande inblick i "Hey Siri" -teknologin som vi tar för givet så se till att läsa den eller spara den för senare om du är intresserad av att lära dig mer.