Spektrální analýza hudební skladby

Podobné dokumenty
Úvod do zpracování signálů

SIGNÁLY A LINEÁRNÍ SYSTÉMY

SIGNÁLY A LINEÁRNÍ SYSTÉMY

Signál v čase a jeho spektrum

Lineární a adaptivní zpracování dat. 3. SYSTÉMY a jejich popis ve frekvenční oblasti

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

31SCS Speciální číslicové systémy Antialiasing

SIGNÁLY A SOUSTAVY, SIGNÁLY A SYSTÉMY

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

Lineární a adaptivní zpracování dat. 2. SYSTÉMY a jejich popis v časové doméně a frekvenční doméně

0.1 Úvod do lineární algebry

0.1 Úvod do lineární algebry

31ZZS 9. PŘEDNÁŠKA 24. listopadu 2014

Matematika (CŽV Kadaň) aneb Úvod do lineární algebry Matice a soustavy rovnic

ANALÝZA LIDSKÉHO HLASU

Klasifikace hudebních stylů

Akustika. 3.1 Teorie - spektrum

doc. Dr. Ing. Elias TOMEH Elias Tomeh / Snímek 1

MATURITNÍ TÉMATA Z MATEMATIKY

VYBRANÉ PARTIE Z NUMERICKÉ MATEMATIKY

Fourierova transformace

7. Rozdělení pravděpodobnosti ve statistice

Zvuk. 1. základní kmitání. 2. šíření zvuku

2D transformací. červen Odvození transformačního klíče vybraných 2D transformací Metody vyrovnání... 2

1 Linearní prostory nad komplexními čísly

FOURIEROVA ANAL YZA 2D TER ENN ICH DAT Karel Segeth

M - Kvadratické rovnice a kvadratické nerovnice

Číslicové zpracování signálů a Fourierova analýza.

CVIČNÝ TEST 24. OBSAH I. Cvičný test 2. Mgr. Kateřina Nováková. II. Autorské řešení 6 III. Klíč 13 IV. Záznamový list 15

Lineární a adpativní zpracování dat. 3. Lineární filtrace I: Z-transformace, stabilita

Spektrální analýza a diskrétní Fourierova transformace. Honza Černocký, ÚPGM

Příloha č. 1. amplitudová charakteristika filtru fázová charakteristika filtru / frekvence / Hz. 1. Určení proudové hustoty

Gymnázium Jiřího Ortena, Kutná Hora

Komprese dat Obsah. Komprese videa. Radim Farana. Podklady pro výuku. Komprese videa a zvuku. Komprese MPEG. Komprese MP3.

Základní pojmy o signálech

Necht tedy máme přirozená čísla n, k pod pojmem systém lineárních rovnic rozumíme rovnice ve tvaru

" Furierova transformace"

Funkce komplexní proměnné a integrální transformace

1 Tyto materiály byly vytvořeny za pomoci grantu FRVŠ číslo 1145/2004.

Grafika na počítači. Bc. Veronika Tomsová

(Cramerovo pravidlo, determinanty, inverzní matice)

Při návrhu FIR filtru řešíme obvykle následující problémy:

Digitalizace převod AS DS (analogový diskrétní signál )

M - Příprava na 3. čtvrtletní písemnou práci

Základy a aplikace digitálních. Katedra radioelektroniky (13137), blok B2, místnost 722

7. Funkce jedné reálné proměnné, základní pojmy

Matematická analýza III.

Kapitola 1. Signály a systémy. 1.1 Klasifikace signálů

CVIČNÝ TEST 15. OBSAH I. Cvičný test 2. Mgr. Tomáš Kotler. II. Autorské řešení 6 III. Klíč 15 IV. Záznamový list 17

V této kapitole si zobecníme dříve probraný pojem limita posloupnosti pro libovolné funkce.

U Úvod do modelování a simulace systémů

Vlastnosti a modelování aditivního

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

Hisab al-džebr val-muqabala ( Věda o redukci a vzájemném rušení ) Muhammada ibn Músá al-chvárizmího (790? - 850?, Chiva, Bagdád),

4.3. GONIOMETRICKÉ ROVNICE A NEROVNICE

1 Mnohočleny a algebraické rovnice

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

Lineární a adaptivní zpracování dat. 1. ÚVOD: SIGNÁLY a SYSTÉMY

1. Několik základních pojmů ze středoškolské matematiky. Na začátku si připomeneme následující pojmy:

a počtem sloupců druhé matice. Spočítejme součin A.B. Označme matici A.B = M, pro její prvky platí:

Vyhodnocení 2D rychlostního pole metodou PIV programem Matlab (zpracoval Jan Kolínský, dle programu ing. Jana Novotného)

i=1 Přímka a úsečka. Body, které leží na přímce procházející body a a b můžeme zapsat pomocí parametrické rovnice

Zvuková karta. Zvuk a zvuková zařízení. Vývoj, typy, vlastnosti

1 Projekce a projektory

označme j = (0, 1) a nazvěme tuto dvojici imaginární jednotkou. Potom libovolnou (x, y) = (x, 0) + (0, y) = (x, 0) + (0, 1)(y, 0) = x + jy,

Akustika pro posluchače HF JAMU

P7: Základy zpracování signálu

Transformace obrazu Josef Pelikán KSVI MFF UK Praha

IB112 Základy matematiky

6 Algebra blokových schémat

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

z = a bi. z + v = (a + bi) + (c + di) = (a + c) + (b + d)i. z v = (a + bi) (c + di) = (a c) + (b d)i. z v = (a + bi) (c + di) = (ac bd) + (bc + ad)i.

Circular Harmonics. Tomáš Zámečník

B) výchovné a vzdělávací strategie jsou totožné se strategiemi vyučovacího předmětu Matematika.

Mgr. Tomáš Kotler. I. Cvičný test 2 II. Autorské řešení 7 III. Klíč 15 IV. Záznamový list 17

Maturitní otázky z předmětu MATEMATIKA

Funkce a lineární funkce pro studijní obory

Seriál II.II Vektory. Výfučtení: Vektory

SOUSTAVY LINEÁRNÍCH ALGEBRAICKÝCH ROVNIC

1. Vlastnosti diskretních a číslicových metod zpracování signálů... 15

(Následující odstavce jsou zde uvedeny jen pro zájemce.) , sin2π, (2)

KOMPLEXNÍ ČÍSLA INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ

Matematika B101MA1, B101MA2

1 Modelování systémů 2. řádu

Vstupní signál protne zvolenou úroveň. Na základě získaných údajů se dá spočítat perioda signálu a kmitočet. Obrázek č.2

ANALYTICKÁ GEOMETRIE V ROVINĚ

CW01 - Teorie měření a regulace

Maticí typu (m, n), kde m, n jsou přirozená čísla, se rozumí soubor mn veličin a jk zapsaných do m řádků a n sloupců tvaru:

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář,

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ. Modernizace studijního programu Matematika na PřF Univerzity Palackého v Olomouci CZ.1.07/2.2.00/28.

9 Kolmost vektorových podprostorů

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ. Fakulta elektrotechniky a komunikačních technologií BAKALÁŘSKÁ PRÁCE

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

TSO NEBO A INVARIANTNÍ ROZPOZNÁVACÍ SYSTÉMY

Logaritmické a exponenciální funkce

Diferenciální rovnice

BIOMECHANIKA KINEMATIKA

Popisná statistika kvantitativní veličiny

Úvod do lineární algebry

Transkript:

FAKULTA INFORMATIKY MASARYKOVY UNIVERZITY Spektrální analýza hudební skladby Diplomová práce Bc. Lukáš Holčík Brno, podzim 2009

ii

Prohlášení: Prohlašuji, že tato diplomová práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo ze kterých jsem čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. V Brně dne 10. ledna 2010 Lukáš Holčík Vedoucí práce: MgA. Rudolf Růžička iii

Poděkování: Za cenné rady a připomínky k této diplomové práci bych rád poděkoval zejména tátovi prof. Ing. Jiřímu Holčíkovi CSc., který mi umožnil získat hlubší vzhled do problematiky spektrální analýzy a signálů vůbec, a dále vedoucímu práce MgA. Rudolfu Růžičkovi. iv

Shrnutí: Cílem této práce je realizace programu sloužícího k analýze hudebních skladeb, vizualizaci jejich obsahu ve smyslu transkripce melodie monofonních a polyfonních skladeb. U monofonních skladeb (sólový zpěv, hra na house, flétnu, ) je kladen důraz na preciznost provedené analýzy a detekci jemných nuancí jako vibrato na tónu, nástupy a přechody mezi tóny. U polyfonní analýzy se autor zaměřil na analýzu sólových hudebních skladeb hraných na klavír, kytaru, případně na vícehlasé pěvecké kompozice. V textu práce autor popisuje teoretické pozadí problematiky, základní principy použitých algoritmů, implementaci algoritmů, vlastní přínos a přikládá výsledky analýzy několika hudebních skladeb jako ukázky. Klíčová slova: spektrální analýza, hudba, signály, Fourierova transformace, Fourier, monofonní, jednohlasá, polyfonní, vícehlasá, autokorelace, FFT, DFT, STFT, Constant Q transform, pattern matching, direct cancellation, joint estimation, Java, Swing, GUI v

Obsah 1 Úvod... 1 2 Charakteristika signálů... 3 2.1 Fyzikální vlastnosti zvuku... 3 2.2 Hudební signály... 4 2.2.1 Vlastnosti hudebních signálů... 4 2.2.2 Ladění... 4 2.2.3 Jev chybějící fundamentální frekvence... 7 3 Úvod do transkripce hudby... 8 4 Spektrální analýza... 9 4.1 Úvod do Fourierovy analýzy... 9 4.2 Fourierova analýza s lineárním frekvenčním rozlišením... 10 4.2.1 Diskrétní Fourierova transformace... 10 4.2.1.1 Značení a formát DFT reálného signálu... 11 4.2.1.2 Bázové funkce... 13 4.2.1.3 Výpočet DFT analýza... 13 4.2.1.3.1 DFT pomocí soustavy lineárních rovnic... 13 4.2.1.3.2 DFT pomocí korelace... 14 4.2.1.3.3 Rychlá Fourierova transformace (FFT)... 14 4.2.1.4 Polární značení... 15 4.2.2 Krátkodobá Fourierova transformace (STFT)... 16 4.2.2.1 Funkce datového okna... 16 4.2.2.1.1 Obdélníkové okno... 17 4.2.2.1.2 Hammingovo okno... 17 4.3 Fourierova transformace s logaritmickým frekvenčním rozlišením... 18 4.4 Constant Q transform (CQT)... 20 4.4.1 Výpočet CQT... 21 4.4.2 Optimalizace použitím half-band filtru a podvzorkováním... 22 4.4.3 Optimalizace CQT pomocí transformace FFT... 23 5 Monofonní analýza (MA)... 26 5.1 Zúžená autokorelační funkce (ACF)... 26 5.1.1 Výpočet ACF... 26 5.1.2 Výpočet frekvence z výsledků ACF... 28 5.1.3 Implementace... 28 5.2 Invertovaná autokorelační funkce (IACF)... 28 5.2.1 Implementace... 29 5.3 Porovnávání se vzorem (pattern matching)... 29 5.3.1 Implementace... 30 5.4 Pomocná metoda prokládání paraboly (quadratic fit)... 30 5.5 Pomocná metoda vyhlazení melodie... 31 6 Polyfonní analýza (PA)... 32 6.1 Detekce počtu současně znějících tónů... 32 6.2 Metody polyfonní analýzy... 32 6.2.1 Iterativní odhad... 32 6.2.1.1 Celkové vyrušení... 32 6.2.1.2 Implementace... 32 6.2.2 Spojitý odhad (joint estimation)... 33 6.2.2.1 Implementace... 33 6.2.3 Vztah korelace harmonického vzoru a spektra... 34 7 Program AUDIOTAPE... 35 7.1 Spuštění programu a konfigurace prostředí... 35 vi

