Pokročilé metody rozpoznávání řeči Přednáška 6 Zpřesňování akustického modelu, vyhodnocování úspěšnosti
Jak zpřesnit HMM? Pomocí přesnější výstupní pravděpodobnostní funkce a23
a12
Q1
Q2
b2
b1
aSS
aS-1S-1
a22
a11
....
aS-1S QS-1
bS-1
QS
bS
Až dosud uvažováno klasické gaussovské rozložení bs (x) =
1 (2π ) P det Σ s
. exp[− 12 (x − x s )T Σ −s 1 ( x − x s )]
Nyní ho nahradíme „vícemodálním“ gaussovským rozložením (vážená „směs“ dílčích gaussovských rozložení) M
bs (x) = ∑ csm m=1
1 (2π ) P det Σ sm
.exp[ − 21 (x − x sm ) T Σ −sm1 (x − x sm )]
Princip vícemodálního rozložení Data, z nichž se určují parametry gaussovského rozložení (µ a σ), jsou často uspořádána ve shlucích. Přesnější popis rozložení dat pak dostaneme, když každý datový shluk reprezentujeme vlastní gaussovkou a tyto gaussovky pak lineárně zkombinujeme. Příklad – data v dvourozměrném (dvoupříznakovém) prostoru
o o o oo o oo o o o o oo o o
oo o o oo o o o o o o o oo o o
o o oo o o o o o oo o o ooo o o o oo oo o oo o oo
HMM s multimodálním gauss. rozložením Směs gaussovek se v literatuře často označuje jako GMM – Gaussian Mixture Model a pro jednotlivé složky se používá hovorový termín mixtura. Při trénování je nově nutné určovat také csm M
bs (x) = ∑ csm m=1
1-mixture model
1 (2π ) P det Σ sm
.exp[ − 21 (x − x sm ) T Σ −sm1 (x − x sm )]
3-mixture model
Trénování HMM s GMM v HTK (1) Všechny trénovací rutiny v HTK umožňují trénovat vícemixturové HMM. Vhodný postup: 1. Natrénovat jednomixturové modely 2. Zvýšit počet požadovaných mixtur na dvojnásobek. 3. Několika iteracemi natrénovat nový model s daným počtem mixtur. 4. Pokračovat až do požadovaného počtu mixtur. Pozn. Vhodný počet mixtur závisí na množství trénovacích dat. Při malém množství dat nemusí být požadovaný počet mixtur u některého stavu natrénován a zároveň modely nemusí být lepší.
Trénování HMM s GMM v HTK (2) Konkrétní postup:
Využití programu HHEd (editor souborů, zejména label souborů) Příklad: editor vezme stávající modely v adresáři mono a v adresáři multi/mono2.0 připraví nové modely tím, že rozdělí každou stávající mixturu na 2 HHEd -H mono/hmmdefs -M multi/mono2.0 com2mix monophones.lst Soubor com2mix vypadá následovně MU 2 {*.state[2-4].mix} V dalším kroku HHEd -H multi/mono2.2/hmmdefs -M multi/mono4.0 com4mix monophones.lst com4mix MU 4 {*.state[2-4].mix}
Trénování HMM s GMM v HTK (3) Příklad jednoduché dávky na trénování až do 4 mixtur HHEd -H mono/hmmdefs -M multi/mono2.0 com2mix monophones.lst HERest -C config -I lab.mlf -S data.lst -H multi/mono2.0/hmmdefs -M multi/mono2.1 monophones.lst HERest -C config -I lab.mlf -S data.lst -H multi/mono2.1/hmmdefs -M multi/mono2.2 monophones.lst HHEd -H multi/mono2.2/hmmdefs -M multi/mono4.0 com4mix monophones.lst HERest -C config -I lab.mlf -S data.lst -H multi/mono4.0/hmmdefs -M multi/mono4.1 monophones.lst HERest -C config -I lab.mlf -S data.lst -H multi/mono4.1/hmmdefs -M multi/mono4.2 monophones.lst U závěrečného modelu se vyplatí provést opět více iterací.
Vyhodnocování rozpoznávání řeči (1) V případě rozpoznávání izolovaných slov je vyhodnocování jednoduché:
H Correctness = .100% N H …. počet správně rozp. slov, N …. počet všech testovaných slov V případě rozpoznávání sekvencí slov je vyhodnocování složitější: Příklad: řečeno:
Zavolám k vám zítra odpoledne
(5 slov)
rozpoznáno
Zavolám
(5 slov)
H
nám zítra do poledne D
S
H
I
S
H …. (hit) správně rozpoznáno, S …. (substituce) nesprávně rozpoznáno D … (delece) vynecháno,
I ….. (inzerce) vloženo
Vyhodnocování rozpoznávání řeči (2) Při rozpoznávání sekvencí slov se používají dvě míry:
H .100% N H −I Accuracy = .100% N Correctness =
Druhá míra je objektivnější, přísnější a za určitých podmínek může být < 0.
Jak zjistit hodnoty H, S, D, I? Metoda minimální editační chyby (MEE) – obdoba DTW – hledá se cesta s nejmenší počtem oprav - Levenshteinova vzdálenost - před aplikací metody MEE je třeba stanovit „cenu“ chyb typu S, D, I (v HTK 10 – 7 – 7)
Vyhodnocování v HTK (1) Program HResult: Vezme výsledky rozpoznávače (nahrávku po nahrávce) a porovná je s referenčními (požadovanými) přepisy. Příklad výpisu:
Uvádí počet správně rozpoznaných vět (věta = sekvence slov v jednom souboru) a počet správně rozpoznaných slov (Correctness a Accuracy)
Vyhodnocování v HTK (2) Použití programu HResult: 1) Nahrají se testovací nahrávky a ke každé se připraví soubor s referenčním přepisem (implicitně *.lab) 2) Vytvoří se jeden velký referenční soubor přes všechny nahrávky ve formátu MLF (refer.mlf) 3) Provede se rozpoznávání všech testovacích nahrávek pomocí HVite (pomocí –S se specifikuje seznam souborů) 4) Výstupní soubor z rozpoznávání (result.mlf) se porovná s referenčním souborem HResults -C config -I refer.mlf monophones result.mlf
#!MLF!# „test1.lab" nula šest pět . „test2.lab" pět tři devět .
Výsledky rozpoznávání (slovník 413k) TEXT: ŘDS připravilo nový plán na dostavbu dálnic ASR: Řada sil připravilo nový plán na dostavbu dálnic. 85.71( 71.43) [H= 6, D= 0, S= 1, I= 1, N= 7, (OOV= 1)] TEXT: Desítky policistů, dobrovolníků, myslivců i hasičů hledá od soboty 74letou Janu Šolcovou. ASR: Desítky policistů dobrovolníků myslivců hasičů hledá od soboty sedmdesáti čtyř let Touš Janu Šulcovou. 75.00( 50.00) [H= 9, D= 1, S= 2, I= 3, N= 12, (OOV= 2) TEXT: o titul mladého génia se utká přes dvacet tisíc zájemců. ASR: O titul mladého genia se utká přes dvacet tisíc zájemců. 90.00( 90.00) [H= 9, D= 0, S= 1, I= 0, N= 10, (OOV= 1)] TEXT: Skutečně bych rád vyplnil mezeru ve svém vzdělání ASR: Skutečně rád bych vyplnil mezeru ve svém vzdělání. 75.00( 62.50) [H= 6, D= 1, S= 1, I= 1, N= 8, (OOV= 1)]
Do příštího týdne Připravit si: Každý si připraví 40 testovacích nahrávek V každé nahrávce bude libovolná sekvence číslovek 0 až 9. U každé nahrávky bude *.lab soubor Dále bude existovat refer.mlf Doma si každý provede testy s různými modely (a různým počtem mixtur, od různých mluvčích)