Aplicație de recunoaștere și redare a notelor muzicale [618108]

UNIVERSITATEA POLITEHNICA BUCUREȘTI
FACULTATEA DE AUTOMATICĂ ȘI CALCULATOARE
DEPARTAMENTUL CALCULATOARE

PROIECT DE DIPLOMĂ

Aplicație de recunoaștere și redare a notelor muzicale

Coordonator științific :
Ș.I. Dr. Ing. Anca Morar

Absolvent: [anonimizat]
2017

Cuprins

Abstract 2
1 Introducere 3
1.1 Motivația . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Studiul literaturii din domeniu 5
2.1 Procesare de imagini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 Preprocesare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1.2 Prelucrarea frontiere lor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 Extragerea caracteristicilor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Procesare de sunete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Notații muzicale de bază . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Reprezentarea sunetelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.3 Redarea sunetelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3 Tehnologii utilizate 17
3.1 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2 OpenCV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.3 MusicXML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Implementare 19
4.1 Detecția notelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Construirea partiturii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.3 Solfegierea partiturii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
5 Rezultate 20
6 Concluzii 21
6.1 Direcții viitoare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2
Abstract

Prelucrarea de imagini presupune uti lizarea operațiilor matematice în procesarea
semnalului pentru care intrarea este o imagine, iar ieșire a, în expunerea prezentă, este un
set de elemente muzicale , organizate ritmic în scopul de a sublinia „efortul pe care îl
facem pentru a ne explica cum f uncționează creierul nostru” , conform definiției date
muzicii de către Lewis Thomas . În această lucrare , îmi propun prezentarea unei aplicații
care permite solfegierea unei partituri muzicale.
Pentru atingerea obiectivului menționat am dezvoltat un algorit m care transformă
o imagine în meta -limbaj de marcare (XML) , prin parcurgerea succesivă a etapelor
pentru reducerea zgomotului, eliminarea liniilor portativului , a barelor de măsură și
extragerea elementelor muzicale. Acestea din urmă sunt reprezentate în format
Music XML , standard acceptat de programul MidiAndMusicXmlPlayer .
Implementarea , bazată pe limbajul Python , utilizează framework -ul OpenCV
pentru facilitarea procesului descris , întrucât biblioteca contribuie cu o implementare
eficientă a detectorului de muchii Canny , a transformatei Hough pentru identificarea
liniilor sau a tehnicii folosite pentru extragerea caracteristicilor muzicale, Template
Matching .

Aplicație de recunoaștere și redare a notelor muzicale

3
Capitolul 1

Introducere

De-a lungul timpului, muzica a reprezentat un punct de interes important în rândul
oamenilor , fiind folosită ca modalitate de evocare și exprimare a sentimentelor, fie ca muzicieni
activi, fie ca a scultători amatori. Indiferent despre ce curent muzical vorbim, a existat nevoia
de a descrie ideile într-un format grafic ușor de înțeles , care a condus la introducerea notației
muzicale.
Deși a evoluat de-a lungul secolelor, muzica, sub diferite le ei reprezentări , constituie o
parte esențială a culturii și a identității unui popor, fapt ce se reflectă și în educație , deoarece
copiii, încă din ș coala p rimară, se familiarizează cu sintaxa și semantica notelor, urmând ca
pentru aprofundare să învețe anumite convenții muzicale.
Odată cu evoluția muzicii, pute m aminti și creș terea neașteptată în ultimele decenii a
interesului pentru dezvoltarea tehnologiilor care să suplinească întocmai omul. Trasând o
legătură fină , între cele două mari domenii de interes , prin menționarea procesului de
recunoaștere a modelelor din cadrul Computer Vision , s-a dezvoltat Optical Music Recognition .

1.1 Motivația