7.2 Analýza zvukového souboru... 36 7.2.1 Otevření souboru... 36 7.2.2 Konfigurace... 36 7.2.3 Výsledky analýzy... 36 7.2.4 Uložení výsledků... 36 7.3 Nahrávání... 37 8 Ukázky... 38 9 Závěr... 41 10 Bibliografie... 42 vii

1 Úvod Počítačová analýza hudby je téma, na které bylo napsáno již mnoho knih, a mnozí lidé mu zasvěcují svoji vědeckou kariéru. Moderní metody hudební analýzy jsou na velice vysoké úrovni, nicméně stále ještě jakýkoliv počítačový algoritmus schopnosti trénovaného lidského ucha nenahradí. Přesto pokud člověk s hudbou začíná a nemá ještě vypracovaný hudební sluch, může mu být softwarový nástroj dobrým pomocníkem na cestě hudebního rozvoje. K dispozici jsou různé softwarové nástroje, které se pokouší převést předložený zvukový soubor přímo do formátu MIDI. Výsledky, které jsem z takových programů obdržel, nebyly zrovna uspokojující a rozpoznat ve vygenerovaném notovém zápisu původní skladbu dalo často více práce než rozpoznat ji v původním zvukovém znění. Programům není co vyčítat, neboť problematika automatické transkripce hudby je opravdu příliš komplexní na to, než aby přímý přepis ze zvukového souboru do not dával vždy uspokojující výsledky. Tato transformace je výsledkem posloupnosti několika kroků, z nichž každý do výsledku zanáší vlastní chybový faktor. Proces začíná od spektrální analýzy zvuku, která detekuje jeho frekvenční složky. Ze spektra signálu se vybranou metodou získají jednotlivé noty, které signál tvoří, a ty se v závěrečné fázi spojují do celistvých časových celků, které jsou zaneseny do notové partitury. Tato diplomová práce nemá za cíl vytvořit dokonalý automatický transkripční systém, který by ze skladeb generoval hotový notový zápis. Soustředil jsem se zejména na první dva zmíněné kroky, tj. spektrální analýzu a rozpoznávání not. Generování notového zápisu ve formátu MIDI není v programu zahrnuto, neboť si osobně myslím, že to není příliš praktické. Pokud člověk chce skladbu zapsat, stejně nepoužije vygenerovanou skladbu jako základ, a bude radši skladbu psát na čistý papír. Generování MIDI do procesu vnáší jen další problémový prvek, navíc se při tomto kroku ztratí hodně cenných informací. Cílovým výstupem mého programu je grafické znázornění průběhu skladby, u kterého si může uživatel skladbu přehrát, a zároveň tak skladbu slyšet i vidět. Tuto funkci neměl žádný z volně dostupných programů, které jsem vyzkoušel. Další témata hudební transkripce jako detekce tempa a rozpoznávání hudebních nástrojů jsem zanechal nedotčena, neboť praktický dopad těchto témat pro studenta hudby není příliš významný. Soustředil jsem se především na to, abych dokázal ve skladbě rozpoznat jednotlivé noty a výsledek této analýzy předložil k posouzení uživateli. Z praxe totiž vím, že v některých pasážích, které počítač nedokáže přesně rozpoznat, lidské ucho nemá potíže, zatímco v jiných, kde člověk nestačí, tam zase nemá problém počítač. Člověk může na rozdíl od počítače využít doplňujících znalostí o skladbě (např. předpoklad o opakování různých pasáží), z kterých špatně rozeznatelné tóny odvodí. Jednodušší variantou analýzy hudební skladby je analýza melodie v jednohlasé (monofonní) skladbě. V tomto případě není příliš převratné pokoušet se o transkripci melodie, nicméně snažil jsem se využít přesné metody detekce frekvence k tomu, abych znázornil jemné nuance průběhu melodie, jako jsou vibrato a přechody mezi tóny, které mohou studentovi hudby napovědět o způsobu tvoření a průběhu tónu. Zejména může sloužit pro lepší uvědomění si vlastního zpěvu a jeho kvalit. Osobně si také myslím, že detailní analýza průběhu melodie je celkem zajímavá věc, která může člověku představit nový pohled na věc. Práce začíná úvodem do problematiky počítačových signálů v kapitole 2. Kapitola 3 obsahuje krátký popis problematiky transkripce a historii vývoje transkripčních systémů. Kapitola 4 popisuje hlouběji metody spektrální analýzy použité při implementaci algoritmů, které jsou podrobně rozebrány 1

v kapitolách 5 a 6. Kapitola 7 popisuje samotný program Audiotape, který je výsledkem implementace principů popsaných v této diplomové práci. Na závěr jsou v kapitole 8 přiloženy ukázky výsledků analýz hudebních skladeb. 2

2 Charakteristika signálů Obecně je signál jevem fyzikální, chemické, biologické, ekonomické či jiné materiální povahy, nesoucí informaci o stavu systému, který jej generuje. Většinou se signál chápe jako kvantita proměnlivá v čase. Obrázek 2.1 Ukázka periodického signálu - jedna sekunda lidského EEG Obrázek 2.2 Ukázka neperiodického signálu - jeden rok vývoje akciového indexu NASDAQ (zdroj Yahoo! Finance) Existují periodické a neperiodické signály. Periodické signály jsou charakteristické opakováním určitého vzoru, který je popsán frekvencí a odpovídající vlnovou délkou. Hudební signály jsou obvykle alespoň v omezeném časovém rámci periodické a právě tato periodičnost nám umožňuje zkoumat jejich vlastnosti. 2.1 Fyzikální vlastnosti zvuku Zvuk je specifickou variantou signálu, jehož podstatou je oscilace tlaku v kapalném, plynném, nebo pevném prostředí vzduchu. Vlastnosti zvuku jsou shodné s vlastnostmi obecného vlnění, jsou jimi (1): frekvence, vlnová délka, amplituda, intenzita, rychlost a směr. Vlastností specifickou pro příčné vlnění je polarizace. Člověk je schopen vnímat zvuk o frekvencích v rozsahu zhruba 20Hz 20kHz, nicméně tyto hranice nejsou definitivní. Z horní hranice lidské slyšitelnosti (mj.) vychází frekvence, s jakou jsou vzorkovány hudební stopy na zvukových CD tj. 44100Hz. Dle Nyquistova teorému lze se vzorkovací frekvencí zaznamenat signál s maximální frekvencí 22050Hz, což je horní limit lidského ucha s malou rezervou. 3

2.2 Hudební signály Než se dostaneme k problematice transkripce, bude potřeba uvést základní terminologii týkající se sluchového vnímání a hudby. Abychom se mohli bavit o hudebních zvukových signálech, musíme popsat důležité slyšitelné atributy, kterými jsou zvuky charakterizovány. 2.2.1 Vlastnosti hudebních signálů Existují 4 subjektivní atributy, které jsou při charakterizaci hudebních signálů obzvláště užitečné. Jsou jimi: výška, hlasitost, délka a témbr (2): Výška je charakteristika, která umožňuje seřazení zvuků na frekvenční stupnici zespodu nahoru. Přesněji je výška definovaná jako frekvence sinusové křivky, která je přiřazena zdrojovému zvuku lidským posluchačem. Odpovídajícím fyzikálním termínem je fundamentální frekvence (F0), která je definována pouze pro periodické a téměř periodické zvuky. Pro tyto druhy zvuků je F0 definována jako inverze vlnové délky a je úzce spjata s výškou. Vnímaná hlasitost akustického signálu má netriviální vztah k jeho fyzikálním vlastnostem a výpočetní model vnímání hlasitosti tvoří základ psychoakustiky (věda zabývající se vnímáním zvuků. V psychoakustickém experimentu se sledují vztahy mezi akustickými jevy a jejich subjektivně vnímanou podobou předkládáním různých úkolů lidským posluchačům). V počítačovém zpracování hudby se ovšem mnohem běžnější vyjádření hlasitosti jako druhá mocnina střední kvadratické hodnoty převedená do logaritmické stupnice (decibely), díky které se vyrovnáme s širokým dynamickým rozpětím zvuku. V případě, kdy lze toto jednoznačně rozlišit, má délka zvuku přímý vztah s jeho fyzickým trváním. Témbr se často označuje jako barva zvuku a je úzce spjatý s rozpoznáváním zdrojů zvuku. Např. zvuky houslí a flétny mohou být identické co do výšky, hlasitosti a délky, ale přesto jsou snadno rozeznatelné díky své barvě. Koncept této vlastnosti se nedá jednoduše vyjádřit nějakou fyzikální vlastností zvuku, ale spíše souvisí s rozložením spektrální energie a její distribucí v čase. Zatímco výška, hlasitost a délka zvuku mohou být jednoduše zaznamenány skalární hodnotou, barva je vícerozměrný koncept a je typicky reprezentována vektorem charakteristik. S barvou zvuku velice úzce souvisí tzv. vyšší harmonické frekvence (alikvotní tony), které nástroje generují. Blíže se k nim dostaneme při popisu spektrální analýzy zvuku. 2.2.2 Ladění Jako záchytný bod při ladění hudebních nástrojů se po několika historických změnách ustálil tón A o frekvenci 440Hz tzv. komorní A. Americký hudební průmysl k tomuto ladění došel neformální cestou jako ke kompromisu a od roku 1926 bylo toto ladění používáno při výrobě hudebních nástrojů. Jako mezinárodní standard byl přijat organizací ISO v roce 1955 (potvrzen v roce 1975) jako ISO 16. Lidské vnímání hudby je přibližně logaritmické: vzdálenost, kterou člověk vnímá mezi notami A110 a A220 je stejná jako mezi A220 a A440. Frekvence vyššího tónu v intervalu oktávy nad nižším tónem je vždy dvojnásobná. Existuje několik předpisů, jak noty v rozmezí oktávy ladit. Nejrozšířenější je rovnoměrně temperované ladění, které je typické konstantním poměrem mezi dvěma sousedními notami. Z toho vyplývá, že u rovnoměrně temperovaného ladění jsou všechny intervaly stejného druhu (kvinty, kvarty, tercie atd.) přesně stejně velké. Ostatní ladění jsou většinou založena na vztahu 4

alikvotní frekvence základního tónu a tónu některého intervalu. Přesný vztah pro výpočet frekvence tónu rovnoměrně temperovaného ladění podle indexu MIDI je (Rovnice 2.1). Obrácený vztah pro výpočet MIDI indexu noty dle frekvence je uveden v následující rovnici (Rovnice 2.2). Rovnice 2.1 Frekvence noty podle MIDI indexu Rovnice 2.2 MIDI index noty podle frekvence Konstanty vyskytující se v definičních vztazích mají následující významy: - 69 MIDI index komorního A - 440 frekvence komorního A - 12 oktáva je tvořena z 12 půltónů Následující referenční tabulka obsahuje přehled tónů v rozsahu standardní 88 tónové klaviatury. Uvedl jsem dva způsoby značení oktáv, se kterými jsem se setkal. V závislosti na způsobu značení oktáv můžeme narazit na dva způsoby značení komorního A, a to A0 a A4. 5

