AI-rapport Speech recognition The process of analyzing an acoustic speech signal to identify the linguistic message that was intended, so that a machine can correctly respond to spoken commands. Anntu228 Artificiell intelligens 729g11 Vt-08 1
Abstract Taligenkänning är en användbar teknik inom artificiell intelligens. Det är inte bara fantastiskt att en dator kan känna igen vårt språk utan att det även kan hjälpa till exempel människor som av olika handikapp inte kan använda tangentbord vid arbete med datorer. Ett taligenkänningssystem tar hjälp av algoritmer och mallar för att känna igen tal. Dess arbete går ut på att från en akustisk signal kunna identifiera ord. Detta gör den med hjälp av bland annat Hidden Markov Models och Viterbi algoritmen. Efter att man har gjort om tal till en akustisk signal så kan HMM försöka göra igenkänning av små enheter av ord, enheterna kallas fonem. Algoritmen Viterbi kan se hur stor sannolikhet det är för att ett ord har uttalats och hur stor sannolikheten är för nästkommande ord. Taligenkänningssystem måste även ta hänsyn till hur stort vokabulär det är, se till ordgränser i flytande tal och se om systemet klarar av oberoende talare eller endast beroende talare. Bara genom att se allt systemet måste ta hänsyn till så kan man förstå komplexiteten i det. 2
Innehållsförteckning 1. Grunderna. S 4 2. Språkmodellen / akustisk modell. S 4 3. Tre baskomponenter S 5 4. Enkel igenkännare.s 5 5. Kopplade eller isolerade ord.s 8 6. Vokabulärens storlek...s 8 7. Hidden Markov Models......S 9 8. Viterbi algoritemn......s 12 9. Vector Quantization......S 13 10. Diskussion...S 14 11. Referenser....S 15 3
Grunderna Taligenkänning är en processen och teknik som gör att datorer kan känna igen mänskigt och naturligt tal. Det finns komplexitet i problemet och det är på grund av hänsynen man måste ta till semantik, syntax, fonetik och akustik, (identifiering av fonem). Andra aspekter som kan göra processen svår är röstskillnader, kön, accenter, ålder och dialekter. Det som kan ge effekter på talsignalen är även tillagt ljud och kanalförvridning. För att klara av dessa variationer är det ett måste att använda instrument som är kapabla för att utför arbetet. Under det senaste årtiondet har det uppkommit en slags standard av olika tekniker för att klara av igenkänning på ett bra sätt. (Antonio.M Peinado and José C Segura) Ett exempel på en enkel taligenkänning kan vara svar på enkla frågor. Till exempel när någon frågor Vart vill du åka? På var man kan svara Linköping. Och så ska systemet kunna förstå ordet och gå vidare i programmet. Lite mer avancerad teknik som klarar fritt tal kan uppfatta svar på frågor som Beskriv din resa. Till exempel: Jag vill ta tåget till Stockholm och sitta i andra klass. Man måste också kunna filtrera bort stakningar, harklingar, upprepade, otydliga ord och även ord med ingen betydelse. Språkmodellen och akustisk modell Målet med just taligenkänning är att hitta den mest troliga sekvensen givet den akustiska signalen man har observerat. De system som anses vara bästa idag använder statistiska modeller och taligenkänningsverktygen kräver 2 typer av filer för att känna igen tal. Den ena är språkmodellen som är en fil som innehållande sannolikheten för sekvenser av ord. Alltså så räknar den ut sannolikheten för att ord ska följas efter varandra. När man räknar på sannolikheten för att 2 ord ska följa varandra kallar man det för bigramsmodeller och trigramsmodell för 3 ord och n-gram för när man ser på en hel text. Ett exempel, när man tränar bigramsmodellen så räknar man på hur många gånger ett ordpar finns i texten. Så kan man räkna på sannolikheten på följande sätt; om ordet ett finns 100 gånger och ljus som följer ordet ett förekommer 10 gånger så räknar man 10/100, alltså 0.1. Efter detta så kan man tänka att ett ljus har högre sannolikhet än en ljus. Det andra är den akustiska modellen som skapas av att ta transkriptioner och ljudinspelning av tal och kombinera dessa till statistiska representationer av ljud av ord. Den kan delas upp i två olika delar, den första delen bearbetar uttal och den andra delen handlar om att fonem kan upplevas som akustiska signaler. (Mitkov) 4
TRE BASKOMPONENTER Det finns tre olika baskomponenter för taligenkänning. Dessa tre är representation, mallar och mönstermatchning. För att kunna känna igen ett ord måste igenkännaren göra om talsignalen innan den börjar analysera den. Denna form kallas den inre representationen. Det blir en mer förfining av orden med fonem och egenskaper. Det finns olika variationer på hur ord och fonem kan bli uttalade och Hidden Markov Models är en statistisk representation som tar hänsyn till detta. Mallar är som schabloner för varje ord. I en igenkännare finns det ett set av dessa vilket då ord kan jämföras med. Dessa mallar är de ord som vår igenkännare kan identifiera. När man får in ett ord så jämförs detta med mallarna. En mönsterpassningsalgoritm bestämmer då vilken av dessa mallar som är mest lik det ord vi har fått in som indata i vårt system. Det är här ordgränser bestäms och om en skillnad finns mellan indata och mallen så bestäms det även här om den är acceptabel. Om ingen malla är tillräckligt lik vårt indata så nekar den liknelse. I lite större vokabulär tar mönsterpassningen även hänsyn till syntax och semantik, vilket då leder till mer begränsningar angående hur ord kan kombineras till olika meningar. (Schmandt 1994) Enkel igenkännare De funktionella element som ses i figuren på nästa sida är de som en enkel igenkännare innehåller. Den är designad för att kunna identifiera ett litet antal isolerade ord, talat av en specifik talare. Talarens ord är digitaliserat och även omvandlat till en inre representation. Här blir vårt indata jämför med våra mallar som finns lagrade i igenkännarens mallminne och mönsterpassningsalgoritmen avgör då vilken av dess modeller som är närmas en matchning, om det nu finns någon som passar. Den absolut enklaste igenkännaren är en som är talarberoende, har ett vokabulär med storlek small och som är isolerade ord. Men det vi behöver mest är ett som har ett stort vokabulär, som är talaroberoende, och som klarar av kontinuerligt tal. Adaptive, är när datorn anpassar sig efter användaren. Antingen kan användaren läsa en på förhand bestämd text och lär sig då hur personen pratar. Det andra sättet är att användare får ge feedback till systemet. 5
mallminne Talsignalen signalanalys protokollföra metrisk text Fig.1 Vad händer då i varje steg? I representationen så sker en digitalisering av den inkommande datan till koder. Den använder sedan en signalprocessalgoritm för att kunna göra en så kallad LPC, det vill säga en linjär förutsägande kodning. Det ger koefficienter var 20 millisekund. Det resulterar i 50 värden under det 20 millisekunder långa samlingsintervallet. Detta hjälper till att reducera stora data till den senare mönstermatchningen. För att kunna bygga en mall måste igenkännaren besluta när talaren börjar och slutar tala för att kunna veta vilken LPC frame den ska inkludera i mallen. Till varje LPC frame med koefficienter av 20 millisekunders intervall inkluderas ett energivärde. När data överstiger tröskelvärdet frö bakgrundsljud så sparas denna data ända tills den går under gränsen igen. Det är en nödvändighet att vänta ett tag när den sjunker under tröskeln för inte riskera att förväxla stoppet med ett konsonantstop, låg energi i ordet eller bara en stund av tystnad. Mallarna är tränade av en talare som säger ett ord en gång. Mer avancerade igenkännare kan ta många fler variationer av ord för en större mall. Igenkännaren kan tränas om av en egen mall och då ersätter den nya den gamla. Detta är användbart om vokabulär ändras eller om den första träningen var för dålig eller om användaren vill ha ett annat uttal på ord. Omträning är också och rekommendera om en talar är förkyld. Mönstermatchning går ut på att matcha indata med våra mallar. Vårt ord mönstermatchas då det först har blivit omgjort till den inre representationen och kommit över tröskeln för bakgrundsljud samt åkt ner under den igen. Då tar igenkännaren de frames som ordet har passerat och jämför med frames motsvarande mallarna. Summan av skillnaden mellan varje ca dussin LPC-parametrar kallas frame-by-frame felet. Man jämför alltså helt enkelt mallen med vårt indata. Mallen med det minsta ordfelet är närmast matchning med vårt indata. Om det är för stort fel så avslår man en matchning. Det finns olika saker som kan bidra till att en taligenkännare kan förbättra sig. Det självklara är ju att tala tydligt och konsekvent men dels genom att använda en bättre mönsterpassningsalgoritm. Den kan även ge avslag då indata inte är likt den mall som befinner sig närmast. Till exempel så kan det finnas oljud, andningsljud och missat uttryckt ord som accepterats av igenkänningsvokabuläret. Det andra är att indata ska visa markant att den är närmast den mall som matchar bäst. Om en punkt är nära 2 olika mallar ska ett felmeddelande ges. 6
En mer avancerad mönstermatchning kan känna igen nyckelegenskaper hos ord och använder detta till representationen av indata. Mönstermatchningen antar att indata kommer vara av samma längd som mallen men detta behöver ju inte alls vara sant då människor talar i olika hastigheter. Detta kommer troligen ge ett felmeddelande. En teknik som heter Dynamic time wraping eller dynamic programmering används ofta och flitigt för att kunna kompensera sådan här tidsskillnader i tal. Något som också kan underlätta mönstermatchning är att göra dess beräkningskrav mindre. Vector Quantization är en teknik som kan fånga olika variationer utan att få för mycket data. Mer information om VQ kommer senare i rapporten. En liten figur på vad en igenkännare kräver: Isolated / / Connected / / continuous Speaker independent \ \ Adaptive \ \ Dependent -------------------------------------------- vocabulary size (Schmandt 1994) 7
Förenade eller isolerade ord? När man talar om en diskret taligenkännare så menar man att den behöver pauser mellan varje ord för att kunna identifiera ordgränser. De som känner igen korta serier av ord, alltså sådana ord som är talade tillsammans som en fras, kallas kopplad eller förenade taligenkännare. Den är kapabel till att känna igen en sträng av tal utan några pauser av talaren mellan orden. En igenkännare som upptäcker nyckelord kan lokalisera några ord i mitten i en mängd av ord. En diskret taligenkännare är mycket lättare än en kopplad på grund av flera anledningar: Det finns ingen paus mellan orden. Inte heller minskad talenergi åt ordgränser. Det är svårt att hitta pålitliga ordgränser från flytande tal. Ju fler ord, ju högre sannolikhet för att det blir fler fel. Om första ordet i en matchning är fel kommer detta bidra till att felet förökar sig till efterföljande ord, då första ordet kan vara för lång och analysen för sekunden efter förstörs. På grund av bland annat dessa punkter så är de många taligenkännare som är byggda på isolerade ordigenkännare. (Schmandt 1994) Vokabulärens storlek Storleken för vokabulär är något som skiljer igenkännare åt. Den kan delas in i small, medium och large. Small har ord < 200, medium kan innehålla mellan 200 5000 ord och large tar 5000 10,000. Ju större det blir ju större chans finns det att igenkännaren kan finna ett ord som är lika. Men med ökningen så minskar avståndet mellan mallarna. Den kommer då tillåta en mindre felmarginal mellan indata och uttal, samt till dess associerade modell. (Schmandt 1994) 8
Hidden Markov Models HMM är en matematisk konstruktion och det är en tvåstegsprocess som kan användas för representation för tal. Den innehåller ett antal inre tillstånd och går från ett starttillstånd till ett sluttullstånd med ett steg i taget. Den genererar under tiden den utdata den observerar vid varje steg. Varje steg kan vara ett fonem i ett ord och vid varje steg kan modellen välja att flytta dig till ett annat nytt tillstånd eller så stannar den kvar. På grund av att vi inte kan se tillstånden direkt utan bara dess utdata så kallas den gömd. Tack vara den serie man får ut av utdata så kan man gissa var modellen har varit i varje tillstånd. Akustiska modeller Talsignal analys akustisk matchning syntax och semantik beslut igenkänd text Analys är framställd av talsignalen. Informationen i den akustisks matchning är utvärderad av den akustiska HMM algoritmen som innefattar allvariation av fonetik och ord av den behandlande igenkänningsarbetet. Beslut, den identifierade frasen är klar genom kombinationen av information från analys samt akustisk matchning samt syntax och semantik. Några problem gällande HMM Som figuren ovan visar så måste igenkännaren ha lagrat ett set av HMMs från igenkänning kan plockas ut. Systemet måste bli testad före användning och dessa modeller blir inhämtade under en så kallad träningsprocess. För att kunna genomföra detta så måste det finnas en taldatabas som delats i in 2 olika delar så att man kan genomföra träning och testning separat. Det finns olika typer av system som vi kan märka av enligt taldatan: Talar-beroende: detta system klara bara av att ett bestämt antal talare pratar. Och testning och träning måste genomföras av dessa individer. Talar-oberoende: den här har tillräckligt många talare för att kunna genomföra igenkänning av vilken talare som helst. Bara individen talar noggrant. 9
För att undvika att det skulle ta så mycket plats i databaser då alla ord ska lagras så sorteras dem istället. De kan grupperas efter hur det uttalas rent fonetiskt eller efter stavelser. (IWR) isolated word recognition. Isolerad ordigenkänning. Detta är när det finns en tystnad mellan orden och när de kan bli igenkända en och en. (CSR) Continuous speech recognition. Kontinuerlig taligenkänning. Detta innehåller hela meningar som inte behöver pauser mellan orden. Tanken med detta är att kunna ge meningar med hänsyn till vår grammatik. Ett problem i taligenkänning är hur man ska mäta resultat av systemet. Med IWR är en uppenbar mätning ER, Error rate. Då mäter man hur många ord som blivit felaktigt igenkända mot antalet som blivit rätt igenkända. Men i CSR system är inte ER tillräcklig för då finns det fler typer av fel i och med att grammatiken tillkommer. Ersättande: ett ord av i en mening verkar ha byts ut till ett annat i igenkänningsmeningen. Till exempel Jag tog av mig hatten Jag tog av mig katten. Försummelse: Ett ord i meningen saknas i igenkänningsmeningen. Tillägg: Igenkänningsmeningen inkluderar ett nytt ord mellan två ord i original meningen. 10
Hidden Markov Models Ett exempel av en HMM-modell: (beskriver isolerade ord) Tänk en låda med dominerande svarta bollar. En skål med flest vita och en tärning. Startar med boxen, vi tar bort en boll slumpmässigt. Och ger den till en observerare i ett annat rum som inte kan se vad som har gjorts. Sen så kastar man en normal 6sidig tärning. Om resultatet är <4 då plockar man nästa boll ur skålen. Om kastet är större än 3 då kommer nästa boll bli tagen ur boxen. Och detta repeteras. När vi väljer från boxen så ändras fokusen till skålen om ett tärningskast visar mindre än fyra. När vi väl börjar välja ur skålen fortsätter vi välja från den såvida inte tärningskastet visar 1, och i så fall är vi färdiga. Med denna modell spenderar man majoriteten av plockandet från skålen. Förmodligen kommer observatören i början få se fler svarta bollar då man är i boxen och de har fler svarta bollar. Man har ½ chans att byta till skålen där det är fler vita bollar. Och när man är i skålen har man 1/6 chans att avsluta processen, annars fortsätter man att plocka bollar i skålen. Notera att observatören inte kan veta vilket tillstånd (box eller skål) vi står i, utan bara kan gissa utefter sannolikhet efter bollarna som fås. En annan modell är trädet (tillståndsgrafer). HMM kan ses som tillståndsgrafer. Till exempel S1 och S2. Eller Chocolate är S1, S2, S3 men kan också gå från S1 till S2 direkt. Alla ord finns lagrade i den här modellen som tillståndmodeller. Sen matchas det man säger med de befintliga HMMsen. En metod för att känna igen ord. En igenkännare som använder sig av HMM måste avgöra vilken mall som ger högst sannolikhet för det ordet man vill åt. Detta problem kan viterbi algoritmen lösa. Saker vi måste ha för att kunna definiera en HMM: tillstånd övergångssannolikheten oberverad sannolikhet starttillstånd accepterat tillstånd (Schmandt 1994) (Jurafsky) 11
Viterbi algoritmen Den här algoritmen kommer från en man vid namn Andrew Viterbi år 1967 som en slags feljusterings plan som då var till för att lösa bullriga digitala kommunikationslänkar. Den här algoritmen är en programmeringsalgoritm som helst av allt vill hitta Viterbi sökvägar, bästa vägen genom ett nätverk. Detta nätverk är uppbyggt av enstaka ord. Målet med denna algoritm är att den ska hitta den bäst tillståndssekvensen. Algoritmen gör ett antal antaganden men först måste både de observerade händelserna och de gömda vara i samma sekvens och den svarar ofta även mot tid.. KE TJE 75% 25% DJA NA LA 33% 50% 17% Om den får in stavelserna ke och tje vid en tidpunkt så kan den få stavelserna dja, na och la vid en annan. Då kan det vara 75% chans att det är ke vi vill börja med och 25% chans att det är tje. Om vi går vidare då så kan det visa sig att dja ger 33%, na ger 50% och la ger 17%. Om man då lägger ihop stavelserna KE+DJA så är det 0.75*0.33 sannolikhet för att det ska vara detta ord. KE+LA blir 0.75*0.50 och TJE+NA blir 0.25*0.50. På detta sätt kan då algoritmen avgöra vilket ord som är högst sannolikt det vi söker i vår väg och att det passar med den sekvens som har observerats. (Jurafsky 2000) 12
Vector Quantization (VQ), är en teknik inom taligenkänning för datareduktion. Den reducerar ett högt värde till ett mer smalt antal av mer representerade typiska värden för de indata som fåtts. Några värden blir representanter för andra värden och på så sätt sparar man utrymme. Man måste fundera ut på vilket sett det är mest effektivast att klustra indatavärden på för att standardvärdet kommer ju senare stå som modell för ett helt set av data. Varje grupp eller kluster visas sen i en codebook. Då kommer originalvärdena tas bort och man använder istället den nya informationen. (Schmandt 1994) 13
Diskussion Spontant när jag började med detta projekt kände jag en smärre olust då jag var mer inne på ett annat område. Men i brist på fakta så fick jag ta ett vanligt ämne. Men min uppfattning om detta vanliga tråkiga ämne har ändrats under de veckor jag har fördjupat mig. Jag inser nu hur stor del taligenkänning har i vårt samhälle och än mer hur stor del det skulle kunna ta om vi kunde utveckla systemen till det bättre. Det verkar som om det första folk tänker på när jag har frågat om taligenkänning så är det kundtjänster. Då jag har suttit i telefon med en icke-mänsklig varelse i andra luren så har jag vissa gånger velat kasta telefonen i väggen och skrika: - fattar du inte var jag menar ditt j***a maskin!!!! Varpå jag hör ett svar i luren, vill du åka till Malmö, tryck #. Jag som är född i Sverige och har dialekt rikssvenska med en snudd av östgötska kan inte förstå hur människor med grov dialekt eller som kanske är födda i utlandet kan boka biljett med SJs kundtjänst. Det är det som är det svåra med taligenkänning. Det är så många aspekter som man måste ta hänsyn till så som talhastighet, dialekter, accenter och så vidare. Man måste också tänka på att vårt språk ändras hela tiden och nya ord hörs dagligen. Hur skulle taligenkännarens vokabulär hänga med i vår utveckling? Det som är bra med taligenkänning är att människor med handkapp kan integrera med datorer på ett sätt som förr varit omöjligt. Inget tangentbord eller mus behövs. Om jag skulle ha pratat in denna rapport istället för att skriva skulle det kunna halverat min tid. Taligenkänning hade även hjälp elever på kogvetprogrammet som har problem med sina handleder/händer och som inte kan skriva en rapport i AI. Det skulle också kunna vara användbart inom industrin om man kunde slippa att behöva knappa in något med händerna så fort man ville datorn något. Mycket finns det att göra, mycket har även gjorts. Jag längtar efter den dagen all forskning och utveckling har gått så långt att vi bara behöver tänka ner saker på papper. 14
Referenser Antonio, M. Peinado och José, C Segura (2006) Speech Recognition over digital channels. Robustness and Standards. Jurafsky, D. Martin, J. H. (2000) Speech and Language Processing. New Jersey: Prentice- Hall, Inc. Norvig, P. Russell, S. J. (2003) Artificial Intelligence: A Modern Approach, second edition. New Jersey: Pearson Education, Inc. Schmandt, C (1994) Voice Communication with Computers: Conversational Systems. New York: Van Nostrand Reinhold. Mitkov, Ruslan (2003) Computational Linguistics. Oxford University Press. Wikepedia 15