VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY
FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV TELEKOMUNIKACÍ FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF TELECOMUNICATION
KLASIFIKACE AKUSTICKÝCH SIGNÁLŮ CLASSIFICATION OF ACOUSTIC SIGNALS
BAKALÁŘSKÁ PRÁCE BACHELOR’S THESIS
AUTOR PRÁCE
ALEŠ POSPÍŠIL
AUTHOR
VEDOUCÍ PRÁCE SUPERVISOR
BRNO 2009
ING. HICHAM ATASSI
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta elektrotechniky a komunikačních technologií Ústav telekomunikací
Bakalářská práce bakalářský studijní obor Teleinformatika Student: Ročník:
Aleš Pospíšil 3
ID: 72921 Akademický rok: 2008/2009
NÁZEV TÉMATU:
Klasifikace akustických signálů POKYNY PRO VYPRACOVÁNÍ: Prozkoumejte problematiku číslicového zpracování akustických signálů. Zaměřte se na Metody extrahování příznaků a metody klasifikace (například neuronové sítě ). Navrhněte metodu, která bude schopna seřadit vstupní signál do jedné z předem definovaných tříd. DOPORUČENÁ LITERATURA: [1] Smékal Z., Číslicové zpracování signálů. Skripta předmětu MCSI, Brno VUT 2003. [2] Zaplatílek K., Doňar B., Matlab-začínáme se signály, nakladatelství BEN 2007. [3) R. Duda, P. Hart, D. Stork, Pattern Classification, druhé vidání, Wiley, 2003. Termín zadání:
9.2.2009
Termín odevzdání:
Vedoucí práce:
Ing. Hicham Atassi
2.6.2009
prof. Ing. Kamil Vrba, CSc. Předseda oborové rady
UPOZORNĚNÍ: Autor bakalářské práce nesmí při vytváření bakalářské práce porušit autorská práve třetích osob, zejména nesmí zasahovat nedovoleným způsobem do cizích autorských práv osobnostních a musí si být plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení § 152 trestního zákona č. 140/1961 Sb.
ABSTRAKT Bakalářská práce se zaměřuje na problematiku automatické klasifikace hudebních žánrů. Nejprve je hodnocen současný stav řešení problému s odkazem na již vytvořené studie a získané poznatky jsou využity k vlastní práci. Předmětem řešení problému je shrnutí použitelných hudebních příznaků a také klasifikačních metod jako neuronové sítě a knejbližší soused. Vybrané klasifikační třídy jsou vážná hudba, elektro, jazz a rock. Výsledkem bakalářské práce je systém pro automatické rozpoznání hudebních žánrů, který bude použitelný a uživatelsky přístupný. Dosažené rozpoznavací výsledky do jisté míry respektují schopnosti lidského organismu právě hudební žánry rozpoznat.
KLÍČOVÁ SLOVA Klasifikace, hudební žánr, neuronová síť, k-NN, SVM, HMM, GMM, extrakce, hudební příznak, akustický signál
ABSTRACT Bachelor’s thesis is focused on automatic music genre classification. First part of work evaluates present situation and refer to published studies. Gained knowledge from there is applied in this work. In terms of finding solution for problem the work summarize and describe suitable music features and classification techniques like neural networks and k-nearest neighbor. Four selected classification classes were classical, electro, jazz and rock music. Result of work is user-friendly system that provides automatic music genre recognition. Achieved classification performance is more less comparable to human music genres recognition.
KEYWORDS Classification, music genre, neural network, k-NN, SVM, HMM, GMM, extraction, music feature, acoustic signal
POSPÍŠIL A. Klasifikace akustických signálů. Brno: Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií. Ústav telekomunikací, 2009. 47 s., 2 s. příloh. Vedoucí práce byl Ing. Hicham Atassi.
PROHLÁŠENÍ Prohlašuji, že svou bakalářskou práci na téma „KLASIFIKACE AKUSTICKÝCH SIGNÁLŮÿ jsem vypracoval samostatně pod vedením vedoucího bakalářské práce a s použitím odborné literatury a dalších informačních zdrojů, které jsou všechny citovány v práci a uvedeny v seznamu literatury na konci práce. Jako autor uvedené bakalářské práce dále prohlašuji, že v souvislosti s vytvořením této bakalářské práce jsem neporušil autorská práva třetích osob, zejména jsem nezasáhl nedovoleným způsobem do cizích autorských práv osobnostních a jsem si plně vědom následků porušení ustanovení § 11 a následujících autorského zákona č. 121/2000 Sb., včetně možných trestněprávních důsledků vyplývajících z ustanovení § 152 trestního zákona č. 140/1961 Sb.
V Brně dne
...............
.................................. (podpis autora)
PODĚKOVÁNÍ Rád bych poděkoval vedoucímu bakalářské práce, Ing. Hichamu Atassimu, za odborné konzultace, připomínky a náměty k řešení bakalářské práce a za ochotu a trpělivý přístup. Dále bych chtěl poděkovat své rodině, která mě ve studiu nepřetržitě podporuje.
OBSAH Úvod
11
1 Rozpoznávání hudebních žánrů 1.1 Hudební žánr . . . . . . . . . 1.2 Rozpoznávání hudby člověkem 1.3 Schématický model . . . . . . 1.4 Publikované práce . . . . . . .
. . . .
12 12 12 13 14
. . . . . . . . . .
15 15 16 16 16 18 19 20 20 21 22
. . . . . . . . .
23 23 23 24 24 27 29 29 30 30
. . . . . .
31 31 32 32 33 33 34
. . . .
. . . .
. . . .
. . . .
. . . .
2 Extrakce hudebních příznaků 2.1 Kategorie příznaků . . . . . . . . . . . 2.2 Popis použitých příznaků . . . . . . . . 2.2.1 Kmitočtové spektrum . . . . . . 2.2.2 Spektrální příznaky . . . . . . . 2.2.3 Melovské kepstrální koeficienty 2.2.4 Počet průchodů nulou . . . . . 2.2.5 Krátkodobá energie . . . . . . . 2.3 Výběr vhodných příznaků . . . . . . . 2.3.1 Míra geometrické oddělitelnosti 2.3.2 Funkce rankfeatures . . . . . . 3 Klasifikace 3.1 Úvod do problematiky . . . . . . . . . 3.1.1 Bayesovská teorie rozhodování . 3.2 Použité metody . . . . . . . . . . . . . 3.2.1 Umělé neuronové sítě . . . . . . 3.2.2 k -nejbližší soused . . . . . . . . 3.3 Další metody . . . . . . . . . . . . . . 3.3.1 Algoritmy podpůrných vektorů 3.3.2 Smíšený Gaussův model . . . . 3.3.3 Skryté Markovovy modely . . . 4 Řešení bakalářské práce 4.1 Databáze skladeb . . . . . 4.2 Zpracování dat . . . . . . 4.2.1 Extrakce příznaků 4.2.2 Výběr příznaků . . 4.3 Výsledky klasifikace . . . . 4.3.1 Neuronové sítě . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
. . . .
. . . . . . . . . .
. . . . . . . . .
. . . . . .
4.4
4.3.2 k -NN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 4.3.3 Hodnocení . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
5 Závěr
42
Literatura
44
Seznam symbolů, veličin a zkratek
46
Seznam příloh
47
A CD - bakalářská práce
48
B Hudební databáze
49
SEZNAM OBRÁZKŮ 1.1 2.1 2.2 2.3 2.4 3.1 3.2 3.3 4.1 4.2
Schématický model systému pro klasifikaci hudebních žánrů . . . . . Spektogramy: a)vážná hudba, b)elektro, c)jazz a d)rock. . . . . . . . Ilustrace postupu výpočtu melovských kepstrálních koeficientů z přivedeného signálu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Příklad graf melovských kepstrálních koeficientů zobrazujících vzorek hudby (rock). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Porovnání ZCR pro periodický signál a) 0.8sin(x) a signál se šumem b) 0.8sin(x)+0.2sin(20x). . . . . . . . . . . . . . . . . . . . . . . . . . Model neuronu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ukázka obecné dopředné sítě . . . . . . . . . . . . . . . . . . . . . . . Ilustrace klasifikace pomocí metody k-NN . . . . . . . . . . . . . . . Graf zobrazující hodnoty určené kvality příznaku pro jednotlivé příznaky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pracovní okno programu při zpracování testovací nahrávky rock.wav.
13 17 18 19 20 25 26 28 34 40
SEZNAM TABULEK 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17
Přehled trénovací databáze hudebních žánrů . . . . . . . . . . . . . . Přehled testovací databáze hudebních žánrů . . . . . . . . . . . . . . Přehled použitých hudebních příznaků a skripty k jejich výpočtu . . . Tabulka 5-ti nejkvalitnějších příznaků . . . . . . . . . . . . . . . . . . Přehled výsledků trénování neuronové sítě. . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 10 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 50 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 100 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 200 ms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka zobrazující matici přiřazení hudebních žánrů s použitím neuronové sítě . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka zobrazující úspěšnost rozpoznávání pomocí neuronové sítě pro 5 nejlepších příznaků . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 10 ms pro k=3,4,5,6,7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 50 ms pro k=3,4,5,6,7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím k-NN a délky okna 100 ms pro k=3,4,5,6,7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 200 ms pro k=3,4,5,6,7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tabulka zobrazující matici přiřazení hudebních žánrů s použitím k -NN Tabulka zobrazující úspěšnost rozpoznávání pomocí k -NN pro 5 nejlepších příznaků . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
31 32 33 34 35 36 36 36 36 36 37 37 37 38 38 38 39
ÚVOD Tématem bakalářské práce je klasifikace akustických signálů. Toto téma je úzce spjato se samotným číslicovým zpracováním akustických signálů, které má v současné době široké využití v oblastech zpracování řeči a hudby. Témata jako rozpoznávání věku a pohlaví řečníka, určení emocí člověka, stanovení národnosti řečníka nebo rozpoznání hudebního žánru jsou velmi aktuální. Právě poslední jmenované téma, klasifikaci hudebních žánrů, jsem si vybral jako zaměření své bakalářské práce. Hudba je nezbytnou součástí naší existence už od počátku bytí a v moderní době se její význam určitě nesnížil ba naopak. Hudba nás každodenně ovlivňuje při našich činnostech, přičemž jedním z nejdůležitějších faktorů, který rozděluje typy hudby je její žánr. Hudební žánry jsou třídy vytvořené lidmi k popisu hudebních skladeb. Skladby zařazené do jednoho hudebního žánru mají společné charakteristiky, které jsou většinou spojeny s použitými hudebními nástroji, rytmem skladby a jejím harmonickým obsahem. Pro znalce je schopnost rozeznat hudební žánr otázka několika sekund. Lidský mozek je schopen roztřídit poslouchané vzory a dále je zpracovávat. V současném elektronickém světě se počet multimediálních dat stále zvyšuje a obliba jejich využívání každoročně roste, ale neexistuje machanismus, který by je dokázal 100% automaticky roztřídit dle zadaných kritérií. Využívá se možnost přidání dodatečných dat, které vzorek správně zařadí. Tato činnost je ovšem manuální a proto také dosti časově náročná. Pro velký objem multimediálních dat, které v součastnosti například internet nabízí, by bylo velice užitečné vytvořit systém, který s dostatečnou přesností jednotlivé skladby dle žánrů roztřídí. Bakalářská práce si klade za cíl vytvořit ucelený pohled na problematiku automatické klasifikace hudebních žánrů. Zhodnotit současný stav řešení problému s dostatečného množství studií a využít dosažených závěrů a poznatků k vlastní práci. Předmětem řešení problému je shrnutí použitelných hudebních příznaků a také klasifikačních metod vhodných k potřebným účelům. Vybrané klasifikační třídy jsou vážná hudba, elektro, jazz a rock. Výsledkem bakalářské práce je systém pro automatické rozpoznání hudebních žánrů, který bude použitelný a uživatelsky přístupný. Dosažené rozpoznavací výsledky by měly respektovat schopnosti lidského organismu právě hudební žánry rozpoznat.
11
1
ROZPOZNÁVÁNÍ HUDEBNÍCH ŽÁNRŮ
1.1
Hudební žánr
Termín hudební žánr představuje nejrozšířenější, ale také nejednotné a nejobtížněji definovatelné rozdělení hudby podle jejích formálních a obsahových charakteristik. Je tedy širším členěním než hudební směr či styl. Samotný výraz žánr (anglicky genre) pochází z latinského slova genus, které znamená druh nebo třídu. Celkově je pro hudební skladby velmi těžké definovat jednotlivé žánry, protože 1. ve všech dochází k přesahům do jiné kategorie, proto užíváme spíše zažitých a praktikovaných než pregnantně stanovených jednotek, 2. rozdělení je poplatné době, z čehož plyne jeho nerovnoměrnost, 3. žánry jsou navíc chápány jinak jak v různých kulturách, tak jazykově. Např. označení klasická hudba v anglosaském prostředí proti vážná hudba v českém prostředí - čeština chápe hudbu klasickou spíše jako tradiční období vážné hudby; dalším příkladem je např. populární hudba, která v americké terminologii zahrnuje např. rock a jeho styly, country, folk atd., v Česku je však tradicí, že jsou odděleny, protože slovo populární má do jisté míry pejorativní nádech - to, co je v Česku populární hudbou, je v USA popem, tedy v jejich chápání komerční populární hudbou [7].
1.2
Rozpoznávání hudby člověkem
Pro nalezení uspokojivého řešení problému je nutno vědět jak samotný člověk hudbu vnímá a dokáže ji rozpoznat. Samotné zpracování zvukového signálu lidským uchem je založeno na frekvenční analýze, přičemž mozek dostává informace o zastoupení jednotlivých frekvencí ve slyšeném zvuku. Matematicky provedená frekvenční analýza má však na výstupu spektrum s lineární frekvenční osou. To neodpovídá lidskému slyšení, které je logaritmické, tudíž má v nižších frekvencích lepší rozlišení a směrem k vyšším frekvencím rozlišení klesá. Všechny systémy musí s tímto poznatkem počítat a najít vhodné řešení [3]. Schopností lidí rozlišit jednotlivé hudební žánry se zabývá studie pánů R.O. Gjerdigena and D. Perrota. Pro výzkum použili celkem 10 hudebních žánrů, konkrétně blues, vážnou hudbu, country, dance, jazz, latin, pop, R&B, rap a rock. Celková data obsahovala 8 skladeb každého žánru. Z každé skladby bylo náhodně vybráno 5 vzorků o délkách 3000 ms, 475 ms, 400 ms, 325 ms a 250 ms. V experimentu bylo použito celkem 52 vyskoškolských studentů, kterým byly náhodně pouštěny jednotlivé
12
vzorky a jejich úkolem bylo vzorek zařadit do jedné z tříd. Úspěšnost rozpoznání dosahovala pro 3000 ms přibližně 70% vzhledem k oficiálnímu žánru hudby dle nakladatelství. Pro 250 ms dosahovala úspěšnost okolo 40%. Dosažené výsledky byly nad očekávání dobré a hodnoty úspěšností pro jednotlivé délky vzorků by mohly být využity při řešení problému automatické klasifikace hudebních žánrů [4].
1.3
Schématický model
Jak již bylo řečeno, rozpoznávání hudebních žánrů je dáno klasifikací hudby do předem definovaných tříd. Cílem je proto vyvinou systém s následujícími parametry: Vstupem je hudební signál v digitální podobě. Výstupem je informace o zařazení vstupního signálu k jednomu definovanému hudebnímu žánru. Vytvoření černé skříňky, které bude generovat tento výstup je předmětem výzkumu v oblasti rozpoznávání hudebních žánrů.
Obr. 1.1: Schématický model systému pro klasifikaci hudebních žánrů Při zpracovávání komplexního problému jakým je téma bakalářské práce je snahou rozložit jej na problémy parciální. Rozpoznání hudebních žánrů může být chápáno jako problematika spadající pod rozpoznávání vzoru a jako taková vyžaduje 2 základní kroky řešení: 1. Extrakce hudebních příznaků 2. Klasifikace Cílem prvního kroku, extrakce hudebních přiznaků, je získání potřebné informace ze vstupních dat. Extrakce hudebních příznaků je detailně probírána v kapitole 2. Druhým krokem je nalezení vhodných kombinací hodnot hudebních příznaků, které kvalitně popisují jednotlivé hudební žánry. Tato problematika je popsána v rámci kapitoly 3. Jednotlivé kroky mohou být jednoznačné odděleny, přičemž výstup z extrakce hudebních příznaků složí jako vstup do procesu klasifikace. Takovýmto subsystémem můžeme nahradit zmiňovanou černou skříňku a výsledek je znázorněn na obrázku 1.1. Takto může být prezentován systém pro rozpoznávání hudebních žánrů v jeho jednoduché podobě.
13
1.4
Publikované práce
Jak již bylo uvedeno, odvětví automatického rozpoznávání hudebních žánrů řeší v zásadě 2 základní problémy: extrakci hudebních přiznaků a klasifikační metody. Při zkoumání již vytvořených prací a studií jsem se právě na tyto 2 oblasti zaměřil. Další oblastí, ve které se budu odvolávat na čerpané informace bude tvorba databáze jednotlivých žánrů hudby. Její kvalita, rozsah a paramatery hrají důležitou roli v celkové tvorbě systému. Informace byly čerpány převážně z příspěvků publikovaných na odborných konferencích a uveřejněny na www.ieee.org, jejichž přehled je uveden v seznamu použité literatury. Celkem bylo nastudováno 16 příspěvků z konferencí a 1 diplomová práce. Byl vytvořen seznam hudebních příznaků a typů klasifikačních metod, které byly v pracích použity a tím vznikl jakýsi statistický přehled řešení problematiky, který pomohl v práci na řešení bakalářské práce. Konkrétně bych chtěl jmenovat George Tzanetakise, který se rozpoznávání hudebních žánrů dlouhodobě věnuje a ve svých pracích [6] [14] [16] předkládá základní informace o problematice a zároveň nastiňuje aktuální způsob řešení. Navíc vytvořil otevřený program MARSYAS [20], který slouží k získávání důležitých informací z hudebních nahrávek a je využitelný při řešení problematiky extrakce hudebních příznaků. Dále se problematice věnují autoři Tao Li [11] [13] nebo Geoffroy Peeters [5] a další. Obecně je tématu věnována značná pozornost, ale nalezení relevantních materiálů v češtině nebo od českých autorů je obtížné nebo přímo nemožné.
14
2
EXTRAKCE HUDEBNÍCH PŘÍZNAKŮ
Kapitola podává detailní přehled o možných kategoriích a typech hudebních příznaků, které již byly použity v předešlých pracích. Dále se zabývá výběrem vhodných hudebních příznaků pro úspěšnou a efektivní klasifikaci a představuje příznaky použité při řešení bakalářské práce.
2.1
Kategorie příznaků
Nejlepší přehled a nahlédnutí do problematiky nabízí práce Geoffroye Peeterse [5], který v ní uvádí přehled audio příznaků vhodných pro popis a zpracování zvuku. Audio příznaky jsou rozděleny do 6ti základních kategorií. • Tvar časové obálky - (Temporal shape) Příznaky vypočtené přímo z časového průběhu signálu nebo energie signálu. Příkladem je doba náběhu, časový nárůst nebo pokles a efektivní doba trvání. • Časové příznaky - (Temporal features) Mezi časové příznaky patří autokorelační koeficienty a počet průchodů nulou. • Energetické příznaky - (Energy features) Energetickými příznaky se rozumí příznaky odkazující se na různé energetické vlastnosti signálu. Příkladem je celková energie. • Spektrální příznaky - (Spectral features) Příznaky jsou vypočtené ze signálu pomocí krátkodobé Fourierovy transformace (STFT). Příkladem je spektrální těžiště, spektrální proměnlivost a melovské kepstrální koeficienty. • Harmonické příznaky - (Harmonic features) Příznaky jsou vypočtené ze sinusového harmonického modelu signálu. Příkladem je poměr harmonické části a šumu nebo harmonická odchylka. • Příznaky vnímatelnosti (Perceptual features) Příznaky vypočtené s použitím modelu lidského slyšení. Příkladem je relativní hlasitost. Pro účely rozpoznávání hudebních žánrů je vhodné uvažovat ještě další dvě kategorie, které jsou popsány Georgem Tzanetakisem [6]. • Rytmické příznaky (Rytmic features) Příznaky jsou vypočtené ze signálu pomocí vlnkové transformace. Příkladem je relativní síla nejvýraznějšího beatu nebo suma celého histogramu.
15
• Příznaky základního tónu (Pitch content features) Příznaky jsou vypočtené na základě mnohonásobné techniky detekce základního tónu.
2.2
Popis použitých příznaků
Prvotní výběr příznaků byl vytvořen na základě informací získaných z prací mapujících danou problematiku. Selekce bere v úvahu účinnost použití příznaku a náročnost jeho implementace do systému. Popisované příznaky jsou jedny ze základních a nejčastěji používaných pro rozpoznávání hudebních žánrů.
2.2.1
Kmitočtové spektrum
Rozložení signálu na harmonické složky lze provést s využitím Fourierovy transformace. K podobnému procesu zpracování signálu dochází ve sluchovém ústrojí lidí a ostatních obratlovců, což ukazuje, že spektrální kompozice signálu je opravdu důležitým nositelem informace. Kmitočtové spektrum je tedy velmi důležitým příznakem v oblasti klasifikace hudebních žánrů a je od něj odvozeno mnoho dalších příznaků [3]. Pro zobrazení informace o kmitočtovém spektru signálu se využívá spektogram. Spektogram je graf zobrazující změnu úrovně spektrálních složek v závislosti na čase. Osa x zobrazuje narůstající čas t zatímco osa x zobrazuje frekvenci f (nízké frekvence nahoře). Na obrázku 2.1 je možné porovnat spektogramy pro odlišné hudební žánry. Byly použity vzorky o délce 10 s vzorkované frekvencí 22050 Hz.
2.2.2
Spektrální příznaky
Spektrální těžiště (Spectral centroid) Spektrální těžiště je získáno z modulového spektra a je často spojováno s teorií spektrálního jasu. Spektrální těžiště vypočteme ze vztahu PK
M [k].k , k=1 M [k]
C = Pk=1 K
(2.1)
kde M [k] je hodnota modulu k-té složky spektra, K je celkový počet bodů spektra a k je index bodu spektra.
16
b)
5
5
10
10
15
15
f [Hz]
f [Hz]
a)
20
20
25
25
30
30 1000
2000
3000
4000
5000
6000
1000
2000
3000
t [s]
50
100
150
200
250
50
100
c)
5000
6000
150
200
250
d)
5
5
10
10
15
15
f [Hz]
f [Hz]
4000 t [s]
20
20
25
25
30
30 1000
2000
3000
4000
5000
6000
1000
2000
3000
t [s]
50
100
4000
5000
6000
t [s]
150
200
250
50
100
150
200
250
Obr. 2.1: Spektogramy: a)vážná hudba, b)elektro, c)jazz a d)rock. Spektrální entropie (Spectral entropy) Spektrální entropii získáme z tvaru modulového spektra a představuje míru neuspořádanosti zkoumaného systému. Výpočet je definován jako H=−
N X
M [k].log2 M [k].
(2.2)
n=1
Spektrální proměnlivost (Spectral flux) Spektrální proměnlivost udává míru změny spektrálního tvaru mezi sousedními okny a je definována vztahem Fi =
K X
(M [k] − M [k − 1])2 .
(2.3)
k=1
Spektrální roll-off koeficient (Spectral roll-off ) Spektrální roll-off koeficient určuje frekvenci, pro kterou je obvykle 95% energie signálu koncentrováno pod úrovní vyhraněnou touto frekvencí. Veličinu můžeme tedy chápat jako mezní frekvenci mezi harmonickým signálem a šumem.
17
Vztah je definován R X
M 2 [k] = 0.95
Ni X
0
M 2 [k],
(2.4)
0
kde R značí frekvenci spektrálního koeficientu roll-off a N i značí Nyquistovu frekvenci, která je definována jako Ni =
fvz , 2
(2.5)
kde fvz značí vzorkovací kmitočet.
2.2.3
Melovské kepstrální koeficienty
Zpracování akustických signálů pomocí melovských kepstrálních koeficientů (MFCC) je navrženo tak, aby do určité míry respektovalo nelinearitu vnímání zvuků lidským uchem. Melovské kepstrální koeficienty se snaží kompenzovat především nelinearitu vnímání frekvencí. Využívají se k tomu trojúhelníkové pásmové filtry s nelineárním rozložením frekvencí v tzv. melovské frekvenční škále, která je definována vztahem Ã
fm = 2595 log10
!
f 1+ , 700
(2.6)
kde f [Hz] je frekvence v lineární oblasti a fm [mel] je frekvence v nelineární melovské škále. Hlavní a nejčastější využití melovských kepstrálních koeficientů se dá nalézt v systémech pro rozpoznávání řeči [21], rozpoznávání řečníka analýzou jeho hlasu [22] a v neposlední řadě také při získávání informací ze zvukových nahrávek (např. třídění hudby dle žánru).
Obr. 2.2: Ilustrace postupu výpočtu melovských kepstrálních koeficientů z přivedeného signálu Proces určování melovských kepstrálních koeficientů lze popsat v několika krocích následujícím postupem. V prvním kroku se na vstup systému přivádí akustický
18
signál a dochází k rozdělení signálu na menší segmenty o délce obvykle 10 až 30 ms [1]. Tyto hodnoty se vztahují pro zpracování řeči, pro zpracování hudby je potřeba nalézt trochu odlišný přístup a určit vhodnou délku segmentů. V dalším bloku dochází k výpočtu rychlé Fourierovy transformace (FFT), pomocí které se vypočte modulové spektrum analyzovaného signálu. Klíčovou částí celého procesu je následující melovská filtrace. Celý výpočetní algoritmus je tvořen bankou trojúhelníkových filtrů podél frekvenční osy s měřítkem v melovské škále. Volba počtu pásem banky filtrů je volena v závislosti na počtu a umístění kritických pásem a s přihlédnutím k vzorkovacímu kmitočtu a celkové šířce přenášeného pásma. Průchod signálu filtrem v podstatě znamená, že každý koeficient FFT je násoben odpovídajícím ziskem filtru a výsledky jsou pro dané filtry akumulovány. Dalším krokem je výpočet logaritmu z výstupů jednotlivých filtrů. Logaritmováním akumulovaných koeficientů je vkládán do procesu důležitý příznak kepstrální analýzy, který příznivě omezí dynamiku signálu (podobně jako u lidského ucha) a přináší další užitečné předpoklady pro další zpracování signálu. Posledním krokem v celém procesu je provedení zpětné rychlé Fourierovy transformace (IFFT)[1]. Celý proces určování melovských kepstrálních koeficientů je graficky znázorněn na obrázku 2.2.
0 2 −5 −10
4
MFCC
−15 6 −20 −25
8
−30 10 −35 −40
12
−45 7100
7200
7300 7400 Císlo vzorku
7500
Obr. 2.3: Příklad graf melovských kepstrálních koeficientů zobrazujících vzorek hudby (rock).
2.2.4
Počet průchodů nulou
Počet průchodů nulou, anglicky zero-crossing rate (ZCR), je hodnota ukazující na počet průchodu signálu přes nulovou osu. Periodický zvuk má tendenci mít hodnotu
19
ZCR nízkou zatímco šum má hodnotu ZCR vysokou. Výpočty se provádi pro každý rámec vstupního signálu. ZCR je oblíbeným a často použitým příznakem v oblasti klasifikace audio signálů především díky rychlosti výpočtu. ZCR může být využitý v jako statistická míra spektrálních charakteristik při rozpoznávání hudby a mluveného slova. Dalším využitím je také možnost odlišení části řeči obsahující znělé a neznělé prvky. Znělé prvky mají významnější hodnotu ZCR a neznělé prvky naopak [3]. Výpočet ZCR je pro jeden segment dán Z=
N 1 X |sign(x[n]) − sign(x[n − 1])| , N n=1
(2.7)
kde x[n] představuje vstupní segment, N počet vzorků segmentu a sign je funkce, která nabývá hodnoty 1 pro kladné parametry a hodnoty 0 pro parametry záporné. a)
b)
0.8
1
0.6
0.8 0.6
0.4
0.4 0.2 f(x) [−]
f(x) [−]
0.2 0
0 −0.2
−0.2
−0.4 −0.4 −0.6 −0.6 −0.8
−0.8 0
1
2
3
4
5
6
−1
7
0
1
t [s]
2
3
4
5
6
7
t [s]
Obr. 2.4: Porovnání ZCR pro periodický signál a) 0.8sin(x) a signál se šumem b) 0.8sin(x)+0.2sin(20x).
2.2.5
Krátkodobá energie
Krátkodobá energie (anglicky short time energy) audio signálu pro jeden segment je definován jako E=
N 1 X [x[n]]2 . N n=1
(2.8)
Fukce krátkodobé energie zobrazuje časovou proměnu úrovní a tím podává informaci o variabilitě v časové oblasti. [3].
2.3
Výběr vhodných příznaků
V předešlých částech byly definovány příznaky, kterou mohou být ke klasifikaci použity. Jejich vhodnost pro řešení konkrétního problému ovšem není definována
20
a proto musí být určena určitá kritéria selekce. Využití předešlých prací v dané oblasti a jejich výsledků je také vhodným indikátorem využitelnosti a efektivity použití příznaků.
2.3.1
Míra geometrické oddělitelnosti
V této metodě porovnáváme výskyt prvků jedné klasifikační třídy v blízkém okolí střední hodnoty a zároveň co největší odstup středních hodnot jednotlivých tříd. Výpočet míry geometrické oddělitelnosti Q(.)je dán Q(.) =
S2 , 0 ≤ Q(.) ≤ 1. S 2 + D2
(2.9)
Pokud koeficient xi vykazuje malé rozdíly v rámci své třídy a velké rozdíly v rámci ostatních tříd dosahuje míra geometrické oddělitelnosti Q(xi ) nízkých hodnot. Naopak při vysokých hodnotách je velký i rozptyl hodnot a tím je možnost využití příznaku nízká. Aritmetická střední hodnota S 2 se určí ze vztahu V 1 X S = Sv2 , V v=1 2
(2.10)
kde V je celkový počet tříd. Kvadrát rozptylu určíme vztahem Sv2 = (x − µv )2 ,
(2.11)
kde x představuje vektor příznaků a µ střední hodnotu. Aritmetickou střední hodnotu vzdálenosti vypočteme podle D2 =
V X V X 1 D2 . V (V − 1) v=1 u=1 v,u
(2.12)
Kvadrát vzdáleností mezi středními hodnotami dvou tříd je 2 Dv,u = (µv − µu )2 .
(2.13)
Porovnání hodnot geometrické oddělitelnosti pro všechny příznaky nám podá informaci o kvalitě daného příznaku a vhodnosti jeho použití [2].
21
2.3.2
Funkce rankfeatures
Tato implementovaná statistická funkce v prostředí MATLAB hodnotí klíčové příznaky dle kritérií rozdílnosti tříd. Volání funkce je dáno [IDX, Z] = rankfeatures(X, Group), kde X je maticí vstupních dat a funkce řadí příznaky v ní obsažené s použitím nezávislého hodnotícího měřítka pro binární klasifikaci. V matici X představují sloupce vektor příznaků daného vzorku a počet řad odpovídá původnímu počtu příznaků. Vstupní vektor Group obsahuje rozdělení vzorků do jednotlivých tříd, přičemž počet sloupců Group musí odpovídat počtu sloupců X a počet tříd musí být roven 2. Výstupem funkce jsou vektory IDX a Z. Vektor IDX představuje seznam odkazů na řádky X seřazené dle významnosti příznaků pro klasifikaci v rámci vybraných tříd a vektor Z nese informaci o absolutní hodnotě použitého měřítka. Nevýhodou funkce je absence možnosti určení kvality příznaku v rámci všech klasifikačních tříd a tím nutnost manuálního zpracování při počtu tříd vyšším než dvě [8].
22
3
KLASIFIKACE
Extrakce příznaků (kapitola 2) počítá vektory příznaků reprezentující data, které je potřeba klasifikovat. Tyto příznakové vektory potom slouží k přiřazení každého objektu do určité kategorie. Takto je popsána klasifikační část, která je druhým základním kamenem systému pro automatickou klasifikaci hudebních žánrů. Existuje mnoho klasifikačních technik, které mohou být určeny pro různé typy klasifikací při různých vstupních podmínkách. Cílem kapitoly je kromě úvodu do problematiky samotné také představit a popsat základní techniky klasifikace vhodné pro použití při klasifikaci hudebních žánrů a detailněji se zaměřit na techniky použité při řešení bakalářské práce.
3.1
Úvod do problematiky
Klasifikace je jako taková podoborem teorie rozhodování. Takové tvrzení vychází z předpokladu, že každý pozorovaný vzor musí náležet do určité kategorie nebo třídy, která může být považována za model tohoto vzoru. Bez ohledu na odlišnosti mezi jednotlivými vzory existuje skupina příznaků, které jsou podobné ve vzorech stejné třídy a naopak rozdílné u odlišných tříd. Takové příznaku mohou být použity k rozhodnutí o příslušnosti ke třídě. Vezměme v úvahu klasifikaci hudebních žánrů. Hudba může být jakkoli komplexní a skladby jednoho žánru od sebe odlišné ve spoustě aspektů, ale člověk stejně dokáže jednotlivé žánry celkem jednoduše odlišit. Tento fakt podporuje tvrzení, že v každé skladbě, v každém kousku hudby existují elementární znaky společné pro kusy patřící do stejného žánru [3].
3.1.1
Bayesovská teorie rozhodování
Klasifikaci si můžeme představit jako rozhodnutí o příslušnosti daného klasifikovaného objektu k určité třídě. Takové rozhodnutí může být samozřejmě správné ale i špatné. V rámci klasifikace se tedy snažíme maximalizovat šanci správného rozhodnutí. Jedním z přístupu k dané problematice je Bayesovská teorie rozhodování, která kvantifikuje závislosti mezi možnými rozhodnutími s použitím stastistiky. V Bayesovské teorii rozhodování používámé základní proměnnou w, která je popsána určitou pravděpodobností a popisuje reálný stav objektu. V našem případě hudební žánry představují konečný počet c možných stavů w1 , ..., wc . Známá apriorní pravděpodobnost P (wj ) popisuje známou znalost, kterou máme před vlastním zpracováním dat. Ukažme si na příkladu, kdy hudební kolekce se skládá z 35 jazzových CD a 15 metalových CD, přičemž každé obsahuje 10 písní.
23
Pokud označíme w1 jako žánr jazzový a w2 žánr metalový, potom známá pravděpodobnost náhodně vybrané písně bude náležet k jazzu je P (w1 = 0, 7). Známá podmíněná pravděpodobnost p(x|wj ) označuje pravděpodobnost příslušnosti vektoru příznaků x stavu wj . Při předpokladu, že známá apriorní pravděpodobnost P (wj ) i známá podmíněná pravděpodobnost p(x|wj ) jsou pro j = 1, ..., n známy a že hodnota x je určena, můžeme spočítat pravděpodobnost stavu wj daného x s požitím Bayesovského vzorce
P (wj |x) =
p(x|wj )P (wj ) , p(x)
(3.1)
kde p(x) =
c X
p(x|wj )P (wj ).
(3.2)
j=1
P (wj |x) je podmíněná (aposteriorní) pravděpodobnost a označuje pravděpodobnost, že objekt náleží stavu wj dané vektorem příznaků x. Kvůli minimalizaci možnosti chyby musí systém samožřejmě určit stav wj , jehož P (wj |x) je nejvyšší. Tento proces je nazván Bayesovské rozhodovací pravidlo [3].
3.2 3.2.1
Použité metody Umělé neuronové sítě
Umělá neuroná síť vychází do jisté míry z biologické neuronové sítě, od které převzala zjednodušený matematický model. Z hlediska realizace spolu však nemají tyto sítě nic společného. Pod pojmem umělá neuronová síť si můžeme představit obecně nelineární, adabtabilní stroj se schopností učit se. Matematický model neuronu Základním prvkem umělé neuronové sítě je neuron, přičemž se tento název používá spíše z historických důvodů a jeho podobnost s biologickým modelem neuronu je značně vzdálená. Každý neuron má více vstupů, ale jen jeden výstup. Tento výstup ovšem může být přiveden zpět na vstup téhož neuronu nebo vstup jiných neuronů. Každý neuron vypočte na základě kombinace vstupů a vlastních parametrů (vah a prahů) hodnotu výstupu, kterou transformuje na základě aktivační funkce.
24
Vztah pro výpočet výstupních hodnot neuronu je y=f
ÃN X
!
wi xi − θ ,
(3.3)
i=1
přičemž x = [x1 , x2 , ..., xN ]T je vstupní vektor, w = [w1 , w2 , ..., wN ]T je vektor vah a θ udává hodnotu prahu neuronu. Funkce f (α) je aktivační funkcí neuronu a je zpravidla nelineární. Práh neuronu si můžeme představit jako nultý vstup neuronu x0 , jehož hodnota je rovna jedné, váha w0 toho vstupu pak bude odpovídat právě prahu neuronu θ. Na základě této úvahy a úpravou výše zmíněného vztahu získáváme zjednodušenou rovnici ³
´
y = f wT x ,
(3.4)
kde x = [1, x1 , ..., xN ]T je vstupní vektor, w = [θ, w1 , ..., wN ]T je vektor vah [10]. Grafické znázornění modelu neuronu je na obrázku 3.1.
x1
w1
x2
w2 f(.)
xN
wN
Obr. 3.1: Model neuronu Topologie a druhy neuronových sítí Neuronové sítě lze dělit podle následujících kritérií [2]: 1. podle počtu vrstev: - jednovrstvá (např. Hopfieldova síť) - vícevrstvá (např. ART síť), 2. podle algoritmu učení: - s učitelem (např. síť s algoritmem Backpropagation) - bez učitele (např. Hopfieldova síť),
25
y
3. podle stylu učení na síť s učením: - deterministický (např. algoritmus Backpropagation) - stochastický (např. náhodné nastavení vah). Dopředné sítě Nejjednodušší realizací dopředné sítě představuje jednovrstvý perceptron, tvořený M paralelně pracujícími neurony, z kterých každý nezávisle vytváří transformaci vstupního vektoru podle svého vektoru vah. Obecně můžou sítě obsahovat libovolný počet neuroů, ale zvýšený počet použitých neuronů nedokáže pozitivně ovlivnit kvalitu výsledku, jelikož chybí možnost kombinace setřízení pomocí odlišných dělících přímek. Z tohoho důvodu se v praxi používají především vícevrstvé struktury. index vrstvy
x2
x1
xN
výstupní vrstva
n=3
3w M N
2w 1 1
n=2
skryté vrstvy
n=1 1w 1 1
1w 1 N
x1
x2
x3
vstupní uzly
xN
Obr. 3.2: Ukázka obecné dopředné sítě Nejčastěji používanou sítí je je síť dopředná, skládající se z následujících vstev: • výstupní vrstva neuronů - nejvyšší vrstva sítě • vrstva vstupních uzlů - nejnižší vrstva sítě • skryté vrstvy - může jich být několik a nejsou zvenčí dosažitelné
26
Síť je úplně propojená, což znamená vzájemné propojení výstupů všech neuronů jedné vrstvy se vstupy všech neuronů následující vrstvy. Signály v síti tak postupují od vstupní vrstvy k výstupní jedním směrem [10]. Metoda zpětného šíření chyb Jedním z nejpoužívanšjších algoritmů pro učení a trénování neuronových sítí patří algoritmus zpětné šíření chyby (Back propagation). Tato metoda vychází ze snahy minimalizovat energii neuronové sítě, kde právě energie vyjadřuje míru neurčitosti sítě, tedy odchylku mezi skutečnou hodnotou a hodnotou z výstupu neuronové sítě pro zvolenou trénovací množinu. Trénovací množina je tvořena určitým počtem dvojic (xp , dp ), kde xp zastupuje vstupní vektor o rozměru N z trénovací množiny a dp odpovídá požadovanému výstupnímu vektoru. Každý krok trénování je založený na přivedení prvků vektoru xp na odpovídající vstup sítě a následné určení odlišnosti prvků výstupu sítě od prvků vektoru dp . Podle zjištěného rozdílu se upravují jednotlivé váhy neuronové sítě. Úprava vah může přitom být vykonána po každém kroku, na základě integrované informace po několika krocích nebo za celou epochu, přičemž za epochu považujeme výkonání trénovacího kroku s využitím všech dvojic trénovací množiny. Vzhledem k pomalé konvergenci vah k požadovanému stavu musí většinou proběhnout velké množství učebních epoch. V každém kroku trénování probíhá úprava vah takto: • ukázání vektoru xp síti a zjištění její odezvy yp , • výpočet chybového vektoru ep = dp − yp , • výpočet rozpočtených chyb jednotlivých neuronů zpětným šířením chyb, • oprava vektoru vah každého jednotlivého neuronu lokálně podle δ-pravidla s využitím známé aktivace tohoto neuronu při ukázání xp síti. Vlastnosti neuronové sítě vhodně popisuje její výkonnost, která určuje do jaké míry se chování sítě blíží požadovanému chování. Jako parametr výkonnosti býva definována relativní početnost správného zařazení nebo průměrná kvadratická odchylka výsledků od správných hodnot [10].
3.2.2
k -nejbližší soused
Klasifikační metoda k -nejbližšího souseda, anglicky k -nearest neighbor (k -NN), patří mezi nejjednodušší ze všech metod strojového učení. Zkoumaný objekt je klasifikován na základě příslušnosti většiny jeho sousedů, takže je přiřazen ke třídě, ke které náleží
27
většina jeho sousedních objektů. Parametr k je kladným celým číslem, které může nabývat různých hodnot. Pokud k = 1, pak je objekt jednoduše přiřazen ke třídě jeho nejbližšího sousedního objektu. V rámci klasifikační problematiky je vhodnější volit k jako liché číslo, čímž je zabráněno možnosti patové situace se stejným počtem nejbližších sousedících objektů ze 2 nebo více různých tříd. Klasifikační proces je znázorněn na obrázku 3.3, kde je zkoumaný vzorek při k = 3 zařazen do třídy modrých hvězd, zatímco při k = 5 je převažující třída mezi sousedními vzorky červený čtverec.
?
Obr. 3.3: Ilustrace klasifikace pomocí metody k-NN Sousední objekty jsou získány z databáze objektů, u kterých je známo jejich zařazení v rámci tříd. Takováto databáze je pojmenována trénovací, přestože k opravdovému trénování vůbec nedochází. Pro správnou identifikaci sousedních objektů jsou objekty reprezentovány pozicí vektorů umístěných ve vícerozměrném prostoru. Pro zjištěni vzdálenosti zkoumaného objektu od jeho sousedů se používá několik způsobů měření, přičemž každá má své výhody a nevýhody a svou oblast použití. • Euklidovská míra • Kosinová míra • Korelační míra • Hammingova míra Trénovací fáze výpočetního algoritmu spočívá pouze v uchování vektoru příznaků a jednotlivých tříd trénovacích vzorů. V klasifikační fázi je zkoumaný vzorek prezentován vektorem příznaků v prostoru. Dále jsou vypočteny vzdálenosti mezi
28
vstupním vektorem a vektory trénovacími a jsou vybrány k-té nejbližší vzorky z trénovací sady. Existuje několik způsobů klasifikace nového vektoru do příslušné třídy, přičemž nejpoužívanější metoda spočívá v predikci nového vektoru k nejvýraznější třídě v rámci k-NN. Hlavní nevýhodou dané metody je inklinování k zařazení vektoru v rámci klasifikace ke třídě s nejčasteji se vyskytujícími vzorky. Řešením problému může být uvažování vzdálenosti každého k-nejbližšího souseda s klasifikovaným novým vektorem a predikce příslušnosti nového ke třídě založené na této vzdálenosti. Výběr vhodného parametru k by měl být volen na základě znalosti klasifikovaných dat. Obecně k s vyšší hodnotou redukuje efekt šumu při klasifikaci a na druhou stranu snižuje výraznost vymezení jednotlivých tříd. Nejvhodnější hodnotu k lze určit experimentálně nebo pomocí heuristických technik jakou je například křížová validace [9]. Princip klasifikační metody k-NN se zdá být vhodná ke klasifikaci hudebních žánrů, jelikož svou podstatou respektuje proces klasifikace u člověka. Stejně jako člověk klasifikátor k-NN nestaví závěry na základě znalosti rozložení dat, ale porovnává zkoumaná data s již známými informacemi a dle podobnosti přiřadí nejvhodnější třídu. Proto se tato metoda často označuje jako metoda učení dle příkladu [24].
3.3
Další metody
Další metody klasifikace lze použít k řešení problému klasifikace hudebních žánrů. Při zpracovávání tématu se vyskytly 3 nejvýrazněji zastoupené metody, které bych rád krátce rozebral. První z nich je metoda algoritmů podpůrných vektorů, která byla použita v pracích [11], [12], [13] a [14]. Druhou metodu, smíšený Gaussův model, aplikovali autoři v pracích [6], [12], [13]. Poslední probíranou metodou jsou skryté Markovovy modely, které jsou využity v práci [12].
3.3.1
Algoritmy podpůrných vektorů
Algoritmy podpůrných vektorů, anglicky Support vector machine (SVM), patří k alternativním a poměrně novým metodám, které tvoří určitou kategorii tzv. jádrových algoritmů (kernel machines). Tyto metody se snaží využít výhody poskytované efektivními algoritmy pro nalezení lineární hranice a zároveň jsou schopny representovat vysoce složité nelineární funkce. Jedním ze základních principů je převod daného původního vstupního prostoru do jiného, vícedimensionálního, kde již lze od sebe oddělit třídy lineárně. Pro ilustraci si představme v dvourozměrném prostoru dvě třídy, oddělené nelineární kružnicí. Přidáním další dimenze vznikne možnost prvků třídy uvnitř kružnice
29
přidat další souřadnici, která je posune např. nahoru podél nové osy, takže pro oddělení obou tříd již lze použít rovinou rovnoběžku.Problémem je ale stále umístění dané lineární hranice, které by mělo být vedeno co nejefektivněji z hlediska klasifikace budoucích dat, které nejsou přímo obsaženy v trénovací množině [23].
3.3.2
Smíšený Gaussův model
Smíšený Gaussův model, anglicky Gaussian mixture model (GMM), je velice účinný nástroj pro statisktické modelování příznakového prostoru pomocí jedné, popř. více Gaussovských funkcí. Při zpracovávání existuje několik algoritmů pro odhad parametrů GMM a také jsou používány některé další speciální GMM modely. Nejčastější využití GMM je při zpracování řečového signálu [23].
3.3.3
Skryté Markovovy modely
Skryté Markovovy modely, anglicky hidden Markov models (HMM) jsou statistickým modelem založeným na Markovově procesu s neznámými parametry. Umožňuje algoritmicky klasifikovat vstupní data určitého typu. Pro každou třídu je nutné vytvořit vlastní samostatný model. Ve skrytém Markovovu modelu (HMM), nejsou narozdíl od klasického Markovova modelu stavy přímo přístupny, ale je viděna pouze závislost stavu na výstupu. Každý stav má svou vlastní pravděpodobnost rozložení v rámci možných výstupních tříd. Proto přináší sekvence znaků generovaná skrytým Markovovým modelem informaci o sekvenci možných tříd a nepřináší tak pouze jedno rozhodnutí [23]. HMM je mimo již zmiňované využití aplikován především v oblastech rozpoznávání vzoru, jakými jsou například rozpoznávání řeči, videa a obrazu. Pro jednodušší zpracování HMM byl vytvořen tzv. Hidden Markov Model Toolkit, který se zaměřuje právě na manipulaci s HMM v rámci zpracování řeči, ovšem jeho využití je mnohem širší. Více informací je k nalezení na oficiálním webu [15].
30
4
ŘEŠENÍ BAKALÁŘSKÉ PRÁCE
4.1
Databáze skladeb
Všechny disciplíny zabývající se klasifikací a rozpoznáváním vzoru musí řešit úkol najít nebo vytvořit kvalitní databázi. Pro různé disciplíny je tento úkol odlišně náročný, ovšem vždy je potřeba brát v úvahu různé aspekty. V rámci klasifikace hudebních žánrů není problém v dostupnosti, hudba je dostupná v jakékoliv podobě téměř kdekoliv, ale vzhledem k její různorodosti je nutné databázi pečlivě vybírat. V rámci studia dané problematiky jsem nenašel jasná kritéria pro kvalitu a kvantitu potřebné databáze, ale z hlediska trénování klasifikátorů je vhodná co největší trénovací množina, tedy co největší množství prvků v databázi. Jak již bylo v úvodu uvedeno, pro bakalářskou práci jsem pro klasifikaci zvolil čtyři hudební žánry: vážnou hudbu, elektro, jazz a rock. Základní údaje o trénovací databázi jsou uvedeny v tabulce 4.1. Pro každou databázi bylo vybráno 50 reprezentativních skladeb, které byly převedy z formátu mp3 do formátu wav. Výstupní wav soubory měly parametr: 22050 Hz, 16 bit, mono. Konverze formátu proběhla s využitím produktu společnosti Sony, Sound Forge 8.0. Tab. 4.1: Přehled trénovací databáze hudebních žánrů Hudební žánr
Počet skladeb
Vážná hudba Elektro Jazz Rock
50 50 50 50
Délka 4h 4h 3h 3h
12min 23min 04min 13min
Formát 59s 03s 46s 30s
wav wav wav wav
Vzorkovací kmitočet 22050 22050 22050 22050
Hz Hz Hz Hz
V rámci výběru vhodných skladeb daných žánrů jsem si stanovil cíl vystihnout žánr co nejlépe, ale vzhledem k množství podžánrů, které současná hudební scéna nabízí je tento úkol dosti obtížný. Příkladem může být hudební databáze na serveru www.allmusic.com, které v kategorii rock nabízí přibližně dalších 200 podžánrů. I přesto jsem se pokusil dané žánry co nejlépe vystihnout. Pro kategorii rocku jsem vybral písně patřící k hard rocku (AC/DC, Motörhead), dále přes grunge (Nirvana) a indie rock (Franz Ferdinand, The killers) až po progressive rock (Muse). V rámci vážné hudby byly použity například skladby z období baroka (Bach, Vivaldi), z období klasicismu (Mozart, Beethoven) a z období novoromantismu (Dvořák, Smetana). Pro jazz byly vybrány písně Elly Fitzgerald, Luise Armstronga, Milese Davise a dalších. U elektrické hudby reprezentoval kategorii Drum’n’Bass High Contrast, kategorii rave a hardcore techno Prodigy a kategorii house skupina Faithless. Detailní seznam všech použitých skladeb je uveden v příloze A.
31
V kapitole 3 věnující se klasifikaci bylo definován požadavek odlišení databáze určené k trénování a k testování, proto bylo dle výše zmíněných vytvořena i databáze trénovací a její parametry jsou uvedeny v tabulce 4.2. Tab. 4.2: Přehled testovací databáze hudebních žánrů Hudební žánr
Počet skladeb
Vážná hudba Elektro Jazz Rock
50 50 50 50
4.2
Délka 3h 3h 4h 3h
45min 35min 04min 12min
Formát 34s 14s 42s 26s
wav wav wav wav
Vzorkovací kmitočet 22050 22050 22050 22050
Hz Hz Hz Hz
Zpracování dat
Veškeré zpracování použitých dat bylo provedeno v prostředí MATLAB 7.6.0 (R2008a). Nejprve muselo dojít k převodu wav souborů do zpracovatelné podoby. Toto jsem provedl funkcí wavread(), která soubor převede na matici o rozměrech Y x X, kde Y značí délku souboru a N značí počet kanálů. V našem případě pracuji s mono signálem, takže N = 1. Zpracování celé skladby jako celku by nebylo efektivní a nepřineslo by patřičnou vypovídající hodnotu, proto je dalším krokem zpracování segmentace skladby. K tomu účelu jsem převzal skript, jehož funkce segmentace() má vstupní parametry: vstupní signál, délku okna a překryv. Překryv je použit především při zpracování řečových signálů a v našem případě ho není nutné použít, proto vkládáme hodnotu 0. Pro délku okna jsem zvolil na základě závěrů uvedených v kapitole 1.2 hodnotu větší než 3 s, rozhodl jsem se pro 4 s. Výstupem funkce je matice, jejíž sloupce představují segmenty skladby o požadované délce. Takováto matice je připravena k extrakci příznaků.
4.2.1
Extrakce příznaků
Extrakci příznaků i přímo použitým příznakům se věnuje celá kapitola 2, tady proto poukáži na skripty1 přímo použité k extrakci daných příznaků. Základní výběr příznaků byl přitom vytvořen na základě doporučení autorů předchozích prací mapujících problematiku klasifikace hudebních žánrů a efektivnosti a obtížnosti implementace. Seznam použitých příznaků a skriptů, jejichž kód je uveden v příloze, je uveden v tabulce 4.3. 1
Skripty pro extrakci hudebních příznaků byly převzaty z práce Theodorose Giannakopoulose Some Basic Audio Features.
32
Tab. 4.3: Přehled použitých hudebních příznaků a skripty k jejich výpočtu Název příznaku
Skript výpočtu
Spektrální entropie Krátkodobá energie Počet průchodů nulou Spektrální koeficient roll-off Spektrální těžiště Spektrální proměnlivost MFCC
Energy Entropy Bloc.m ShortTimeEnergy.m zcr.m SpectralRollOff.m SpectralCentroid.m SpectralFlux.m mfcc.m
Označení 1 2 3 4 5 6 7 - 28
Pro účely klasifikace bylo potřeba vytvořit trénovací matice. Z každé skladby bylo proto vybráno 10 segmenů, přičemž pro výběr byla skladba rozdělena na tři části. Z první části skladby byly vybrány 3 segmenty, z druhé části 4 a z poslední části opět 3 segmenty. Takovéto rozdělení mělo zaručit dostatečné zastoupení všech částí skladeb, což je důležité pro robustnost výsledného klasifikačního systému. Pro každý žánr bylo vypočteno celkem 500 vektorů příznaků a každý vektor příznaků obsahoval celkem 28 příznaků. Každý z výše zmíněných příznaků po jednom a navíc bylo použito celkem 22 melovských kepstrálních koeficientů. Pro všechny žánry tedy vznikla matice o rozměrech 28 x 2000, která představuje trénovací data pro použité klasifikátory (stejným způsobem byla vytvořena i testovací matice). Důležitým parametrem výpočtu příznaků je délka okna, v rámci bakalářské práce jsem se rozhodl použít 4 různé délky: 10 ms, 50 ms, 100 ms, 200 ms. Pro všechny tyto hodnoty byla vytvořena trénovací a testovací matice a v klasifikační části byly porovnané dosažené výsledky.
4.2.2
Výběr příznaků
Pro zvýšení úspěšnosti klasifikace jsem učinil výběr příznaků dle kvality. K určení kvality příznaku jsem z metod uvedených v kapitole 2.3 použil funkci prostředí MATLAB rankfeatures(). Výsledky porovnání jsou zaznamenány v grafu 4.1 a pořadí pěti nejkvalitnějších příznaků je uvedeno v tabulce 4.4.
4.3
Výsledky klasifikace
Úvod do problematiky klasifikace a popis klasifikačních metod je uveden v kapitole 3. Pro baklářskou práci jsem se rozhodl využít dva klasifikátory: neuronové sítě a k Nearest neighbor. V první fázi byla použita celá trénovací matice, ve fázi druhé bylo
33
Tab. 4.4: Tabulka 5-ti nejkvalitnějších příznaků 1. 2. 3. 4. 5.
Spektrální Spektrální 3. MFCC Spektrální Spektrální
entropie těžiště koeficient roll-off proměnlivost
30
25
Hodnota kvality příznaku
20
15
10
5
0 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Číslo příznaku
Obr. 4.1: Graf zobrazující hodnoty určené kvality příznaku pro jednotlivé příznaky použita matice obsahující 5 nejkvalitnějších příznaků. Veškeré trénování, simulace, testování a výpočty probíhaly v prostředí MATLAB 7.6.0 (R2008a).
4.3.1
Neuronové sítě
Pro práci s neuronovými sítěmi jsem v prostředí MATLAB využil implementovaného toolboxu: Neural Network Toolbox. S jeho použitím došlo k vytvoření neuronové sítě a k jejímu trénování. Základními parametry vytvořené neuronové sítě jsou: • Typ neuronové sítě: dopředná síť se zpětným šířením chyby • Počet vrstev: 2 (první vrstva 80 neuronů, druhá vrstva 4 neurony) • Trénovací funkce: Levenberg-Marquardt Trénování neuronové sítě proběhlo s použitím trénovací matice, jejíž tvorba je popsána v předchozí části. Výsledky trénování jsou zaznačeny v tabulce 4.5, když
34
jejich výkonost je vyjádřena pomocí průměrné kvadratické odchylky, anglicky mean squared error (MSE). Tab. 4.5: Přehled výsledků trénování neuronové sítě. Délka okna
MSE
10 ms 50 ms 100 ms 200 ms
2.95196e-2 4.12041e-2 2.74372e-2 5.32780e-2
Samotné testování probíhalo s využitím testovací matice a skriptů, které testovací činnost automatizovaly. Výsledky testování klasifikace hudebních žánrů jsou uvedeny pro okno 10 ms v tabulce 4.6, pro okno 50 ms v tabulce 4.7, pro okno 100 ms v tabulce 4.8 a pro okno 200 ms v tabulce 4.9. Pro délku okna 50 ms, jejiž rozpoznávací úspěšnost byla nejlepší (70,35%), byla vytvořená klasifikační matice, v angličtině známá pod pojmem confusion matrix, (tabulka 4.10), která dává informaci o správných i špatných zařazeních v rámci jednotlivých tříd. V rámci snahy zvýšit úspěšnost klasifikace jsem modifikoval trénovací a testovací matice dle výsledků výběru nejlepších příznaků uvedených v tabulce 4.4 a právě těchto pět příznaků použil. Byla použita délka okna 50 ms, která byla dle předchozích výsledků nejvhodnější, a výsledky klasifikace v takovémto nastavení jsou uvedeny v tabulce 4.11.
4.3.2
k -NN
Klasifikace pomocí metody k -nearest neighbor jsem provedl s využitím funkce prostředí MATLAB knnclassify(), jejímž výstupem je přímo označení klasifikované třídy. Základními vstupními parametry jsou: klasifikovaná data, trénovací matice, klasifikátor trénovací matice a koeficient k. Testování proběhlo na všech délkách oken jako u neuronové sítě a z důvodu určení nejvýkonějšího nastavení byly testovány koeficienty k s hodnotou 3, 4, 5, 6 a 7. Výsledky rozpoznávání hudebních žánrů jsou pro délku okna 10 ms uvedeny v tabulce 4.12, pro okno 50 ms v tabulce 4.13, pro okno 100 ms v tabulce 4.14 a pro okno 200 ms v tabulce 4.15. Pro délku okna 50 ms a koeficient k = 6, jejichž rozpoznávací úspěšnost byla nejlepší (67,1%), byla opět vytvořena klasifikační matice (tabulka 4.16).
35
Tab. 4.6: Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 10 ms Celkem vzorků Rozpoznáno vzorků Úspěšnost
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 374 0.748
500 311 0.622
500 307 0.614
500 362 0.724
2000 1354 0.677
Tab. 4.7: Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 50 ms Celkem vzorků Rozpoznáno vzorků Úspěšnost
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 415 0.83
500 285 0.57
500 318 0.636
500 389 0.778
2000 1407 0.7035
Tab. 4.8: Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 100 ms Celkem vzorků Rozpoznáno vzorků Úspěšnost
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 338 0.676
500 292 0.584
500 309 0.618
500 379 0.758
2000 1318 0.659
Tab. 4.9: Tabulka úspěšností rozpoznání s použitím neuronové sítě a délky okna 200 ms Celkem vzorků Rozpoznáno vzorků Úspěšnost
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 402 0.804
500 386 0.772
500 254 0.508
500 7 0.014
2000 1049 0.5245
Tab. 4.10: Tabulka zobrazující matici přiřazení hudebních žánrů s použitím neuronové sítě Vážná hudba Vážná hudba 415 Elektro 49 Jazz 104 Rock 39
36
Elektro 22 285 36 49
Jazz 38 36 318 23
Rock 25 130 42 389
Tab. 4.11: Tabulka zobrazující úspěšnost rozpoznávání pomocí neuronové sítě pro 5 nejlepších příznaků Celkem vzorků Rozpoznáno vzorků Úspěšnost
VÁŽNÁ HUDBA 500 355 0.71
ELEKTRO 500 156 0.312
JAZZ 500 272 0.544
ROCK 500 347 0.694
Celkem 2000 1130 0.565
Tab. 4.12: Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 10 ms pro k=3,4,5,6,7 k Celkem vzorků Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost
3 4 5 6 7
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 366 0.732 369 0.738 369 0.738 359 0.718 359 0.718
500 245 0.49 240 0.48 235 0.47 229 0.458 226 0.452
500 340 0.68 341 0.682 350 0.7 349 0.698 351 0.702
500 356 0.712 369 0.738 374 0.748 369 0.738 364 0.728
2000 1307 0.6535 1319 0.6595 1328 0.664 1306 0.653 1300 0.65
Tab. 4.13: Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 50 ms pro k=3,4,5,6,7 k Celkem vzorků Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost
3 4 5 6 7
VÁŽNÁ HUDBA 500 332 0.664 346 0.692 340 0.68 348 0.696 349 0.698
37
ELEKTRO 500 264 0.528 265 0.53 273 0.546 272 0.544 270 0.54
JAZZ 500 330 0.66 342 0.684 343 0.686 351 0.702 353 0.706
ROCK 500 365 0.73 366 0.732 370 0.74 371 0.742 363 0.726
Celkem 2000 1291 0.6455 1319 0.6595 1326 0.663 1342 0.671 1335 0.6675
Tab. 4.14: Tabulka úspěšností rozpoznání s použitím k-NN a délky okna 100 ms pro k=3,4,5,6,7 k Celkem vzorků Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost
3 4 5 6 7
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 332 0.664 332 0.664 336 0.672 334 0.668 330 0.66
500 292 0.584 297 0.594 295 0.59 295 0.59 290 0.58
500 332 0.664 329 0.658 339 0.678 340 0.68 335 0.67
500 353 0.706 350 0.7 336 0.672 343 0.686 320 0.64
2000 1309 0.6545 1308 0.654 1306 0.653 1312 0.656 1275 0.6375
Tab. 4.15: Tabulka úspěšností rozpoznání s použitím k -NN a délky okna 200 ms pro k=3,4,5,6,7 k Celkem vzorků Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost Rozpoznáno vzorků Úspěšnost
3 4 5 6 7
VÁŽNÁ HUDBA
ELEKTRO
JAZZ
ROCK
Celkem
500 305 0.61 310 0.62 302 0.604 303 0.606 306 0.612
500 338 0.676 335 0.67 335 0.67 336 0.672 330 0.66
500 219 0.438 210 0.42 207 0.414 212 0.424 215 0.43
500 59 0.118 64 0.128 65 0.13 61 0.122 68 0.136
2000 921 0.4605 919 0.4595 909 0.4545 912 0.456 919 0.4595
Tab. 4.16: Tabulka zobrazující matici přiřazení hudebních žánrů s použitím k -NN Vážná hudba Vážná hudba 348 Elektro 37 Jazz 86 Rock 25
38
Elektro 25 272 26 72
Jazz 98 60 351 32
Rock 29 131 37 371
Stejně jakou u neuronové sítě jsem v rámci snahy zvýšit úspěšnost klasifikace využil modifikované trénovací matice dle výsledků výběru nejlepších příznaků uvedených v tabulce 4.4. Byla použita délka okna 50 ms a hodnota koeficientu k = 6. Tyto hodnoty byly dle předchozích výsledků nejvhodnější a výsledky klasifikace v takovémto nastavení jsou uvedeny v tabulce 4.17. Tab. 4.17: Tabulka zobrazující úspěšnost rozpoznávání pomocí k -NN pro 5 nejlepších příznaků k Celkem vzorků Rozpoznáno vzorků Úspěšnost
4.3.3
6
VÁŽNÁ HUDBA 500 316 0.632
ELEKTRO 500 190 0.38
JAZZ 500 242 0.484
ROCK 500 268 0.536
Celkem 2000 1016 0.508
Hodnocení
Výsledky klasifikace hudebních žánrů byly různé v závislosti na nastavení vstupních parametrů. Pro neuronové sítě bylo dosaženo nejlepších výsledků při použití délky okna 50 ms, kdy výsledná úspěšnost dosahovala hodnoty 70,35%. Při použití k -NN bylo dosaženo nejlepšího výsledku s délkou okna 50 ms a koeficientem k = 6, kdy výsledná úspěšnost dosahovala hodnoty 67,1%. Zajímavým zjištěním byla nízká úspěšnost rozpoznání při použití vybraných nejkvalitnějších příznaků. V klasifikaci neuronovou sítí dosáhla úspěšnost pouze 56,5% a při použití k -NN dokonce jen 50,8%. Tento fakt nabízí 2 možné odůvodnění: prvním je zvolení špatné metody výběru příznaku, druhým může být nutnost použití více než 5ti příznaku, které dokáží v rámci klasifikace hudební žánry správně separovat. Dalším zájímavým zjištěním bylo v rámci použití metody k -NN, kdy bylo dosaženo největší úspěšnosti s použitím koeficientu k = 6, přičemž obecným doporučením je využití lichých koeficientů. Tento fakt byl ovšem proměnlivý v rámci změny délek oken a není proto tak prokazatelný. Při porovnání hodnot rozpoznaných hudebních žánrů bylo dosaženo nejnižších hodnot pro elektro a nejlépe byla rozeznána vážná hudba společně s rockem. Z tabulek 4.10 a 4.16 je zřejmé, že nejčastěji byla elektro hudba zařazena do kategorie rocku a to je asi hlavním problémem, jelikož oba žánry mají společné prvky a správně je od sebe odlišit je tedy dosti obtížné.
39
4.4
Program
Výstupem bakalářské práce je program, který umožňuje uživateli klasifikovat vstupní wav soubor do 4 klasifikačních tříd. Grafické rozhraní bylo vytvořeno v prostředí MATLAB, s jehož funkcemi také program pracuje. Program respektuje výsledky testování uvedené v bakalářské práci a využívá je k co nejlepší výkonnosti klasifikace. Program nejprve přečte vybraný wav soubor a následně ho rozděluje na segmenty o délce 4 s. Dále vypočte vektor příznaků vybraného segmentu a klasifikuje ho dle uživatelem vybrané metody. Segment je na základě testování a výsledků práce [19] vybrán z prostřední části dané zvukové nahrávky. Takové nastavení dosahuje nejvyšší rozpoznávací úspěšnosti.
Obr. 4.2: Pracovní okno programu při zpracování testovací nahrávky rock.wav. Práce s programem je velmi jednoduchá a pro uživatele spočívá ve dvou krocích: v prvním je nutno zvolit klasifikační metodu a ve druhém dojde k vybrání skladby určené ke klasifikaci. Vzhledem k tomu, že výpočetní skript není nijak optimalizván pro práci v reálném čase, je třeba na výsledek několik sekund počkat. Pracovní okno programu je znázorněno na obrázku 4.2. Pracovní plocha se skláda z tlačítka pro výběr skladby, pole grafu, ve kterém se zobrazuje spektrum dané nahrávky, selectu boxu pro výběr klasifikační metody a několika textových polí, které zobrazují doplňkové informace. Základní informací, kterou program získá, je rozpoznaný žánr
40
skladby a tato informace je zobrazena červenou barvou v pravém dolním rohu. Dalšími zobrazenými informacemi je název hudebního souboru, jeho vzorkovací kmitočet a délka.
41
5
ZÁVĚR
Tématem bakalářské práce byla klasifikace akustických signálu, což je téma hodně široké a pro bakalářskou práci ho bylo nutné upřesnit. Proto jsem se společně s vedoucím vedoucím bakalářské práce rozhodl zaměřit na řešení problému klasifikace hudebních žánrů. V první kapitole jsem se věnoval úvodu do problematiky a souhrnu publikovaných prací a výzkumů, které byly na danou problematiku již vytvořeny. Druhá kapitola je věnována jednomu ze základních a nezbytných úkolů při klasifikaci akustických signálů obecně, extrakci příznaků. Nejprve jsem se pokusil dle dostupných zdrojů rozdělit používané příznaky do kategorií, dále jsem představil možnosti výběru vhodných příznaků a poté jsem detailněji popsal použité příznaky. Třetí kapitola se věnuje metodám klasifikace. V úvodu je nabídnut teoretický základ, na nějž navazuje rozbor dvou použitých metod, neuronových sítí a k -nejbližšího souseda. Doplněním je představení dalších klasifikačních metod používaných pro klasifikaci hudebních žánrů. Ve čtvrté kapitole se věnuji samotným výsledkům práce, diskuzi dosažených výsledků a popisem vytvořeného programu. Asi nejpodstatnějším kritériem pro hodnocení klasifikačních metod a klasifikačních systému je jejich účinnost. V rámci práce jsem testoval několik nastavení parametrů a nejlepších výsledků jsem dosáhl při použití neuronové sítě pro délku okna 50 ms, když úspěšnost správného rozpoznání byla 70,35%. Nejlepšího výsledku s použitím metody k -nejbližšího souseda bylo dosaženo při délce okna 50 ms a koeficientu k = 6, úspěšnost zde byla 67,1%. Dosažené výsledky považuji vzhledem ke komplexnosti daného problému, počtu rozpoznávaných hudebních žánrů a referenci k reálné schopnosti člověka hudbu zařadit a rozpoznat jako dostačující. Nejobtížněji klasifikovatelným hudebním žánrem se jeví elektro, které bylo velmi často vyhodnoceno jako rock. V rámci zkvalitnění systému by proto mělo dojít k nalezení dalších příznaků, které tyto dva žánry dostatečně oddělí. Naopak nejlépe rozpoznatelná byla z hudebních žánrů vážná hudba, jejiž úspěšnost správného rozpoznání dosáhla až 83%, následované rockem s úspěšností až 78,3%. Nejlepších metod a nastavení jsem využil při vytváření uživatelského programu pro klasifikaci hudebních žánru, který jsem vytvářel v prostředí MATLAB a jeho kód je umístěn na přiloženém CD. Program je uživatelsky jednoduchý o jeho ovládání je rozloženo do dvou kroků (výběr klasifikátoru a skladby ke klasifikaci). Kromě přiřazeného hudebního žánru program vypíše jméno hudebního souboru, jeho vzorkovací frekvenci a délku a zobrazí časové spektrum. Z mého pohledu existuje výrazný prostor pro pokračování v práci a zlepšení dosažených výsledků. Prvním zlepšením může být přídání dalších příznaků, kde bych se chtěl zmínit o příznacích spojených s detekcí rytmických vlastností zvukového signálu. Takový příznak by mohl příznivě ovlivnit problémy s rozpoznáním elektro
42
hudby. Dalším vylepšením by mohlo dojít při použití dalších klasifikačních metod, které jsem v rámci bakalářské práci uvedeny. Posledním krokem, který by dle mého názoru vedl ke zlepšení systému, je důkladnější a rozsáhlejší práce na výběru hudební databáze, která je velmi podstatná pro extrakci příznaků i pro klasifikaci. Zpracování akustických signálů a jejich klasifikace je zajímavým oborem a přímo problematika klasifikace hudebních žánrů ještě určitě nedosáhla svých limitů a myslím, že zde existuje velký prostor pro budoucí výzkum.
43
LITERATURA [1] PSUTKA J., MÜLLER L., MATOUŠEK J., RADOVÁ V. . Mluvíme s počítacem cesky. Academia, Praha 2006. [2] RENDEK T. . Multijazyková analýza emočního stavu mluvčího. Bakalářská práce, VUT, Brno 2008. [3] KOSINA K. . Music Genre Recognition. Diplomová práce, Medientechnik und Design in Hagenberg , Hagenberg 2002. [4] PERROT D., GJERDIGEN R.O. . Scanning the dial: An exploration of factors in the identification of musical style. In Proceedings of the 1999 Society for Music Perception and Cognition, 1999. [5] PEETERS G. . A large set of audio features for sound description (similarity and classification) in the CUIDADO project. CUIDADO I.S.T. Project Report, 2004. [6] TZANETAKIS G. . Musical Genre Classification of Audio Signals. IEEE transactions on speech and audio processing, vol. 10, no. 5, 2002. [7] Wikipedia - otevřená encyklopedie [online]. Poslední aktualizace 27. 4. 2009 [cit. 25. 5. 2009]. Dostupné z URL:
. [8] THE MATLAB INC. . MATLAB HTML documentation. [online]. Součást simulačního prostředí MATLAB verze 7.6.0,2008. [9] HONZÍK P. . Strojové učení. Skripta předmětu MSTU, Brno VUT 2006. [10] JAN J. . Číslicová filtrace, analýza a restaurace signálů. rozš. vyd. Brno. Vutium, 2002. 427 s. ISBN 80-214-2911-9. [11] LI T., TZANETAKIS G. . FACTORS IN AUTOMATIC MUSICAL GENRE CLASSIFICATION OF AUDIO SIGNALS. 2003 IEEE Workshop on Applications of Signal Processing 10 Audio and Acoustics, New Paltz, NY, 2003. [12] JODER C., ESSID S., RICHARD G. . Temporal Integration for Audio Classification With Application to Musical Instrument Classification. IEEE TRANSACTIONS ON AUDIO, SPEECH, AND LANGUAGE PROCESSING, 2009. [13] LI T., OGIHARA M. . Toward Intelligent Music Information Retrieval. IEEE TRANSACTIONS ON MULTIMEDIA, 2006.
44
[14] TZANETAKIS G. . SONG-SPECIFIC BOOTSTRAPPING OF SINGING VOICE STRUCTURE. 2004 IEEE International Conference on Multimedia and Expo (ICME), 2004. [15] HIDDEN MARKOV MODEL TOOLKIT. Portable toolkit for building and manipulating hidden Markov models. Dostupné z URL: . . [16] TZANETAKIS G., COOK P. . Sound analysis using mpeg compressed audio. in Proc.1999 IEEE Int.conf. on Audio, Speech and Signal Processing ICASSP00, 1999. [17] SCHULER B., EYBEN F., RIGOLL G. . Fast and Robust Meter and Tempo Recognition for the Automatic Discrimination of Ballroom Dance Styles. IEEE International Conference on Acoustics, Speech and Signal Processing, 2007. ICASSP 2007. [18] PÉREZ-SANCHO C., PONCE DE LEÓN P., INESTA J.M. . A comparison of statistical approaches to symbolic genre recognition. Proc. of the Int. Computer Music Conf. ICMC 2006, 545–550, 2006. [19] SILLA C.N., KAESTNER C.C.A., KOERICH A.L. . Automatic music genre classification using ensemble of classifiers. IEEE International Conference on Systems, Man and Cybernetics, 2007. [20] MARSYAS. Music Analysis, Retrieval and Synthesis for Audio Signals. Dostupné z URL: . [21] MIKOLOV T. . Language models for automatic speech recognition of Czech lectures. In: Proc. STUDENT EEICT 2008, Brno, CZ, FEKT VUT, 2008, s. 1-5, ISBN 978-80-214-3617-6. [22] MAMMONE R.J., ZHANG X., RAMACHANDRAN R.P. . Robust speaker recognition: a feature-based approach. Signal Processing Magazine, IEEE, Volume 13, 1996. [23] BISHOP P. Pattern Recognition and Machine Learning. Springer, New York, 2006. [24] VANĚK J. . Music genre recognition. In: Proc. STUDENT EEICT 2009, Brno, CZ, FEKT VUT, 2009.
45
SEZNAM SYMBOLŮ, VELIČIN A ZKRATEK fvz
vzorkovací kmitočet
M [k] modul k-té složky spektra K
celkový počet bodů spektra
fm
frekvence v nelineární melovské škále
R
frekvence spektrálního koeficientu roll-off
Ni
Nyquistova frekvence
Q(.) míra geometrické oddělitelnosti S2
aritmetická střední hodnota
P (wj ) známá apriorní pravděpodobnost p(x|wj ) známá podmíněná pravděpodobnost P (wj |x) podmíněná aposteriorní pravděpodobnost k
koeficient klasifikační metody k -NN
STFT Krátkodobá Fourierova Transformace – Short Time Fourier Transform MFCC Melovské kepstrální koeficienty – Mel-frequency cepstral coefficients FFT Rychlé Fourierovy transformace – Fast Fourier Transform IFFT Zpětné rychlá Fourierova transformace – Inverse Fast Fourier Transform ZCR Počet průchodů nulou – Zero-Crossing Rate k -NN k -nejbližší soused – k -Nearest Neighbor SVM Algoritmy podpůrných vektorů – Support Vector Machine HMM Skryté Markovovy modely – Hidden Markov Models GMM Smíšený Gaussův model – Gaussian Mixture Model
46
SEZNAM PŘÍLOH A CD - bakalářská práce
48
B Hudební databáze
49
47
A
CD - BAKALÁŘSKÁ PRÁCE
Přiložené CD obsahuje: • bakalářskou práce ve formátu pdf • program pro klasifikaci hudebních žánrů • trénovací datasety ve formátu mat • testovací datasety ve formátu mat • kódy použitých skriptů v prostředí MATLAB
48
B
HUDEBNÍ DATABÁZE
Výběr skladeb z použité hudební databáze: Vážná hudba 1. A. Dvořák - Symfonie č.9 Largo 2. A. Vivaldi - Čtvero ročních období 3. B. Smetana -Vltava 4. I. Čajkovskij - Koncert B moll pro klavír 5. W.A. Mozart - Turecký pochod Elektro 1. Prodigy - Breathe 2. Daft Punk - Phoenix 3. Faithless - Insomnia 4. High contrast - Sleepless 5. The chemical brothers - Orange wedge Jazz 1. L. Armstrong - Mack the knife 2. E. Fitzgerald - Mr. Paganini 3. C. Parker - Scraple from the apple 4. M. Davis - Billy boy 5. G. Miller - In the mood Rock 1. AC/DC - Big gun 2. Black sabbath - Children of the grave 3. Franz Ferdinand - Take me out 4. Muse - Supermassive black hole 5. Nirvana - Smell like teen spirit
49