LINKÖPINGS)UNIVERSITET) Artificial)Intelligence) Taligenkänning)! Adam%Annerhult% 2012009017%!
Contents' ' ) ) ) ) ) Inledning... 3! Så fungerar taligenkänning... 4! Grundläggande egenskaper i ett taligenkänningsprogram... 5! Tre stora problem med ett taligenkänningsprogram... 7! B ayes regeln... 7! Akustiska modellen och språkmodellen... 8! Akustiska modellen... 8! Språkmodellen... 8! Olika typer av taligenkänningsprogram... 9! Hidden Markov model... 11! Viterbi Algoritmen... 13! Vector Quantization (VQ)... 13! Diskussion... 14! Referenser... 15! ) ) 2
) Inledning' Taligenkänning blir allt större i dagens samhälle och inom Artificiell intelligens. Det används mycket inom telefonsupport men även som Siri i iphone där Siri är en taligenkännings mjukvara som fungerar som en assistent som kan utföra olika saker genom taligenkänning. Alla har nästan stött på ett taligenkänningsprogram och märkt att det inte alltid är så lätt att göra sig förstod utan det blir rätt så ofta fel om man inte pratar extremt tydligt. I program som Siri som inte finns på svenska så uppfattar Siri ofta orden fel eftersom man som svensk inte alltid har samma uttal som en person som är uppväxt med det engelska språket. För att kunna skapa ett program som klarar av att känna igen tal så måste man först veta hur talet fungerar hos oss människor. Hur ljudvågorna ser ut och hur alla fonem som bygger vårat språk uttalas. Det finns ca 100 fonem i alla världens språk. Med dessa 100 fonem så kan man prata alla språk eller man kan iallafall göra ljuden för alla språk. För att sedan kunna ska hitta fonem och ord i det digitala språket som har skapats så används ofta Hidden Markov Model med Viterbialgoritmen för att lösa detta problem. 3
' Så'fungerar'taligenkänning' Det första som är viktigt att förstå är hur vi människor producerar tal. När man pratar så är det luft som passerar glottis sedan vidare till halsen och munnen, så skapas olika ljudvågor. Tonande excitation: glottis stängs. Lufttrycket tvingar glottis att öppna och stängas periodvis vilket genererar en periodisk pulsvåg (triangelformad). Denna "grundfrekvens" ligger vanligtvis inom intervallet från 80Hz till 350Hz. Tonlösa excitation: glottis är öppen och luften passerar en smal passage i halsen eller munnen. Detta resulterar i en turbulens som genereras som en brussignal. Den spektrala formen av bullret bestäms av placeringen av stämbanden. Övergående excitation: En nedläggning i halsen eller munnen höjer lufttrycket. Genom att plötsligt öppna förslutningen sjunker lufttrycket omedelbart. (B.Plannerer 2005) Efter det att ljudet har passerat munnen d.v.s. man har gjort ett ljud, så krävs det en mikrofon för att kunna göra om ljudet från analogt till digitalt. När man pratar in i en mikrofon så vibrerar den och skapar en elektrisk våg som gör om det analoga ljudet till digitalt. När ljudet sedan blivit digitaliserat så krävs det att programmet (taligenkännaren) plockar bort önskvärda delar, d.v.s. delar som brus och andra ljud som inte tillhör det man vill att programmet ska känna igen. Så att den enbart analyserar ord och inte får med massa bakgrundsljudbrus. Sedan så använder sig programmet av frames, d.v.s. man samplar ljudet i ca 10 ms intervaller för att kunna identifiera alla olika ljud/fonem. De frames som skapas överlappar varandra så att inget missas. När man sedan har alla frames så körs en algoritm för att identifiera de olika fonemen och sedan komma fram till vilket ord det är som programmet har fått som input. 4
Grundläggande'egenskaper'i'ett'taligenkänningsprogram' Det finns tre stycken grundläggande saker som alla taligenkänning program måste kunna. Representation: Man vill skapa en representation av orden på ett sådant sätt som gör det lätt för taligenkänningsprogrammet att kunna mönstermatcha. Representationen görs genom att programmet omvandlar talsignalen innan den börjar identifiera orden. Talljuden representeras sedan som ramar(frames) som tidigare nämnts. (Schmandt 1994) Ofta så är de frames som skapas 10 millisekunder långa och överlappar varandra för att inte något skall missas. (Russel and Norvig 2010) Mallar och Modeller: Ett taligenkänningsprogram måste ha mallar som den kan jämföra den input som programmet fått med. En mall består av en uppsättning ord som programmet kan identifiera. För att skapa en mall så krävs det att programmet vet när man börjar tala och slutar. När man lär igenkännaren ett ord så gör den om orden till ramar(frames) som är 10-20 ms långa. Eftersom varje ram innehåller en viss mängd energi så är det väldigt lätt att kunna känna av när ett ord slutar och börjar. Så fort energin överstiger värdet för bakgrundsbrus så börjar ordet och när den sjunker under bakgrundsbrus så slutar ordet. Det är dock viktigt att låta den sjunka under nivån för bakgrundsbrus efter som vissa ord kan sluta med tystnad eller väldigt låg energi.(se fig,1) Väldigt enkla taligenkänningsprogram så lär man in orden genom att bara säga dem en gång och sedan spara så att man kan lära den mer nya ord och inte behöva lära om den de ord som en gång redan lärts in. Mer avancerade taligenkänningsprogram kan ta många fler exemplar av varje ord för att skapa starkare mallar som inte enbart är anpassade efter 1 person. Word I! Thrshold _i:ý Time (Schamndts 1994) boundari Figur 1 visar hur energin stiger när ett ord sägs och vad gränsen dras för bakgrundsbrus. 5
Mönstermatchning: är används en algoritm för att bestämma om det finns några ramar som liknar den inputen som taligenkänningsprogrammet får. Här bestäms ord gränserna och om ordet är så pass likt en mall att det kan acceptera det som den input programmet fick. Mer avancerade taligenkänningsprogram tar inte bar hänsyn till ord utan även synstax, dvs hur meningar kan vara uppbyggda och hur stor chans det är att vissa ord skulle kunna komma efter varandra i en mening. Även i detta stadie så är det viktigt att kunna avgöra när det är ett ord och när ordet slutar, d.v.s. när det går från bakgrundsbrus till ord och från ord till bakgrundsbrus (se fig, 1 ovan). Programmet använder sig sedan av frame-by-frame error som är summan av skillnaden mellan de olika ramarna och det ord med minst fel och som inte överstiger den maximala skillnaden ett ord får ha är det ord som matchar bäst. Överstiger alla ord den maximala felgränsen ett ord får ha så returneras ett felmeddelande. De här stegen förklarar bara ett väldigt enkelt taligenkänningsprogram där programmet enbart klarar av att känna igen ett ord i taget och kan inte t.ex. känna igen meningsuppbyggnader. Den klarar inte heller av att känna igen ord om de inte uttalas i exakt samma hastighet som mallarna för ordet. Detta går att lösa med hjälp av Dynamic time warping. (Schamndt 1994) 6
Tre'stora'problem'med'ett'taligenkänningsprogram' Det finns tre stora problem som taligenkänningsprogrammen ofta stöter på. Ett exempel på engelska hur det komma uppkomma problem är frasen wreck a nice beach som låter nästan exakt likadant som recoginize speech när man säger det snabbt. Denna fras bevisar direkt vilka 3 problem som kan uppkomma. Segmentering: I skrift så har alla ord ett mellanrum. Medan i tal så är det ibland svårt att uppfatta dessa mellanrum, som i exemplet ovan, när man pratar snabbt så flyter orden ihop och kan ibland uppfattas som ett enda långt ord. Koartikulation: Detta problem uppstår när s ljudet i nice flyter ihop med b ljudet i beach vilket skapar ett ljud som liknar sp. Homofoner: Det finns ibland ord som har exakt samma uttal men låter olika. I engelskan finns det tex to, too och two. För att lösa dessa problem får man använda sig av en sannolikhets algoritm. Det vill säga att vi använder oss av en algoritm som testar hur sannolikt det är att de olika orden skulle komma efter varandra. Man kan då använda sig utav B ayes regeln. B'ayes 'regeln' P(ord ljud) = P(ljud ord)p(ord) Där P(ord ljud) är en akustisk modell som beskriver ljudet av orden. Där tex ceiling har ett mjukt c och låter likadant som sealing men de betyder olika saker. P(ord) är en språkmodell. Den räknar ut vilket ord som har största sannolikhet att komma efter ett annat ord. Som i exemplet sealing och ceiling så är det 500 gånger så stor chans att ordet fan kommer efter ceiling d.v.s. ceiling fan (tak fläkt och inte tätningsfläkt). (Russel och Norvig 2010) 7
Akustiska'modellen'och'språkmodellen' Akustiska'modellen' I den akustiska modellen så använder man sig av fonem. Fonem är även kallat för språkljud. Det är fonem som bygger vårat språk. Byter man ut ett fonem mot ett annat så ändras ordet ett exempel på det är /g/lass byter man ut /g/ mot /k/ så får man /k/lass. (Wikipedia 2012-09-15) Lingvister har kommit fram till att det finns ca 100 olika fonem. Med dessa 100 olika fonem så är det möjligt att bygga ihop alla språk. I den akustiska modellen så används sedan frame systemet som tidigare nämnts. Varje frame är 10 millisekunder lång och man gör detta för att lyckas identifiera alla fonem. Där alla frames överlappar varandra för att inte missa något fonem. (Russel och Norvig 2010) Språkmodellen' Språkmodellen är en enklare variant än Akustiska modellen då språkmodellen bygger på skriftliga ord och inte på hur orden låter. Men eftersom skriftligt språk skiljer sig mycket från talet så är det lättare om man använder sig utav en samling transkriberat tal. Språkmodellen kan vara en n-gram modell som bygger på korpusar och skriftliga meningar.(russel och Norvig 2010) 8
Olika'typer'av'taligenkänningsprogram' Det finns många olika typer taligenkänningsprogram. De olika taligenkänningsprogrammen varierar mycket i funktionalitet och prestanda. Bilden under figur 2 visar en tre-dimensionell bild på de olika typerna av taligenkännare. (Schmandt 1994) Figur 2, Visar en tre-dimensionell bild över de olika taligenkänningsprogrammen. Taoberoende: Är uppbyggd så att den kan känna igen vilket röst som helst och inte enbart en specifik person. Det är betydligt svårare att bygga en tal-oberoende taligenkännare än en tal-beroende. Detta därför att alla människor uttalar språket annorlunda. Detta beror på t.ex. dialekter, kön och ålder. Eftersom det är väldigt svårt att skapa en tal-oberoende taligenkännare så görs dem ofta väldigt simpla. Man använder inte så många ord som programmet kan känna igen utan bara tex 0-9 ja och nej. Talberonde: Motsatsen till tal-oberoende, dvs att den kan enbart förstå en specifik talare/person. Denna är mycket lättare att bygga eftersom här så kan man träna in sina ord själv och sedan spara dem så programmet kan enbart de ord du har lärt den. Tal-adaptiv: Denna teknik kombinerar både tal-beroende/oberonde. Den startar med ett visst ordförråd och lär sig sedan hur en specifik talare uttalar orden och lägger till det i systemet. 9
Om man vill skapa ett taligenkänningsprogram som kräver ett väldigt stort ordförråd så måste man nästan göra den till en tal-oberoende eller adaptiv, därför att annars tar det väldigt lång tid för varje person som skall använda sig utav taligenkännaren att lära upp den alla ord som den ska behöva kunna. Diskret-taligenkännare: En diskret taligenkännare kräver att användare tar en paus mellan varje ord för att kunna förstå vad som sägs. Kopplande-taligenkännare: Kan känna igen korta meningar/fraser. Man kan alltså inte prata på som vanligt utan måste prata i korta meningar och ta en paus mellan varje mening så att programmet hänger med och förstår vad som är meningens slut och början. Kontinuerlig-taligenkännare: Kan känna igen vanligt tal. Den känner igen långa meningar utan att man behöver pausa emellan alla ord. Nyckelord-taligenkännare: Söker efter nyckelord i varje mening som sägs. Den behöver inte kunna varje ord i varje mening utan bara nyckelorden. Om man tex har ett programm som kommer ihåg siffor och man säger till programmet Kom ihåg dessa siffror : ett,två,tre. Så är det enbart ett, två och tre programmet kommer att känna igen. Men eftersom det redan vet att när någon säger detta så utförs en specifik handling oberoende av vad meningen innehöll. (Schmandt 1994) 10
Hidden'Markov'model' Hidden Markov model eller HMM som den även kallas används ofta inom taligenkänning. HMM används för att räkna ut sannolikhetsvärdet för vilket ord som kommer efter det föregående ordet eller vilket fonem som kommer efter det föregående fonemet. En Hidden markov modell består av ett antal interna stater, exempel på dessa stater kan vara alla olika fonem. Modellen går från ett initial tillstånd och sedan så ger steg för steg till det slutgiltiga tillståndet som är observerbart för varje steg den tar. Om de interna staterna är fonem av ett ord så kan det slutgiltiga tillståndet bestå av akustiska särdrag ifall det finns. I varje steg den tar så kan den antingen stanna kvar på samma steg eller gå vidare. HMM är gömd eftersom vi inte kan observera de olika staterna utan bara dess slutgiltiga tillstånd är observerbart. Ett exempel på vad som kan vara gömda states och det observerbara är en textigenkännare. Vi säger att vi har hand skrivit ett B. I detta exempel så är vårt handskrivna B det observerbara och medan alla tecken eller hela alfabetet är det ej observerbara. Siffrorna över varje pil visar hur stor sannolikhet det är att det är just det tecknet. I taligenkänningssystem så skulle alfabetet kunna vara alla olika fonem och det handskriva B:et är de ramar som skapas när vi get programmet en input dvs ett ord eller mening som blir uppdelat i 10ms ramar. A 0,003 B 0,5 0,04 Ö 11
Ett exempel på en HMM som Schamndt tar upp är skålen och lådan. I bilden nedan så ser man hur det finns ett visst antal bollar som antingen är svarta eller vita. Där lådan har mer svarta bollar än vita bollar och skålen har då mer vita bollar än svarta bollar. Figur 3, Visar hur lådan innehåller mer svarta bollar och hur skålen innehåller mer vita bollar. (Schamndt 1994) Sedan så tas en boll upp ur lådan och skickas in till en observatör i ett annat rum som inte har någon aning om vad som har skett. Sedan kastas en tärning. Visar tärningen mindre än 4 så tas nästa boll från skålen och visar tärningen över 3 så tas nästa boll från lådan. Så gör man om detta tills att man hamnar i skålen för då krävs det att tärningen visar 1 för att man skall få byta till låda igen. Chanserna för att byta från skålen till lådan är 1/6 medan det är 1/2 att vi byter från lådan till skålen. Detta resulterar i att vi kommer skicka in mer svarta bollar när vi är i lådan men att i slutet av testet så kommer vi att ha mer vitabollar. Vad man vill visa med detta är i och med att vi inte ser vad händer i det gömda tillståndet och att det faktiskt finns svarta bollar även i skålen och vita bollar i lådan så man kan inte säga exakt vart ifrån de kommer. Men man kan göra gissningar på vart ifrån de kommer eftersom vi vet vad för färg på bollen vi fick. (Schamndt 1994) 12
Viterbi'Algoritmen' Viterbi algoritmen används inom HMM för att kunna hitta den mest troliga sekvensen av de dolda stater som finns HMM. Att hitta den mest troliga sekvensen i HMM är ett problem som alltså går att lösa med Viterbi Algoritmen. Wikipedia(2012-09-17) Vector'Quantization'(VQ)' VQ används för att göra data mindre. Efter som tal kan ta upp väldigt stor data mängd så använder man VQ för att göra det mindre. Man gör om indata till en mindre uppsättning av siffror som representerar det typiska värdet på indata. Det skapas sedan en kodbok en kodbok består av olika grupper där varje grupp har ett medelvärde som representerar gruppen. Varje ram som skapas består av vektorer för att kunna minska den datamängden. Vektorerna jämförs sedan mot kodboken. Så istället för att HMM får en vektor som input så får den istället siffror som står för en viss grupp i kodboken. (Schmandt 1994) 13
Diskussion' Eftersom denna rapport till största del är byggd på en bok från 1994 så finns det mycket forskning gjord inom taligenkänning. Som nämnt i inledning så finns t.ex. Siri i iphone från apple. Siri är en taligenkännare som kan känna igen flytande tal på bland annat engelska. Så vi har kommit en lång väg sen 1994 inom taligenkänning. Efter att har skrivit denna rapport så har jag fått en mycket större förståelse för hur komplext system det är för att kunna känna igen tal. Jag har fått en bra uppfattning om hur ett taligenkännings program är uppbyggd i alla fall inte så avancerade program. 14
Referenser' http://sv.wikipedia.org/wiki/fonem 2012-09-15 http://en.wikipedia.org/wiki/viterbi_algorithm 2012-09-17 Schmandt, C (1994) Voice Communication with Computers: Conversational Systems. New York: Van Nostrand Reinhold. Norvig, P. Russell, S. J. (2010) Artificial Intelligence: A Modern Approach, third edition. New Jersey: Pearson Education, Inc. B. Plannerer (March 28, 2005), an Introduction to Speech Recognition 15