Oktáva #1 Oktáva #2 MIDI index Jméno noty Frekvence [Hz] Vlnová délka *sek+ Vlnová délka při 44100Hz [vzorky] 1 1-4 -4 21 22 A A # /B b 27,50 29,14 0,0364 0,0343 1603,64 1513,63 1-4 23 B 30,87 0,0324 1428,68 2-3 24 C 32,70 0,0306 1348,49 2-3 25 C # /D b 34,65 0,0289 1272,81 2-3 26 D 36,71 0,0272 1201,37 2-3 27 D # /E b 38,89 0,0257 1133,94 2-3 28 E 41,20 0,0243 1070,30 2-3 29 F 43,65 0,0229 1010,23 2-3 30 F # /G b 46,25 0,0216 953,53 2-3 31 G 49,00 0,0204 900,01 2-3 32 G # /A b 51,91 0,0193 849,50 2-3 33 A 55,00 0,0182 801,82 2-3 34 A # /B b 58,27 0,0172 756,82 2-3 35 B 61,74 0,0162 714,34 3-1 48 C 130,81 0,0076 337,12 3-1 49 C # /D b 138,59 0,0072 318,20 3-1 50 D 146,83 0,0068 300,34 3-1 51 D # /E b 155,56 0,0064 283,49 3-1 52 E 164,81 0,0061 267,57 3-1 53 F 174,61 0,0057 252,56 3-1 54 F # /G b 185,00 0,0054 238,38 3-1 55 G 196,00 0,0051 225,00 3-1 56 G # /A b 207,65 0,0048 212,37 3-1 57 A 220,00 0,0045 200,45 3-1 58 A # /B b 233,08 0,0043 189,20 3-1 59 B 246,94 0,0040 178,58 4 0 60 C 261,63 0,0038 168,56 4 0 61 C # /D b 277,18 0,0036 159,10 4 0 62 D 293,66 0,0034 150,17 4 0 63 D # /E b 311,13 0,0032 141,74 4 0 64 E 329,63 0,0030 133,79 4 0 65 F 349,23 0,0029 126,28 4 0 66 F # /G b 369,99 0,0027 119,19 4 0 67 G 392,00 0,0026 112,50 4 0 68 G # /A b 415,30 0,0024 106,19 4 0 69 A 440,00 0,0023 100,23 4 0 70 A # /B b 466,16 0,0021 94,60 4 0 71 B 493,88 0,0020 89,29 5 1 72 C 523,25 0,0019 84,28 5 1 73 C # /D b 554,37 0,0018 79,55 5 1 74 D 587,33 0,0017 75,09 5 1 75 D # /E b 622,25 0,0016 70,87 5 1 76 E 659,26 0,0015 66,89 5 1 77 F 698,46 0,0014 63,14 5 1 78 F # /G b 739,99 0,0014 59,60 5 1 79 G 783,99 0,0013 56,25 5 1 80 G # /A b 830,61 0,0012 53,09 5 1 81 A 880,00 0,0011 50,11 5 1 82 A # /B b 932,33 0,0011 47,30 5 1 83 B 987,77 0,0010 44,65 7 3 96 C 2093,00 0,0005 21,07 7 3 97 C # /D b 2217,46 0,0005 19,89 7 3 98 D 2349,32 0,0004 18,77 7 3 99 D # /E b 2489,02 0,0004 17,72 7 3 100 E 2637,02 0,0004 16,72 7 3 101 F 2793,83 0,0004 15,78 7 3 102 F # /G b 2959,96 0,0003 14,90 7 3 103 G 3135,96 0,0003 14,06 7 3 104 G # /A b 3322,44 0,0003 13,27 7 3 105 A 3520,00 0,0003 12,53 7 3 106 A # /B b 3729,31 0,0003 11,83 7 3 107 B 3951,07 0,0003 11,16 8 4 108 C 4186,01 0,0002 10,54 Tabulka 2.1 Vybrané tóny z rozsahu klaviatury piana s uvedenou frekvencí, vlnovou délkou a vlnovou délkou ve vzorcích u diskrétního signálu se vzorkovací frekvencí 44100Hz 6

2.2.3 Jev chybějící fundamentální frekvence Pokud poměr frekvencí vyšších harmonických zvuku nasvědčuje umístění základní frekvence, ale zvuková složka na dané frekvenci ve zvuku neexistuje, potom tento jev označujeme jako chybějící fundamentální (základní) frekvence. I přesto, že tato složka ve zvuku nemusí být přítomna, mozek si díky poměru alikvotních frekvencí tuto složku domyslí a posluchači se zdá, jakoby tu frekvenci slyšel. Fundamentální frekvence nemusí rovnou ve zvuku chybět, ale určitě nemusí být nejsilnější frekvenční složkou. Pokud máme např. tón o frekvenci 100Hz, bude se skládat frekvenčních složek, které jsou přibližně celými násobky tohoto čísla (100Hz, 200Hz, 300Hz, 400Hz, 500Hz, ). Nicméně pokud si takový zvuk pustíme na slabých reproduktorech, které tuto frekvenci nedokážou reprodukovat, bude složka o frekvenci 100Hz v přehrávaném zvuku chybět. Přesto však lidský posluchač uslyší tón odpovídající frekvenci 100Hz. Při monofonní analýze tento jev způsobuje nemalou komplikaci, neboť nestačí pouze nalézt nejsilnější frekvenční komponentu k tomu, abychom zjistili, jaký tón momentálně v signálu zní. Metody schopné tento jev obelstít si ukážeme v kapitole 5. Obrázek 2.3 Ukázka spektrogramu melodie se slabou základní frekvencí 7

3 Úvod do transkripce hudby Transkripce hudby představuje analýzu akustického signálu sloužící k odvození informací o každém oddělitelném zvuku, který se v něm vyskytuje - především výšku, čas nástupu, délku trvání, hlasitost a zdroj. Západní tradice využívá k popisu těchto parametrů notové značky zaznamenané v notové osnově. Čas v notové osnově plyne zleva doprava a výška not je dána vertikálním umístěním v notové osnově. V případě perkusních nástrojů označuje vertikální pozice v osnově druh zvuku (použití specifického perkusního nástroje). Hlasitost není zpravidla v notové osnově specifikována pro každou notu zvlášť, nýbrž pouze pro větší celky. Kromě běžného notového zápisu může i transkripce nabývat různých podob. Například pro kytaristu může být vhodnější číst akordové značky označující kombinace tónů určující obecnější rámec daného hudebního díla. V případě algoritmických transkripčních systémů se jeví jako nejvhodnější formát MIDI, který je standardem mezi protokoly pro výměnu informací mezi elektronickými hudebními zařízeními. Všechny tyto reprezentace mají společné to, že zachycují hudebně smysluplnou formou hudební dílo, které může být na jejich základě předvedeno či rekonstruováno. Z tohoto pohledu se může hudební transkripce jevit jako zpětné vydedukování zdrojového kódu hudebního signálu. Kompletní transkripce hudební předlohy by znamenala, že bude rozpoznána výška, hlasitost a načasování veškerých zvuků obsažených v signálu. Vzhledem k tomu, že toto může být velice složité a v některých případech i teoreticky nemožné, naším cílem bude zaznamenat co nejvíce tónů, kolik jen bude možné. První pokusy o automatickou transkripci prováděl v 70. letech 20. století J.A. Moorer, který navrh systém pro rozpoznávání dvouhlasých skladeb. Jeho dílo následovali Chafe, Piszczalski a Maher v 80. letech. Ve všech těchto systémech byl počet hlasů omezen na dva a vzdálenosti mezi výškami tónů byly různými způsoby omezené. Od počátku 90. let začal zájem o transkripci hudby rapidně narůstat a není zde možné zahrnout veškeré portfolio vědeckých prací na toto téma. Přesto můžeme identifikovat obecné trendy a úspěšné druhy přístupů. Jedním z nich bylo použití statistických metod pro rozpoznávání výšek tónů v polyfonní hudbě, dalším trendem bylo vylepšování výpočetních modelů napodobujících princip fungování lidského sluchového systému. Přesto se nejmodernější rozpoznávací systémy se v přesnosti a flexibilitě stále nemohou rovnat trénovaným muzikantům. Spolehlivý obecný systém pro transkripci polyfonní hudby v současné době neexistuje, nicméně jistá míra úspěchu byla dosažena v analýze polyfonní hudby omezené složitosti. Omezení se zpravidla týkají počtu současně znějících tónů, případně je předpokládán pouze určitý druh hudebního nástroje. Hudební transkripce se obecně zabývá i pokročilejšími tématy, jako jsou detekce rytmu, rozeznání bicích nástrojů a klasifikace hudebních nástrojů. Tato témata v této práci vynechám a budu se soustředit pouze na rozpoznávání tónů, jejich výšku a načasování. 8

4 Spektrální analýza Běžné signály jsou tvořeny směsí signálů o různých frekvencích. K tomu, abychom získali důkladnější vzhled do složení takového signálu, potřebujeme separovat jeho frekvenční složky. K tomu slouží spektrální analýza. Je to metoda, která převede signál z časové domény (signál vzorkovaný v čase) do frekvenční domény (informace o přítomnosti vybraných frekvencí v signálu). Algoritmy, které slouží k výpočtu frekvenčního spektra, jsou označovány jako Fourierova analýza. Jedná se o důležité algoritmy, které nám umožní vytvořit grafickou reprezentaci zvuku. 4.1 Úvod do Fourierovy analýzy Fourierova analýza je souhrnné označení pro rodinu matematických technik určených k rozkladu signálu na sinusoidy. Nese jméno Jeana Baptisty Josefa Fouriera (1768-1830), francouzského matematika a fyzika, který má zásluhy za matematické objevy a vhled do praktické použitelnosti této techniky. Fourier, který se v té době zabýval šířením tepla, prezentoval francouzskému vědeckému institutu v roce 1807 svůj dokument o reprezentaci tepelných variací pomocí sinusových vln. Dokument obsahoval kontroverzní tvrzení, že spojitý periodický signál může být reprezentován součtem správně zvolených sinusových vln. S ohledem na to, že zvolených sinusových vln může být nekonečně mnoho, už dnes o jeho závěrech nikdo nepochybuje. Obecný pojem "Fourierova transformace" je možné rozdělit do čtyř kategorií v závislosti na čtyřech základních typech signálů, na které můžeme narazit. 1. neperiodický spojitý - Tato skupina zahrnuje signály, které sahají v čase od záporného do kladného nekonečna, aniž se v nich opakují periodické vzory (např. exponenciální křivky, Gaussova křivka). Fourierova transformace tohoto druhu signálu se jmenuje obecně Fourierova transformace (Fourier transform). 2. periodický spojitý - Do této skupiny spadají sinusové vlny, čtvercové vlny a jakékoliv jiné vlny, které se opakují od záporného do kladného nekonečna. Tato varianta Fourierovy transformace se nazývá Fourierova řada (Fourier series). 3. neperiodický diskrétní - Tyto signály jsou definované pouze na diskrétních bodech mezi záporným a kladným nekonečnem a neopakují se v periodických vzorech. Tento typ Fourierovy transformace se nazývá Fourierova transformace s diskrétním časem (Discrete Time Fourier Transform - DTFT). 4. periodický diskrétní - Signály definované na diskrétních bodech v čase spadající do této skupiny se v čase periodicky opakují. Tato kategorie Fourierových transformací se někdy označuje jako Diskrétní Fourierova řada, nicméně častěji se nazývá jako Diskrétní Fourierova transformace (DFT). Názvy transformací rozdělené do těchto kategorií nejsou příliš výstižně pojmenované, což je způsobeno tím, že spíše nahodile vyvíjely v průběhu posledních 200 let. Všechny tyto 4 kategorie vyžadují signály nekonečné v čase, ale co když mám pouze omezený počet vzorků uložený v počítači, který chci analyzovat? Varianta Fourierovy transformace, která by uměla pracovat s konečným signálem, neexistuje. Funkce sinus a kosinus jsou definovány na definičním oboru od záporného do kladného nekonečna, tím pádem nemůžeme syntetizovat konečný signál ze skupiny signálů, které jsou v princi- 9