Ideea traducerii unei partituri muzicale într-o reprezentare auditivă s -a născut la sfârșitul
anilor ’60, în cadrul Massachuse tts Institute of Te chnology , unde au avut loc încercări succesive
pentru a localiza și elimina liniile portativului, păstrând simbolurile muzicale pentru a putea fi
recunoscute și interpretate, ca mai apoi, o dată procesate, să fie redate. Am identificat
fenomenul ca unul în care a fost investit timp, deoarece primul produs comercial de scanare și
redare muzicală, MIDSCAN , a fost lansat în anul 1991 de căt re compania Musitek .
Sâmburele recunoașterii și redării simbolurilor muzicale se află în Optical Chara cter
Recogn ition, numai că, în ceea ce privește cuvintele, acestea sunt proc esate secvențial, în timp
ce notația muzicală implică elemente paralele , cum ar fi prezența mai multor voci, împreună
cu relația spațială dintre note, semne le de expresie, dinamica și alte adno tări. La fel ca în
recunoașterea optică a caracterelor, obiectivul este transformarea unei reprezentări implicite a
datelor , într -una explicită , practică ce necesită recunoașterea primitivelor muzicale și
asamblarea lor în structurile de nivel înalt , ce reprezintă muzica.
Motivația existenței unui sistem care să facă posibilă transformarea partitură scrisă –
partitură audio a constituit -o nu numai ideea că muzicienii ar beneficia de o modalitate de a
obține idei despre o compoziție, deoarece aceștia au cunoștințele necesare pentru a sesiza
aspecte nedorite în lucrarea scrisă, ci ar fi util într-un mediul educațional sau unul familial .

CRISTIAN -RĂZVAN ION

4
Trebuie amintit faptul că talentul se cultivă pentru că altfel se pierde, iar acest proces, de
antrenare a talentului nativ, pornește în copilărie, continuă în școală, pentr u ca împreună cu
dorința posesorului să conducă la aprofundarea domeniului muzical.
Scopul acestei lucrări este de a furniza un prototip software , abordat dintr -o altă
perspectivă decât în realizările descendent e, care convertește notația muzicală – sub forma unor
partituri scanate – în interpretări acustice.

Aplicație de recunoaștere și redare a notelor muzicale

5
Capitolul 2

Studiul literaturii din domeniu

Partitura muzicală este artefactul principal al trans miterii emoției prin muzică, iar de -a
lungul secolelor aceasta a evoluat atât la nivel d e simboluri, cât și din punctul de vedere al
complexității . Interesul pentru crearea muzicii s -a intensificat la sfârșitul secolului al XIX -lea,
când au apărut sistemele tipografice muzicale, iar ceva mai recent, sfârșitul aceluiași secol, a
fost dezvoltat primul produs software pentru tipărirea partiturilor muzicale, însă unul dificil de
utilizat. A fost nevoie de par curgerea acestor etape, ca în prezent să existe sisteme de redare de
sunete , care acceptă un format apropiat de limbajul natural.
Progresul î n domeniu a fost semnificabil, însă nu radical, drept dovadă stau numeroasele
partituri scrise cu „pixul pe hârtie”, iar dezvoltarea unor algoritmi pentru procesarea imaginilor
în scopul recunoașterii notațiilor muzicale a fost iminentă, deoarece transcrie rea manuală a
partiturilor muzicale într -un format digital adecvat necesita mult timp. Acești algoritmi au fost
esențiali pentru dezvoltarea sistemelor de recunoaștere și codificare a simbolurilor muzicale
pentru o transformare directă a „muzicii de hârtie “ într-un format machine -readable .
Un cadru tipic pentru recunoașterea automată a unui set de partituri muzicale cuprinde
următoarele 4 etape :
– preprocesare de imagini;
– recunoașterea simbolurilor muzicale;
– reconstrucția informațiilor muzicale;
– construirea u nui model de notație muzicală;
Transformările survenite de la imagine la redarea compoziției muzicale, precum și cei
mai folosiți algoritmi dezvoltați pentru acoperirea celor patru etape menționate anterior sunt
prezentați în secțiunile următoare.

2.1 Proces are de imagini

Procesarea de imagini presupune efectuarea unor operații asupra unei imagini, cu scopul
îmbunătățirii calitative a acesteia și a extragerii informațiilor utile, în lucrarea prezentă
contribuind la ident ificarea simbolurilor muzicale di ntr-o partitură. Există două tipuri de
metode utilizate pen tru procesarea imaginilor: prelucrarea imaginilor analogice și a celor
digitale. Procesarea imaginilor analogice, poate fi utilizată pentru copiile imprimate, analiștii
folosind diverse metode de interp retare, bazate pe diferite tehnici vizuale . Tehnicile digitale de
procesare a imaginii ajută la manipularea imaginilor digitale prin utilizarea calculatoarelor.

CRISTIAN -RĂZVAN ION

