B2M31ZRE cvičení
Rozpoznávání sekvence samohlásek na bázi HMM - část I
Definice a konstrukce HMM modelu
Výpočet emitované pravděpodobnosti ve stavu HMM
Úkoly k vypracování na cvičení:
Výpočet parametrů GMM modelu samohlásek a řečové pauzy
Určete parametry GMM modelů pro základních 5 samohlásek a
řečovou pauzu. Použijte postup analogický klasifikaci
samostatných izolovaných samohlásek na bázi GMM,
viz cvičení
"Klasifikace samohlásek na bázi GMM".
Pro trénování modelů samohlásek použijte dostupné promluvy pro
všechny samohlásky, tj. A1, A2,
A3, E1, ...., U1, U2, U3; pro trénování modelu řečové pauzy pak
neřečové části promluv B0 a B1 případně P1, P2 a P3, obojí minimálně pro všechny mluvčí
bloku BLOCK200 (později je možné
experimentovat s větším množstvím trénovacích dat).
K přímému použití v počítačové učebně 802 na ČVUT FEL jsou uvedená data k
disposici v adresáři "K:\ZRE\data\zreratdb".
Pro práci mimo učebny FEL je možné stáhnout následující archiv signálů
převzorkovaných na 16 kHz zrerat_block_200_2024_cs0.zip.
Jako příznaky použijte 12+1 MFCC kepstrálních koeficientů
(tj. včetně nultého koeficientu c[0]). Parametry výpočtu kepstra
volte pro dané signály vzorkované 16 kHz následovně:
- délka segmentu 25 ms, posuv okna 5 ms (při dostatečném množství trénovacích dat lze použít posuv okna 10 ms), Hammingovo váhovací okénko,
- počet pásem banky filtrů M=30, fmin=100 Hz, fmax=6500 Hz,
- pro výpočet použijte funkci vmfcc.m (s
dále volanými funkcemi melbf.m,
mel.m, melinv.m).
- při výběru trénovacích dat pro modely samohlásek použijte VAD
na bázi výkonu v dB s prahováním na úrovni okolo 50% dynamiky,
- při výběru trénovacích dat pro model ticha použijte VAD
na bázi výkonu v dB s prahováním na úrovni okolo 50% dynamiky (případně VAD
na bázi lineárního výkonu s prahováním na úrovni okolo 10% dynamiky).
- pro aplikaci VAD použijte již dříve používanou funkci pro prahování thr_fixed.m, výkon počítejte v krátkodobých segmentech s použitím stejné segmentace jako pro výpočet kepstra, viz
2. cvičení - Základní časové a spektrální charakteristiky, případně je možné použít řešení dostupné na stránkách předmětu v MOODLE FEL.
Při výpočtu parametrů GMM použijte počet směsí mixnum = 4 - 8
(podle množství trénovacích dat) a pracujte s GMM
modelem s diagonální kovarianční maticí.
V prvním kroku je vhodné pracovat pouze s vašimi nahrávkami samohlásek a sekvencí s řečovými pauzami. Při výpočtu parametrů GMM je ovšem nutné použít nižší počet směsí mixnum = 4 (možná i nižší). Vytvořené modely budou ovšem méně generalizující a emitované pravděpodobnosti v HMM mohou být vyšší pro vaše data resp. nižší pro nahrávky jiných řečníků.
Výsledek :
Zobrazte pro vytvořené trénovací množiny:
napočítaná MFCC kepstra samohlásek a řečové pauzy, minimálně pro vaše promluvyA1, A2,
A3, E1, ...., U1, U2, U3 a řečové pauzy z promluv B0 a B1, optimálně pro promluvy všech mluvčích bloku BLOCK200 dostupných v databázi zreratdb, viz výše zmíněný archiv zrerat_block_200_2024_cs0.zip.
rozložení kepstra samohlásek i řečové pauzy, tj. závislosti c[0]-c[1], c[2]-c[3], c[4]-c[5] a c[6]-c[7] pro MFCC kepstrum.
GMM modely pro samohlásky A, E, I, O, U a GMM model řečové pauzy.
Definice HMM modelu sekvence 5 izolovaných samohlásek
Vytvořete strukturovanou proměnnou reprezentující levo-pravý HMM
model bez přeskoků stavů pro promluvu
5 izolovaných samohlásek oddělených řečovou pauzou, tj. strukturovanou
proměnnou s následujícími položkami:
- hmm.states ... počet stavů HMM modelu (počítejte stavy včetně neemitujících),
- hmm.b ... pole GMM modelů délky
odpovídající počtu stavů (cell array). POZOR, pro první a poslední neemitující stav není funkce b() definovaná, tj. použijte prázdný prvek '[]',
- hmm.a ... matice pravděpodobností přechodů
s dimenzí odpovídající počtu stavů.
S parametry uchovanými v strukturované proměnné reprezentující HMM
model vypočítejte emitovanou pravděpodobnost pro promluvy se
sekvencí izolovaných samohlásek P1, P2
a P3. Všechny napočítané emitované logaritmické pravděpodobnosti uložte do
matice s počtem řádků odpovídajícím počtu příznakových vektorů
(krátkodobých segmentů) analyzované promluvy a počtem sloupců
odpovídajícím počtu stavů HMM modelu.
Výsledek: Zobrazte pro vytvořené
HMM modely:
časové závislosti emitované logaritmické pravděpodobnosti pro
1., 2., 4., 6., 8. a 10. stav modelu sekvence AEIOU (promluva P1).
analogicky časové závislosti emitované logaritmické pravděpodobnosti pro
1., 2., 4., 6., 8. a 10. stav modelu sekvence UOIEA (promluva P2)
resp. IUAOE (promluva P3).
Hlavní výsledek: Zobrazte pro vytvořené
HMM modely:
emitované logaritmické pravděpodobnosti zobrazte nakonec jako hustotní 2D grafy (analogicky spektrogramu) pomocí funkce 'pcolor' pro každý model a vždy pro všechny 3 rozpoznávané promluvy P1, P2, P3.
Pro srovnání sledujte výsledky také pro předtrénované GMM modely uložené v mat-souboru cv_09_vowel_sil_gmms.mat
DOMÁCÍ PŘíPRAVA NA PŘÍŠTÍ CVIČENÍ
Nalezení hranic samohlásek v promluvách P1, P2 a P3
Pro promluvy P1, P2 a P3 nalezněte
manuálně hranice hlásek a jednotlivých paus oddělujících jednotlivé hlásky.
Nalezené hranice (ve vzorcích resp. segmentech pro danou
segmentaci s délkou okna 25 ms a posuvem okna 10 ms) uložte pro
každou promluvu do samostatného vektoru.
Příprava na implementaci dekódovacích technik
Prostudujte principy výpočtu věrohodnosti průchodu HMM modelem na
bázi standardní dopředné i zpětné verze Viterbiho algoritmu.
Prostudujte možnost výpočtu okupační věrohodnosti j-tého stavu v
čase t (resp. pro t-tý pozorovaný vektor).