Avkodning ASR prestanda Talteknologi, VT 2005 Rebecca Jonson Dagens Litteratur p Jurafsky & Martin. 3.5, 5.9, s. 271, 7.3, p Blomberg, M & Elenius, K. Automatisk igenkänning nning av tal. s. 18-22 p Steve Young,(1996). Large Vocabulary Continuous Speech Recognition: a review, kap 6,7,8,9 Översikt ASR En ordsekvens Ord antas och språkmodellen beräknar dess sannolikhet P(Ord). Varje ord konverteras i en sekvens av foner m h a ett uttalslexikon. För varje fon finns det en HMM. Den sekvens av HMMs som behövs för att representera ordsekvensen sätts ihop till en modell och sannolikheten att den modellen har genererat den observerade akustiska vektorsekvensen Akustik beräknas P(Akustik Ord). Vi kan därefter beräkna P(Ord Akustik). Avkodning Avkodningen är ett sökproblem för att hitta den bästa sekvensen av ord. Det finns två vanliga avkodningsmetoder för att hitta den mest sannolika ordssekvensen givet den akustiska informationen p Viterbisökning: Typ av dynamisk programmering Breadth-First p A* decoding /Stack decoding Depth -First Viterbiavkodning i ASR p Typ av dynamisk programmering (kan beskrivas i matrisform precis som minimum edit distance) p Beräknar P(Ord Akustik) med hjälp av HMMmodellerna P(Akustik Ord) och Språkmodellerna P(Ord). Dvs P(Akustik Ord) x P(Ord) p Viterbihittar den tillståndsekvens som ger bästa sannolikheten och som accepterar observationssekvensen (akustiska vektorer) p Output från Viterbiär den bästa strängen, d v s den mesta sannolika ordsekvensen En tillståndssekvens utav HMM:er + sannolikhetsvärde p Input är en sekvens med observationer, en HMMmodell och språkmodellen
Viterbiavkodning forts. p Kan ses som ett trädnätverk där start har grenar till alla ord och varje ord har grenar till alla ord som sedan ersätts av motsv. HMM-modelleroch vägens sannolikhet beräknas av de olika sannolikheterna (breadth-first) p Kan också ses som en sannolikhetsmatris där varje cell håller max av tidigare vägar och där y- axeln motsvarar tillstånden och x-axeln tid. p P(Akustik Ord)-sannolikheten är produkten av observationssannolikheterna och övergångssannolikheterna för en sträng i en HMM-modell. P(Ord ) fås från LM. Viterbi-Algorithm - Overview (cf. Jurafsky Ch.5) The Viterbi Algorithm finds an optimal sequence of states in continuous Speech Recognition, given an observation sequence of phones and a probabilistic (weighted) FA (state graph). The algorithm returns the path through the automaton which has maximum probability and accepts the observation sequence. a[s,s'] is the transition probability (in the phonetic word model) from current state s to next state s', and b[s',o t ] is the observation likelihood of s' given o t. b[s',o t ] is 1 if the observation symbol matches the state, and 0 otherwise. (A simplification of the observation likelihood!) Viterbi-Algorithm (Fig 5.19) function VITERBI (observations of len T, state-graph) returns best-path num-states NUM-OF-STATES (state-graph) Create a path probability matrix viterbi[num-states+2,t+2] viterbi[0,0] 1.0 word model for each time step tfrom 0 to T do for each state s from 0 to num-statesdo for each transition s' from s in state-graph new-score viterbi[s,t] * a[s,s'] * b[s',(o t )] if ((viterbi[s',t+1] = 0) (new-score > viterbi[s',t+1])) then viterbi[s',t+1] new-score back-pointer[s',t+1] s Backtrace from highest probability state in the final column of viterbi[] and return path observation (speech recognizer)
Viterbi-Algorithm Explanation (cf. Jurafsky Ch.5) The Viterbi Algorithm sets up a probability matrix, with one columnfor each time index t and one rowfor each state in the state graph. Each column has a cell for each state q i in the single combined automaton for the competing words (in the recognition process). The algorithm first creates N+2 state columns. The first columnis an initial pseudo-observation, the secondcorresponds to the first observation-phone, the third to the second observationand so on. The final columnrepresents again a pseudoobservation. In the first column, the probability of the Start-stateis initially set to1.0; the other probabilities are 0. Then we move to the next state. For every state in column 0, we compute the probability of moving into each state in column 1. The value viterbi [t, j] is computed by taking the maximum over the extensions of all the paths that lead to the cu rrent cell. An extension of a path at state i at time t-1 is computed by multiplying the three factors: the previous path probabilityfrom the previous cell forward[t-1,i] the transition probabilitya i,j from previous state i to current state j the observation likelihood b jt that current state j matches observation symbol t. b jt is 1 if the observation symbol matches the state; 0 otherwise. Beam Searching p Vi vill inte söka igenom alla möjliga vägar. Långsamt! p Vi behåller bara de vägar som verkar ha en god chans att matcha input. p Beräknar inte alla vägar utan behåller bara de bästa vägarna hittills och klipper av (pruning) de som har låg sannolikhet för att öka effektiviteten (beam searching). p Vi bestämmer ett tröskelvärde som de vägar vi ska behålla måste överstiga: beam width N-bästa N-bästa (N-best hypotheses) p Vid sökning efter b ästa ordsekvens nöjer man sig inte alltid med en hypotes utan hittar flera hypoteser med olika sannolikheter. p ASR-systemet (Viterbiavkodningen) levererar en lista med dessa hypoteser (N-bästa lista) där den översta meningen är den som ASR-systemet klassar som bäst (mest sannolik). p ASR-systemets val är inte alltid det bästa valet. Genom att få flera hypoteser kan man använda mer lingvistisk kunskap för att v älja ut den bästa meningen (t ex med Parsning, Kontext, Domängrammatik) p I SIRIDUS-projektet: 12% av ggr var den korrekta meningen med i N-best listan men inte top-choice.
N-best I Nuance p I Nuance kan n-best fås genom att skicka med parametrar till taligenkänningen rec.numnbest=nr (t ex 10) rec.donbest=true N-bästa Exempel: de 10 b ästa hypoteserna från Waxholmssystemet (KTH) när användaren sa den fetstilta meningen. NrAkustisk poäng Igenkänd Mening 1-716,914 hur åka till svartlöga 2-717,444 du åka till svartlöga 3-718,289 ju åka till svartlöga 4-719,614 hur åker man till svartlöga 5-719,730 hur åka av hamn till svartlöga 6-720,260 du åka av hamn till svartlöga 7-720,365 ut åka till svartlöga 8-720,554 hur båtarna till svartlöga 9-720,630 hur åker hamn till svartlöga 10-720,699 nu åka till svartlöga Konfidensmätning (confidence scores) p Många taligenkänningssystem levererar förutom en hypotes om vad som sagts även ett poäng I konfidens över den hypotesen dvs hur säkert systemet är på det resultat den uppnått på en skala 0-100. p I Nuance: rec.confidencerejectionthreshold= N N är default 50 ju lägre desto mer släpps igenom trots låg konfidens ASR- prestanda Beror på: p Igenkänningsuppgift (isolerade ord, kontinuerligt tal, keywordspotting) p Talarberoende/talaroberoende (SD/SI) Non-native speakers, children p Lexikon (vokabulär) storlek 20 000 ord svårare än 10 Obs! Bokstäver (E vs B, C, D, G, P, T, V, W) p Språkmodell p Inspelningsmiljö (mikrofoner, omgivning, bandbredd) p Typ av talare p Talarstil (Uppläst tal, spontant tal) Mäts med: p Word accuracy p Perplexity (tillämpningens svårighet) Bra och dåliga talare Beror på: p Talhastigheten p Röstkarakteristika p Användarvana p Talstil (hyperartikulerar, slarvar) Exempel distribution smsdiktering: Medel: 49.0% Bästa : 70-90% Sämsta : 14-30% 100 80 60 40 20 0 Ett ASR systems svårighet (1-10) Speaker Dependent Multi- Speaker Speaker Independen t Isolated Words Small Voc / Large Voc 1 2 3 4 5 4 5 Continuous Speech SmallVoc/ LargeVoc 6 8 7 7 10
Kontinuerligt tal vs isolerat Ordnoggrannhet (Word accuracy) p Talare uttalar tydligare i isolerat tal och slarvigare i kontinuerligt p Talhastigheten varierar mer i kontinuerligt p Problemet med Ordgränser uppkommer i kontinuerligt tal p Mer variation i betoning och intonation i kontinuerligt tal p Mer koartikulation mellan och inom ord p Mer tvekningar, repetitioner p Kräver mer av tekniken (CPU/RAM) ON= ordnoggrannhet N= antal yttrade ord under mätningen F= antal förväxlingar (substitutions) B= antal bortfall (deletions) I = antal instoppade ord (insertions) ON=100 * (N F B I) ------------------ N Exempel: SENTENCE RECOGNITION PERFORMANCE: sentences 668 correct 21.0% (140) with error(s) 79.0% (528) with substitution(s) 74.1% (495) with insertion(s) 10.2% ( 68) with deletion(s) 56.1% (375) WORD RECOGNITION PERFORMANCE: Correct = 50.7% ( 2387) Substitutions = 31.8% ( 1495) Deletions = 17.5% ( 823) Insertions = 1.7% ( 82) Errors = 51.0% ( 2400) Ref. words = 4705 Hyp. words = 3964 Aligned words = 4787 Splits = 0 Split candidates = 81 Merges = 0 Merge candidates = 591 WORD ACCURACY = 50.7% ( 2387) 49.0% Ordfel (Word error rate, WER) p I stället för ordnoggrannhet redovisar man ofta ordfel(of) i procent (WER) p OF= 100 ON p OF= 100*(F+B+I)/N p WER i dagens system Diktering 2-10% Speaker Independent Continuous ASR 65000 words voc 15% (with trigram) Ordfel med Dynamisk Programmering p Vi kan räkna ut hur många fel (insertions, deletions,substitution) som har begåtts med minimum edit distance p Vi tar den korrekta transkription och taligenkänningshypotes och beräknar distansen mellan dessa. p Distansen är lika med antal fel. På sätt kan vi sedan beräkna antalet ordfel. p Ex: ja uh vill åka till Farsta jag vill resa till Märsta Ordfel= 100*ANTALFEL/ANTALORD Exempel REF: YA ME DIRAS EL resultado de la revision HYP: ** LLAME TIRARTE ** resultado de la revision SENTENCE 2 Correct = 50.0% 4 ( 6) Errors = 50.0% 4 ( 5) MC YA ME ==> LLAME MC DIRAS EL ==> TIRARTE
Nackdelar med ordfelsutvärdering Tar ej hänsyn till fonetisk likhet mellan ord: i kvällikväll, jag-ja lika fel som bil-restaurang Tar inte heller hänsyn till om informationen är densamma: klockan tolv och tio klockan tolv tio Concept accuracy: beräknar istället hur bra ett taligenkänningssystem och ett talförståelsesystem är tillsammans. Jämför i stället om den semantiska tolkningen blir densamma Ordfelsutvärdering med Nuance Input är en ett taligenkänningspaket, en textfil med sökväg till ljudfiler samt en transkriptionsfil med transkriptioner av dessa ljudfiler. p batchrec package PAKET testset TESTFILER transcriptions TRANSKRIPTIONER p Vi kan skicka samma parametrar till batchrec som till taligenkänningen (N-best, confidence scores etc.) p Som output får vi word error rate (WER) för varje igenkänningsresultat för varje ljudfil mot dess transkription samt ett totalvärde för WER för alla ljudfilerna. p För att få ett representabelt värde bör ett större antal yttranden testas med flera olika personer (Nuance rekommenderar 500 yttranden av 20 pers) Lab 3: Nuancegrammatik p Skriva en NuanceGrammatik för någon av följande domäner (max två grupper per domän): Talande Video Talande MP3-spelare Talande filofax Steg i labben! 1. Fundera ut/samla in användaryttranden I domänen. Vad som skulle man vilja säga till Videon,MP3 och Filofax. Hur tror ni användare skulle formulera sig? Försök fånga varianter av formuleringar för samma koncept. 2. Fånga dessa I en NuanceGrammatik. 3. Kompilera grammatiken och testa. (med tal, med parsetool, genom att generera del av grammatiken) 4. Byt taligenkänningspaket med en annan grupp (annan domän) och utvärdera varandras paket. 1. Spela in 15 domänyttranden per gruppmedlem med transkription 2. Kör batchrec med paketet 5. Skriv en kort rapport om hur ni har gått tillväga. Vad ni tycker ni har lyckats fånga, vad som saknas I er grammatik. Redogör för utvärderingen av den andra gruppens taligenkänningspaket. Verkar deras grammatik täcka större delen av domänen?