6
În paragrafele următoare sunt prezentați câțiva algor itmi utilizați în prelucrarea
imagini lor d igitale , grupați, în funcție de scopul lor, în algoritmi pentru preprocesarea
imaginilor, algoritmi pentru detecția muchiilor și algoritmi pentru extragerea caracteristicilor
dintr -o imagine. Aceasta clasificare survine ca urmare a scopului aplicației prop use și anume,
detecția și redarea simbolurilor muzicale dintr -o partitură dată. De menționat că este o
repartizare proprie a acestor algoritmi, bazată pe subiectul în cauză, domeniul amplu prezentat,
procesarea imaginilor , ocupându -se de m ulte alte aspecte care nu fac scopul lucrării prezente .

2.1.1 Preprocesare

Preprocesarea imaginii impune aplicarea unor operații pe o imagine , la cel mai scăzut
nivel de abstractizare, al căror scop este îmbunătățirea calității acesteia , prin suprimarea
distorsiunilor nedorite sau prin ajustarea unor caracteristici ale imaginii importante pentru
prelucrarea ulterioară. Important de menționat este faptul că în această etapă nu crește
conținutul informațional în ceea ce privește imaginea.
Preprocesarea imaginii utilizează redunda nța în imagini, astfel un pixel distorsionat poate
fi restabilit ca o valoare medie a pixelilor vecini, deoarece aceștia au aceeași sau aproape
aceeași valoare de luminozitate. Metodele de preprocesare de imagini pot fi clasificate în
funcție de dimensiune a vecinătății pixelului utilizat pentru calculul luminozității. În rândurile
următoare sunt prezentate câteva transformări de luminozitate și metode locale de preprocesare
de imagini.

Restaurarea imaginii
În cadrul procesului de recunoaștere a simbolurilo r muzicale într -o imagine, trebuie notat
următorul amănunt , referitor la calitatea acesteia, și anume, corectarea partiturii oblice care, de
cele mai multe ori, are ca sursă o fotografie în care au fost surprinse și alte aspecte , sub un
unghi care îngreune ază aplicarea algoritmilor de detecție de simboluri.
Această operație efectuată asupra unei imagini impune parcurgerea următoarelor etape:
– convertirea imaginii originale într -o imagine binară , aspect important pentru
detectarea numai a părților importante din imagine;
– detectarea liniilor portativului, folosind transformata Hough ;
– calcularea unghiului de rotație, pe baza unei linii a portativului detectată an terior și
prin aplicarea formulei matematice: tan−1𝑦2−𝑦1
𝑥2−𝑥1, unde A( 𝑥1,𝑦1) și B( 𝑥2,𝑦2) sunt 2
puncte alese arbitrar pe dreapta definită de portativ;
– rotația imaginii, cu păstrarea dimensiunilor inițiale, deoarece în urma aplicării
unghiului de rotație, dimensiunile imaginii se pot modifica;

Filtrarea imaginii
În etapa de preprocesare este importantă îmbunătățirea calitativă a imaginii originale.
Dacă anterior a fost menționată o metodă de restaurare a imaginii, care facilitează detecția de
simboluri muzicale , cu același scop intervine și procesul de reducere a zgomotului.
OpenCV oferă o serie de algoritmi pentru reducerea zgomotului di n imagini:

Aplicație de recunoaștere și redare a notelor muzicale

7
Gaussian blur
– efectul vizual al acestei tehnici de estompare este asemănător cu cel al
vizualizării imaginii printr -un ecran translucid ;
– funcția de distribuție 2 D este :
G(x, y) = 1
√2𝜋𝜎2𝑒−𝑥2+ 𝑦2
2𝜎2
– σ este deviația standard a zgomotului;
– distribuția gaussiană :

Fig.1 Distribuția gaussiană

– masca filtrului gaussian este o aproximare discretă a funcției de distribuție
gaussiană 2D, iar pentru σ = 1.0 are următoarea configurație:

Fig,2 Masca filtrului gaussian

CRISTIAN -RĂZVAN ION

8
– σ se alege în funcție de nivelul de zgomot din imagine și determină dimensiunea
măștii ;
– filtrul gaussian conservă frontierele mai bine și produce o netezire mai fină
comparativ cu celela lte filtre;

Filtrul median
– tehnică de filtrare digitală neliniară , adesea folosită deoarece, aplicată asupra
unei imagini, păstre ază punctele de front în timp ce îndepărtează zgomotul ;
– reduce variația intensităților din imagine, producând regiuni de inten sitate
constantă sau aproape constantă;
– forma regiunilor depinde de geometria ferestrei de filtrare;
– netezește oscilațiile de intensitate cu o perioadă mai mică decât lățimea ferestrei;
– modifică valoarea medie a intensităților din imagine dacă distribuția spațială a
zgomotului nu este simetrică în fereastră ;
– nu generează noi nivele de gri;