pu nekonečné. Trik spočívá v tom, že konečný signál přetvoříme tak, aby se tvářil jako nekonečný. První způsob, jak tohoto můžeme dosáhnout, je obklopení signálu nekonečným nulovým signálem z obou stran až do nekonečna. Tímto se z něj stává diskrétní a neperiodický signál a spadá do kategorie Fourierovy transformace v diskrétním čase (DTFT). Alternativním přístupem je obklopit signál duplikáty sebe sama. Důsledkem toho se z něj stane diskrétní a periodický signál, z čehož vyplývá použití Diskrétní Fourierovy transformace (DFT). K syntéze nekonečného neperiodického signálu potřebujeme nekonečné množství sinusových vln, což metodu Fourierovy transformace v diskrétním čase činí neimplementovatelnou pomocí počítačového algoritmu. Vylučovacím principem dojdeme k tomu, že jediná metoda použitelná ke zpracování signálů v počítačovém prostředí je DFT. Jinak řečeno, digitální systémy mohou pracovat pouze s informací, která je diskrétní a konečná v čase. Na první tři druhy transformací narazíme, jedině pokud se zabýváme teoretickými problémy, ale pokud usedneme k počítači, potom je DFT jediná použitelná varianta, na kterou se dále zaměříme. Každá ze čtyř kategorií Fourierových transformací se dá rozdělit na varianty pracující s reálným a komplexním signálem. Reálná varianta je nejjednodušší. Používá reálných čísel a reálné algebry pro syntézu a dekompozici. Komplexní varianty jsou značně složitější a pro naše účely je nebudeme potřebovat. 4.2 Fourierova analýza s lineárním frekvenčním rozlišením S ohledem na podstatu zkoumaných signálu si následující popis algoritmů pro počítačovou spektrální analýzu rozdělíme na dvě sekce. V první sekci si popíšeme standardní algoritmy používané pro analýzu signálů, u kterých nepotřebujeme zkoumat strukturu závislou na hudební stupnici. Tyto algoritmy mají lineární frekvenční rozlišení, tj. po provedení transformace získáme spektrum, které má na frekvenční ose vyneseny hodnoty, které odpovídají zkoumané frekvenci a jejím celočíselným násobkům (blíže si to popíšeme v této kapitole). Pro hudební signály budeme ovšem vzhledem k logaritmické povaze ladění tonů potřebovat algoritmy, které tuto vlastnost respektují. Ty si popíšeme v kapitole následující. 4.2.1 Diskrétní Fourierova transformace Algoritmus pro výpočet DFT vychází z výpočtu Fourierovy řady a je následující: Rovnice 4.1 Algoritmus pro výpočet DFT Výpočet DFT je koncipován tak, že v signálu detekuje přítomnost základní frekvence (resp. základní vlnové délky dané délkou okna N) a jejích vyšších harmonických frekvencí dle indexu k. Důležitým principem tohoto výpočtu je to, že okno délky N obsahuje právě m celých period k-té harmonické a m+1 celých period (k+1)-ní harmonické, tj. rozdíl v počtu period mezi dvěma sousedními frekvenčními složkami je minimálně (v tomto případě přesně) 1. Tento fakt ještě zdůrazníme u algoritmu CQT v kapitole 4.4, který tento princip ctí také. 10

sin(2πkn/n): N=50 a m p l i t u d a 1 0-1 1 11 21 31 41 n Obrázek 4.1 Ukázka vyšších harmonických frekvencí pro N=50 a k=1,2,3,4 k = 1 k = 2 k = 3 k = 4 Ještě než si konkrétněji popíšeme způsoby výpočtu DFT, zmíním, že základní tvar algoritmu lze převést dle Eulerova vztahu (Rovnice 4.2) na tvar obsahující místo exponenciály součet funkcí sinus a kosinus. Rovnice 4.2 Eulerův vztah Obrázek 4.2 Grafické znázornění Eulerova vztahu (3) Rovnice 4.3 Algoritmus pro výpočet DFT převedený dle Eulerova vztahu 4.2.1.1 Značení a formát DFT reálného signálu Jak vidíme na obrázku (Obrázek 4.3), DFT přemění vstupní signál o N vzorcích na dva signály o délce N/2 + 1. Vstupní data obsahují signál, který chceme dekomponovat, zatímco výstupní signály obsahují amplitudy složek sinusových a kosinových vln. Vstupní signál se označuje jako signál v časové doméně. Je tomu tak proto, že běžný signál vstupující do DFT je tvořen vzorky, které zachycují spojitý signál 11

v diskrétních časových intervalech. Pochopitelně však můžeme DFT aplikovat na jakýkoliv signál nezávisle na tom, kde jsme ho získali. Výstupní signály jsou charakteristikou ve frekvenční doméně. Frekvenční doména obsahuje stejný objem informací jako časová doména, jen v jiné formě. Pokud známe jednu doménu, můžeme z ní odvodit druhou. Pokud známe časovou doménu signálu, proces výpočtu frekvenční domény se nazývá dekompozice, analýza nebo prostě DFT. Pokud známe frekvenční doménu, potom výpočet časové domény se nazývá syntéza neboli inverzní DFT. Obrázek 4.3 Terminologie DFT. DFT transformuje signál z časové domény do frekvenční, zatímco inverzní DFT z frekvenční do časové Běžná notace používá malých písmen k označení signálů v časové doméně (x*n+, y[n],...) a odpovídající velká písmena k označení frekvenční domény (X*n+, Y*n+,...). Pro ilustraci předpokládejme, že v signálu x je obsažen signál o délce N. Signál ve frekvenční doméně je značen X a je tvořen ze dvou částí, obě mají délku N/2+1 vzorků. Jsou jimi reálná část X (ReX) a imaginární část X (ImX). ReX obsahuje informaci o amplitudách kosinových vln, zatímco ImX obsahuje amplitudy vln sinusových. Označení složek frekvenční domény pochází z DFT komplexních signálů, ale v tomto případě se vždy jedná o reálná čísla. Horizontální osa výsledku frekvenční analýzy, tj. frekvenční domény, může být značena čtyřmi způsoby (4). 1) Prvním způsobem značení jsou celočíselné násobky základní frekvence,0,, N/2-. Výhodou tohoto značení je, že se k odkazování na jednotlivé frekvence používá celočíselných indexů. Díky tomu se hojně používá při implementaci algoritmu na počítači. 2) Druhou možností je značit horizontální osu poměrem frekvence a vzorkovací frekvenci. Hodnoty jsou diskrétní z intervalu <0; 0,5> rovnoměrně rozděleného na N/2+1 částí. Tento způsob se vyskytuje zejména v literatuře. 3) Další variantou značení je kruhová frekvence ω v jednotkách radiánech, kterou získáme z druhé varianty vynásobením 2. Hodnoty definičního oboru se transformují na <0; π>. Podobně jako v předchozím případě je tento interval popsán pomocí N/2 + 1 diskrétních hodnot. 4) Posledním způsobem je značení skutečnou frekvencí odpovídající konkrétní aplikaci. Pokud například analyzujeme signál vzorkovaný s frekvencí 10kHz, potom jeho frekvenční osa bude značena jako interval <0; 5> khz. Výhodou této metody je znázornění frekvenčních dat s 12

ohledem na reálnou aplikaci, nicméně toto značení se neobjevuje příliš často tam, kde se navrhují obecné algoritmy, např. digitální filtry. 4.2.1.2 Bázové funkce Funkce sinus a cosinus, kterých si můžeme všimnout v definičním vzorci pro výpočet DFT (Rovnice 4.3), označujeme jako bázové funkce Fourierovy transformace. Pro lepší porozumění metod výpočtů, které si uvedeme za chvíli, si tyto funkce důkladněji prozkoumáme. Vyjdeme z výpočtu délky periody trigonometrických funkcí, která je např. u funkce sinus definována jako: Rovnice 4.4 Perioda funkce sinus Při výpočtu DFT máme ve vzorci funkci sinus ve tvaru (Rovnice 4.5), jejíž perioda je délky (Rovnice 4.6), na čemž je zřetelně vidět fakt, který už zazněl, že k-tá vyšší harmonická frekvence obsahuje právě k celých period signálu. Rovnice 4.5 Funkce sinus ve tvaru použitém při výpočtu DFT Rovnice 4.6 Výpočet periody Jak už víme, při výpočtu DFT se používají dvě goniometrické funkce: sinus a cosinus. Jediný rozdíl mezi těmito funkcemi spočívá v jejich vzájemném fázovém posunu o π/2. To má svůj význam právě při výpočtu fáze zkoumané frekvence. Způsob výpočtu této fáze si ukážeme později. 4.2.1.3 Výpočet DFT analýza DFT můžeme vypočítat třemi různými způsoby. Podle prvního z nich je k problému přistupováno jako k soustavě rovnic. Tato metoda je užitečná v případě, že se snažíme porozumět DFT, ale je příliš neefektivní pro praktické použití. Druhá metoda využívá korelace a je založena na výpočtu korelačního koeficientu se známou funkcí. Třetí metoda, zvaná FFT (Fast Fourier Transform rychlá Fourierova transformace), je algoritmus, který rozkládá DFT délky N na N DFT o délce 1. FFT je obvykle řádově 100násobně rychlejší než ostatní metody. Důležité je, že všechny tyto metody dávají identický výstup. V praxi se nejčastěji používá FFT, ale pro DFT úseku kratšího než 32 bodů je výhodnější použít korelaci. 4.2.1.3.1 DFT pomocí soustavy lineárních rovnic Pokud se nad DFT zamyslíme, máme N hodnot v časové doméně a potřebujeme vypočítat N hodnot ve frekvenční doméně. Podle základních principů algebry potřebujeme k vypočítání N neznámých soustavu N lineárně nezávislých rovnic. Abychom toto dokázali, vezmeme první vzorky ze všech sinusoid a jejich hodnoty zvážené koeficienty z frekvenční domény (neznámé v rovnici) sečteme je dohromady. Součet musí být roven prvnímu vzorku v časové doméně. Stejným způsobem dostaneme i ostatní rovnice. Řešení nalezneme pomocí známých metod pro výpočet soustav lineárních rovnic jako třeba Gaussovy eliminace. Tato metoda naneštěstí potřebuje ohromné množství výpočetních opera- 13

cí, což z ní činí v praxi nevyužitelnou. Přesto je tato metoda užitečná, neboť dokazuje, že je možné signál rozložit na sinusoidy, kolik je jich potřeba, a že bázové funkce musí být lineárně nezávislé. 4.2.1.3.2 DFT pomocí korelace Standardním způsobem výpočtu DFT je korelace. Původně je korelace definovaná jako funkce, která vypovídá o vztahu dvou funkcí v závislosti na posunutí v čase. Jde tedy o funkci posunutí (pro spojité funkce): Rovnice 4.7 Definice korelace dvou spojitých funkcí Symbol f * symbolizuje komplexně sdruženou funkci, která však v oboru reálných čísel nemá vliv. V našem případě posunutí neuvažujeme a z obecného tvaru korelační funkce získáváme definici pro výpočet korelačního koeficientu: Rovnice 4.8 Definice korelačního koeficientu dvou spojitých funkcí Hodnota korelačního koeficientu udává míru podobnosti obou funkcí (bez měřítka). Nabývá maximálních hodnot, pokud jsou funkce f a g totožné. V případě diskrétního signálu je výpočet korelačního koeficientu definován jako: Rovnice 4.9 Definice korelačního koeficientu dvou diskrétních signálů délky N Ze vzorce vyplývá, že vzájemně násobíme hodnoty obou signálů délky N a součiny sečteme. Při pohledu na vztah pro výpočet DFT (Rovnice 4.1) odvozený ze vzorce pro Fourierovu transformaci, který dále převedeme pomocí Eulerova vztahu pro výpočet exponenciály (Rovnice 4.2), si všimneme, že v obou sčítancích počítáme korelační koeficient signálu a příslušné bázové funkce (Rovnice 4.3). Jako výsledek tedy získáme na jedné ose (reálná složka) podobnost s danou funkcí kosinus, na druhé ose (imaginární složka) podobnost s funkcí sinus. Jak už jsme zmínili, jedná se o stejné funkce s rozdílnou fází, což nám při převodu na polární souřadnice umožní získat informaci o fázi příslušné sinusoidy. 4.2.1.3.3 Rychlá Fourierova transformace (FFT) Nejefektivnější metodou výpočtu DFT je algoritmus zvaný rychlá Fourierova transformace (FFT). Na rozdíl od předchozích variant, které počítají s goniometrickými funkcemi, je tato založena na postupném rozdělování vstupní posloupnosti na poloviny až k dílkům o délce 1. Z toho vyplývá, že nejoptimálnější výkon podává tento algoritmus na vstupní posloupnosti o délce, která je rovna některé mocnině dvojky (256, 512, 1024, 2048, ). Pokud datové okno splňuje toto kritérium, složitost výpočtu spektra pro N/2 složek je N*log 2 N, neboť spektrum je symetrické kolem poloviny. Ve srovnání s DFT, které má složitost N 2 /2 je toto obvykle výhodnější varianta, nicméně pokud nás zajímá pouze jedna spektrální složka (např. základní frekvence), potom je pracnost výpočtu při použití DFT rovna N, 14

