Dialogové systémy Rozpoznávání řeči Luděk Bártek Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity, Brno jaro 2019 >0 0,0 Rozpoznávaní řeči Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Rozpoznávání plynulé řeči - převádí souvislou promluvu na psaný text. Rozpoznávání izolovaných slov/příkazů. Princip rozpoznávání: získání vektoru příznaků pomocí metod krátkodobé analýzy signálu, klasifikace na základě vektoru příznaku získaného v předchozím kroku. Rozpoznávaní izolovaných slov Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Slouží k rozpoznaní povelů nebo slov (příkazů) zřetelně oddělených na začátku a konci mezerou. Odpadá problém stanovení začátku a konce slova v souvislé promluvě. Obvykle systémy závislé na uživateli: ■ nutnost natrénování ■ omezená kapacita slovníku. Obtíže při rozpoznávání izolovaných slov: ■ Určení začátku a konce promluvy: ■ odlišení šumu od sykavek, ■ detekce nahodilého zvukového vzruchu (klepnutí, .. .) kontra okluzívy, které obsahují pauzy, ■ možná přítomnost infrazvuku. Rozpoznávaní izolovaných slov Typy klasifikátorů Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Klasifikátory využívající porovnání slov metodou DTW. ■ Snaží se nalézt co největší shodu mezi rozpoznávaným slovem a slovy v databázi. Klasifikátory založené na statistických metodách -modelování pomocí skrytých M a r kovových modelů: ■ simulace procesu tvorby řeči. Klasifikátory pracující na dvou úrovních: segmentace a fonetické dekódování jednotlivých segmentů rozpoznání slova na základě dekódovaných segmentů. Využití umělých neuronových sítí - více viz: ■ Hinton, O., Teh - A Fast Learning Algorithm for Deep Belief Nets, in Neural Computation, 2006 ■ Bengio, L, Popovici, L. - Greedy Layer-Wise Training of Deep Networks, in NIPS' 20016 ■ Speech recognition - Lecture 14: Neural Networks Dynamic Time Warping (DTW) Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Metoda borcení časové osy. Používá se pro porovnání dvou číselných řad - dvou úseků promluv (dvou slov). Vstup: ■ posloupnost akustických vektorů získaných pomocí metod krátkodobé analýzy signálu ■ databáze akustických vektorů rozpoznávaných slov. Výstup - rozpoznané slovo resp. povel. DTW Základní postup Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči ■ Vytvoříme databázi rozpoznávaných slov (referenční posloupnosti akustických vektorů). ■ Obvykle několik posloupností pro každé slovo, které odpovídají několika způsobům vyslovení příkazu. ■ Rozpoznávané slovo převedeme na odpovídající posloupnost akustických vektorů. ■ Metodou DTW nalezneme referenční posloupnost akustických vektorů s maximální shodou. DTW Formalizace Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Algoritmus DTW hledá parametrizaci f,g: f,g:i = f(k)J = g(k),ke minimalizující výraz K D(A6) = ^d(af(/),%)) i=l d - vzdálenost akustických vektorů (např. Euklidovská metrika) af(i)' bg(i) - referenční a rozpoznávaný příkaz. DTW Omezující podmínky Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči f,g - neklesající funkce Omezení na lokální souvislost a strmost: ■ 0 < f(k) - f(k-l) < /* ■ 00 Q,o HMM Určení pravděpodobnosti promluvy - výpočet Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči ■ Výpočet odpředu: ■ ol\ - pravděpodobnost přechodu do stavu q-, při generování posloupnosti {oi,..., ot}(aj = P(oi... oř, q-,{t) A) ■ Rekurzivní výpočet: Q inicializace: ai(i) = 717/77/(01), / G< 1, N > B Rekurzivní krok pro t=l,. . . T-l: N a/+iO") = E«t('>»>i(o/+i) i=l pro j G< 1, N >, m(ot) je ekvivalentní zápisu /T7,(/), pokud ot = v/. B Výsledná pravděpodobnost: N P(0|A) = ]>>r(/) / = 1 HMM Alternativní způsob výpočtu P(0\X) Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Nevýhoda předchozího postupu: ■ ve výsledném vztahu jsou zahrnuty pravděpodobnosti všech možných posloupností stavů délky T. ■v Řešení: ■ výpočet maximálně pravděpodobné posloupnosti stavů Q. Výpočet realizován pomocí Viterbiova algoritmu: ■ problém řešen rekurzivně s použitím technik dynamického programování. HMM Trénování parametrů modelu A = (A/, M,7r) Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Nutno stanovit postup při trénování parametrů modelu. Cíl trénování: ■ maximalizace pravděpodobnosti P(0\X) Problém: ■ neexistuje analytická metoda ke zjištění globálního maxima funkce n proměnných. ■v Řešení: ■ lze použít iterativní algoritmy zajišťující aspoň lokální maximalitu. Nejpoužívanější postup - Baum-Welchův algoritmus. Další problém při trénování modelu: ■ vliv konečné trénovací množiny: ■ čím menší trénovací množina a čím větší matice M, tím větší pravděpodobnost, že některé prvky zůstanou nastaveny na 0 (problém chybějících/neadekvátních dat). HMM Rozhodovací pravidlo při rozpoznávání izolovaného slova Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Používá se princip maximální věrohodnosti. Pro slovo O a všechna A: □ Spočítáme P(0|A). Jako výsledek vybereme třídu s maximální hodnotou P(0\X). HMM Implementace Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Modelování povelů: ■ nejčastěji se používají modely se 4 7 stavy ■ Pro modelovaní lze využít nástroje pro tvorbu HMM ■ HTK - Hidden Markov Model Toolkit. Modelování fonémů: ■ obvykle 4 — 7 stavů ■ model slova - zřetězení modelů fonémů ■ problémy s výpočtem v reálném čase ■ lze řešit pomocí speciálních algoritmů pro hledání maxima P(0\X). Príklady struktur pro fonémy Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči 4 ť5P ► < ► 4 > >0 Q,o Príklady struktur pro fonémy Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Rozpoznávání plynulé řeči Dialogové systémy Luděk Bártek Rozpoznávání řeči ■ Hlavní rozdíly oproti rozpoznávání slov: ■ nelze vytvořit databázi vzorů Rozpoznávání izolovaných slov ■ nutno brát zřetel na prozodické faktory Rozpoznávání plynulé řeči ■ nutno určovat hranice mezi slovy ■ vypořádání se s výplňkovými zvuky a chybami řeči. ■ Řešení - statistický přístup: ■ jazykový model ■ model uživatele. ■ Příklad: HMM vrátí stejnou pravděpodobnost např. pro slova Mmáma" a „nána" - nejspíše se použije máma - je castejsi. Rozpoznávaní plynulé řeči Jazykové modely Dialogové systémy Luděk Bártek Rozpoznávaní řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Máme: ■ posloupnost slov (promluva) 1/1/ = (1/1/1,..., wn) m posloupnost akustických vektorů O = (oi,..., ot). Chceme nalézt l/l/* (množinu všech promluv), která maximalizuje P(W\0). Dle Bayesova pravidla platí: P(1/|/*|0) = maxP(W\0) = max P(l/I/)* P(0\W) Rozpoznávaní plynulé řeči Jazykové modely - pokračovaní Dialogové systémy Luděk Bártek Rozpoznávaní řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Pro nalezení maxima potřebujeme znát: ■ model řečníka - P(0\W) ■ jazykový model - P{W). Model řečníka lze nahradit pravděpodobností generování W odpovídajícím Markovovým modelem. Trigramový model: ■ Experimentálně ověřeno, že platí: P{^n\w1 . . . ^_i) = P{wn\wn_2Wn-l) Rozpoznávaní plynulé řeči Rozpoznávání tématu Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Úspěšnost rozpoznávání řeči se pohybuje cca 50 % — 99 % v závislosti na úkolu, jazyku, ... Úspěšnost rozpoznávání lze zvýšit omezením domény rozpoznávání: ■ rozpoznání tématu ■ použitím gramatik pro rozpoznávání řeči. Známé téma: ■ změna stavového prostoru a pravděpodobnosti trigramů ■ např. burzovní zprávy - rozpoznáno „honey" nebo money "? ■ možnost vytvoření přesnějšího jazykového modelu. Gramatiky pro podporu rozpoznávaní řeči Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Úspěšnost obecného rozpoznávání plynulé řeči může klesnout až na cca 50 %. Zvýšení lze dosáhnout omezením domény - např. specifikováním přípustných vstupů. Lze použít gramatiky pro podporu rozpoznávání řeči ■ bezkontextové gramatiky Způsoby zápisů gramatik: ■ prostředky logického programování ■ proprietami řešení ■ otevřené standardy - JSGF, W3C SRGS, .. . Gramatiky pro podporu rozpoznávání řeči Java Speech Grammar Specification (JSGF) Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Textový zápis gramatiky nezávislý na platformě a prodejci Určen pro použití při rozpoznávání řeči. Součást Java Speech API. Používá styl a konvence jazyka Java. Aktuální verze 1.0 (říjen 1998). Použit např. v rozpoznávací Sphinx-4, VoiceXML interpretru VoiceGlue, . .. Podrobněji v 2. polovině semestru při probírání tvorby dialogových rozhraní. Gramatiky pro podporu rozpoznávaní řeči Ukázka JSGF Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči #JSGF = Chci jet . Chci jet z do . Chci jet z do v .; = vlakem | autobusem; = ; = ; = ; Gramatiky pro podporu rozpoznávání řeči W3C Speech Recognition Grammar Specification (SRGS) Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Standard W3C. Aktuální verze 1.0 (březen 2004). Definuje způsob zápisu pravidel a jejich odkazování. Dva způsoby zápisu: ■ XML ■ ABNF (Augmented BNF). Podrobněji v 2. polovině semestru při probírání tvorby dialogových rozhraní. Ukázka W3C SRGS Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči #ABNF 1.0 UTF-8 root Spozdrav; language cs-CZ; mode voice; Spozdrav = ahoj ahoj < /rule> < /grammar>