Avkodning ASR prestanda

Relevanta dokument
NUANCE TUTORIAL TALTEKNOLOGI KURSEN VT2006. Labkonstruktör: Rebecca Jonson Labhandledare: Håkan Burden

NUANCE TUTORIAL TALTEKNOLOGI KURSEN VT2006. Labkonstruktör: Rebecca Jonson Labhandledare: Håkan Burden

Artificiell intelligens II, 729g11 Projekt HT-11. Taligenkänning. Nina Knez

Dagens lektion. Dagens Litteratur. WER: Human vs machines. Taligenkänning mskiner/mskor. Mänsklig igenkänning Talteknologi och DialogSystem

Doctoral Course in Speech Recognition

Litteratur ASR. Taligenkänning Introduktion till taligenkänning. Upplägg taligenkänningsdelen. Dagens litteratur. Varför taligenkänning?

Kurskod: TAMS28 MATEMATISK STATISTIK Provkod: TEN1 05 June 2017, 14:00-18:00. English Version

Kurskod: TAMS11 Provkod: TENB 28 August 2014, 08:00-12:00. English Version

Graphs (chapter 14) 1

Taligenkänning. Sanna Aronsson sanar429 Artificiell Intelligens, HKGBB0

AI-rapport Speech recognition

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 17 August 2015, 8:00-12:00. English Version

12.6 Heat equation, Wave equation

Automatisk taligenkänning som hjälpmedel för att bedöma muntliga språkfärdigheter

Chapter 2: Random Variables

Tentamen del 2 SF1511, , kl , Numeriska metoder och grundläggande programmering

Niklas Lindvall Artificiell intelligens II Ht

Taligenkänning med fördjupning på Hidden Markov Models

1. Compute the following matrix: (2 p) 2. Compute the determinant of the following matrix: (2 p)

Hidden Markov Model. Definition: V, X,{T k },π. hidden Markov model. X is an output alphabet. V is a finite set of states

Quicksort. Koffman & Wolfgang kapitel 8, avsnitt 9

DP - Dynamisk programmering. Exempel på DP - textjämförelse. För- och nackdelar med ordmönsterigenkänning. Dolda Markovmodeller

LUNDS TEKNISKA HÖGSKOLA Institutionen för Elektro- och Informationsteknik

Solutions to exam in SF1811 Optimization, June 3, 2014

Grafisk produktion och tryckkvalitet TNM015

TDDD02 Språkteknologi för informationssökning (2016) Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

Schenker Privpak AB Telefon VAT Nr. SE Schenker ABs ansvarsbestämmelser, identiska med Box 905 Faxnr Säte: Borås

Tentamen i Matematik 2: M0030M.

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 31 May 2016, 8:00-12:00. English Version

Kurskod: TAMS11 Provkod: TENB 07 April 2015, 14:00-18:00. English Version

Kungl. Tekniska högskolan NADA Grundformer med Stava

This exam consists of four problems. The maximum sum of points is 20. The marks 3, 4 and 5 require a minimum

Kurskod: TAIU06 MATEMATISK STATISTIK Provkod: TENA 15 August 2016, 8:00-12:00. English Version

2. Lära sig beskriva en variabel numeriskt med "proc univariate" 4. Lära sig rita diagram med avseende på en annan variabel

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Support Manual HoistLocatel Electronic Locks

7.5 Experiment with a single factor having more than two levels

Betrakta kopparutbytet från malm från en viss gruva. För att kontrollera detta tar man ut n =16 prover och mäter kopparhalten i dessa.

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

S 1 11, S 2 9 and S 1 + 2S 2 32 E S 1 11, S 2 9 and 33 S 1 + 2S 2 41 D S 1 11, S 2 9 and 42 S 1 + 2S 2 51 C 52 S 1 + 2S 2 60 B 61 S 1 + 2S 2 A

Styrteknik: Binära tal, talsystem och koder D3:1

Webbregistrering pa kurs och termin

Syntaktisk parsning (Jurafsky & Martin kapitel 13)

Datasäkerhet och integritet

1. Varje bevissteg ska motiveras formellt (informella bevis ger 0 poang)

Föreläsning 7 Datastrukturer (DAT037)

Grundläggande datalogi - Övning 3