což je určitě výhodnější než při použití FFT. Při výpočtu FFT je totiž odvození všech spektrálních komponent vzájemně provázáno a nelze tudíž s jeho pomocí vypočítat jen vybranou spektrální složku. Nevýhoda FFT vyplývající ze zmíněného faktu o délce datového okna je ta, že pomocí FFT lze detekovat jen frekvence vyplývající z poměru vzorkovací frekvence a zvolené délky okna (o délce zvolené mocniny 2), což znemožňuje jeho použití při detekci frekvencí odpovídajících konkrétním tónům hudební stupnice. 4.2.1.4 Polární značení Jak jsme si už popsali dříve, frekvenční doména je skupina amplitud kosinových a sinusových vln. Tento druh značení se nazývá pravoúhlé (kartézské) souřadnice (ReX*+, ImX*+). Podle dalšího druhu značení, které se nazývá polární, je tatáž informace vyjádřena pomocí jiných dvou souřadnic, a to délky (MagX*+) a fáze (PhaseX*+). Tyto souřadnice jsou mezi sebou oboustranně převoditelné a jeden pár souřadnic ReX*0+, ImX*0+ odpovídá jednomu páru souřadnic MagX*0+, PhaseX*0+. Pro porozumění konverzi je třeba zvážit, co se stane, pokud obě funkce (sinus, kosinus) sečteme. Výsledkem je funkce kosinus s pozměněnou amplitudou a fází. Důležité je, že se při tomto procesu neztratí žádná informace. Rovnice 4.10 Vztah mezi polárním a pravoúhlým značením Obrázek 4.4 Grafický význam polárního systému souřadnic Stejného výsledku jako pomocí goniometrických funkcí lze dosáhnout I s použitím vektorů. Běžně používané vztahy pro konverzi těchto souřadnicových systémů vyplývají z grafického významu znázorněného na (Obrázek 4.4). Jejich definice vypadá následovně: Rovnice 4.11 Vztahy pro převod z pravoúhlého do polárního sytému souřadnic Rovnice 4.12 Vztahy pro převod z polárního systému souřadnic do pravoúhlého 15

4.2.2 Krátkodobá Fourierova transformace (STFT) Krátkodobá Fourierova transformace (Short-time Fourier transform STFT) slouží k detekci spektrálních složek krátkých úseků signálu, který se v průběhu času mění. Jedná se pouze o odlišný způsob využití DFT, tj. základní algoritmus zůstává stále stejný. Z teoretického hlediska se zpracovávaný signál násobí funkcí datového okna, která je nenulová pouze pro krátký časový okamžik. Tento krátký časový okamžik se poté posouvá v čase směrem kupředu. V praxi se postupuje tak, že se vzorkovaný signál rozdělí na úseky, které se mohou v čase překrývat, aby se zabránilo vzniku nepřesností na jejich hranicích. Každý úsek se zvlášť zpracuje pomocí Fourierovy transformace a získané výsledky se ukládají do matice. Grafické znázornění vývoje spektra v čase se nazývá spektrogram. Obrázek 4.5 Ukázka spektrogramu (5) 4.2.2.1 Funkce datového okna Funkce datového okna je často využívána v oboru zpracování signálů a jedná se o funkci, která je má nenulové hodnoty pouze na krátkém časovém úseku. Kromě toho, že okenní funkce ovlivňuje zpracovávaný signál, má vliv i na výsledné spektrum. Aplikací datového okna na jednoduchou periodickou funkci jako sin( t) vzniknou ve spektru nenulové hodnoty I na jiných frekvencích než jen ω. Tento jev se nazývá spektrální prolínání a nejvíce se projevuje na frekvencích blízkých ω. Pokud signál obsahuje dvě frekvenčně blízké sinusoidy, vlivem prolínání spektra může dojít k jejich zamaskování a ztrátě schopnosti mezi nimi rozlišit. K témuž jevu může dojít v případě velkých rozdílů v amplitudách signálů. Správnou volbou funkce datového okna můžeme těmto jevům předcházet, nicméně není obecně patrné, která konkrétní funkce by byla výhodná pro daný účel. To záleží spíše na konkrétních případech a experimentálních závěrech. V (6) je uvedeno mnoho typů datových oken. Popíšeme si ze především ty, které využijeme v této práci. Pro lepší představu vidíme na obrázku praktickou aplikaci různých druhů datových oken na signál. 16

Obrázek 4.6 Ukázka aplikace datových oken na signál 4.2.2.1.1 Obdélníkové okno Jedná se o nejjednodušší funkci datového okna, která je na určeném intervalu rovna 1, čímž ponechává signál v původním stavu. Obdélníkové okno podává výborné výsledky při rozlišování signálů srovnatelné síly, nicméně není tak vhodný pro signály s velkými rozdíly v amplitudách. Tato vlastnost je označována jako slabý dynamický rozsah. Rovnice 4.13 Obdélníkové okno Obrázek 4.7 Grafické znázornění obdélníkového okna a jeho spektrální charakteristiky 4.2.2.1.2 Hammingovo okno Ve srovnání s obdélníkovým oknem má výhodnější charakteristiku při rozpoznávání blízkých frekvencí a amplitudově rozdílných signálů. Definice (Rovnice 4.14) je parametrizována několika hodnotami a to: 1. α parametr definující strmost Hammingova okna nabývá hodnot <0,5; 1>. Pro hodnotu 0,5 průběh funkce začíná a končí na 0, pro hodnotu 1 je funkce shodná s obdélníkovým oknem. 17

2. N délka okna 3. n proměnná funkce nabývá hodnot {0,, N-1} Rovnice 4.14 Hammingovo okno Obrázek 4.8 Grafické znázornění Hammingova okna jeho spektrální charakteristiky Hammingovo okno na druhou stranu snižuje rozlišovací schopnost rozšířením spektrálního vrcholu, jak je vidět na obrázku (Obrázek 4.8). Okenní funkce obecně poskytují kompromis mezi rozlišením (šířka vrcholu) a spektrálním prolínáním (amplitudami okolních frekvencí). 4.3 Fourierova transformace s logaritmickým frekvenčním rozlišením Pokud frekvenční složky harmonického zvukového signálu naneseme na logaritmickou osu, je jejich relativní vzdálenost jsou vždy stejná nezávisle na fundamentální frekvenci. Příklad této vlastnosti můžeme vidět na následujícím obrázku (Obrázek 4.9), který je příkladem spektra hypotetického signálu s harmonickými frekvenčními složkami f, 2f, 3f, Vzdálenost mezi prvními dvěma složkami je log(2), mezi dalšími dvěma log(3/2), atd.. Vidíme tedy, že absolutní vzdálenosti mezi frekvenčními složkami závisí na fundamentální frekvenci, zatímco relativní vzdálenosti jsou konstantní. Tyto spektrální složky vytváří frekvenční vzor, který je stejný pro všechny zvuky dané zvukové barvy. Pochopitelně narazíme na rozdíly v amplitudách harmonických složek tónů různé výšky produkovaných stejným nástrojem, to je způsobeno rozdíly ve způsobu generování tónu (jiné tloušťky strun, velikosti píšťal, apod.). 18

Obrázek 4.9 Výsledek Fourierovy transformace harmonických složek signálu znázorněný na logaritmické frekvenční ose Standardní lineární rozdělení frekvenčního spektra získané diskrétní Fourierovou transformací rozděluje harmonické složky signálu do frekvenčních pásem o konstantní šířce. Poměr vzdáleností a celkové umístění vzoru na frekvenční ose závisí na fundamentální frekvenci signálu, což způsobuje obtížnější práci se signálem a pracnější sledování atributů signálu jako jsou barva, rychlost nástupu a rychlost útlumu. Naopak logaritmická reprezentace spektra umožňuje konzistentní práci se signály tím, že generuje konstantní vzory pro spektrální složky signálu a problém identifikace fundamentální frekvence a případně identifikace nástroje už spočívá pouze v rozeznání předem naučeného vzoru. Abychom získali logaritmickou reprezentaci spektra pro zvukový signál, mohli bychom použít standardní Fourierovu transformaci a její výsledek nanést na logaritmickou osu. V tomto případě by však nastal problém, že v nízkých frekvencích bychom z Fourierovy transformace získali příliš málo informací a ve vysokých zase příliš mnoho. Tóny nízkých frekvencí mají mezi sebou velice malé vzdálenosti na frekvenční ose, takže by docházelo k tomu, že několik tónů by padlo do některého z frekvenčních pásem Fourierovy transformace, zatímco u vysokých tónů by zbytečně mnoho frekvenčních pásem detekovalo tentýž tón a jeho okolí. Diskrétní Fourierova Short-Time transformace (STFT) má rozlišení dané vzorkovací frekvencí S a velikostí okna N následovně: Rovnice 4.15 Pokud uvažujeme signál se vzorkovací frekvencí 44100 Hz a vstupní datové okno o velikosti 1024 vzorků, získáme rozlišení přibližně 43,1 Hz. Spodní hranicí tónového rozsahu houslí je G 3 o frekvenci 196 Hz, takže rozlišení je 21% této frekvence. To je o hodně víc než 6%, což je rozdíl mezi dvěma sousedícími půltóny: Rovnice 4.16 Horní hranicí standardní klaviatury piana je tón C 8 o frekvenci 4186 Hz a rozlišení 43,1 Hz je rovno 1% této frekvence, tudíž v tomto případě počítáme se mnohem více vzorky, než potřebujeme. Je tak jasné, že pro hudební aplikace je použití standardní Fourierovy transformace neefektivní. 19

První můj pokus o algoritmus s logaritmickou frekvenční osou vycházel ze stanovení délky DFT v závislosti na frekvenci, která mě zajímá. Pokud si takto stanovím velikost okna, potom počítám spektrum pouze pro základní frekvenci, kterou následně normalizuji délkou tohoto okna, abychom získali srovnatelné výsledky. Délka okna pro tento algoritmus byla definována podle (Rovnice 4.17): Rovnice 4.17 Dynamická délka okna pro DFT Z toho vyplývá, že okno obsahovalo právě jednu kompletní periodu základní frekvence, což se později ukázalo jako nedostatek, který vyřešil až níže popsaný algoritmus CQT. Původní verze algoritmu vycházela z toho, že budu počítat pouze frekvence, které odpovídají jednotlivým tónům hudební škály podle předem zadaného rozsahu. S 12 půltóny na oktávu vypadal vztah pro výpočet frekvence jako: Rovnice 4.18 Vztah pro výpočet frekvence Nejjednodušší varianta tohoto algoritmu využívající logaritmickou velikost okna vypadala tedy následovně: Největším problémem tohoto algoritmu byla nedostatečná rozlišovací schopnost 4.4 Constant Q transform (CQT) Upravená varianta předchozího algoritmu, kterou popisuje Judith Brown v (7), řeší nedostatky s rozlišovací schopností, které nastávaly u předchozího algoritmu. Algoritmus zavádí frekvenční rozlišení geometricky závislé na frekvenci s rozlišením 3%, abychom dokázali rozlišit mezi sousedícími půltóny (6%). Počítá tedy s rozlišením na čtvrttóny, nikoliv půltony, což je první rozdíl. Číslo 3% vychází z rozdílu dvou sousedních frekvencí, jež je roven (2 1/24 1) 0,03 násobku frekvence. Z toho vyplývá konstantní poměr frekvence a rozlišení (Rovnice 4.19). Rovnice 4.19 Odtud vyplývá název Constant Q Transform neboli transformace s konstantním faktorem rozlišení Q. V našem případě je hodnota Q dána jako: Rovnice 4.20 Druhým rozdílem je, že délka okna pro detekci základní frekvence je Q-násobkem základní vlnové délky, což vede k faktu, že okno obsahuje celočíselný podíl počtu celých period dvou sousedních frekvenčních složek (zhruba 34/33). Tato metoda, podrobně popsaná v následující sekci, má dvě příjemné vlastnosti. První je její jednoduchost. Druhá je to, že je počítána pro frekvence, které jsou exponenciálně rozložené s dvěma frekvenčními složkami na každou hudební notu. Toto poskytuje přesně tolik informace, kolik potřebujeme, abychom dokázali rozlišit mezi dvěma sousedícími tóny. Navíc nám 20

