Disclaimer 1 : Tento článek je pouze úvodem do funkcí MFCC a je určen těm, kteří potřebují snadno a rychle porozumět těmto funkcím. Podrobnou matematikou a složitostmi se zde nezabýváme.
Nikdy jsem sám nepracoval v oblasti zpracování řeči, a tak ve mně narážka na slovo „MFCC“ (poměrně často používané kolegy) zanechala neadekvátní pochopení, že se jedná o název pro určitý druh „funkce“ extrahované ze zvukových signálů (podobně jako hrany, které představují druh funkce extrahované z obrázků).
Potřeboval jsem docela dost čtení z více zdrojů, abych pochopil, co jsou to funkce MFCC pro začátečníky. Proto jsem se rozhodl pomoci kolegům v nouzi tím, že shromáždím nasbírané informace ve srozumitelné podobě.
Začněme rozvedením zkratky MFCC – Mel Frequency Cepstral Co-efficients.
Slyšeli jste už někdy slovo cepstral? Pravděpodobně ne. Je to spektrální s obrácenou specifikací! Proč však? Pro zcela základní pochopení, cepstrum je informace o rychlosti změn ve spektrálních pásmech. Při konvenční analýze časových signálů se jakákoli periodická složka (např. ozvěna) projeví jako ostré vrcholy v příslušném frekvenčním spektru (tj. ve Fourierově spektru. To se získá použitím Fourierovy transformace na časový signál). To je vidět na následujícím obrázku.
Pokud vezmeme logaritmus velikosti tohoto Fourierova spektra a poté opět vezmeme spektrum tohoto logaritmu kosinovou transformací (vím, že to zní složitě, ale vydržte prosím!), pozorujeme vrchol všude tam, kde je v původním časovém signálu periodický prvek. Protože na samotné frekvenční spektrum aplikujeme transformaci, výsledné spektrum není ani ve frekvenční, ani v časové doméně, a proto se Bogert a spol. rozhodli nazvat ho kvantilová doména. A toto spektrum logaritmu spektra časového signálu nazvali cepstrum (ta-da!).
Následující obrázek je shrnutím výše vysvětlených kroků.
Cepstrum bylo poprvé zavedeno k charakterizaci seismických ozvěn vznikajících v důsledku zemětřesení.
Výška je jednou z charakteristik řečového signálu a měří se jako frekvence signálu. Melová stupnice je stupnice, která vztahuje vnímanou frekvenci tónu ke skutečné naměřené frekvenci. Škáluje frekvenci tak, aby lépe odpovídala tomu, co slyší lidské ucho (lidé lépe rozpoznávají malé změny v řeči na nižších frekvencích). Tato stupnice byla odvozena ze souborů experimentů na lidských subjektech. Dovolte mi, abych vám intuitivně vysvětlil, co stupnice mel zachycuje.
Rozsah lidského sluchu je 20 Hz až 20 kHz. Představte si melodii o frekvenci 300 Hz. To by znělo něco jako standardní tón číselníku pevného telefonu. Nyní si představte melodii o frekvenci 400 Hz (o něco vyšší tón číselníku). Nyní porovnejte vzdálenost mezi těmito dvěma tóny, ať už je váš mozek vnímá jakkoli. Nyní si představte signál o frekvenci 900 Hz (podobný zvuku zpětné vazby mikrofonu) a zvuk o frekvenci 1 kHz. Vnímaná vzdálenost mezi těmito dvěma zvuky se může zdát větší než u prvních dvou, i když skutečný rozdíl je stejný (100 Hz). Stupnice mel se snaží tyto rozdíly zachytit. Frekvenci měřenou v hertzích (f) lze převést na Melovu stupnici podle následujícího vzorce :