prakticni final
DESCRIPTION
finTRANSCRIPT
-
FAKULTET ELEKTROTEHNIKE I RAUNARSTVA Sluajni procesi u sustavima
Ekstrakcija notnog zapisa iz audio signala
Natalija Heimovi
Mario Boan
Teo Petran
Franjo Pozai
-
2
Sadraj
1. Uvod ................................................................................................................................................ 3
2. Osnovno o elementima glazbe te visini tona .................................................................................. 3
3. Metode estimacije visine tona ........................................................................................................ 5
3.1. Metoda detekcije osnovnog perioda ...................................................................................... 5
3.2. Autokorelacijska metoda ......................................................................................................... 6
3.3. Adaptivni filtar ......................................................................................................................... 8
3.4. Yin estimator ........................................................................................................................... 8
3.5. Detekcija osnovne frekvencije signala u frekvencijskoj domeni ............................................. 8
3.5.1. Kepstralna analiza ............................................................................................................ 9
3.5.2. Spektar harmonijskog produkta .................................................................................... 10
4. Problemi estimacije osnovne frekvencije ...................................................................................... 11
5. O programu ................................................................................................................................... 12
5.1. Generiranje MIDI datoteke ................................................................................................... 14
5.2. Vane funkcije ....................................................................................................................... 15
6. Rezultati ......................................................................................................................................... 18
7. Zakljuak ........................................................................................................................................ 18
8. Literatura ....................................................................................................................................... 19
-
3
1. Uvod
Transkripcija glazbe moe se definirati kao sluanje glazbenog dijela, te zapisivanje notnog zapisa kao
biljeke. Do sada je puno rada uloeno u automatizaciju tog procesa pomou raunala, te su razvijeni
razliiti sustavi za tu svrhu, no jo uvijek nije razvijen nijedan sustav koji moe priblino konkurirati
ljudskom uhu te sluhu glazbenika. Problem transkripcije moe biti relativno jednostavan ako ga
ograniimo na jedan monofoni instrument (maksimalno jedan ton istovremeno), ali i iznimno
kompliciran za kompleksne polifone skladbe sa vie razliitih instrumenata.
Postoje mnoge potencijalne primjene automatske transkripcije glazbe:
''sustav kole sviranja'' moe biti napravljen tako da raunalo slua uenikovu izvedbu, te je
analizira, potom usporeuje s gotovim notnim zapisom i na temelju toga daje povratnu
informaciju.
Ukoliko glazba postoji samo kao audio zapis, glazbenicima bi se uvelike olakala analiza sa
sustavom automatske transkripcije. Ovo je posebno vano za identificiranje i klasificiranje
glazbe kako bi se lake snalazili, primjerice, u glazbenoj bazi podataka.
Prebacivanje glazbe u MIDI zapis omoguuje glazbenim producentima, DJ-ima i slino da
lagano mogu generirati razliite verzije glazbe iz originala.
Sm in kompozicije bi se ubrzao, jer bi se omoguilo kompozitoru da se vie koncentrira na
glazbu, nego na pisanje.
Automatska transkripcija glazbe ukljuuje ekstrakciju znaajki iz audio signala, te njihov simboliki
prikaz. Ovisno o obliku simbolikog prikaza glazbe biraju se neke znaajke. Primjerice, ukoliko se eli
generirati potpuni notni zapis, znaajke bi bile (vie o tim znaajkama u sljedeem poglavlju):
Tonalitet, ritmika mjera, tempo, dinamika, visine tonova.
Budui da je ekstrakcija svih znaajki potrebnih za notni zapis preambiciozan projekt, rad se fokusira
na problem estimacije visine tonova u monofonoj gitarskoj skladbi, te generiranje MIDI zapisa iz
skladbe.
2. Osnovno o elementima glazbe te visini tona
Glavni elementi glazbe su visina tona, ritam, dinamika i boja zvuka. Tonalitet je svojstvo tonalne
glazbe koje povezuje niz tonova ili akorda neke skladbe. U glazbenoj teoriji se termin tonalitet koristi
u puno razliitih svrha, te je teko laiki objasniti njegovo znaenje, no za potrebe rada moemo rei
da se odreuje na temelju akorada i ljestvica koje se koriste u skladbi. Tempo je znaajka glazbe koja
-
4
govori o brzini izvoenja skladbe. Dinamika slui za odreivanje glasnoe ili intenziteta izvoenja
skladbe ili dijela skladbe.
U radu se prouava jedan od problema transkripcije glazbe, prepoznavanje visine tona. Kljuan
koncept za prepoznavanje visine tona je glazbena ljestvica. Glazbena ljestvica je niz glazbenih tonova
razvrstanih u oktave, koji se nazivaju prema slovnom oznaivanju. Glazbena abeceda sastoji se od: c,
d, e f, g, a i h, te pomonih znakova povisilice () i snizilice (), kojima se oznauje promjena visine
tona za poluton. Izmeu osnovnih tonova se nalazi jo pet dobivenih povisilicama/snizilicama, to ini
ukupno 12 tonova rasporeenih u 10 oktava. Prema dogovoru iz 1955. godine, veina instrumenata
je izvedena tako da frekvencija tona A4 iznosi 440 Hz. Budui da su omjeri frekvencija susjednih
tonova konstantni, poznajui frekvenciju jednog tona, moeno dobiti sve ostale. Prema tome, sa
poznatom frekvencijom tona moemo odrediti o kojem tonu se radi, prema formuli 2.1.
(2.1.)
Slika 2.1. Prikaz tonova u ovisnosti o frekvenciji
-
5
3. Metode estimacije visine tona
Jedan od glavnih i najteih problema u transkripciji glazbe je estimacija visine tona kod polifonih
skladbi. Problemi proizlaze iz injenice da ljudska percepcija visine tona jo nije u potpunosti
istraena. Budui da je osnovna frekvencija fizika karakteristika bliska visini tona, mnogi estimatori
pokuavaju izdvojiti osnovnu frekvenciju unutar glazbenog signala.
Prema pristupu razlikujemo dvije vrste metoda estimacije glavne frekvencije: metode u vremenskoj
domeni ili u frekvencijskoj domeni. Metode u vremenskoj domeni su se pokazale korisne za
transkripciju monofonih melodija, a neke njih su: metoda estimacije osnovnog perioda,
autokorelacijska metoda, i metoda adaptivnog filtra. Transkripcija polifonih melodija se najee
obavlja u frekvencijskoj domeni, te se koriste dodatne tehnike za otkrivanje otkrivanje visine tona:
metoda umnoka spektra, kepstralna analiza.
Razvoj metoda estimacije visine tona se i dalje nastavlja i temelji se na sve sofisticiranijem koritenju
vremenske i frekvencijske domene primjene. Razvile su se dvije glavne vrste estimatora: sustavi
temeljeni na slunim modelima (inspirirani ljudskim sluhom), te sustavi temeljeni na statistikim
informacijama.
Pregled glavnih metoda estimacije se nalaze u nastavku.
3.1. Metoda detekcije osnovnog perioda
Ova metoda analizira signal u vremenskoj domeni te pokuava odrediti period na temelju odreenih
znaajki u signalu. Jedna takva metoda zove se zero-crossing, koja trai mjesta gdje signal prolazi kroz
nulu. Intervali izmeu tih toaka se mjere, zatim algoritam usporeuje uzastopne intervale da bi
odredio osnovnu frekvenciju. Varijacija na zero crossing metodu je metoda gdje se mjere udaljenosti
izmeu vrhova signala.
Pokazalo se da su obje metode vrlo ograniene pri radu sa stvarnim glazbenih signalima. Problem je u
tome to u stvarnim signalima uz glavne, postoje i ostale frekvencije zbog kojih e signal takoer
prolaziti kroz nulu, to e unositi greku u sustav. Metode detekcije osnovnog perioda su zato jedino
uspjene kada je ulazni signal priblian sinusoidalnom, tj. kada je broj prijelaza preko osi (nula) ili
vrhova priblino isti kao i kod osnovne frekvencije.
1990. godine je razvijena unaprijeena verzija metode transkripcije monofonog audio signala. Signal
se razdvaja u komponente koristei niz filtera. Svaki od filtera ima podruje proputanja od pola
oktave, to omoguava da izlaz svakog filtra sadri samo jedan valni oblik bez harmonika. Nakon toga
se na izlazu svakog filtra vri zero-crossing metoda. Konano, algoritam mora utvrditi koji od izlaza
-
6
filtera sadri pravu osnovnu frekvenciju, a to se postie usporeujui snage na izlazu iz svakog filtera.
Metoda uzima u obzir injenicu da harmonik vieg reda u signalu moe biti vei od osnovnog.
3.2. Autokorelacijska metoda
Ovom se metodom u vremenskoj domeni signal usporeuje sa svojom zakanjelom verzijom, u
potrazi za ponavljajuim uzorkom. Postoji niz implementacija, ali obino se signali usporeuju toku-
po-toku preko niza vremenskih kanjenja. Ova usporedba ima formu funkcije, a rezultati se mogu
nacrtati na grafikonu. Osnovna implementacija ove funkcije dana je formulom 3.1.:
= +
(3.1. )
gdje je n uzorak, i 0 < kanjenje N
Korelacija se dogaa kad se signali podudaraju, a na grafikonu se vidi kao maksimum korelacijske
funkcije. Osnovna frekvencija signala (engl. pitch) moe se pronai iz vremena kanjenja izmeu
maksimum korelacijske funkcije (oznaeno crvenom bojom na slici).
Slika 3.1. Autokorelacijska metoda
Autokorelacija je u svojoj osnovnoj implementaciji najuinkovitija na zvukovima niske do srednje
frekvencije pa stoga nije najprikladnija za glazbene signale, iji sadraj pokriva iroke frekvencijske
opsege.
-
7
Tolonen i Karjalainen su 2000. godine osmislili polifoni algoritam za estimaciju osnovne frekvencije
signala, temeljen na njihovoj poboljanoj izvedbi autokorelacije. Dizajnirali su sustav koji je priblino
odgovarao slunom modelu ljudskog sluha. Taj sustav funkcionira tako da se ciljani audio zapis
podijeli po 1 kHz u nisko i visoko frekvencijske pojaseve. Tada se na svaki pojas primjenjuje opa
autokorelacija, a zatim se rezultati zbrajaju. Opa autokorelacija je proces transformacije audio
signala u frekvencijsku domenu Fourierovom transfromacijom, kompresije tako dobivenih
spektralnih veliina te na kraju konverzije tih podataka natrag u vremensku domenu inverznom
Fourierovom transformacijom. Posljednja faza Tolonenova i Karjalainenova sustava je usmjerena na
definiranje jasnih osnovnih frekvencija signala unutar sumirane funkcije, jer konvencionalne
autokorelacijske funkcije prikazuju osnovne frekvencije koje odgovaraju cjelobrojnom viekratniku
osnovnog perioda, to moe oteati identifikaciju osnovnih frekvencija kada je u audio signalu
prisutno vie notnih zapisa. Njihovo rjeenje sastoji se od odsijecanja valnog oblika funkcije tako da
se zadre samo pozitivne vrijednosti; tako dobiveni valni oblik se zatim proiruje u vremenu
mnoenjem s dva, prije nego se oduzme od prvotnog valnog oblika. Rezultat je valni oblik s
uklonjenim (ili znaajno umanjenim) harmonicima druge razine; maksimum skoro nultog vremenskog
kanjenja je takoer uklonjen, kao i mnoge korelacijske vrijednosti niske razine. Tolonen i Karjalinen
predlau ponavljanje ovog procesa koritenjem proirenja mnoenjem s faktorom tri ili etiri, ukoliko
je potrebno ponititi harmonike vieg reda. Ovu novu funkciju nazvali su poboljanom sumirajuom
autokorelacijskom funkcijskom (ESACF). Ovaj proces opisan je na slici 3.2.; gornji dijagram prikazuje
sumiranu autokorelacijsku funkciju, a donji poboljanu autokorelacijsku funkciju sa jasno izraenim
osnovnim frekvencijama prisutnim u ciljanom audio signalu.
Slika 3.2. Sumirajua autokorelacijska funkcija (gore) i poboljana sumirajua autokorelacijska
funkcija (dolje) (Tolonen i Karjalainen, 2000)
-
8
Unato ovim poboljanjima, Tolonenov i Karjalainenov sustav moe rijeiti samo trodijelne polifonije,
a i to samo kad notni zapisi sadre vrlo sline jaine zvuka. Autokorelacija openito ne funkcionira
dobro kod harmonijski kompleksnih signala.
3.3. Adaptivni filtar
Metode adaptivnog filtra odreuju osnovnu frekvenciju ulaznog signala na samousklaivajui nain.
Moorer je 1974. godine razvio metodu koja minimizira ulazni signal nalazei optimalni eljasti
filtar (engl. comb filter). Da bi minimizirao signal, taj filtar mora biti u skladu s njegovim harmonikim
maksimumima. Osnovna frekvencija signala e biti poznata kad se pronae taj eljasti filtar.
3.4. Yin estimator
Ovaj estimator osnovne frekvencije je slian autokorelaciji, no implementirane su brojne
modifikacije, kombinirane da pomognu sprijeiti pogreke. Dizajnirao ga je Cheveigne 2002. godine, a
on tvrdi da je Yin estimator posebno uspjean u eliminaciji subharmonijskih greaka, koje su est
rezultat pogrene interpretacije maksimuma nultog kanjenja u autkorelacijskim algoritmima.
Dok autokorelacija maksimizira produkt valnog oblika i svoje zakanjele verzije, Yin pokuava
minimizirati razliku.
Kada se za procjenu algoritma koriste snimke govora, njegova stopa pogreke triput je nia od
najboljih konkurentskih metoda. Daljnja prednost nad autokorelacijom je ta da je Yin algoritam
pogodan za odreivanje osnovnih frekvencija glasovnih i glazbenih signala visokih osnovnih
frekvencija. Meutim, ovaj je algoritam do sad koriten samo pri detekciji osnovne frekvencije
monofonih signala.
3.5. Detekcija osnovne frekvencije signala u frekvencijskoj domeni
Ove metode imaju za cilj podjelu audio signala na njegove frekvencijske komponente.
Transformacijom signala iz vremenske u frekvencijsku domenu otkrivaju se energije sadrane unutar
uskih frekvencijskih pojaseva. Gdje su energije frekvencijskog pojasa visoke, treba detektirati
predstavlja li ta frekvencija osnovnu frekvenciju, dio harmonika ili um. Na slici 3.3. je prikazan
primjer spektra te je crvenom bojom oznaena detektirana frekvencija. Metode opisane u nastavku,
kao to su kepstralna analiza i spektralna analiza harmonijskog produkta, pomau pri procesu
detekcije.
-
9
Slika 3.3. Detekcija osnovne frekvencije u frekvencijskoj domeni
Uobiajena metoda za transformaciju signala u frekvencijsku domenu je vremenski kratka Fourierova
transformacija (STFT). Problem ove metode je vremensko/frekvencijski balans rezulocije, kao i
injenica da se podaci primaju u formatu koji se ne podudara s ljudskom percepcijom osnovne
frekvencije.
3.5.1. Kepstralna analiza
Kepstralna analiza je metoda koja razdvaja dio zvuka koji sadri osnovnu frekvenciju od ostatka
spektra. Iako se uglavnom koristi u aplikacijama za obradu govora, moe biti vana i za odreivanje
notnih zapisa izvedenih na instrumentu kao to je gitara jer e spektar sadravati i osnovnu
frekvenciju, koja se stvara uzbudom ice, i rezonanciju, koja je filtrirani dio zvuka nastao u tijelu
instrumenta. Kepstar se moe tehniki definirati kao spektar snage logaritma spektra snage.
Tipina implementacija kepstralne analize poinje Fourierovom transformacijom iz vremenske u
frekvencijsku domenu. Zatim se raunaju logaritamske vrijednosti rezultantnih veliina da se signal
dovede u korisno podruje. Na kraju se izvodi inverzna Fourierova transformacija te se dobiva valni
oblik koji sadri jedan maksimum na poetku i koji je povezan s rezonancijom zvuka te drugi
maksimum dublje u valnom obliku, koji predstavlja element zvuka s osnovnom frekvencijom.
Osnovna frekvencija se odreuje raunajui udaljenost izmeu poetka valnog oblika i mjesta drugog
maksimuma na vremenskoj osi.
Kepstralna analiza je u poetku bila zamiljena da radi s monofonim govornim signalima, gdje se
pokazala vrlo djelotvornom, no 2003. godine Gerhard je otkrio da je ta djelotvornost umanjena kad
-
10
se primjeni na glazbene signale pa ova metoda nije nala svoju primjenu u sustavima za obradu
polifonih signala.
3.5.2. Spektar harmonijskog produkta
Ova metoda koristi injenicu da spektar glazbenog tona koji se izvede na instrumentu sadrava
maksimume na osnovnoj frekvenciji i njenim cjelobrojnim viekratnicima. Metoda spektra
harmonijskog produkta ukljuuje primjenu Fourierove transformacije za dobivanje spektra koji
predstavlja frekvencijske komponente unutar zadanog segmenta ulaznog audio signala. Verzije ovog
spektra se zatim kreiraju na mjestima gdje je signal umanjen dva ili tri puta (ili jo vie). Originalna i
umanjene verzija spektra se zatim mnoe, a kao rezultat se dobiva novi spektar u kojem je osnovna
frekvencija note jasno vidljiva. To je zato to e se prvi maksimum u originalnom spektru (maksimum
na osnovnoj frekvenciji) poklapati s drugim maksimumom (maksimumom drugog harmonika) dvaput
umanjenog spektra, koji e se pak poklapati s treim maksimumom (treeg harmonika) triput
umanjenog spektra.
Slika 3.4. Spektar harmonijskog produkta (Middleton, 2003)
-
11
4. Problemi estimacije osnovne frekvencije
Pri estimaciji osnovne frekvencije akustinih signala mogu se pojaviti mnogi problemi. Fry 1992.
godine istie da frekvencije efekata tona koji se koriste za pojedine instrumente (npr. distorzija za
gitaru) mogu utjecati na estimaciju konane frekvencije note. Da bi se izvela tona estimacija
osnovne frekvencije, potrebno je ekati da se efekti tona smire, to je oito vrlo teko u situacijama
kad se note izvode u bliskim vremenskim razmacima. Roads tvrdi da efektima tona nekih
instrumenata treba oko 100 ms da se smire.
Daljnji problem uoio je Klapuri 2003. godine. On je ustvrdio da kada nota nastane iz neidealnih
realnih fizikih vibratora, kao to su ice gitare, harmonijski dijelovi nota nisu u preciznim
cjelobrojnim omjerima. Ovaj problem utjee na mnoge detektore osnovne frekvencije koji rade u
frekvencijskoj domeni jer je njihov rad zasnovan na teoriji da su harmonijski dijelovi nota cjelobrojni
viekratnici osnovne frekvencije. Slijedei ovu teoriju, algoritmi potvruju ili negiraju maksimum
spektra kao osnovnu frekvenciju gledajui pozicije u spektru koje odgovaraju viekratnicima
potencijalne osnovne frekvencije pa ako maksimum postoji na tim lokacijama, podupiru hipotezu da
je originalni maksimum na osnovnoj frekvenciji. Meutim, ako harmonijski dijelovi postoje, ali nisu
viekratnici osnovne frekvencije, tono odreivanje osnovne frekvencije postaje kompliciranije. Ovaj
problem se dodatno poveava kod polifone detekcije osnovne frekvencije, gdje algoritam ne samo da
mora nai maksimume na aproksimativnim lokacijama, ve i odrediti jesu li ti maksimumi
harmonijska tonska prekoraenja, osnovne frekvencije ili pak um.
Postoje situacije u kojima je potrebno da detektori osnovne frekvencije signala rade u stvarnom
vremenu; primjer toga je glazbena izvedba u kojoj je potrebna suradnja na relaciji ovjek-raunalo,
gdje raunalo uje glazbenika i daje mu prikladan odgovor. U tim situacijama detektori osnovne
frekvencije susreu se s poveanim potekoama, budui da moraju izvoditi obradu to je bre
mogue. To ini na poetku navedeni problem efekata tona jo veim, a Roads dodatno istie da
veina detektora osnovne frekvencije koji rade u vremenskoj domeni mora uhvatiti najmanje tri
ciklusa stabilnog valnog oblika prije nego moe zapoeti detekciju. Za ilustraciju, najnii ton gitare E2
ima frekvenciju 82,4 Hz pa je za hvatanje njegova tri ciklusa potrebno 36 ms. Problem kanjenja ne
rjeava se koritenjem detektora osnovne frekvencije koji rade u frekvencijskoj domeni, jer je tijekom
postupka Fourierove transformacije veliina vremenskog otvora uvelike ovisna o niskim
frekvencijama prisutnim u audio signalu i rezoluciji prema kojoj bi se osnovne frekvencije trebale
prepoznavati; taj proces unosi kanjenje.
-
12
5. O programu
Program se temelji na kombinaciji dviju metoda za prepoznavanje visine tona. Jedna metoda je
frekvencijska i koristi Fourierovu transformaciju, a druga vremenska te koristi autokorelacijsku
funkciju. Prva ideja programa je bila i najjednostavnija, te se sastojala od rastavljanja signala na N
dijelova ovisno o veliini vremenskog otvora. Na svaki izdvojeni dio se primjeni FFT (engl. Fast Fourier
Transform), te se na temelju najvee spektralne komponente oita frekvencija. Testiranjem ovog
algoritma pojavili su se neki problemi. Na slici 5.1. je prikazan spektar jednog tona odsviranog na
gitari. Vidljivo je da u ovom sluaju najvea spektralna komponenta nije ta koju traimo. Naime, u
ovom sluaju je harmonik jai od osnovne frekvencije, to bi dalo krivi izlaz.
Slika 5.1. Rastavljanje signala na N dijelova ovisno o veliini vremenskog otvora
Sljedei problem je bio preciznost Fourierove transformacije. Budui da se frekvencije susjednih nota
pogotovo na niim frekvencijama malo razlikuju u frekvenciji, potreban je vrlo precizan spektar. Na
tablici 1 je vidljivo da su razlike izmeu susjednih nota svega par Hz, primjerice od C1 do C#
1/Db
1 je
1,95 Hz. Pozitivno je da se srednje i vie frekvencije ee pojavljuju od niih, a to su vie frekvencije,
razlike izmeu susjednoh nota su vee. To znai da za dobar rad algoritma odstupanje spektra moe
biti maksimalno 0,97 Hz. Za precizniji spektar je potrebno vie uzoraka, te je stoga oteano
prepoznavanje vremenski bliskih tonova. Eksperimentalno je pokazano da su rezultati zadovoljavajui
za 6000 uzoraka po okviru (dodatno prije transformacije se signal proiruje sa 3000 nula sa svake
strane). Uz problem vremenski bliskih tonova se javlja i problem specifian za gitaru, te jo neke
instrumente. Nakon to se odsvira ton, (u sluaju gitare kad se trzne ica) u relativno kratkom
vremenskom razdoblju je nemogue oitati dobar spektar zbog prisutnosti jakog uma odnosno zbog
-
13
nagle promjene amplitude signala (tzv. attack). Taj problem vie dolazi do izraaja kod brzog sviranja
(vremenski vrlo bliskih tonova).
Tablica 5.1. Prikaz nota po frekvencijama
Nota Frekvencija (Hz) Nota Frekvencija (Hz) C1 32.70 F#1/Gb1 46.25
C#1/Db1 34.65 G1 49.00
D1 36.71 G#1/Ab1 51.91
D#1/Eb1 38.89 A1 55.00
E1 41.20 A#1/Bb1 58.27
F1 43.65 B1 61.74
F#1/Gb1 46.25 C2 65.41
Budui da je zahtijev programa i generiranje MIDI datoteke, potrebna je i informacija o vremenu kad
se koja nota oekuje. Gornja metoda ne omoguuje dobivanje te informacije, te je trebalo prilagoditi
algoritam. Odlueno je izbjei analiziranje cijelog signala u frekvencijskoj domeni i umjesto toga
pratiti pojavljivanje novih nota te analizirati samo uzorke nakon pojavljivanja. To je ostvareno
pomou sljedeeg algoritma (funkcija notetimes.m).
Signal je podijeljen na N dijelova veliine okvira 1000. Svaki okvir je podijeljen na 2 dijela po 500
uzoraka, te se u svakom dijelu od 500 uzoraka trai maksimum. Ako maksimumi zadovoljavaju
odreene uvjete (drugi maksimum je vei od prvog, prvi maksimum je manji od prethodno odreene
vrijednosti, a drugi vei), uzima se kao poetak nove note. Na slici 5.2. je ilustriran gornje opisani
proces, te je oznaen poetak jedne note naen algoritmom. Na slici 5.3. je prikazan rad algoritma na
testnom primjeru (sa crvenim tokama su oznaeni poetci nota naeni algoritmom).
Slika 5.2. Maksimumi signala podijeljenog u uzorke
-
14
Slika 5.3. Ilustracija rada algoritma
Nakon to su naeni svi uzorci koji predstavljaju poetke nota, od svakog se uzima sljedeih 6000
uzoraka, te se na njih primjenjuje FFT (sa dodatkom 3000 nula sa lijeve i desne strane), te se rauna
autokorelacijska funkcija. Na temelju spektra i autokorelacijske funkcije se raunaju dominantne
frekvencije, te se spremaju u nizove.
Frekvencije se pretvaraju u note u funkciji nadinotu.m. Funkcija, kao i cijeli program pretpostavlja da
su instrumenti koriteni u snimci podeeni prema meunarodnom standardu (ton A je 440,00 Hz).
Prema tom standardu su poznate frekvencije svih tonova, koje su zapisane u jednoj varijabli. U
funkcija vraa ton ija je frekvencija najblia ulaznoj frekvenciji.
5.1. Generiranje MIDI datoteke
Program kao izlaz generira dvije MIDI datoteke (jedna za autokorelacijsku metodu, druga za
frekvencijsku metodu) koje slue kao provjera rada programa. Kd za generiranje MIDI datoteka je
preuzet sa internet stranice http://www.kenschutte.com/midi.
Za generiranje jedne datoteke su potrebni podatci o tonovima, te o vremenima kad se koji ton
pojavljuje, te kad zavrava. Podaci o tonovima su spremljeni u niz sa brojevima, s tim da ton C4
(middle C) ima redni broj 60 (zatim Db4 = 61, D4 = 62 itd.). Podaci o vremenima pojavljivanja tonova
se raunaju iz rednih brojeva uzoraka koje vraa funkcija notetimes.m i frekvencije otipkavanja
signala fs prema formuli 5.1.
!" = # %&! #! (5.1. )
vzapis(i) = notestarts(i)/fs; % Vremenski zapis
U programu je zadano trajanje svakog tona na 0,5 sekundi.
-
15
5.2. Vane funkcije
Funkcija notetimes.m (algoritam za traenje poetaka tonova)
function [ notetimes ] = notetimes( y )
okvir = 1000; % veliina okvira N = max(size(y)); % duljina signala i = 1; br = 1; threshold = 0.05; % rubna vrijednost notetimes(1) = 0;
while (((i+1) * okvir) < N) sample1 = y((i-1)*okvir+1:(i*okvir)); % ekstrakcija prvog okvira sample2 = y(i*okvir+1:((i+1)*okvir)); % ekstrakcija drugog okvira
[max1, ind1] = max(abs(sample1)); % prvi maksimum [max2, ind2] = max(abs(sample2)); % drugi maksimum
if ((max2 > max1) && (max1 < threshold) && (max2 > threshold)) notetimes(br) = (i)*okvir + 1 + ind2; val1(br) = max2; br = br + 1; end i = i +1; end
t = (1:N); plot(abs(y)); % grafiki prikaz rezultata algoritma hold on plot(t(notetimes+1),val1,'r*');
Funkcija nadinotu.m (prepoznavanje frekvencije)
function [ nota, k ] = Untitled1( freq ) % Funkcija za prepoznavanje frekvencije % % Funkcija kao ulazni parametar prima frekvenciju, a vraa redni broj tona % i broj tona koji slui za generiranje MIDI datoteke.
frekvencije = [ % Vrijednosti frekvencija 65.41; 69.30; 73.42; 77.78; 82.41; 87.31; 92.50; 98.00; 103.83; 110.00; 116.54; 123.47; 130.81; 138.59; 146.83; 155.56; 164.81;
-
16
174.61; 185.00; 196.00; 207.65; 220.00; 233.08; 246.94; 261.63; 277.18; 293.66; 311.13; 329.63; 349.23; 369.99; 392.00; 415.30; 440.00; 466.16; 493.88; 523.25; 554.37; 587.33; 622.25; 659.26; 698.46; 739.99; 783.99; 830.61; 880.00; 932.33; 987.77; 1046.50; 1108.73; 1174.66; 1244.51; 1318.51; 1396.91; 1479.98; 1567.98; 1661.22; 1760.00; 1864.66; 1975.53; 2093.00; 2217.46; 2349.32; 2489.02; 2637.02; 2793.83; 2959.96; 3135.96; 3322.44; 3520.00; 3729.31; 3951.07; 4186.01; 4434.92; 4698.64; 4978.03]; nota = 'IS';
-
17
mat = [1:12]; note = [mat';mat';mat';mat';mat';mat';mat'];
N = size(note)-8; nota = 13; if (freqfrekvencije(76)) % sluaj kad je frekvencija prevelika nota = 0; k = 0; return end
k = 0;
% Traenje najblie frekvencije i pripadne vrijednosti za generiranje MIDI % zapisa.
for i=1:N if (freq < frekvencije(i)) if (abs(freq-frekvencije(i-1))
-
18
6. Rezultati
U svrhu testiranja programa te usporeivanja metoda napravljena su tri audio zapisa, jednostavne
melodije odsvirane na elektrinoj gitari. Prvi primjer je najjednostavniji, odsvirana je ljestvica, te traje
tri sekunde. Sljedea dva primjera su glavne melodije pjesme ''My Favourite Things'' Richarda
Rodgersa, te pjesme ''Footsteps'' Waynea Shortera.
Na prvom, najjednostavnijem testnom primjeru oba algoritma imaju savren rezultat prepoznavanja
tonova, te algoritam za traenje poetka tona takoer savreno radi. Na drugom primjeru, od 41
pronaenog tona frekvencijska metoda ima 6 promaaja (algoritam je promaio za pola tona ili ton),
a autokorelacijska 2 promaaja, oba za isti ton (algoritam je registrirao tonove kao oktavu nie nego
to jesu). Algoritam za pronalaenje poetaka je propustio nai 3 poetka. Na treem primjeru je
najvie zakazao algoritam za pronalaenje poetaka, propustio je registrirati 6 tonova. Frekvencijska
metoda je ponovno imala par promaaja za pol tona, dok se autokorelacijska metoda pokazala
najbolja, te je imala jedan promaaj, za oktavu.
7. Zakljuak
U radu su opisane osnovne metode za estimaciju visine tona, te su dvije od tih metoda, osnovna
frekvencijska te autokorelacijska, programski izvedene. Ukazano je na prednosti i nedostatke svakog
algoritma, te na probleme automatske transkripcije.
Za monofone zapise se boljom pokazala autokorelacijska metoda, budui da je davala manje greaka
od frekvencijske. Glavni problemi frekvencijske metode lee u rezoluciji spektra, koja se moe
poboljati iskljuivo poveanjem broja uzoraka za analizu, to znai veu mogunost pogreke kod
bliskih tonova. S druge strane, autokorelacijska metoda je dala skoro savren rezultat sa istim brojem
uzoraka kao i frekvencijska. Najvea mogunost napretka se vidi u optimizaciji funkcije za traenje
poetaka tonova, te u primjeni jednog od opisanih algoritama za poboljanje implementiranih
metoda.
Univerzalni sustav za automatsku transkripciju glazbenog zapisa je i dalje samo elja mnogih
glazbenika i uenika glazbe. Takoer, vrlo je dobar za primjer problem koji istrenirani mozak rjeava
ekstremno bolje nego bilo koje raunalo. No, ve sada postoje sustavi specijalizirani za pojedine
instrumente, koji funkcioniraju u realnom vremenu, primjerice Rolandov GR-20, sustav za instantno
generiranje MIDI toka podataka preko gitare. Napredak se, kao i uvijek oekuje ne samo iz podruja
raunarske znanosti, ve i iz podruja koja prouavaju ljudski mozak, te percepciju.
-
19
8. Literatura
[1] DODDS, C: Toward the Automatic Transcription of Electric Guitar Signals, 2007 [2] SCHUTTE, K. U: Matlab and MIDI, s interneta, 2010. [3] ISIKHAN, C; OZCAN, G: A Survey of Melody Extraction Techniques for Music
Information Retrieval, 2008. [4] BOERSMA, P.:Accurate short-term analysis of the fundamental frequency and the
harmonics-to-noise ratio of a sampled sound, 1997. [5] http://hr.wikipedia.org/wiki/Glazba [6] http://en.wikipedia.org/wiki/Pitch_detection