zpracování zvuků s harmonickými frekvenčními složkami poskytne konstantní vzor na logaritmické frekvenční ose. 4.4.1 Výpočet CQT Pro hudební analýzu bychom chtěli počítat frekvenční složky s rozlišením jednoho čtvrttónu rovnoměrně temperované hudební stupnice. Frekvence k-té frekvenční složky je tudíž dána jako: Rovnice 4.21 Kde f k spadá do rozsahu mezi f min a Nyquistovou frekvencí (polovina vzorkovací frekvence). Minimální frekvence může být zvolena podle zkoumaného signálu těsně pod dolním hranicí rozsahu sledovaného nástroje. Jak již bylo zmíněno, šířka pásma δf diskrétní Fourierovy transformace je rovna podílu vzorkovací frekvence a velikosti okna (počtu vzorků analyzovaných na časové ose). Aby mohl být podíl konstantní, musí se velikost okna měnit nepřímo úměrně frekvenci. Konkrétněji s vzorkovací frekvencí f s = 1/T, kde T je vzorkovací perioda, je velikost okna pro frekvenci f k dána jako: Rovnice 4.22 Vzhledem k tomu, že perioda frekvence f k ve vzorcích je dána jako S/f k, vyplývá z toho, že okno obsahuje přesně Q period této frekvence, což umožňuje při transformaci lepší rozlišení mezi sousedícími frekvenčními složkami. Pro k-tou složku frekvenčního spektra pro transformaci s konstantním Q vyplývá vztah: Rovnice 4.23 Zde x n je n-tý vzorek zpracovaného signálu, 2πQ/N k je frekvence a W k,n je funkce, která vyjadřuje tvar datového okna. Ta bude probrána podrobněji dále. Má stejný tvar pro každou frekvenční složku, ale její délka je dána N k, takže je funkcí k stejně jako n. Musíme ale normalizovat výsledek vydělením součtu N k, neboť počet sčítanců se s k mění. Dostaneme tedy nový tvar rovnice: Rovnice 4.24 Pokud je funkce datového okna dána jako W k,n = 1 na celém intervalu *0,.., N k 1], pak tato funkce odpovídá obdélníkovému oknu. Toto okno má však pro nás dle (8) nevhodné vlastnosti vzhledem k maximálním přesahům frekvencí do sousedních frekvenčních pásem. Využijeme proto Hammingovu funkci, která je definována jako: 21

Rovnice 4.25 kde α = 25/46 a n = 0.. N k 1. Výpočet rovnice (Rovnice 4.24) se dá optimalizovat předpočítáním hodnot výrazů: Rovnice 4.26 pro hodnoty k = 1.. (k odpovídající maximální zkoumané frekvenci) a n = 1.. N k. Tyto výrazy jsou shodné v každém vyhodnocení CQT pro celé spektrum odpovídajícímu jednomu časovému posunu v signálu a dají se použít pro všechny signály s danou vzorkovací frekvencí, ze které vychází příslušné délky oken. Pro lepší představu o vlastnostech CQT přikládám srovnávací tabulku CQT a DFT: Constant Q transform DFT Frekvence (2 1/24 ) k * f min exponenciální dle k k * f lineární dle k Délka datového okna Variabilní = N k = S/f k *Q Konstantní = N Rozlišení f Variabilní = f k /Q Konstantní = S/N f k / f k Konstantní = Q Variabilní = k Počet cyklů v okně Konstantní = Q Variabilní = k Tabulka 4.1 Srovnání vlastností CQT a DFT 4.4.2 Optimalizace použitím half-band filtru a podvzorkováním Pokud je výpočetní čas důležitým faktorem, můžeme použít výpočetní optimalizaci navrženou v (7). Používáme-li proměnnou délku vstupního datového okna, je zřejmé, že pro hluboké tóny s nízkou frekvencí potřebujeme zpracovávat více vzorků než pro vysoké tóny. Tato varianta optimalizace staví na tom, že po zpracování nejvrchnější oktávy ze zkoumaného rozsahu podvzorkujeme signál na poloviční frekvenci tím, že zahodíme každý druhý vzorek tohoto signálu. Tím se frekvence signálu zdvojnásobí a z hudebního hlediska se celý signál zvýší o oktávu. Abychom však zabránili porušení Shannonova vzorkovacího teorému, musíme před podvzorkováním odfiltrovat ze signálu frekvence větší než ½ Nyquistovy frekvence, aby podvzorkovaný signál neobsahoval frekvence větší než je Nyquistova. Jev, ke kterému dochází, když se frekvence vyšší než Nyquistova promítají zpět do spektra, se nazývá "roztřepení". Tento jev je znázorněn na obrázku (Obrázek 4.10) a je podobný např. pohybu kol u auta ve starších filmech. Dokud se kola pohybovala pomalu, kamera neměla problém se snímáním jejich pohybu, nicméně jakmile se kola zrychlila, jejich pohyb se začal zdánlivě zpomalovat. V určitém bodě 22

se zastavila a pak se dokonce začala pohybovat opačným směrem. Tento zpětný pohyb kol je analogií roztřepení, ke kterému dochází ve vzorkovaných zvukových signálech. Obrázek 4.10 Roztřepení signálu (9) Např. pokud máme signál navzorkovaný s frekvencí 44100 Hz a Nyquistovou frekvencí 22050 Hz, tak před podvzorkováním na 22050 Hz musíme aplikovat filtr na frekvence nad 11025 Hz, abychom zabránili tomu, že signál bude obsahovat frekvence vyšší než nově stanovená Nyquistova frekvence 11025 Hz. Vzhledem ke vlastnostem filtrů se nám toto nikdy nepodaří úplně dokonale, zejména pokud je cílem tohoto kroku optimalizace rychlosti výpočtu a kvalita filtru je přímo úměrná jeho výpočetní náročnosti. Využil jsem implementaci FIR filtru optimalizovanou pro filtrování poloviny pásma (half-band filter) uvedenou v (10). 4.4.3 Optimalizace CQT pomocí transformace FFT Další varianta optimalizace nepříliš rychlého algoritmu CQT je uvedena v (11). Vychází z transformace výsledku DFT z lineární do logaritmické osy. DFT je vyhodnocena rychlým algoritmem FFT a celá operace trvá jen o trochu déle, neboť celá transformace do logaritmické osy vyžaduje pouze malé množství výpočetních operací. Transformace vychází ze vztahu pro výpočet CQT (Rovnice 4.27). Rovnice 4.27 CQT Vzhledem k tomu, že přímé vyhodnocení je výpočetně neefektivní, můžeme s využitím Parsevalova vztahu odvodit rovnost platnou pro dva diskrétní signály x*n+, y*n+, kde X*n+, Y*n+ jsou diskrétní Fourierovy transformace signálů x*n+, y*n+, a Y**n+ je komplexně sdružená funkce Y*n+. Rovnice 4.28 Parsevalův vztah Rovnice 4.29 Substituce za časové jádro transformace Pokud do vztahu (Rovnice 4.27) dosadíme substituci dle (Rovnice 4.29), dostaneme rovnici, kterou upravíme dle Parsevalova vztahu (Rovnice 4.28) do výsledného tvaru (Rovnice 4.30). Symbol 23

K označuje spektrální jádro (spectral kernel) transformace, tj. diskrétní Fourierovu transformaci, jehož definice je uvedena v (Rovnice 4.31). Rovnice 4.30 Vztah pro efektivní výpočet CQT Rovnice 4.31 Výpočet spektrálního jádra transformace Symbol X[k] v rovnici (Rovnice 4.30), který představuje DFT signálu, se vypočítá efektivním algoritmem FFT, jehož výsledek se, jak vyplývá z rovnice, násobí předem připravenými hodnotami v matici K*. Obrázek (Obrázek 4.11) znázorňuje reálnou složku časových jader transformace definovanou v (Rovnice 4.29) pro prvních 30 not. Vertikální osa je označena číslem jádra k cq, které koresponduje s jeho frekvencí definovanou dle (Rovnice 4.21). Horizontální osa reprezentuje číslo vzorku n dle (Rovnice 4.29). Hodnoty jader jsou normalizovány délkou okna odpovídající k cq -té složce CQT, aby transformace pro všechny noty měla stejné amplitudy a nerostla s délkou okna. Obrázek 4.11 Časová jádra transformace Další obrázek (Obrázek 4.12) znázorňuje mapování pásem FFT na jednotlivé noty. Vztah pro výpočet sice obsahuje sumu přes všechny hodnoty FFT, nicméně z obrázku je patrné, že hodnot v řádcích je nulových. Na tom se dá ušetřit hodně času tím, že nulové hodnoty (případně hodnoty menší než hodnota daná parametrem) přeskočíme. V praxi to na každý řádek obnáší cca 1-5 operací násobení. 24

Obrázek 4.12 Mapování frekvencí FFT na logaritmickou osu CQT 25

5 Monofonní analýza (MA) Algoritmy monofonní analýzy předpokládají, že v analyzovaném signálu může v jednom časovém okamžiku znít pouze jeden tón. Monofonní metody se generalizují do dvou skupin: první skupina pracuje se signálem v časové doméně, druhá ve frekvenční. Dvě autokorelační metody, které si uvedeme v následujících kapitolách, spadají do první skupiny, zatímco metoda porovnávání se vzorem do skupiny druhé. 5.1 Zúžená autokorelační funkce (ACF) Autokorelace je korelace signálu se sebou samým. Jedná se o nástroj, který slouží k hledání opakujících se vzorů v signálu. Tato metoda je obzvláště slibná při zpracování monofonních hudebních signálů vzhledem k tomu, že veškeré vyšší harmonické frekvence zvuku jsou násobky fundamentální frekvence, čímž tuto frekvenci při autokorelaci ještě zvýrazní. Dokonce je možné touto metodou detekovat i chybějící fundamentální frekvenci. Použití ACF je vhodné pro signály, jejichž délka je několikanásobná ve srovnání s periodou fundamentální frekvence, což hudební signály většinou splňují. V následující kapitole si popíšeme výpočet zúžené varianty ACF, která je zajímavá obzvláště pro hudební signály, neboť identifikace hlavního vrcholu odpovídajícího fundamentální frekvenci může být znemožněna šumem i se srovnatelně nízkými amplitudami. Zúžení vrcholků ACF pomáhá tento šum lépe oddělit od signálu. Zúžení vrcholků autokorelační funkce je dosaženo zvýšením počtu analyzovaných vzorků signálu, což má za důsledek nižší časovou přesnost. 5.1.1 Výpočet ACF Autokorelační funkce pro spojité funkce je definována vztahem (Rovnice 5.1), nicméně výhodné je počítat ji vztahem (Rovnice 5.2), kde křížový součin obou sčítanců představuje autokorelaci. Rovnice 5.1 Autokorelační funkce Rovnice 5.2 Výhodný tvar autokorelační funkce Pokud namísto toho použijeme vztah (Rovnice 5.3), potom jeho druhá mocnina (Rovnice 5.4) obsahuje součin všech obsažených dvojic sčítanců. Součiny členů f(t)*f(t + 2τ),f(t)*f(t + 3 τ), pomáhají zúžit vrcholy autokorelační funkce. Pro N = 2 získáme vztah pro jednoduchou autokorelaci zvýšenou o konstantu. Rovnice 5.3 Vztah pro zúženou autokorelaci Rovnice 5.4 Druhá mocnina vztahu pro zúženou autokorelaci 26