Filtrul de accentuare
– filtru trece -sus folosit pentru accentuarea frontierelor imaginii ;
– impune creșterea contrastului unei imagini, în scopul îmbunătățirii perceperii
vizuale a contururilor obiectelor ;
– presupune modificarea valorilor pixelilor situați de o parte și de alta a unei
frontiere comune ;
– exemple de măști pentru filtrul de accentuare:

Fig.3 Măști de accentuare

2.1.2 Prelucrarea frontiere lor

Detecția marginilor in clude o varietate de metode matematice care vizează identificarea
punctelor într -o imagine digitală în care luminozitatea prezintă discontinuități. Punctele în care
se schimbă intensitatea luminozității imaginii sunt organizate într -un set de segmente de l inie
numite frontiere. În domeniile destinate detectării caracteristicilor și extragerii acestora,
detecția frontierelor reprezintă un instrument fundamental.
Aplicarea unui algoritm de detectare a frontierelor unei imagini poate reduce în mod
semnificativ cantitatea de date care urmează să fie procesată, prin filtrarea informațiilor
considerate mai puțin relevante , păstrând proprietățile structurale ale imaginii. Această etapă

Aplicație de recunoaștere și redare a notelor muzicale

9
nu produce întotdeauna rezultatele dorite , frontierele fiind adesea fragmentate sau, în imaginea
prelucrată, existând frontiere false, care complică sarcina ulterioară de interpretare a datelor.
Au fost dezvoltate numeroase metode pentru detectarea frontierelor într -o imagine ,
bazate pe căutare sau pe trecerea prin zero . Metodele baza te pe căutare detectează frontierele
pornind de la calculul unei valori de rezistență (ex.: magnitudinea de gradient), urmat de
căutarea maximelor direcționale locale . Metodele bazate prin trecerea prin zero caută traversări
prin zero pentru o derivată de ordinul 2. Succesul acestor metode este dependent de rezultatul
etapei anterioare, de preprocesare, în urma aplicării unui filtru, de obicei de netezire.
Pentru fiecare algoritm în parte, OpenCV oferă suport prin funcțiile eficient
implementate:
Canny edge detector
– opera torul canny a fost proiectat pentru a detecta optim , în 4 pași, frontierele
într-o imagine pentru care s -a făcut conversia la nivele le de gri ;
– primul pas presupune aplicarea filtrului gaussian asupra imaginii de intrare ; cu
cât lățimea măști i este mai mare cu atât sensibilitatea detectorului la zgomot este
mai mică, însă eroare de localizare a frontierelor crește;
– în pasul doi se aplică operatorul Sobel imaginii rezultate , mai precis, se
calculează matricea amplitudinilor gradientului – D(x, y) = |D x| + |Dy| , se
calculează direcția gradientului în fiecare pixel conform formulei ϴ(x, y) =
𝑡𝑎𝑛−1𝐷𝑥
𝐷𝑦, obținându -se matricea direcțiilor, pentru ca apoi să se ajusteze ϴ la una
dintre direcțiile spațiului discret al imaginii (cea mai apropiată);
– în matricea amplitudinilor, frontierele apar ca zone late, astfel că, în pasul trei
(non-maxima suppression ) se subțiază frontierele, eliminând pixelii care nu au
amplitudinea gradientului maxim a local ;
– în ultimul pas (hysteresis threshol ding), deoarece zgomotul nu a fost eliminat
complet, se elimină pixelii falși de frontieră, însă fără întreruperea acesteia ;

Skeletonization
– proces de reducere a regiunilor dintr -o imagine binară la un nucleu care
păstrează extinderea și conectivitatea re giunii originale ;
– scheletul poate fi obținut printr -o subțiere morfologică, care erodează succesiv
pixelii aflați la limită, păstrând punctele aflate la capetele segmentelor de linie ,
până când subțierea nu mai este permisă ;

2.1.3 Extragerea caracteristicilor

Extragerea caracteristicilor este un proces utilizat în recunoașterea de pattern -uri, în
procesarea imaginilor sau în î nvățarea automată , care se definește prin identificarea unor forme
fiabile și robuste , astfel încât procesul în sine să nu varieze în fun cție de condițiile specificate.

CRISTIAN -RĂZVAN ION

