Dialogové systémy Rozpoznávání řeči Luděk Bártek Laboratoř vyhledávání a dialogu, Fakulta Informatiky Masarykovy Univerzity, Brno jaro 2017 >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) < /* ■ 0• -E O Q, O DTW Omezující podmínky - pokračování Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Globální vymezení oblasti pohybu funkce DTW: ■ omezení minimální a maximální přípustné směrnice přímky vymezující přípustnou oblast pohybu funkce DTW, při splnění podmínky na hraniční body: l + a[i{k)-í\ < 1 + P[i{k) - 1] m a - minimální směrnice přímky omezující přípustnou oblast ■ /3 - maximální směrnice přímky omezující přípustnou oblast. DTW - Praktická realizace klasifikátoru slov Blokové schéma Dialogové systémy Luděk Bártek Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči £ Vytvořeni referenčních obrazů slov a jejich uloženi ve slovníku Uživatel Zpracování signálu ± Výběr příznaků Vytvoření obrazu testovaného slova Porovnání obrazů Algoritmem DTW Rozpoznání neznámého slova Obrázek: Blokové schéma klasifikátoru slov DTW - Praktická realizace klasifikátoru slov Trénování Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Obecný postup: O Řečník resp. skupina řečníků vysloví postupně každé trénované slovo požadovaného slovníku, buď jednou nebo opakovaně. B Vstupní slova jsou zdigitalizována a následně převedena zvolenou metodou krátkodobé analýzy na posloupnost vektorů příznaků. B Detekce hranic (počátku a konce) slov: ■ Může být náročné na provedení, např. kvůli rušivému pozadí. ■ Nekorektní detekce hranic slov zhoršuje úspěšnost rozpoznávání. ■ Metody odstraňující i jen částečně vliv akustického pozadí zvyšují výpočetní náročnost. Vytvoření referenčních obrazů slov. DTW - praktická realizace Metody vytváření referenčních obrazů 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 Přímé použití obrazů trénovací množiny jako referenčních obrazů slov - DTW nevyžaduje, aby obrazy téhož slova byly stejně dlouhé, ale z důvodu možnosti aplikace pomocných kritérií, je vhodné provést časovou normalizaci každého obrazu. Vytváření průměrného vzorového obrazu pro každou třídu slov w\ ■ používají se metody lineárního a dynamického průměrování. Vytváření vzorových obrazů shlukováním. ■ Vzorové obrazy pro dané slovo se rozdělí do shluků tak, že obrazy uvnitř shluku jsou si ,,podobné" a obrazy z různých shluků jsou ,,nepodobné". ■ Shlukování lze realizovat interaktivně (poloautomaticky -metoda řetězové mapy, algoritmus ISODATA), automaticky (algoritmy založené na MacQueenově algoritmu). Více viz závěrečná práce Mgr. Jiřího_Kučery. DTW Redukce výpočetních a paměťových nároků 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ýhody DTW - vysoké paměťové a výpočetní nároky mohou znesnadňovat klasifikaci v reálném čase i při relativně malém slovníku. Metody řešení: ■ Hrubá síla - využití paralelních procesorů popř. zákaznických obvodů - může být drahé. ■ Vhodné zakódování parametrů jednotlivých mikrosegmentů referenčních i testovacích obrazů. Využívá se: ■ vektorová kvantizace - počet různých vzorků je konečný -uloží se do kódové knihy a místo hodnoty vzorku se pracuje s jejich indexy v kódové knize. ■ kódová kniha - abeceda všech hodnot, které se vyskytly v signálu (lze kódovat úsporněji než při použití standardního PCM). DTW Redukce výpočetních a paměťových nároků Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Využití oblastí spektrální stacionarity - metoda segmentace spektrální stopy. ■ Spektrální stopa - spojnice koncových bodů vektorů příznaků. ■ Lze ji aproximovat - např. lineárními úseky. Optimalizace vyhledávání nejbližšího souseda: ■ metody prohledávání metrických prostorů ■ nutno ověřit, že vzdálenost použitá v DTW je metrika DTW Redukce výpočetních a paměťových nároků Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Redukce výpočetních nároků pomocí heuristik při porovnávání. ■ Vícestupňový rozhodovací postup: Q porovnání promluvy proti celému slovníku pomocí omezené množiny příznaků B dohledání výsledku kroku 1. pomocí klasického DTW. ■ Práh zamítnutí: po každém kroku spočítáme vzdálenost slova a obrazu pokud překročí experimentálně stanovený práh, obraz je zamítnut. Skryté Markovovské Modely - H M M 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í řeči pomocí HMM vychází z následující představy o tvorbě řeči: ■ Hlasové ústrojí se v krátkém čase nachází v jedné z konečně mnoha artikulačních konfigurací - generuje hlasový signál. ■ Přejde do následující konfigurace. Tuto činnost lze modelovat statisticky. Kvantizací akustických vektorů lze dosáhnout konečnosti všech parametrů odpovídajícího modelu. HMM Principy použití pro rozpoznávání Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Jsou generovány dvě vzájemně svázané časové posloupnosti náhodných proměnných: ■ podpůrný Markovův řetězec - posloupnost konečného počtu stavů ■ řetězec konečného počtu spektrálních vzorů. Náhodná funkce ohodnocující pravděpodobnostmi vztah vzorů k jednotlivým stavům. Pro rozpoznávání řeči jsou nejčastěji využívané levo-pravé Markovovy modely: ■ vhodné pro modelování procesů spjatých se vzrůstajícím časem. HMM Markovův proces Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Markovův proces G se skrytým Markovovým modelem je pětice G = (Q, V, A/, M,tt) ■ Q = <7i, • • •, <7/c - množina stavů ■ V = vi,..., Vk - množina výstupních symbolů ■ N = (a7/j) - matice přechodu. Určuje pravděpodobnost přechodu ze stavu q i v čase t\ do stavu q/ v čase Í2- m M = (rrijj) - matice přechodu, určující pravděpodobnost generování akustického vektoru vj, v kterémkoliv čase ve stavu g,-. ■ 7T = (ttj) - vektor pravděpodobností počátečního stavu (pravděpodobnost toho, že stav / je počáteční). Trojice A = (A/, M, 7r) - vytváří model řečového segmentu. ■ např. Vintsjukův model pro slovo - počet stavů 40 — 50 (odvozeno od průměrného počtu mikrosegmentů ve slově; délka mikrosegmentů 10 ms). HMM Určení pravděpodobnosti promluvy Dialogové systémy Luděk Bártek Rozpoznávání řeči Rozpoznávání izolovaných slov Rozpoznávání plynulé řeči Značíme P(0\X) Promluva O standardně zpracována do posloupnosti O = (oi,..., oT) ■ T - počet mikrosegmentů promluvy ■ o\ - odpovídají výstupním symbolům. Určení P(0|A) - metoda využívající rekurzivní výpočet odpředu nebo odzadu generované posloupnosti (forward-backward algorithm). 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 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 >0 0,0 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ávání ř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(|/|/*|0) = maxP(W\0) = max P(l/I/)* P(0\W) P(Ô) 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>