Rovnice 5.5 Konečný tvar zúžené autokorelační funkce Pro diskrétní případ vzorkovaného signálu získáme sumou přes okno signálu konečný tvar zúžené autokorelační funkce (Rovnice 5.4). Hodnota W je délka okna pro autokorelační funkci. Řídicí proměnná funkce τ nabývá hodnot od 0 do T, kde hodnota T omezuje nejdelší zkoumanou vlnovou délku. Např. pokud T nabývá hodnoty 441, potom při vzorkovací frekvenci 44100Hz je teoreticky nehlubší možná zkoumaná frekvence 100Hz, což zhruba odpovídá velkému G. Rovnice 5.6 Ukázka průběhu autokorelační funkce pro N=2, N=5 a N=10 pro signály s periodami 97 a 81 vzorků s poměrem amplitud 4:1 (12) Tvar rovnice (Rovnice 5.5) můžeme normalizovat hodnotou S 2 N (τ) pro τ = 0, kde je její hodnota teoreticky nejvyšší, čímž průběh autokorelace omezíme do intervalu <0, 1>. Výsledek korelace můžeme vidět na obrázku (Obrázek 5.1), který představuje stoupající klavírní stupnici C dur. Na obrázku je pěkně vidět, jak se vlnové délky tónů zkracují a korelace vytváří stále bližší vrcholy. Obrázek 5.1 Ukázka normalizované autokorelační funkce (N = 3) pro stupnici C dur zahranou na klavíru data pro zobrazení byla vygenerována programem Audiotape 27

Důležitou vlastností hudebních signálů je, že většinou obsahují vyšší harmonické frekvence. Při použití autokorelační funkce dochází k tomu, že jeden z vrcholů vyšších harmonických frekvencí se vždy překrývá s fundamentální frekvencí. Např. druhá vyšší harmonická má vlnovou délku rovnou polovině vlnové délky fundamentální frekvence (T/2). Důsledkem toho na autokorelační funkci vytváří vrcholy na vzdálenostech T/2, 2(T/2), 3(T/2), druhý vrchol druhé harmonické se tudíž překrývá s prvním vrcholem fundamentální frekvence. V podobném duchu to funguje i pro další harmonické složky. Z toho vyplývá, že průnik všech vyšších harmonických složek signálu nastává právě na vlnové délce fundamentální frekvence, kde vzniká nejvyšší vrchol, a to i v případě, že fundamentální frekvence v signálu chybí. 5.1.2 Výpočet frekvence z výsledků ACF Určení fundamentální frekvence ze znázorněných grafů spočívá v nalezení vrcholu, který odpovídá jedné vlnové délce fundamentální frekvence. Tento problém je komplikován faktem, že při výpočtu diskrétní autokorelace na vzorkovaném signálu nemusí být odpovídající vzorek umístěn přesně na pozici dané vlnové délky. Důsledkem toho dochází k tomu, že očekávaný vrchol nemusí být nutně nejvyšší. Abychom vyřešili tento problém, zavedeme další parametr výpočtu δ, který označuje minimální poměr předchozího a nově nalezeného vrcholu, aby byl nový vrchol uznán za platný. Obrázek 5.2 ACF klavírní stupnice (δ=1,0) Obrázek 5.3 ACF klavírní stupnice (δ=1,5) Z povahy problému vyplývá, že k chybám bude docházet určením špatného vrcholu autokorelační funkce, tudíž nejčastěji detekcí tónu ve špatné oktávě. 5.1.3 Implementace Vzhledem k tomu, že autokorelace pracuje se signálem v časové doméně, není kvůli jejímu výpočtu potřeba provádět spektrální analýzu. Parametry pro výpočet autokorelace jsou následující: 1. Úroveň autokorelace pro výpočet zúžené autokorelace,2,, 5-2. Délka autokorelačního okna (lag) tímto parametrem se mimo jiné určuje nejhlubší frekvence, kterou lze autokorelací zachytit,100,, 1000-3. δ parametr určující poměr vrcholů při hledání maxima <1; 2> 5.2 Invertovaná autokorelační funkce (IACF) Invertovaná autokorelační funkce je další variantou autokorelace signálu, která vychází ze vztahu původního signálu a korelace se signálem posunutým v čase. Zatímco v první variantě jsme zkoumali 28

pouze autokorelaci signálu, tentokrát je výsledkem funkce rozdíl hodnoty signálu a autokorelační funkce definované dle vztahu (Rovnice 5.7). Rovnice 5.7 Dle (12) bylo dokázáno, že (Rovnice 5.7) nejlépe vystihuje periodický signál f(t) na intervalu Nτ z hlediska střední kvadratické chyby. Výraz (Rovnice 5.8) dosahuje minimálních hodnot pro násobky vlnové délky základní frekvence signálu. Rovnice 5.8 Invertovaná autokorelační funkce Princip nalezení fundamentální frekvence signálu je podobný jako v případě předchozí varianty ACF s jediným rozdílem, že místo prvního vrcholu hledáme první dno funkce odpovídající jedné vlnové délce základní frekvence. 5.2.1 Implementace Invertovaná autokorelace je parametrizovaná stejně jako předchozí varianta. 5.3 Porovnávání se vzorem (pattern matching) Na rozdíl od dvou autokorelací, které jsme si právě uvedli, počítá většina metod zabývajících se hledáním fundamentální frekvence ve frekvenční doméně. Jednou z prvních, která přistupovala k problému podobně jako ta, kterou si za chvíli ukážeme, byla metoda Schröderova metoda histogramu (13). Po výpočtu FFT (lineární frekvenční osa) byla pro každou frekvenční složku a příslušné frekvence, jejichž vyšší harmonická by to mohla být, vypočtena hodnota, která byla následně uložena do tabulky. Hodnoty byly následně zváženy a na základě kritérií jako počet harmonických složek a jejich vah byla určena fundamentální frekvence F0. V principu se jednalo o metodu nalezení největšího společného dělitele harmonických složek obsažených ve spektru. V kapitole 4.2.2 jsme si ukázali metodu výpočtu Fourierovy transformace s konstantním faktorem rozlišení Q Constant Q Transform. Tato metoda má tu výhodu, že zachovává konstantní poměr mezi harmonickými složkami zvuku pro různé fundamentální frekvence, což se nám bude zrovna velice hodit. Díky tomu můžeme vytvořit konstantní vzor pro hledání harmonických tónů s jedničkami na pozicích vyšších harmonických frekvencí a nulami na pozicích zbývajících. Případně vytvořit tabulku těchto hodnot, abychom zbytečně neprocházeli nulové hodnoty. Takový vzor může vypadat následovně (rozlišení je zde dáno jako 24 čtvrttónů na jednu oktávu): 29

Obrázek 5.4 Jednoduchý harmonický vzor Pro tento vzor a spektrální výsledek CQT můžeme vypočítat korelaci, která přidělí váhy jednotlivým frekvencím. Každá vyšší harmonická složka signálu připadne na příslušnou složku harmonickém vzoru. Tudíž místo násobení, dělení, vážení, ukládání výsledků do tabulky a vybírání správných kritérií dostáváme jedno číslo pro každou frekvenci, které představuje součet frekvenčních složek zvuku, které jsou ve správné pozici tak aby byly násobky fundamentální frekvence (vyšší harmonické). Možnou variantou tohoto přístupu je nastavit harmonický vzor tak, že na základní pozici má hodnotu 1, zatímco na ostatních hodnoty nižší (např. 0,5), neboť při použití vzoru se samými jedničkami dochází často k identifikaci tónu v nižších oktávách. 5.3.1 Implementace První krok je výpočet spektrální analýzy pomocí CQT. Na výstup CQT se aplikuje algoritmus s následujícími parametry: 1. Harmonický vzor vybraný harmonický vzor, se kterým se koreluje spektrum. Může se použít vzor odpovídající konkrétnímu nástroji, ale stačí i obecný vzor uvedený v minulé kapitole. 2. Vyhlazení pomocí prokládání paraboly parametr určující, zda má být na vítězné pozici vrcholu provedeno zpřesnění metodou popsanou v další kapitole 5.4 Pomocná metoda prokládání paraboly (quadratic fit) Mezi pomocné metody, které můžeme při monofonní analýze použít, patří metoda prokládání paraboly. Není to metoda sama o sobě, ale může nám pomoci zpřesnit výsledky zmíněných metod. Její využití se nabízí v případě, kdy máme vzorkovanou funkci y(x) definovanou pouze pro celočíselné hodnoty x a hledáme její lokální maxima. Dá se totiž předpokládat, že v takovém případě maximum nepadne přesně na jeden z bodů z definičního oboru. Metoda prokládání paraboly spočívá ve vedení paraboly bodem, který se jeví jako maximum, a dvěma sousedními. Pokud maximální diskrétní hodnotu umístíme na x = 0 a y(0) = y 0, potom předpokládáme, že tři body označené jako (-1, y -1 ), (0, y 0 ) a (1, y +1 ) leží na parabole. Po odvození z rovnice paraboly dostaneme vztah (Rovnice 5.9), kterým vypočítáme posun souřadnice k maximu na x-ové ose. Rovnice 5.9 Vztah pro výpočet maxima metodou prokládání paraboly Metoda pochopitelně není úplně přesná, neboť nic neříká, že signál procházející třemi body musí mít tvar paraboly, nicméně stále se jedná o šikovnou metodu, která nám skutečnou polohu maxima dokáže alespoň přiblížit. Další nespornou výhodou je její výpočetní nenáročnost. 30

Obrázek 5.5 Grafické znázornění prokládání paraboly (14) čárkovaná čára znázorňuje skutečný průběh signálu, plná čára prokládanou parabolu 5.5 Pomocná metoda vyhlazení melodie Vzhledem k tomu, že výsledky metod detekce F0 nemusí být vždy přesné, vyplatí se na melodický výstup aplikovat dodatečnou heuristiku, která melodii upraví do uhlazenější podoby. Často se stává, že několik vzorků je detekováno správně, ale třeba jeden až dva jsou umístěny docela mimo očekávanou linii. Smyslem takovéto heuristiky je takové skupiny vzorků s jednou převažující frekvencí najít a vzorky, které byly špatně detekovány, přemístit na převažující frekvenci. Výstupy získané i takovou jednoduchou metodou jsou velice přijatelné a hodně dodávají celkovému dojmu z výsledku. 31

6 Polyfonní analýza (PA) Problematika detekce více fundamentálních frekvencí v rámci hudebního signálu je daleko komplexnější než monofonní analýza. Algoritmy pro polyfonní analýzu sice obecně předpokládají, že může být více než jeden harmonický zdroj (hudební nástroj) s rozličnými spektrálními charakteristikami, ale pro zjednodušení budeme v této práce předpokládat jenom jeden druh nástroje. Algoritmy pro MA nejsou pro PA příliš použitelné, nicméně využívají podobných principů nebo jsou na nich založeny. 6.1 Detekce počtu současně znějících tónů Podstatným problémem způsobeným komplexností polyfonních signálů je detekce počtu současně znějících tónů. Důsledkem překrývání alikvotních frekvencí jednotlivých tónů se informace o frekvencích, amplitudách a fázích zkresluje. V rovnoměrně temperovaném ladění existuje velká pravděpodobnost, že alikvotní a základní frekvence dvou tónů budou překrývat. Pokud jsou základní frekvence dvou tónů v celočíselném poměru (např. v oktávě), potom dochází k úplnému překrytí fundamentální frekvence vyššího tónu s vyšší harmonickou nižšího. Následkem tohoto může dojít ke špatnému odhadu a považováním fundamentální frekvence vyššího tónu za alikvotní bude počet odhadnutých tónů nižší než skutečný. K opačnému problému dojde, pokud se jeden tón detekuje jako součet několika hypotetických tónů. Navíc pokud rušivé vlivy jako ozvěna (dozvuk, akustika) a šum naruší periodickou složku zvuku, výsledek detekce počtu současně znějících tónů to ještě více zkreslí. 6.2 Metody polyfonní analýzy 6.2.1 Iterativní odhad Iterativní odhad iteruje přes předem odhadnuté kandidáty na fundamentální frekvence a postupně vyrušuje všechny její alikvotní složky, až dojde ke splnění konečné podmínky. Iterativní přístup předpokládá, že v každém cyklu iterace existuje dominantní zdroj, který lze ve spektru zřetelně rozlišit tak, že extrakce odpovídající fundamentální frekvence je spolehlivá, i když jsou vázané alikvotní frekvence zanedbatelné. 6.2.1.1 Celkové vyrušení Algoritmus celkového vyrušení nalezne libovolnou spektrální monofonní metodou fundamentální frekvenci a následně ze spektra odstraní všechny alikvotní frekvence. Tento přístup předpokládá, že kompletní odstranění dominantní frekvence nenaruší následný průběh výpočtu. Celkové vyrušení tu znamená, že interakce jednotlivých tónů jako překrývání alikvotních frekvencí se neuvažuje. Alternativou k celkovému vyrušení je metoda založená na stejném principu využívající spektrálních charakteristik konkrétních hudebních nástrojů, které jsou odečítány ze spektra. 6.2.1.2 Implementace Při implementaci jsem k odhadu fundamentální frekvence zvolil monofonní metodu porovnávání se vzorem popsanou v kapitole 5.3. Prvním krokem je tedy nalezení F0 pomocí této metody následovaný odečtením vzoru ze spektra. Parametry jsou shodné s monofonní metodou s jediným parametrem navíc, a to: - harmonický vzor harmonický vzor pro výpočet korelace a k odečítání ze spektra 32