10
Tehnicile pentru extragerea elementelor dintr -o imagine constau în identificarea acestora
în elementele de fundal, fie luând în considerare informațiile despre intensitate dacă se cunoaște
luminozitatea formelor , fie prin co mpararea pixelilor cu un șablon dat.
Scale Invariant Feature Transform
– David Lowe , în Distinctive Image Features from Scale -Invariant Keypoints ,
prezintă un nou algoritm pentru extragerea punctelor cheie și pentru calcularea
descriptorilor acestora ;
– prim ul pas presupune aplicarea filtrului gaussian asupra imaginii de intrare , a
cărui eficiență depinde de deviația standard σ , astfel : G(x, y) = 1
√2𝜋𝜎2𝑒−𝑥2+ 𝑦2
2𝜎2;
– în pasul doi este calculat laplacianul imaginii , cu scopul evidenț ierii regiunilor
schimbărilor rapide de intensitate : L(x, y) = 𝛿2𝑙
𝛿𝑥2+ 𝛿2𝑙
𝛿𝑦2;
– prin combinarea celor doi pași se obține :
LoG(x, y) = −1
𝜋𝜎4(1−𝑥2+ 𝑦2
2𝜎2)𝑒−𝑥2+ 𝑦2
2𝜎2,
operație cu un cost de c alcul ridicat , motiv pentru care este aproximată cu o
diferență gaussiană ;
– pașii prezentați contribuie la localizarea punctelor cheie , pentru care trebuie să
calculăm o amprentă unică, invariantă la scalare și rotație , prin definirea unei
ferestre de dimen siune 16×16 în jurul fiecărui punct cheie și împărțirea acesteia in
16 blocuri de dimensiune 4×4 ; în fiecare bloc sunt calculate mărimea și orientarea
gradientului, care sunt ulterior inserate într -o histogramă de 8 biți :

Fig.3 Histogramă de orientare

Template matching
– tehnică ce presupune suprapunerea unui șablon peste o imagine și obținerea unui
grad de potrivire dat de numărul de puncte în care imaginea coincide cu șablonul ;
– formal, template matching poate fi definit ca o metodă de estimare a
paramet rilor, parametri ce definesc poziția șablonului cu gradul maxim de
potrivire ;

Aplicație de recunoaștere și redare a notelor muzicale

11
– presupunând că fiecare pixel al imaginii originale este afectat de zgomot
gaussian , cu deviația standard σ , atunci probabilitatea de potrivire între imagine și
șablon într -un pun ct (i, j) este:
𝑝𝑖,𝑗(𝑥,𝑦)= 1
√2𝜋𝜎𝑒−1
2(𝐼𝑥+𝑖,𝑦+𝑗− 𝑇𝑥,𝑦
𝜎)2
;
– deoarece zgomotul care afectează fiecare pixel este independent, funcția
likelihood , care exprimă probabilitatea ca șablonul căutat să se afle în poziția (i, j),
se definește logaritmic, folosind relația precedentă, astfel:
ln(𝐿𝑖,𝑗)=𝑛ln(1
√2𝜋𝜎)− 1
2∑ (𝐼𝑥+𝑖,𝑦+𝑗− 𝑇𝑥,𝑦
𝜎)2
(𝑥,𝑦)𝜖𝑊 ;
– estimarea probabilității maxime (determinarea punctului în care gradul de
potrivire dintre imagine și șablon este maxim) este echivalentă cu alegerea poziției
șablonului care minimizează eroarea pătrată :
min =∑ (𝐼𝑥+𝑖,𝑦+𝑗− 𝑇𝑥,𝑦)2
(𝑥,𝑦)𝜖𝑊 ;
– alte metode pentru estimarea probabilității maxime utilizează diferența abso lută
sau estimatorii M;
– această tehnică are dezavantajul costului temporal ridicat – O(n2m2) pentru o
imagine de dimensiuni n x n și un șablon de dimensiuni m x m, însă acest
inconveni ent poate fi ignorat datorită insensibilităț ii metodei la zgomot și
ocluziune;

Transformata Hough
– tehnică de extragere a caracteristicilor dintr -o imagine , utilizând o procedură de
votare pentru identificarea instanțelor imperfecte ale obiectelor;
– algoritmul inițial a fost implementat pentru detecția liniilor drepte în imagin i,
însă au fost descoperite multe căi potențiale de îmbunătățire , deoarece s -a constatat
că pot fi obținute aceleași rezultate ca în cazul folosirii metodei template matching ,
însă mult mai rapid ;
– transformata Hough utilizează o reprezentare parametrică a liniilor pentru
reducerea complexității calculului căutării , a cărei precizie depinde de pasul de
discretizare al spațiului (a, b):

