Taligenkänning Hidden Markov Model Niklas Lindvall nikli368@student.liu.se Artificiell intelligens II Ht 2011 2011-09-19 0
Innehåll Inledning... 2 Taligenkänning språk... 3 Taligenkänning... 4 Oberoende/Beroende... 5 Representation... 5 Frame... 5 Mönstermatchning... 5 Vektor kvantifiering (VQ)... 6 Systemets uppbyggnad... 6 Fonem... 6 Språkmodeller... 7 Akustiskmodell... 7 Noisy channel modell... 7 Segmentering... 8 Invariansproblemet... 9 Taligenkänning Hidden Markov Models... 9 Exempel Hidden Markov Model... 10 Begränsningar och problem vid tillämpning av HMM... 11 Viterbi algoritmen... 11 Algoritmerna gör tre olika antaganden.... 12 Referenser... 13 1
Inledning En av de mest fascinerande egenskaperna hos människor är deras förmåga att kommunicera idéer med hjälp av tal. Denna funktion är utan tvekan ett av det faktum som har möjliggjort utvecklingen av vårt samhälle. Människan har alltid varit lockad av möjligheten att skapa maskiner som kan producera och känna igen tal. En automatisk taligenkänning (ASR)-system kan definieras som en mekanism som kan avkoda den mänskliga tal signaler som produceras genom att använda vokala ljud eller nasala ljud. Att kunna känna igen och förstå tal är förmodligen någonting de flesta människor tar för givet. Detta är troligtvis för att den mänsklig samspelet till stor del består av att prata med andra individer. De mest grund läggande för Taligenkänning är att den börjar med att göra om den analoga signalen till ett digitalt urval av tal. Sedan går den vidare med en akustisk signalbearbetning. När detta är klart ska fonem och ord hittas i en identifieringsprocess och då använder man sig av Hidden Markov Model, Dynamic Time Warping och Verbetin algoritmen Schroeder framhåller att alla sorters av taligenkännings system innehåller dessa tre primära grundkomponenter: 1. När en talare artikulerar ord så görs dessa signaler om till en sorts av representation som senare utnyttjas för att kunna känna igen vilka ord som har yttrats. 2. För att frambringa en representation så utnyttjar igenkänningssystemet en uppsättning mallar med beskrivningar för varje ord. Mallarna beskriver ord som igenkännaren ska kunna känna igen och på så sätt även kunna återge till vad som sagts. 3. En vis sorts av mönstermatchnings algoritm bestämmer vilken av mallarna som är mest lik det tal som kommit in som indata(schroeder 1994). 2
Taligenkänning språk För att kunna förstå hur komplicerat de är att använda sig av automatisk taligenkänning. Så måste man först förstå hur avancerat vårt talorgan är. Även vilka olika problem datorn har för att kunna översätta våra ljudsignaler till ord, handling och innebörd. När man producerar ett språkljud passerar luftströmmen från lungorna till stämbanden, sedan halsen och munnen. Beroende på vilket talljud du formulera och hur talsignalen kan uttryckas så kan detta göras på tre olika sätt: Voiced excitation Då stämbanden är stängda och lufttrycket tvingar stämbanden att öppna och stänga med jämna mellanrum. Vilket genererar en periodisk puls av ljud. Denna "grundfrekvens" ligger oftast i intervallet från 80Hz till 350Hz. Unvoiced excitation Stämbanden är öppen och luften passerar ett smalt passage i halsen eller munnen. Detta resulterar i en turbulens som genererar en ljud signal. Den stora räckvidden av bullrets form bestäms av placeringen av stämbanden. Transient excitation En sammandragning i halsen eller munnen som kommer att höja luft trycket. Genom att plötsligt öppna eller stänga luftstrupen så sjunker lufttrycket ner omedelbart ( Plosive burst ). När vi formar språkljud så använder vi oss ibland av alla dessa tre typerna i kombination. Den spektrala formen på talsignalen bestäms av vilken vokal man uttala. Detta gör att du ändra den spektrala formen på talsignalen och därmed hur du artikulera på olika sätt (B. Plannerer 2005). 3
Taligenkänning De tre viktigaste grund komponenter i alla taligenkännings är representation, mallar och mönstermatchning. För att representation av talsignalen ska kunna fungera så måste igenkännare göra om talsignalen före den på börja själva analysen. Den här strukturen kallas för en inre representation. De här bidra till en mer förfining av orden som bryts ner till mindre beståndsdelar som kallas för fonem. Utifrån detta kan uttalet av ord och fonem ha olika inverka på variationen i språket. En statisk modell som tar hänsyn till detta är Hidden Markov Models(HMM). En mall innehåller information för varje ord. Dessa mallar hittar ord variationer genom att igenkännare har en uppsättning ord som den kan jämföras med. Dessa schabloner är de ord som våra igenkännare kan känn igen. Den process som avgör vilket ord som är mest likt våra indata är en mönsterpassnings algoritm. Algoritmen jämför mallarna mot de ord som är mest likt våra indata. I det här tillståndet bestäms ordgränser och om en särskillnad finns i förhållande till indata. Så beslutar mallen även här om indata är accepterbar. Är ingen mall lik våra indata så tillåts inte denna matchning. När de blir mera avancerat vokabulär så tar mönsterpassningen hänsyn till orden betydelse och syntax. Detta leder till att de blir en större begränsning hur ord kan sammanställas till olika meningar. Här kommer en enkel beskrivning vad taligenkänning är. De första som händer är att man måste konverteras om talsignalen till en akustisk signal så att ett taligenkänningssystem ska kunna klara av att hantera den digitala signalen. Signalen tolkas genom att den samplas och sedan görs en spektralanalys på den. Efter detta så lagra signalen i form av olika parametra för den ska ta så lite plats så möjligt. De lagrade materialet delas upp av vektorer som delar upp parametrarna i små delar. Den digitala signalen går igenom en process som beslutar vilka ord som har uttalats. De här går att göra på olika sätt bland annat med kunskapsbaserade metoder, med mönster igen känning, ANN och HMM(Schroeder, 1994) Bild 1.1 Generellt schema över taligenkänning (Segura, 2006). 4
Oberoende/Beroende För taligenkänning finns de två olika system dessa är oberoende system och beroende system. Ett oberoende system kan känna igen vilken talare som helst och använder sig av en databas som innehåller akustiska beskrivningar, vokabulär och språkmodeller(möjliga ord följd). För att det här systemet ska fungera bra krävs de att de finns en väldigt stor databas. Detta beror på att talarens röst variera så mycket som t.ex. talhastighet, dialekt och om man är man eller kvinna. Det enklaste systemet för taligenkännig är ett beroende system. Denna teknik använder sig av en specifik talare. Detta med för att systemet har ett litet vokabulär lagrat och att orden som används är isolerade. När talaren har läst in en eller flera texter till ljudfiler så sparas dessa undan och sedan jämföra de mot den inkommande ljud signalerna (Segura, 2006). Representation När taligenkänning används så spela man oftast in ljudsignalen detta kräver mycket lagringskapacitet. Ett annat problem är också att de gör de opraktiskt att göra en frekvensanalys på det inspelade materialet. För att kunna komma runt detta problem så konverteras den analoga signalen till en digitalsignal. sedan separera man signalen genom att använda sig av en algoritm som kallas LPC(Linear Prediction Coding). Denna algoritm filtera bort allt oönskat icketal. På detta sätt minska man filstorleken och underlätta vid senare mönstermatchning. Den relevanta signalen plocka ut genom att man har kommit fram till att värden upp till 200 gånger per sekund täcker in människans tal och med detta anser man att människans tal inte innehåller några betydelsefulla övergångar som är kortare 5 ms (Jurafsky, 2000). Frame Även i denna form är uppgifterna inte användbar för taligenkänning eftersom det är för svårt att identifiera eventuella mönster som korrelerar till vad som faktiskt sägs. För att göra en mönsterigenkänning lättare så omvandlas digitalt ljud till olika "frames". Genom detta kan man mäta tiden mellan de olika frames och för att mättningen ska bli så korrekt så möjlig så införs ett energivärden som känner av varje stop och tystnad. När data överskrider gränsvärdet för bakgrundsljud så sparas denna information undan tills detta värde är lägre än gränsvärdet igen. På detta sätt hittar man olika särdrag som ger till räckligt med information om vår artikulation, personen resonans och röst(segura, 2006). Mönstermatchning Vid en mönstermatchning så jämför indata mot mallarna som har skapat tidigare. Ordens mönstermatchning börjar först när de har blivit omgjord till en inre representation och de har nått tröskelvärdet bakgrundljud samt gått under värdet igen. Nästa skede är att igenkännaren tar frames som ordet har gått igenom och jämför dessa mot liknande frames mallar. Skillnaden i förhållande till varje LPC parameter bruka vara ungefär ett dussin och detta bruka kallas för frame by frame felet. Enkel sagt så jämför mallen mot våra indata. Frames som har minst ordfel representera den bästa matchningen mot våra indata. Om felet är för stort så avslås systemet matchning. 5
Ett system som uppfattar speciella egenskaper hos ord och utnyttjar detta till en representation av indata behöver ha avancerad mönstermatchning. De flesta system som hantera mönstermatchning tar för givet att all indata kommer att ha samma längd som själva grundmallen. Detta är inte sant efter som alla människor prata olika snabbt. För att lösa detta problem använder man sig av en teknik som heter Dynamic time warping och denna teknik används för att kompensera tidsskillnader i tal. En annan teknik som är användbar för mönstermatchning är att kunna göra dessa beräkningar mindre. Denna teknik heter Vector Quantization(VQ) och teknikens egenskap är att den tar upp olika variationer utan att få för mycket indata(segura, 2006). Vektor kvantifiering (VQ) När man använder sig av metoden Vektor kvantifiering så vill man minska signalens datamängde när en ram har skapats. Ramen är uppbyggd av en rad vektorer och detta är till för att kunna reducera datamängde, genom att jämförs dessa vektorer gentemot referens vektorer som erhålls i en kodbok. För att kunna hitta den mest sannolika referens vektorn så jämför denna mot den inkommande vektorn och på detta sätt blir rätt referensvektor vald. De olika referenser vektorerna har ett individuellt tal som ersätter den inkommande vektorn. Så den ursprungliga vektorn övergår till att vara i outputen till en serie av nummer. Dessa serier kommer att vara indata till HMM(Jurafsky, 2000). Systemets uppbyggnad En taligenkännings system kunskap är uppbyggt på information från fonem, ordmodeller(akustiska beskrivningar), språkmodeller(möjliga ord följder) och lexikon. Vid användning av oberoende eller beroende systems så kombineras dessa sätt ihop. De som bestämmer vilka kombinationer man använder sig av är hur man vill representera problemet och beroende på detta väljer man vilken algoritms som är bäst anpassade för rätt analys. Fonem Om man tittar på hur de svenska språk är uppbyggt på så innehåller de språkljud som kallas för foner och de är minsta grundstenarna i vårt språk. Foner är betydelseskiljande kallas för fonem och när de uttalas kan de låta som en vokal, väsande eller ett klickljud. I svenska språket så har vi ca fyrtio fonem. Men varje fonem kan låta olika beroende dialekt, talhastighet, ålder och vilket sammanhang de uttalas i (B. Plannerer 2005). 6
Språkmodeller För att systemet ska ha lättare att kunna identifiera vilka ord man säger så använder man sig av språkmodeller. I språk modellerna utnyttjar man för det mesta av olika N-grams som är en statiskspråkmodell. Modellerna speciella egenskaper är att den jämför ord som står innan ordet(n-1)t. Utifrån detta beräknar den sannolikheten och på detta sätt få den en hög träffsäkerhet. De finns två olika språkmodellen som man bruka använda sig av, dessa är bigram och trigram. En bigrams modell är uppbyggd så att den räkna ut sannolikheten för ett vist ord som förekommer innan. Trigram modellen räknar ut sannolikheten för två ord som kommer innan ordet. Den allmänna ekvationen för att beräkna det nästkommande ordet i en sekvens, enlighet N-gram modellen ser ut så här: Bild 1.2 Formel för att beräkna nästkommande ord(segura, 2006) Akustiskmodell När man behöver visa ett sannolikheten problem med ett visst ord som har uttalats givet en signal. Den mest troliga tydningen av signalen är värdet av ord när det maximerar P (Ord Signal). Att räkna ut sannolikheten på ett bakvänt sätt kan var till hjälp ibland och denna process kallas för Bayes teorem. Att beräkna ut just ett ord givet en viss signal kan vara tämligen knepigt. Om man som alternativ tänker på att man har en sannolikhet för ordet givet en bestämd signal och gångar den med sannolikheten för ordet, får man enklare fram en lösning. Den modell P(Signal Ord) har för vana att kallas för den akustiska modellen. För att räkna ut detta utnyttjar man sig av en Hidden makarov model(hmm). Den akustiska modellen kan indelas i två bitar. Den första biten hanterar artikulationer som genereras för varje ord, en sannolikhet över tänkbara fonemsekvenser. Fonem är små och inte direkt observerbara och för att representera tal utnyttjar man sig av HMM. Den andra biten av modellen arbetar med hur fonem blir till akustiska signaler och modellen acceptera skillnader i fart och ljudstyrka(schroeder 1994). Noisy channel modell För att kunna använda taligenkänning i olika miljöer måste man använda sig av Noisy channel modell. Detta används för att det oftast finns bakgrunds ljud som stör själva talsignalens upptagnings förmåga. Med anledning av detta behandlar Noisy Channel modellen den akustiska inputen som en brusig version av ursprungs signal. För att kunna filtera bort allt brus så söks alla meningar som finns i ordlistan igenom. Sedan räknas sannolikheten ut 7
för att meningen i vokabulären skulle kunna ge just den brusiga signalen. Den meningen som har bäst sannolikhet väljs sedan ut. För att bättre förstå hur Noisy channel modell fungera så kommer de ett exempel. Överföring av ett budskap kan modelleras med hjälp av en Noisy channel modell ett meddelande W som är avkodat, vilket resulterar i en sträng X. X överförs genom en kanal med sannolikheten av distributionen f (y x); den resulterande strängen Y avkodas, vilket ger en uppskattning av meddelandet W w x y kodare Kanal avkodare w meddelande f (y x) uppskattning av meddelandet Bild 1.3 Generellt schema över hur Noisy channel modell fungera (Segura, 2006). Segmentering En allmän svårighet för att träna upp ett system som ska hantera talproduktion eller taligenkänning är hur man ska kunna lagra kunskap om ord och yttrande som inte finns i systemet. I båda fallen kan problemet reduceras genom att man utnyttjar en stor kvantitet inspelat material. Men för det mesta är de ogenomförbart att få med allt som ett system ska kunna begripa eller uttala. En metod skulle kunna vara att segmentera, de vill säga att man delade upp det inspelade ljudet i mindre bitar. När man har gjort detta kan man utnyttja fonem eller fonemsekvenser (difoner/polyfoner). En difon är konstruerad av två halva foner som angränsar till varandra. Klippet finns mitt i mellan fonerna. Där inverkan från angränsande foner är som minst. Exp. så ger tut fyra difoner: tystnad - t t -u u -t t -tystnad. (-anger skiljelinje emellan foner; anger klipp på mitten av fonen). Den här tekniken har visats sig att ge ett mycket bättre resultat och system som använder den teknik har en möjlighet att uppnå 98 % täckning av språkets existerande difoner (ki/ka/ku/ko o.s.v.) och ungerför 80 % täckning av polyfoner (spri-/-orv/-olmskt o.s.v.). Med den här tekniken kan taligenkännings system känna igen ord som inte har övats in tidigare(jurafsky, 2000). 8
Invariansproblemet oberoende om dessa segment ska utnyttjas för att identifiera eller framställa tal, uppkommer en rad liknande problem. Kanske det essentiellaste av dessa är det faktumet att samma akustiska signal kan förstås som helt och hållet olika fonem beroende på vilken kontext den finns i, enkelt sak bruka detta problem kallas för invariansproblemet. En väsentlig svårighet är det stora antalet faktorer som påverkar hur vi artikulerar ett visst uttal. En del uttal kan vi själva ha inverkan på som till exp. avslappnat uttal, tonfall och sinnes tillstånd. Men från en individ till en annan individ kan det vara olika beroende på kön, ålder och dialekt. Detta bidra till att förväntade fonem kanske uttalas på ett annat sätt eller till och med blir ute lämnade helt. Denna anpassbarhet ställer högre krav vid talproduktion och är svårare att imitera med en modell som arbetar med att spara undan inspelningar, som ska representera en korrekt artikulation av ett visst ord. Därför behöver man utnyttja tekniken inom HMM system som kan hantera och representera dessa problem på ett bättre sätt(jurafsky, 2000). Taligenkänning Hidden Markov Models Bland de mest säkra metoden för att avkoda språk är Hidden Markov Models (HMM). Modellen är uppbyggt så att den match orden som kommer in mot lagrade ord som finns i ett system. Beroende på hur ord låter så match dessa mot fonems uttal. Den modell är en statisk sannolikhets process som fungera genom att ha sju olika intern tillstånd. De vill säga att modellen ha ett start tillstånd och ett måltillstånd. Mellan varje steg så skapa HMM utdata som är använd bara för processen. Utdata matchas mot antal fonem som finns i ett ord och sedan jämför man de olika akustiska egenskaperna hos varje ord. Under varje åtgärd i processen kan HMM stanna i de tillstånd den är i eller så kan den förflytta sig till ett nytt tillstånd. De finns gömda( Hidden ) processer i modellen och detta menas att varje till stånd är gömt och man kan bara se den information som produceras som utdata(schroeder, 2004). Följande exempel kan hjälpa oss att förstå dynamiken i Markov processen(kedjor). Exempel Markov kedjor Låt oss anta att vi har en modell för en väderprognos med bara tre möjliga observationer: regn (S1), molnigt (S2) och soligt (S3). Denna modell (se figur 1.4) tillåter oss att beräkna sannolikheten för att observera en sekvens av väder i ett tillstånd. För exempelvis kan vi beräkna sannolikheten för de "soliga/soliga/regniga/dimmiga" sekvenserna. (O = (s3, s3, s1, s2)) P(O model) = P(s3s3s1s2 model) = P (s3) P(s3 s3) P(s1 s3) P(s2 s1) = P(s3)a33a31a12 9
Bild 1.4 En diskret Markov kedja(segura, 2006). Hidden Markov processer uppstår ur en generalisering av Markov processer som vi har studerat ovan. Exempel Hidden Markov Model Ett klassiskt exempel (Rabiner och Juang, 1993) för att illustrera detta kastar man ett mynt. Experiment: en viss person, som vi kallar kastare, kommer att utföra experiment genom att kasta ett mynt, som en följd av detta blir krona (kr) eller klave (kl) som erhålls. Värden är dolda till alla andra (observatörer) och detta är det enda vi vet om resultatet av experimentet. Kastaren har tre mynt och två av dem används för att få den sekvens av krona eller klave. Dessa två mynt är riggade så att det första myntet har en 75 % sannolikhet att få krona och den andra har en 75 % sannolikhet att få klave. Det tredje myntet är inte riggat och används för att bestämma vid varje gång vilket av de andra mynten som kommer att kastas. Det är möjligt att bygga en modell av experimentet (figur 1.5) med två tillstånd (var och en representerar en av de mynt som skall kastas). I varje tillstånd är det möjligt att generera "kr" eller "kl" (observationer) enligt sannolikheter som visas i figuren. Vi har just nu byggt en Hidden Markov Model. Skillnaden med en vanligt Markov modell är att vi nu har två processer placerade ovanpå varandra. En av dem är observerbara (sekvensen av observationer, krona och klave), men den andra är "dolda" (sekvens av tillstånd, kastade mynt). På samma sätt som för vanlig Markovprocesser, är det möjligt att beräkna sannolikheten för en sekvens av observationer O = O1,..., OT av längd T genereras av en HMM, även om vi formellt kommer att definiera dem innan begreppet HMM. P(kr) = 0.75 P(kr) = 0.25 P(kl) = 0.75 P(kl) = 0.25 Bild 1.5 Mynt experiment för att förklara HMM(Segura, 2006). 10
Begränsningar och problem vid tillämpning av HMM Det finns tre ansenliga svårigheter med Hidden Markov Model som är tvunget att lösas om man vill att modellen man arbetar med ska vara användbar. Det första dilemmat är hur man ska estimera sannolikheten för en serie av observationer att den kommer från den modellen som man arbetar med. För att komma ifrån detta problem får man bestämma sig för den modell som bäst passar med observationerna. Nästa problem är hur man ska få fram den osynliga delen av modellen för att finna den rätta ordningsföljden av tillstånd. För att upptäcka den rätta ordningsföljden av tillstånden måste man lära sig uppbyggnaden av modellen och på detta sätt försöka läsa av det dolda i modellen. Det slutliga dilemmat är hur man optimerar parametrarna för modellen och för att bäst kunna redogöra för hur en given sekvens uppstår. Att korrigera parametrarna för modellen kallas för en träningssekvens och detta är det som övar Hidden Markov Model för att frambringa bäst modeller av ord (Segura, 2006). Viterbi algoritmen Algoritmen kan utnyttjas för att upptäck den bästa förbindelsen igenom ett nätverk som är konstruerat för enstaka ord. Vägen som utses av algoritmen skall vara de ord som är i högsta grad sannolik givet den serie av ord som observerats. Denna algoritm kan emellertid även vara användbar när man ska undersök kontinuerligt tal och inte enbart enstaka ord. Vid kontinuerligt tal så består indata av serier av ord och det är nästa omöjligt att veta var ordgränserna finns. Detta beror på att orden flyter ihop med varandra. Att upptäck dessa ordgränser i hopsatt tal kallas för segmentation. Syftet med Viterbi algoritmen är att upptäcka den bästa tillståndssekvensen Q = (q, q2.. qt) givet ett antal observerade foner O = (o1, o2.. ot). En Viterbi algoritm är en dynamisk programmerings algoritm för att hitta den mest sannolika sekvensen av dolda tillstånd och detta bruka kallas Viterbi vägen. Det här resulterar i en sekvens av observerade händelser som används i samband med Markov informationskällor och HMM. En nära besläktad algoritm är forward algorithm denna används för att beräkna sannolikheten för en sekvens av observerade händelser. Termerna "Viterbi algoritm" tillämpas även på relaterade dynamisk programmering algoritmer som upptäcker den enskilt mest sannolika förklaringen till en observation. Till exempel i statistik parsning användas den för att upptäcka den enskilt mest sannolika kontextfria härledning (parse) en sträng, som ibland kallas "Viterbi parse". 11
Algoritmerna gör tre olika antaganden. Först måste både den observerade händelser och dolda händelserna finnas med i en sekvens. Denna sekvens motsvarar ofta tiden. För det andra, dessa två sekvenser måste anpassas och en instans av en observerad händelse måste motsvara exakt en instans av en dold händelse. För de tredje måste man beräkna den mest sannolika dolda sekvens upp till en viss punkt t beror bara på den observerade händelsen i punkt t, och det mest sannolika sekvensen vid punkt t - 1. Alla dessa antaganden används i en första ordningens Hidden Markov modell. Detta är ett grundläggande antagande av algoritmen eftersom algoritmen kommer att undersöka alla möjliga vägar som leder till ett tillstånd och bara behålla det som mest sannolikt. På detta sätt behöver inte algoritmen hålla reda på alla möjliga vägar, bara en väg per tillstånd. En annan viktig förutsättning är att en övergång från ett tidigare tillstånd till ett nytt tillstånd präglas av en stegvis mått som bruka representeras av ett nummer. Denna övergång beräknas från händelsen. Den sista centralt antagande är att händelserna är kumulativa över en väg i någon mening (Schroeder, 2004). 12
Referenser Jurafsky, D & Martin, J H (2000). Speech and language processing Prentice Hall, New Jersey Schroeder, M R (2004). Computer Speech, second edition Springer-Verlag, Berlin Antonio, M. Peinado och José, C Segura (2006), speech recognition over digital channels. Robustness and standards. Rabiner, L. Juang, B-H. (1993) Fundamentals of speech recognition. New Jersey: PTR Prentice-Hall, Inc B. Plannerer (March 28, 2005), an Introduction to Speech Recognition http://www.speech-recognition.de/pdf/introsr.pdf 13