1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 6.2.2 Spojitý odhad (joint estimation) Tato metoda se na rozdíl od iterativního přístupu pokouší vyhodnocovat možné hypotézy o kombinaci tónů bez rušení. Přestože signál není zkreslován postupným vymazáváním složek, stále není detekce spojitých složek jednoduchou záležitostí. Dle studií, které jsou uvedeny v (15), se spojitý odhad vyznačuje lepšími výsledky než iterativní metody, neboť jedno selhání v detekci fundamentální frekvence u iterativní metody znehodnocuje celý následující průběh výpočtu. 6.2.2.1 Implementace Důležitým principem při analýze polyfonního signálu je to, že hlubší tóny svými alikvotními frekvencemi zasahují do vyšších, ale naopak ne, proto je výhodné začít s odečítáním od nižších tónů, čímž se ze spektra odstraní zavádějící alikvotní tóny. Svoji metodu jsem založil na korelaci spektrálního vzoru (Obrázek 6.1) se spektrem signálu (Obrázek 6.2). 1,0 0,8 0,6 0,4 0,2 Spektrální model klavírního tónu 0,0 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49 51 53 55 57 59 61 63 65 67 69 71 Obrázek 6.1 Spektrální charakteristika klavírního tónu použitá při analýze CQT signálu 2500 2000 1500 1000 500 0 Obrázek 6.2 CQT části signálu obsahující klavírní akord C moll šipky označují reálné pozice tónů Výsledkem korelace těchto dvou vektorů je další vektor (Obrázek 6.3), z kterého je možné pomocí statistického percentilu určit množinu kandidátů na fundamentální frekvence. Při průchodu této množiny od nejnižšího tónu a odečítáním jejich spektrálních vzorů od spektra signálu dospějeme ke 33

1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 65 69 73 77 81 85 89 93 97 101 105 109 113 117 konečné skupině tónů včetně jejich relativních amplitud. Je jisté, že se mezi tóny objeví i nepravé, nicméně jejich amplitudy budou (tedy v závislosti na tom, jak použitý harmonický vzor odpovídá barvě tónů v signálu) relativně nízké. 3000 2500 2000 Volba kandidátů na F0 1500 1000 percentil 500 0 Obrázek 6.3 Korelace spektra a harmonického vzoru + volba kandidátů 6.2.3 Vztah korelace harmonického vzoru a spektra Další metoda, kterou jsem zkusil experimentálně implementovat, spočívá v jednoduchém principu, a to vyhodnocením vztahu mezi korelační funkcí spektra a harmonického vzoru a spektrem signálu. Základní myšlenka je taková, že na základě korelace zvýrazňuji nebo případně potlačuji jednotlivé složky spektra. Pokud má tón ve spektru slabou přítomnost, ale korelace je vysoká, pak se vynásobením upraví jeho váha ve výsledném spektru. Touto metodou lze tak upravit váhy jednotlivých složek ve spektru tak, aby blíže odpovídaly skutečnosti. Jedná se spíše o jednoduchou doplňkovou metodu, kterou lze využít v případě nespokojenosti s výsledky předchozích metod, případně pro porovnání. V praxi často dochází ke zvýraznění oktáv, jak lze vidět na analýze Měsíční sonáty od Beethovena v sekci ukázek. 34

7 Program AUDIOTAPE Program Audiotape je výsledek implementace všech uvedených algoritmů sloužících k analýze zvukových souborů. Hlavními rysy programu je analýza existujících souborů ve formátech WAV, MP3 a OGG a průběžná analýza a zobrazení dat nahrávaných ze vstupu nakonfigurovaného systému může se jednat o mikrofon, hudební nástroj připojený kabelem k počítači nebo takto nahrávat i momentálně přehrávanou skladbu v softwarovém přehrávači na počítači. Program podporuje analýzu zvukový dat se vzorkovací frekvencí 44100Hz s rozlišením 16bit. Kromě toho, že se jedná o standard pro zvukové stopy hudebních CD, je to také nejrozšířenější konfigurace, co se týče šíření hudby vůbec. Program je k dispozici ve dvou jazykových variantách v češtině a angličtině. Jazyk programu se volí automaticky podle prostředí operačního sytému nebo manuálně volbou spouštěcího skriptu. Nástroj je implementován v jazyce Java, díky čemuž jej lze provozovat na různých operačních systémech, nicméně má na provoz vyšší hardwarové nároky než by tomu bylo při implementaci pomocí jiných programovacích jazyků. Obrázek 7.1 Ukázka programu Audiotape 7.1 Spuštění programu a konfigurace prostředí Program vyžaduje nainstalované provozní prostředí JRE (Java Runtime Environment) verze 5 a vyšší. V případě jeho absence v systému na to spouštěcí skript upozorní chybovým hlášením. Program je možné spustit pomocí skriptů určených pro operační systémy windows (s příponou bat) a linux (s příponou sh): - audiotape.sh/bat (windows) automatická detekce jazykového prostředí - audiotape_cz.sh/bat, audiotape_en.sh/bat spustí konkrétní jazykovou variantu aplikace 35

7.2 Analýza zvukového souboru 7.2.1 Otevření souboru Zvukový soubor lze otevřít dvěma způsoby položkou v hlavním menu Otevřít soubor nebo přetažením soubor na aplikaci. Pokud formát souboru nevyhovuje parametrům aplikace, zobrazí se chybová hláška. Povolené jsou formáty WAV, MP3, OGG se vzorkovací frekvencí 44100Hz, hloubkou vzorku 16bitů s jedním nebo dvěma kanály (mono i stereo). Po úspěšném otevření souboru se v hlavním panelu aplikace vytvoří nová záložka s názvem souboru obsahující kromě nápisu, že ještě nebyla provedena žádná analýza, kombo box, ve kterém se budou později objevovat odkazy na výstupy provedených analýz. 7.2.2 Konfigurace Veškerá konfigurace se před provedením analýzy odehrává na levém panelu. Záhlaví panelu obsahuje základní rozcestník pro analytické metody, jehož nastavení určuje zobrazení dalších panelů souvisejících se zvolenými algoritmy. Uživatel tak vždy vidí pouze parametry týkající se algoritmů, které se budou během analýzy provádět. Pokud již uživatel otevřel soubor, je aktivní tlačítko Spustit analýzu, jehož stiskem se na zvolený soubor (soubor se zvolí otevřením příslušné záložky). Stiskem tohoto tlačítka se spustí analýza, jejíž průběh je znázorňován v nově zobrazeném panelu ukazujícím procentuální plnění. Provádění analýzy lze zrušit stiskem tlačítka Zastavit. Pokud ještě nebyl otevřen žádný soubor, je přesto aktivní tlačítko Spustit nahrávání, které zahájí nahrávání ze vstupu, který byl v operačním systému nastaven jako nahrávací vstup. V závislosti na konfiguraci se může jednat o mikrofonní vstup počítače, případně linkový vstup (line in) nebo u pokročilejších zvukových karet s více vstupy o kterýkoliv vybraný nahrávací kanál. Stejně tak se může nastavit jako vstup i zmixovaný výstup, který putuje do reproduktorů, pomocí kterého se dají zachytit vybrané části skladby, která je momentálně přehrávaná nějakým přehrávačem. 7.2.3 Výsledky analýzy Po provedení analýzy se ve velkém hlavním panelu zobrazí grafický výstup. Tento výstup má dvě vrstvy: spektrum a melodie. Oboje vrstvy se dají zapínat a vypínat stejnojmennými přepínacími tlačítky v horním panelu. V případě, že byla daná analýza založena na spektrální analýze, potom je k dispozici její výsledek, pokud ne, pak lze zobrazit pouze melodii (např. u autokorelačních metod). Intenzita tónů je u spektrální analýzy znázorněna barevně s paletou bílá-černá-červená a bílým pozadím. Střední hodnota pro výpočet barvy odpovídající dané amplitudě je získána percentilem z celého spektra/polyfonie. 7.2.4 Uložení výsledků Grafický výstup analýzy tak jak je momentálně nastaven (týká se to konfigurace zobrazení melodie a spektra) lze uložit na disk do souboru ve formátu PNG. To je možné provést jednak přes kontextové menu na grafickém panelu volbou položky Uložit analýzu jako obrázek nebo stejnojmennou položkou v hlavním menu. 36

7.3 Nahrávání Další funkcí programu je nahrávání a analýza ze systémového nahrávacího vstupu. Lze jej použít na libovolnou metodu využívající spektrální analýzu. Při analýze za běhu je patrné určité zpoždění, jednak je to tím, že některé metody potřebují mít při analýze rezervu signálu, aby mohly vyhodnotit data pro jedno časové okno, a další důvod je výpočetní složitost analytických algoritmů. Po ukončení nahrávání stejným tlačítkem jako pro spuštění se nahraná data analyzují ještě jednou, neboť pro některé funkce zobrazení je potřeba mít informace o celém signálu (zejména výpočet střední amplitudy spektra a signálu pro rozumné určení měřítka zobrazení). 37

8 Ukázky Obrázek 8.1 Stupnice C dur hraná na housle (MIDI) - Autokorelační funkce Detekce za pomocí autokorelacích funkcí ukázaly být v rozporu s očekáváním nepříliš přesná. Nejspíše vlivem ruchů v signálu dochází k odchylkám v detekci základní frekvence až o 50 centů (1 čtvrttón), což je u metody, u které jsem očekával přesnost vlnových délek v řádech jednotek naprosto nemyslitelná. Oproti tomu skvělé výsledky vykázala metoda porovnávání se vzorem, zejména v kombinaci s pomocnými technikami prokládání parabolou a vyhlazení melodie. Výsledek analýzy téhož souboru jako horní ukázka je na následujícím obrázku (Obrázek 8.2), ze kterého je patrné, že noty stupnice jsou hrané naprosto čistě (což se dá z předlohy patternu MIDI předpokládat). Obrázek 8.2 Stupnice C dur hraná na housle (MIDI) - Porovnávání se vzorem Další pěkná ukázka aplikace metody porovnávání se vzorem je na další straně, kde je umístěna analýza úvodu skladby Le Moulin od Yanna Tiersena. V přiložené spektrální analýze je vidět, že u znějícího nástroje často vyšší harmonické složky převyšují základní frekvenci, přesto tato metoda podává excelentní výsledky ve správném rozpoznání tohoto jevu. V kombinaci s prokládáním parabolou navíc pěkně detekuje jemné nuance tónů jako vibrato. 38

Obrázek 8.3 Le Moulin (Yann Tiersen) - CQT spektrum Obrázek 8.4 Le Moulin (Yann Tiersen) - monofonní analýza metodou "pattern matching" 39

Obrázek 8.5 Měsíční sonáta (Beethoven) - Polyfonní analýza metodou spojitého odhady Obrázek 8.6 Měsíční sonáta (Beethoven) klavír - Polyfonní analýza metodou korelace spektra a vzoru Na této stránce vidíme výsledky analýzy úvodu klavírní skladby Měsíční sonáta od Beethovena. Polyfonní analýza je očividně značně komplexnější a je proto dobré využít vícero metod k analýze jedné skladby. Nejčastějším problémem, který se v analýze vyskytuje, je detekce tónu na pozici druhé vyšší harmonické, tj. oktávy. Je to zjevné zejména v pravé ukázce. 40