Fig.4 Hough – reprezentare parametrică a liniilor

CRISTIAN -RĂZVAN ION

12

– dezavantajul abordării anterioare constă în dificultatea reprezentări i liniilor
verticale, motiv pentru care s -au găsit soluții prin reprezentarea polară – 𝑟=𝑥∗
cos(𝛳)+𝑦∗ sin(𝛳), unde r este distanța de la origine la dreaptă :

Fig.5 Hough – reprezentare polar ă a liniilor

– spre deosebire de tehnica template matc hing, în cazul transformatei Hough ,
complexitatea calculului se reduce la O(n) , dacă se dispune de matricea direcției
fronturilor care, în punctul (x, y) are următoarea expresie :
𝜙𝑥,𝑦= tan−1(𝛿𝑦
𝛿𝑥)
– transformata Hough se poate generaliza pentru a detecta orice curbă
parametrică, însă metoda este mai eficientă în cazul curbelor definite printr -un
număr mai mic de parametri , deoarece, pentru a discretiza spațiul parametric, este
nevoie de o matrice n -dimensională, unde n reprezintă numărul d e parametri care
definesc curba;

2.2 Procesare de sunete

Cele mai utilizate două simțuri de către ființa umană sunt văzul și auzul , astfel că în
computer vision cele mai expuse domenii sunt procesarea de imagini și procesarea audio.
Provocarea majoră în proc esul de recunoaștere și redare a simbolurilor muzicale o reprezintă
complexitatea partiturilor, calitatea scăzută a imaginilor, segmentarea acesteia și clasificarea
notelor.
Pentru a demonstra complexitatea compozițiilor muzicale, în Fig.6 sunt prezentate 3
modalități diferite de a reprezenta aceleași sunete :

Aplicație de recunoaștere și redare a notelor muzicale

13

Fig.6 Trei reprezentări diferite ale aceleiași informații muzicale

În secțiunile următoare sunt prezentate diferite metode care au fost dezvoltate de -a lungul
timpului, pentru a combate aceste prov ocări lansate de partiturile muzicale.

2.2.1 Notații muzicale de bază

Notația muzicală Common Western este un sistem complex, capabil să descrie numeroase
aspecte , de ordin tehnic , ale unei partituri muzicale. Întrucât înțelegerea acesteia reprezintă un
domeni u de studiu în sine, prezentarea ulterioară nu este un a exhaustivă, ci se rezumă la
subiectul principal al lucrării, recunoașterea și redarea notelor muzicale.
Cea mai simplă compoziție muzicală se bazează pe 3 elemente: portativul constituit din
5 linii orizontale, paralele, pe care sunt reprezentate notele muzicale, fiecare notă fiind
corespondenta unui ton și pauzele, care marchează absența unui ton , element muzical a că rui
frecvență dă înălțimea sunetului . Înălțimea sunetului este indicată de plasarea v erticală a unei
note pe portativ , dar și de simbolul scris la începutul unui portativ și anume, cheia . În literatura
de specialitate sunt menționate 3 tipuri de chei muzicale: cheia sol, cheia do și cheia fa, care
pot fi însoțite de armură, diez sau bemol, pentru a asigura diversitatea compozițiilor muzicale.
În Fig.7 sunt reprezentate 2 octave complete, însă reprezentarea poate continua, deoarece
ființa umană poate detecta sunete cu o frecvență care se încadrează între 20Hz și 20kHz, ceea
ce înseamnă o înt indere de 10 octave :

Fig.7 Note muzicale cu diferite înălțimi (central – octavele 4, respectiv 5)

Unitatea de timp a unui portativ este măsura muzicală, astfel durata unei note este
exprimată în raport cu aceasta. Din punct de vedere simbolic, durata unei note este indicată în
Fig.8 :

CRISTIAN -RĂZVAN ION

14

Fig.8 Durat a notelor muzicale exprimată în raport cu un întreg (4 timpi)

Reprezentarea simbolică a pauzelor muzicale, însoțită de durata acestora este prezentată
în Fig.9 :

Fig.9 Durata pauzelor muzicale

2.2.2 Reprezentare a sunetelor