and u = och x + y z 2w = 3 (a) Finn alla lösningar till ekvationssystemet

Module 1: Functions, Limits, Continuity

Föreläsning 10. Grafer, Dijkstra och Prim

Discovering!!!!! Swedish ÅÄÖ. EPISODE 6 Norrlänningar and numbers Misi.se

4 grundregler. Minneshantering. Problemet. Windows minkrav

Nätverksteknik A - Introduktion till Routing

f(x) =, x 1 by utilizing the guidance given by asymptotes and stationary points. cos(x) sin 3 (x) e sin2 (x) dx,

Tentamen MMG610 Diskret Matematik, GU

Datastrukturer. föreläsning 8. Lecture 6 1

GU / Chalmers Campus Lindholmen Tentamen Programutveckling LEU 482 / TIG167

PROGRAMFÖRKLARING I. Statistik för modellval och prediktion. Ett exempel: vågriktning och våghöjd

Mid-Semester Evals. CS 188: Artificial Intelligence Spring Outline. Contest. Conditional Independence. Recap: Reasoning Over Time

Tentamen PC-teknik 5 p

TDDD02 Språkteknologi för informationssökning / Ordpredicering. Marco Kuhlmann Institutionen för datavetenskap

Pragmatik. Olika nivåer. Tumregler. Grice s samarbetsprinciper. Pragmatik och diskurs

Överblick. Dialogsystem. En dialogsystemsarkitektur. Dialogsystemsarkitektur. Talförståelse. Dialoghantering

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

7.1 Hypotesprövning. Nollhypotes: H 0 : µ = 3.9, Alternativ hypotes: H 1 : µ < 3.9.

Tentamen i Matematik 3: M0031M.

Litteratur ASR. Taligenkänning Introduktion till tal- och talarigenkänning. Vad är taligenkänning? Varför taligenkänning? Användningsområden

Algoritmer och datastrukturer TDA Fredrik Johansson

Monteringsanvisning Nödutrymningsbeslag ASSA 179E

Isometries of the plane

Webbreg öppen: 26/ /

HörStöd. Taligenkänningsteknik som hjälpmedel för hörselskadade vid telefonsamtal. Mikael Salin. Handledare: Mats Blomberg och Kjell Elenius

Second handbook of research on mathematics teaching and learning (NCTM)

Pre-Test 1: M0030M - Linear Algebra.

2(x + 1) x f(x) = 3. Find the area of the surface generated by rotating the curve. y = x 3, 0 x 1,

Preschool Kindergarten

Datorövning 5. Statistisk teori med tillämpningar. Lära sig beräkna konfidensintervall och utföra hypotestest för:

Kurskod: TAMS11 Provkod: TENB 12 January 2015, 08:00-12:00. English Version

Product configurations Produire configuration Produkt konfigurationen Producto configuraciones Produkt konfigurationerna

8.1 General factorial experiments

Investeringsbedömning

Ready for Academic Vocabulary?

Mapping sequence reads & Calling variants

729G74 IT och programmering, grundkurs. Tema 1, Föreläsning 2 Jody Foo,

Talteknologi introduktion. Hur realistisk var HAL? Dagens situation? Kursupplägg Talteknologikursen. Kurskrav

Föreläsning 3. Programmering, C och programmeringsmiljö

Reguljära uttryck Grammatiker Rekursiv nedåkning Allmänna kontextfria grammatiker. Syntaxanalys. Douglas Wikström KTH Stockholm

Föreläsning Datastrukturer (DAT037)

Svårigheter - stor variabilitet. Översikt - taligenkänning Automatisk igenkänning av tal Del 1. Varför taligenkänning?

Swema 05. Bruksanvisning vers 1.01 MB

Föreläsning 2. Kap 3,7-3,8 4,1-4,6 5,2 5,3

- den bredaste guiden om Mallorca på svenska! -

Bruksanvisning Konvektorelement 99106

Examples on Analog Transmission

Tentamen Grundläggande programmering

Du skall naturligtvis visa körexempel med output där det behövs i din rapport!

GPS GPS. Classical navigation. A. Einstein. Global Positioning System Started in 1978 Operational in ETI Föreläsning 1

F ξ (x) = f(y, x)dydx = 1. We say that a random variable ξ has a distribution F (x), if. F (x) =

Transkript:

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?