Etapa finală în tr-o aplicație pentru recunoașterea și redarea simbolurilor muzicale o
reprezintă tocmai extragerea semanticii muzicale din formele recunoscute grafic și stoca rea
într-o structura de date compatibilă cu un software dezvoltat pen tru conversia text – audio.
Numeroase sisteme care traduc notațiile muzica le într -un format machine readable au
fost implementate în ultimii ani, cele mai recente oferind posibilitatea precizării unor
particularități muzicale amănunțite, pentru o apropier e cât mai exactă de original.
Musical Instrument Digital Interface
– fișierele standard MIDI conțin instrucțiuni pentru generarea notelor, controlul
volumului, dar și pentru precizarea altor efecte pentru definirea cât mai complexă
a partiturii muzicale ;
– deoarece fișierele MIDI nu stochează sunetele efectiv, acestea au o dimensiune
compactă față de fișierele audio digitale , motiv pe ntru care sunt intens utilizate,
oferind și posibilitatea reținerii versurilor ca metadate;
– structural, fișierele MIDI sunt alcăt uite din chunk -uri, fiecare chunk
reprezentând o secțiune autonomă a datelor în fișier și putând fi clasificat ca header
chunk sau track c hunk ;
– header c hunk are același format în toate fișierele MIDI și are exact 14 octeți :
primii 4 sunt pentru identifica rea fișierului ca SMF , următorii 4 indică lungimea
datelor , în timp ce ultimii 6 precizează tipul SMF , numărul de piese din fișier și
valoarea PPQ ;
– track c hunk urmează antetului și pot fi maximum 17 , iar primul chunk conține
informații despre cheia portat ivului, timp și tempo;

Aplicație de recunoaștere și redare a notelor muzicale

15

MusicXML
– este un format digital dezvolta t cu scopul de a exista o reprezentare universală
pentru notația muzicală Common Western ;
– principalul avantaj față de formatul MIDI îl reprezintă complexitatea
informațiilor precizate, odată c u apariția MusicXML făcându -se distincție între
cheia fa, cheia sol și cheia do, putând fi specificate direcția flag-urilor, măsura sau
barele muzicale ;
– de asemenea, MusicXML are la bază l imbajul XML, care a fost proiectat să
rezolve una din principalele p robleme din domeniul software și anume , necesitatea
unui limbaj universal, compatibil cu majoritatea aplicațiilor d ezvoltate într -o
anumită ramură ;
– ca dezavantaj, complexitatea reprezentării simbolurilor muzicale produce cod
XML semnificativ , însă neajunsu l a fost combătut prin dezvoltarea Compressed
MusicXML , format în care volumul de date este redus, fișierele .mxl având o
dimensiune mai mică comparativ inclusiv cu fișierele MIDI , deși volumul
informațional este semnificativ mai mare;

Notation Interchang e File Format
– formatul NIFF a fost dezvoltat în anul 1994 pentru a asigura schimbul de
informații între aplicațiile generatoare de muzică , datorită facilității de a descrie
aspecte vizuale și logice ale muzicii ;
– reprezentate grafic, notele muzicale sunt pr ocesate din partituri scanate, acest
tip de reprezentare fiind eficient tratat în formatul NIFF ;
– un impediment major îl constituie faptul că NIFF este un format binar, dificil
de parcurs în eventualitatea apariției unei erori la scriere sau la citire, moti v pentru
care nu a fost adoptat de un număr semnificativ de aplicații din domeniu;

Standard Music Description Language
– standard al cărui scop îl reprezintă schimbul de informație muzicală între
aplicațiile bazate pe notația Common Western ;
– formatul SMDL are ca principale caracteristici flexibilitatea și extensibilitatea,
deoarece nu impune restricții tehnice împotriva utilizării anumitor componente ,
individual sau a utilizării elementelor definite de utilizator în relație cu cele
stand ard;
– definit formal, standardul SMDL este proiectat pentru transmiterea și stocarea
informațiilor muzicale, este optimizat pentru completitudine, flexibilitate și
ușurință în utilizare , ca urmare a atenției acordate reprezentării textuale a
partiturilor muzicale;

2.2.3 Redarea sune telor

CRISTIAN -RĂZVAN ION

16
Muzica se definește ca o formă de artă, o activitate culturală bazată pe sunete organizate
în timp. Complexitatea acestora, calitățile sonore pe care le posedă, conferă originalitate
partiturilor muzicale. Istoric, de la cvartetul lui Beethoven, la jazz-ul timpuriu al anilor 1900 și
până la găselnița ultimului an, tropical house , muzica a constituit un punct de interes, un vast
domeniu de cercetare, care încă mai poate oferi surprize. Acest motiv a dus la apariția a
numeroase librării pentru crearea și redarea de sunete :
– MusicKit – sistem software, orientat obiect, utilizat pentru crearea de sunete, prin
procesarea semnalelor;
– OpenAL – interfață proiectată pentru redarea eficientă a unui sunet tridimensional,
folosit cu precădere pentru a adăuga reali sm jocurilor, prin simularea atenuării sau a
efectului Doppler ;
– csound – limbaj de programare dezvoltat pentru procesarea sunetelor, complet
modular și extensibil de către utilizator ;
– MidiAndMusicXmlPlayer – program dezvoltat pentru crearea de muzică prin redarea
fișierelor MIDI sau MusicXML ;

Aplicație de recunoaștere și redare a notelor muzicale

17
Capitolul 3

Tehnologii utilizate

Optical music recognition este o aplicație pentru recunoașterea notațiilor muzicale ,
interpretarea acestora și salvarea lor într -un format care poate fi procesat de sistemele de red are
de sunete. Subiectul adus în discuție este unul provocator și este departe de a fi rezolvat. Pentru
a-mi aduce aportul în cercetarea aflată în plină ascensiune în ceea ce privește subiectul expus,
am consultat studiile făcute în domeniu și am încercat o abordare proprie, pentru care am folosit
tehnologiile prezentate în paragrafele următoare.

3.1 Python

Python este un limbaj de programare dinamic multi -paradigmă, care oferă posibilitatea
programării structurate , dar și orientate pe obiect , incluzând și e lemente din paradigma
funcțională. Este un limbaj interpretat, ceea ce facilitează procesul de debugging și reduce
timpul de dezvoltare.
Limbajul se definește print -o filozofie a designului care accentuează lizibilitatea codului
și printr -o sintaxă care le permite programatorilor să dezvolte concepte într-un număr redus de
linii de cod, comparativ cu Java sau C++.
Cu o utilizare eficientă a memoriei, Python utilizează un garbage collector pentru
detectarea ciclurilor. De asemenea, o caracteristică important ă este legarea târzie a metodelor
și a variabilelor , la ex ecuția programului , procesul de compilare fiind mai rezistent la
conflictele de versiune, deoarece compilatorul nu trebuie să facă trimitere la bibliotecile care
conțin obiectul la momentul compilăr ii.

3.2 OpenCV

Open Source Computer Vision este o bibliotecă de funcții utilizată, în principal, în
computer vision și în învățarea automată. OpenCV a apărut ca urmare a necesității unei
infrastructuri comune pentru aplicațiile din computer vision și a unei accelerări în utilizarea
învățării automate în produsele comerciale.
OpenCV facilitează detectarea și recunoașterea facială, identificarea obiectelor,
clasificarea acțiunilor umane, găsirea unor imagini similare într -o bază de da te, eliminarea
ochilor roși i din imaginile realizate cu ajutorul blițului sau simpla urmărire a mișcărilor oculare ,

CRISTIAN -RĂZVAN ION

18
prin cei peste 2500 de algoritmi optimizați dezvoltați în C++, utilizabili din inter fețele C, C++,
Python , Java sau Matlab , pentru care oferă suport atât pe Windows , cât și pe Linux , Android
sau Mac OS .
De remarcat sunt și utilizările algoritmilor în supravegherea video stradală din Israel,
pentru detectarea intruziunilor, în monitorizarea echipamentelor miniere din China sau în
detectarea accidentelor de înec în piscin ă.

3.3 MusicXML

MusicXML este standard ul universal de stocare a partiturilor muzicale, bazat pe
Extensible Markup Language (XML) . Formatul propus poate fi descifrat și utilizat de peste
200 de aplicații existente, ca urmare a unei colaborări a anilor 2000 între o comunitate de
programatori și sute de muzicieni .
Muzica este reprezentată folosind conceptele semantice din spatele notației occidentale
și, prin formatul adoptat, este atât human -readable , cât și machine -readable . Deși aplicația este
una open source , există un format Business -to-Business utilizat în detrimentul Business -to-
Consumer pentru muzica protejată prin drepturi de autor.

Aplicație de recunoaștere și redare a notelor muzicale

19
Capitolul 4

Implementare

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa

4.1 Detecția notelor

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaa

4.2 Construirea partiturii

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa
4.3 Solfegierea partiturii

Aaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaa

CRISTIAN -RĂZVAN ION

20
Capitolul 5

Rezultate

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa

Aplicație de recunoaștere și redare a notelor muzicale

21
Capitolu l 6

Concluzii

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaa

6.1 Direcții viitoare

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaa

CRISTIAN -RĂZVAN ION

22
Referințe

Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaa
aaaaaaaaaa

Similar Posts