Detector de Beat - e-Repositori UPF

45
Detector de Beat Lordinador capaç de seguir la pulsació Frigola Bagué, Eduard Curs 2014-2015 Directors: Sergi Jordà, Perfecto Herrera GRAU EN ENGINYERIA EN SISTEMES AUDIOVISUALS Treball de Fi de Grau

Transcript of Detector de Beat - e-Repositori UPF

Page 1: Detector de Beat - e-Repositori UPF

Detector de Beat

L’ordinador capaç de seguir la pulsació

Frigola Bagué, Eduard

Curs 2014-2015

Directors: Sergi Jordà, Perfecto Herrera

GRAU EN ENGINYERIA EN SISTEMES AUDIOVISUALS

Treball de Fi de Grau

GRAU EN ENGINYERIA EN

xxxxxxxxxxxx

Page 2: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page i — #1

Detector de Beat

L’ordinador capaç de seguir la pulsació

Eduard Frigola Bagué

Treball de Fi de Grau UPF / ANY 2015

TUTORS DEL TREBALLSergi Jordà / Perfecto HerreraMusic Technology Group

Page 3: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page ii — #2

Page 4: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page iii — #3

Dedico aquest treball a la meva família i als meus amics, per l’ajuda moral per arribarfins aquí i a tots els docents i no docents que m’han ensenyat tot el que sé i m’hanensenyat coses que mai hauria pogut imaginar.

iii

Page 5: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page iv — #4

Page 6: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page v — #5

Agraïments Agraeixo.... (En Progrés)

v

Page 7: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page vi — #6

Page 8: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page vii — #7

AbstractEn progrès

ResumÚltimament la tecnologia ha pres un paper molt important en la música. Degut a aixòhan aparegut moltes línies de recerca en tecnologies musicals que shan centrat en la mi-llora daquesta tecnologia per a dotar-la de facultats humanes que no té, com la capacitatdimprovisar o la capacitat de tocar amb estil. Hi ha molts estudis que es centren en mi-llorar la interacció entre els humans i la música des d’un punt de vista computacional.Nogensmenys encara queda molta feina per poder dotar als ordinadors de les capaci-tats sensorials d’un humà. Aspectes com la pulsació, no es poden descriure, es senten,aquí és on comença la complexitat i el paper interessant dels ajuts computacionals en lamúsica

Aquest projecte tracta d’implementar un detector de beat que pugui treballar a tempsreal. Per a fer-ho, ens hem basat en un algorisme ja existent que implementa en una xar-xa neuronal concreta per a decidir si un instant de temps es tracta d’un beat o no. Apartir de gravacions d’àudio anotades, hem utilitzat tècniques de processament i anàliside música per a preparar una base de dades i després analitzar-la amb tècniques d’a-prenentatge automàtic. El treball que hem desenvolupat es troba implementat dins lallibreria Essentia [2], creada al grup de recerca en tecnologies musicals (MTG) de laUniversitat Pompeu Fabra (UPF).

vii

Page 9: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page viii — #8

Page 10: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page ix — #9

Sumari

Índex de figures xi

1 INTRODUCCIÓ 11.1 Motivació . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 Context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.3 Objectius . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.3.1 Objectius Específics . . . . . . . . . . . . . . . . . . . . . . . 31.4 Estructura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 ANTECEDENTS 52.1 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52.2 Detecció de beat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 MATERIALS 9

4 METODOLOGIA 114.1 Enhanced beat tracking with context-aware neural networks [20] . . . . 114.2 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.3 Machine Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

4.3.1 Long-short time memory - LSTM . . . . . . . . . . . . . . . . 134.4 Pre-Processament . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.4.1 Segmentació - Frame Cutter . . . . . . . . . . . . . . . . . . . 164.4.2 Enfinestrament - Windowing . . . . . . . . . . . . . . . . . . . 174.4.3 Espectre - Spectum . . . . . . . . . . . . . . . . . . . . . . . . 184.4.4 Bandes de Mel - Mel Bands . . . . . . . . . . . . . . . . . . . 194.4.5 Filtre Medià - Median Filter . . . . . . . . . . . . . . . . . . . 224.4.6 Rectificador Final . . . . . . . . . . . . . . . . . . . . . . . . . 224.4.7 Entrades a la xarxa neuronal . . . . . . . . . . . . . . . . . . . 23

4.5 Implementació . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.5.1 Pre-Processament . . . . . . . . . . . . . . . . . . . . . . . . . 244.5.2 Long-Short term memory . . . . . . . . . . . . . . . . . . . . . 26

ix

Page 11: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page x — #10

5 RESULTATS 275.1 Implementació Seccionada . . . . . . . . . . . . . . . . . . . . . . . . 275.2 Implementació Final . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

6 CONCLUSIONS 296.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296.2 Treball futur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

x

Page 12: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page xi — #11

Índex de figures

2.1 Esquema Aprenentatge Automàtic (Veure en línia) . . . . . . . . . . . 6

4.1 Arquitectura de l’algorisme . . . . . . . . . . . . . . . . . . . . . . . . 124.2 Problema del vanishing gradient a les xarxes neuronals recursives [8] . 134.3 Bloc LSTM descrit al llibre [8] . . . . . . . . . . . . . . . . . . . . . . 144.4 Xarxa LSTM amb 4 entrades, 5 sortides i 2 blocs LSTM amb una so-

la cel.la de memòria. No totes les conexions estàn representades, peraclarar la xarxa. [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4.5 Arquitectura de la part de pre-processament de l’algorisme . . . . . . . 164.6 Fitxer d’àudio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.7 Procés de tall successiu del fitxer . . . . . . . . . . . . . . . . . . . . . 174.8 Arxiu d’àudio tallat amb diferents finestres, 1024(A), 2048(B) i 4096(C)

mostres. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.9 Fragments d’àudio enfinestrats, en blau el fragment enfinestrat, i en ver-

mell la finestra que hi hem aplicat . . . . . . . . . . . . . . . . . . . . 184.10 Espectre del fragment enfinestrat . . . . . . . . . . . . . . . . . . . . . 194.11 Escala de Mel vs Escala Frequencial . . . . . . . . . . . . . . . . . . . 204.12 Filtres de Mel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.13 Bandes de Mel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224.14 Filtre Medià del frame . . . . . . . . . . . . . . . . . . . . . . . . . . 224.15 Sortida final del pre-processament . . . . . . . . . . . . . . . . . . . . 23

5.1 Corba d’aprenentatge de la xarxa neuronal . . . . . . . . . . . . . . . . 275.2 Predició vs clasificació real . . . . . . . . . . . . . . . . . . . . . . . . 28

xi

Page 13: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page xii — #12

Page 14: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 1 — #13

Capítol 1

INTRODUCCIÓ

1.1 MotivacióDurant els anys de la carrera vaig anar descobrint en profunditat la tecnologia al voltantde la música, la vaig anar entenent i vaig anar veient els seus punts forts i també elsfebles. Paral.lelament tenia un grup de música amb el qual també descobria la tecnolo-gia musical, però aquest cop des de la part pràctica, utilitzant les tècniques per editarl’enregistrament d’un disc. El problema venia alhora de fer la posada en escena als con-certs: vaig desenvolupar un sistema amb el qual el bateria del grup tenia una claquetaque podia anar canviant entre cançó i cançó i que alhora estava connectada a l’ordinador(que controlava els efectes captats amb el micro).

El problema del meu sistema i dels que últimament veia que els grups utilitzavenals seus directes és que funcionen de la següent manera: un seqüenciador llança unaseqüència pre-gravada o bé un usuari dispara la seqüència en un moment concret, elproblema és però que la seqüència es reprodueix a una velocitat fixe, fet que fa que elsmúsics hagin de seguir la seqüència.

Així, a través dels coneixements de l’enginyeria, vaig intentar trobar una millora pera tots aquests sistemes. És aquí on vaig descobrir els detectors de beat. Per què no potel seqüenciador seguir els músics i actuar com un d’ells?

1.2 ContextAquest treball forma part d’un projecte internacional anomenat GiantSteps.

L’objectiu del projecte GiantSteps és el de crear el que anomenen les "Botes de setllegües"per a la producció musical. Aquestes, són un calçat imaginari que apareix adiversos contes i que permet a qui les porti la possibilitat de córrer a gran velocitat ambmolt poc esforç, per caminar grans distàncies de forma màgica. Així, el que pretén

1

Page 15: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 2 — #14

és crear eines musicals per a desbloquejar el potencial creatiu dels usuaris musicals(des dels professionals fins als nens) ja sigui permetent crear d’una forma col.laborativa,potenciant la inspiració mútua, ajudant a aprendre i descobrir el procés de creació ofacilitant als professionals un treball més eficaç i ràpid. Les tres directrius del projectesón:

1. Desenvolupar i integrar "agents musicals experts", entesos com sistemes que guiena l’usuari quan li falta inspiració o coneixement tecnològic o musical. Aquests sis-temes "d’ajut inspiracional"poden tractar-se d’harmonia, ritme, estructura, estil,etc. Estaran basats en l’estat de l’art en la Recerca d’Informació Musical (MIR).

2. Desenvolupar interfícies millors de les que hi ha avui dia per a la interacciópersona-ordinador i que permetin un control col.laboratiu dels diferents paràme-tres i espais a partir de tècniques de visualització novedoses. Aquestes, han dedonar un feedback significatiu i rellevant per tal de permetre que els usuaris no-vells entenguin el què passa ràpidament. D’altra banda, pels usuaris professionalsaquest canvis es reflectiran en una millora del flux de treball.

3. Poder proporcionar dispositius de baix cost tot desenvolupant algorismes senzillsper a l’anàlisi de música (eines de producció accessibles i aplicacions a l’abast deprofessionals i amateurs).

El projecte es tracta d’una col.laboració entre institucions de recerca musical (UPF,JKU), empreses d’I+D (Native Instruments, Reactable, JCP-Consult) i professionalsde la música (STEIM, Red Bull Music Academy). D’aquesta forma, es combinen tèc-niques i tecnologies de manera totalment novedosa, sobretot en les àrees d’interacció atemps real i creativitat.GiantSteps busca sobrepassar les limitacions de les eines actuals de producció musical,creant eines més poderoses, inspiradores, col.laboratives, assequibles, eficients i fàcilsde cara a l’usuari. Per a fer-ho, hi ha tres objectius científico-tecnològics bàsics:

1. Desenvolupar mètodes de baixa complexitat però d’alt rendiment per a l’anàlisimusical i la Recerca d’Informació Musical (MIR).

2. Crear sistemes d’àudio i música per a guiar els usuaris durant el procés de com-posició.

3. Desenvolupar interfícies visuals i tangibles per a poder treballar d’una forma col-laborativa.

El meu paper dins de Giant Steps és el d’extendre la llibreria Essentia, implementantun detector de beat millor que els que hi havien implementats en aquell moment i quepogués treballar a temps real.

2

Page 16: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 3 — #15

1.3 Objectius

L’objectiu d’aquest treball era poder tenir funcionant un sistema de detecció de beat quepermetés treballar a temps real i amb una precisió major al que ja estava implementaten aquell moment a la llibreria Essentia. Per tal d’aconseguir-ho, calia plantejar unsobjectius específics, que presentem a continuació.

1.3.1 Objectius Específics

• Instal.lar i compilar Essentia Un dels objectius bàsics del projecte era poderinstal.lar i compliar la llibreria Essentia per tal de poder implementar-ne novesfuncions.

• Crear un projecte d’Xcode per treballar amb Essentia Donat que Xcode és unIDE(Integrated Development Environment) integrat en el sistema operatiu Ma-cOsX, vam optar per a configurar la llibreria en aquest entorn.

• Entendre el funcionament d’Essentia Per tal d’extendre una llibreria tant opti-mitzada com Essentia, era necessari entendre’n i aprendre’n el funcionament deles diferents parts i saber com usar-les per a desenvolupar un nou algorisme.

• Entendre l’article científic

Donat que aquest treball es basa en el treball de Bock [20], entendre profundamentels aspectes dels que tracta en el seu article científic era l’objectiu bàsic per acomençar a desenvolupar la metodologia.

• Desenvolupar codi que contingui els processos necessaris Un dels objectiusera implementar els processos descrits en el treball de Böck [20] dins la llibreriaEssentia, desenvolupant així un algorisme que millorés la llibreria.

• Obtenir i processar dades d’entrenament

Per tal de poder entrenar la xarxa neuronal, cal trobar dades anotades que contin-guin informació de beat. A més, cal processar aquestes dades per tal de tenir-lesen el format correcte d’entrada a la xarxa.

• Obtenir i implementar la llibreria LSTM Böck en el seu article científic [20]parla de l’ús de una xarxa anomenada ’Long short term memory’, però enllocmenciona de quina llibreria o quin algorisme en concret fa servir. Un dels objec-tius, doncs, era trobar una llibreria on hi hagués la xarxa LSTM i adaptar-ne elseu funcionament per als objectius d’aquest projecte.

3

Page 17: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 4 — #16

1.4 EstructuraAquest treball està organitzat de la següent manera: en el Capítol 2, es presenten treballsprevis sobre els detectors de beat. Al Capítol 3, s’hi expliquen els materials que hemfet servir mentre que al Capítol 4 mostra l’algorisme que hem utilitzat i la metodologiaque hem seguit per a implementar-lo. Al Capítol 5 presentem els resultats obtinguts.Finalment, al Capítol 6, s’hi troben les conclusions i el possible treball futur.

4

Page 18: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 5 — #17

Capítol 2

ANTECEDENTS

Els antecedents d’aquest projecte es poden dividir en dos grans grups. Com que el nuclidel detector de beat que hem implementat és una xarxa neuronal, el primer grup estracta de Machine Learning (Secció 2.1). En la Secció 2.2 explorem l’estat de l’art enla detecció de beat.

2.1 Machine Learning

Des de l’any 1946, quan es va crear el que es considera el primer ordinador "ENI-AC"(Electronic Numerical Integrator And Computer) [5], ja es buscava poder rende-ritzar lògicament el pensament i aprenentatge humà. En aquell moment, hi havia laintenció de fer-ho a través d’algorismes matemàtics operats per un humà. L’any 1966,Weizenbaum desenvolupà ELIZA [21], el primer sistema que intentava simular a unhumà i que va ser pioner en implementar tècniques de processament de llenguatge deforma natural. El sistema simulava una conversa entre un psicoterapeuta i un usuarireal: per a fer-ho, buscava paralues clau que havien estat escrites per l’usuari i responiaamb alguna frase coherent de la seva base de dades.

Cap a la dècada dels 1990, és quan apareix el concepte de Machine Learning comun camp separat de l’estadística. En català parlem d’Aprenentatge Automàtic, queexplora la construcció i l’estudi d’algorismes que poden aprendre i fer prediccions dedades coneixent prèviament unes dades d’entrenament. (Ron Kohavi; Foster Provost(1998). "Glossary of terms". Machine Learning 30: 271274.). L’esquema de la Figura2.1 mostra el funcionament bàsic d’un procés d’Aprenentatge Automàtic: l’entrada delsistema són diferents exemples, que contenen característiques de les dades que s’hande predir. A partir d’aquesta informació, l’algorisme d’aprenentatge automàtic acon-segueix generalitzar comportaments de tal forma que, quan se li subministra un nouexemple, és capaç de classificar-lo o optimtzar-lo.

5

Page 19: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 6 — #18

Figura 2.1: Esquema Aprenentatge Automàtic (Veure en línia)

Xarxes Neuronals

Una de les primeres aproximacions a l’aprenentatge automàtic va ser la d’implementaralgorismes capaços d’estimar o aproximar funcions desconegudes utilitzant una famí-lia de models estadístics que simulaven les xarxes neuronals biològiques. L’any 1958,Rosenblatt [14] va basar-se en el funcionament del cervell humà per a crear el percep-tró, un algorisme capaç de reconèixer patrons usant una xarxa neuronal de dues capesque operava mitjançant la suma i la resta. Aquestes xarxes van evolucionar a xarxesneuronals multicapa a l’utilizar diversos perceptrons en sèrie i paral.lel, combinant lesseves sortides. Posteriorment, les xarxes multicapa van incorporar la possibilitat d’in-terconnectar diferents capes entre sí de manera recursiva. Així, d’aquí van nèixer lesxarxes neuronals recursives. Aquests tipus de xarxa permetien que la decisió presa pelclassificador no fos tan sols pel temps actual, sinó que també pel passat i el futur. Comveurem a la Secció 4.3, la xarxa neuronal Long-Short Term Memory utilitzada en aquesttreball és una modificació d’aquestes últimes xarxes recursives.

2.2 Detecció de beat

Entenem la Detecció de Beat com el procés d’analitzar una peça musical i detectar-ne les pulsacions. Quan escoltem música, sovint portem la pulsació picant de mans omovent els peus. Ara bé, en aquest treball ens centrem en la detecció automàtica deles pulsacions: com ho fa un ordinador per a saber on un humà picaria de mans? Elsdiferents algorismes existents intenten cercar una periodicitat, una repetició, que mostrila freqüència en que va apareixent la pulsació. La majoria dels primers sistemes ([3], [1],

6

Page 20: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 7 — #19

[15]) tenien d’entrada fitxers en format MIDI (Musical Instrument Digital Interface),limitant la detecció de beat a instruments electrònics. Aquests sistemes, generalmenttractaven de trobar els canvis de tempo en interpretacions de piano. Encara que hi haviaalguns algorismes que treballaven amb senyals acústiques ([18], [9]), es concentravenen transcripció automàtica en comptes de detecció de beat. A més, no podien processarla música en un context grupal donada la dificultat de separar els sons de diferentsinstruments. L’any 1994, Goto [7] desenvolupà un sistema que treballava amb músicapopular en format àudio on la bateria mantenia la pulsació. L’any 1998, Scheirer [17]va ser el primer que va aplicar la psicoacústica per a emfatitzar les localitzacions de lespulsacions, treball que anys després va ser extés per Klapuri et al. [10]. Més endavant,Ellis [4] creà un sistema que estimava el tempo global de senyals acústiques i utilitzavatècniques de programació dinàmica per a trobar quins moments es corresponien ambels beats. Més recentment, Zapata et al. [22] presenta una solució novedosa: el seutreball tracta d’un sol algorisme que pot tenir com a entrada diverses característiques dela senyal acústica i que selecciona quina és la millor alhora de detectar les pulsacions.

Donat a que la detecció de beat requereix un compromís entre eficàcia i velocitat, hiha pocs algorismes que treballin amb detecció de beat a temps real. El sistema ideat pera Goto [6] processa música comercial amb bateria o sense bateria a temps real i reconeixles pulsacions basant-se en tres tipus de coneixement musical: patrons de bateria, canvisharmònics i inicis de les notes. L’any 2011, el treball de Bock [20] implementa undetector de beat processant les dades espectralment i preparant-les per a l’entrada d’unaxarxa neuronal recurrent. Tot seguit, utilitza la funció d’autocorrelació per a detectarla pulsació predominant de cada peça musical. Més recentment, Robertson et al. [13]presenten un sistema capaç de detectar les pulsacions de música percussiva a temps real,processant la senyal d’entrada amb un filtre medià i utilitzant tècniques de programaciódinàmica.

7

Page 21: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 8 — #20

Page 22: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 9 — #21

Capítol 3

MATERIALS

Per a la realització d’aquest treball han calgut una sèrie de materials i d’eines que per-meten desenvolupar l’algorisme esmentat.

• Per a poder entrenar la xarxa neuronal vam utilitzar el conjunt de dades BallroomDataset (www.BallroomDancers.com) que constava de 698 àudios d’apro-ximadament 30s de durada cada un i diferents estils. Amb una anotació de beat icompàs feta per Florian Krebs [11]

• Hem treballat amb la llibreria Essentia [2], que és on l’algorisme interessava ésserimplementat. Aquesta llibreria està programada amb el llenguatge C++.

• Com a Integrated Developement Environment (IDE) hem utilitzat XCode.

• Hem utilitzat la xarxa neuronal Long Short Term Memory implementada en lallibreria PyBrain [16].

9

Page 23: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 10 — #22

Page 24: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 11 — #23

Capítol 4

METODOLOGIA

4.1 Enhanced beat tracking with context-aware neuralnetworks [20]

Cal destacar que aquest treball es basa en l’algorisme explicat en l’article científic [20]de Böck. El treball de Böck, a diferència dels anteriors algoritmes que utilitzaven ma-joritàriament detecció i processament d’onsets, presenta un nou model basat en la xarxaneuronal recursiva long-short term memory per a fer una classificació fragment a frag-ment de si és un beat o no ho és.Com a entrades d’aquesta xarxa neuronal, utilitza les diferències relatives de les caracte-rístiques espectrals de la senyal d’àudio. La xarxa transforma aquesta senyal en una fun-ció d’activació de beat. Un cop obtinguda aquesta funció s’implementen dos algorismesper tal de determinar el tempo predominant i eliminar els beats erròniament detectats.EL primer algorisme assumeix un tempo constant durant tot el fitxer i el segon, assu-meix variabilitat. Per a aquest treball, ens hem centrat en la part de pre-processament ien la xarxa neuronal de l’article, deixant per al futur la part de determinació del tempoi de correcció dels resultats de la xarxa neuronal.

4.2 ArquitecturaL’algorisme consteix en dues parts: la part de processament del so i la part de classifi-cació del fragment actual utilutzant tècniques de Machine Learning.

1. La part de processament, o pre-processament serveix per a poder donar al modelpredictiu unes dades més útils que simples mostres del so. Aquesta etapa contem-pla des del tall del fitxer d’audio en seccions, anomenades frames o fragments,fins a un filtre rectificador per a anul.lar els valors negatius.

11

Page 25: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 12 — #24

2. La part de Machine Learning és l’encarregada de triar si un fragment determi-nat és un beat o no ho és. Com ja hem comentat abans, en el nostre algorismefem servir un tipus de xarxa neuronal recurrent anomenada long-short term me-mory. Aquesta, és usada en casos on és interessant expandir la memòria de lesxarxes neuronals. Cal aclarir que "memòria", aquí significa la capacitat de tenir encompte events passats en la decisió de l’entrada actual. Aquesta xarxa neuronals’explica a la Secció 4.3.

Figura 4.1: Arquitectura de l’algorisme

12

Page 26: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 13 — #25

4.3 Machine Learning

L’algorisme triat per implementar el detector de beat té com a base la xarxa neuronalLSTM. Böck ?? va crear el detector a partir de conèixer aquest tipus de xarxa neuronali veure que li podia ser utilitzada per a fer una detecció dins del camp de la detecció debeat.

4.3.1 Long-short time memory - LSTM

Com hem explicat a la secció 2.1 LSTM és una millora de les xarxes neuronals re-currents. A diferència de les xarxes neuronals simples, les xarxes neuronals recurrentstenen certa memòria ja que a l’estar reconnectades, són capaces d’utilitzar mostres d’in-puts passats per tal de computar la sortida actual. El problema, però, es tracta de l’ano-menat Vanishing gradient problem, un problema de les xarxes neuronals recursives quefa que es perdi ràpidament la informació passada com podem veure a la Figura 4.2.

Figura 4.2: Problema del vanishing gradient a les xarxes neuronals recursives [8]

Per tal de solucionar aquest problema apareixen els blocs LSTM, uns blocs de me-mòria que contenen un o més blocs connectats entre ells i 3 unitats multiplicatives (l’en-trada, la sortida, i la porta d’oblit (forget gate) que dónen al bloc LSTM les capacitatsd’escriptura, lectura i reset. Veiem il.lustrat el bloc a la Figura 4.3. Una xarxa semblantés la utiltzada per Böck [20], però amb 120 entrades, 6 capes ocultes de 25 blocs LSTMcada capa (150 blocs en total) i 2 sortides.

13

Page 27: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 14 — #26

Figura 4.3: Bloc LSTM descrit al llibre [8]

En la Figura 4.4 s’hi pot veure un exemple de xarxa LSTM, on es recalca que és unaxarxa neuronal recurrent on tots, o alguns elements de les capes ocultes s’han substituïtper blocs LSTM

14

Page 28: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 15 — #27

Figura 4.4: Xarxa LSTM amb 4 entrades, 5 sortides i 2 blocs LSTM amb una sola cel.lade memòria. No totes les conexions estàn representades, per aclarar la xarxa. [8]

Com que tenim una xarxa que recorda events passats, una bona informació és ladiferència que té el fragment actual amb els fragments anteriors. Entenent la xarxautilitzada, necessitem informació de diferències entre fragments. Per això, utilitzem elpre-processament que expliquem en la Secció 4.4.

4.4 Pre-Processament

En la Figura 4.5 s’hi pot veure un resum del processament. El procés consisteix en unacadena de transformacions del fitxer d’àudio inicial, per tal d’obtenir-ne característiquesque serveixin d’entrada a la xarxa neuronal. Aquest pre-processament el fem paral-lelament amb tres mides de finestra diferents (1024, 2048 i 4096) per tal de tenir tanresolució freqüencial com resolució temporal. Com podem veure, el resultat final ésuna diferència, que considerem la millor informació per a detectar un beat (la variaciórespecte el seu entorn). En aquest apartat, hi expliquem els diferents passos amb mésdetall.

15

Page 29: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 16 — #28

Figura 4.5: Arquitectura de la part de pre-processament de l’algorisme

En la Figura 4.6 veiem un exemple d’un fitxer d’àudio del ballroom data set.

Mostres×105

0 5 10 15

Am

plitu

d

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8Arxiu original

Figura 4.6: Fitxer d’àudio

4.4.1 Segmentació - Frame CutterEl primer que fem és tallar i guardar l’àudio en 3 segments de 1024, 2048, i 4096 mostresa partir del punt que ens trobem. Aquest procés es va repetint fins a acabar de recórrer

16

Page 30: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 17 — #29

el fitxer, amb un salt anomenat hop size. Böck en el seu article [20] utilitza un frameratede 100 fragments cada segon. Tenint la freqüència de mostreig fixa a 441000mostres

s

podem dir que el salt entre fragments (hop size) serà de 441 mostres. En la Figura 4.7veiem el procés d’ agafar el fitxer d’àudio i tallar-lo cada 441 mostres en fragments de1024, 2048 i 4096.

441

mostres

1024

2048

4096

1024

2048

4096

1024

2048

4096

1024

2048

4096

Figura 4.7: Procés de tall successiu del fitxer

En la Figura 4.8, podem veure el resultat d’aquest tall en un instant de temps del’arxiu d’àudio de la Figura 4.6.

Mostres0 200 400 600 800 1000 1200

Am

plitu

d

-0.3

-0.2

-0.1

0

0.1

0.2

0.3A

Mostres0 500 1000 1500 2000 2500

Am

plitu

d

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4B

Mostres0 1000 2000 3000 4000 5000

Am

plitu

d

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3

0.4C

Figura 4.8: Arxiu d’àudio tallat amb diferents finestres, 1024(A), 2048(B) i 4096(C)mostres.

4.4.2 Enfinestrament - Windowing

Com que vam tallat un fitxer d’àudio en punts arbitraris, el problema que teníem eraque en els dos extrems del fragment hi havia informació errònia degut a que la senyal

17

Page 31: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 18 — #30

s’acabava de cop. Això podia comportar que el posterior anàlisi tingués uns resultatsequivocats.Per aquesta raó el que volíem era suavitzar els extrems del fragment, utilit-zant una finestra. Hi ha molts tipus de finestres diferents, totes amb una forma semblantque atenua els extrems. Ara bé, depenent de la finestra que utilitzada, podíem tenir unescaracterístiques a la senyal que podien ser perjudicials. En aquest algorisme fem serviruna finestra de Hamming, la qual no produeix molts artefactes en el posterior processat.

El que cal fer és multiplicar cada fragment d’àudio per la finestra de hamming de lamida corresponent al fragment que volem transformar. La finestra es computà de lasegüent manera, on N, correspon a la mida de la finestra:

w(n) = 0.53836− 0.46164 cos

(2πn

N − 1

)(4.1)

Un cop tenim la finestra simplement multipliquem la finestra pel fragment. x(k) =w(k) · x(k). La Figura 4.9 representa el procés.

Mostres0 200 400 600 800 1000 1200

Am

plitu

d

-0.3

-0.2

-0.1

0

0.1

0.2

0.3A

Mostres0 500 1000 1500 2000 2500

Am

plitu

d

-0.2

-0.15

-0.1

-0.05

0

0.05

0.1

0.15

0.2

0.25B

Mostres0 1000 2000 3000 4000 5000

Am

plitu

d

-0.4

-0.3

-0.2

-0.1

0

0.1

0.2

0.3C

Figura 4.9: Fragments d’àudio enfinestrats, en blau el fragment enfinestrat, i en vermellla finestra que hi hem aplicat

4.4.3 Espectre - SpectumEn un arxiu d’àudio les dades que trobem son el valor de cada mostra (el valor d’aquestamostra ens diu la pressió sonora en aquell instant de temps discret). Si ens parem a pen-sar el que nosaltres percebem no és el valor d’aquesta mostra: el que sí que ens interessaés com ha anat canviant aquesta pressió sonora, i si aquest canvi ha estat repetitiu o no.La informació rellevant, doncs, és l’anomenada informació freqüencial o espectral. Ai-xí, el que ens interessa és la variació durant un període de temps. Si aquesta variacióes repeteix, ho percebem com a un to (sempre que estigui per sobre el rang audible de20Hz).

18

Page 32: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 19 — #31

Així doncs sabent això, una gran informació que podem treure és quins tons (o freqüèn-cies) apareixen durant un espai de temps determinat. La funció que ens retorna aquestainformació és l’espectre i es calcula de la següent manera:

X(n, k) =

W2−1∑

l=−W2

x(l + nh) · e−2πjlk/W (4.2)

Essent n l’index del fragment que estem agafant, k la regió freqüencial, anomenadabin i h la mida del salt entre fragments o hop size. La Figura 4.10 mostra les tres midesde fragment (1024, 2048, 4096) amb els seus corresponents espectres.

Hz100 101 102 103 104 105

Am

plitu

d

0

50

100

150

200

250

300

350

400

450

500A

Hz100 101 102 103 104 105

Am

plitu

d

0

50

100

150

200

250B

Hz100 101 102 103 104 105

Am

plitu

d

0

500

1000

1500

2000

2500

3000

3500

4000C

Figura 4.10: Espectre del fragment enfinestrat

4.4.4 Bandes de Mel - Mel Bands

Per tal de tenir una informació útil més reduïda, convertim els espectrogrames en es-pectrogrames de mel, els quals, en comptes de representar l’amplitud de les diferentsfreqüències, representen l’amplitud de diferents bandes, que son agrupacions de fre-qüències. L’Escala Mel, proposada per Stevens, Volkman i Newmann el 1937, és unaescala musical perceptual. En la Figura 4.11 s’hi mostra l’escala de mel juntament ambl’escala freqüencial.

19

Page 33: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 20 — #32

Figura 4.11: Escala de Mel vs Escala Frequencial

Mitjançant un banc de filtres triangulars aplicats a l’escala mel podem obtenir lesanomenades bandes de mel, que es mostren en la Figura 4.12.

20

Page 34: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 21 — #33

Figura 4.12: Filtres de Mel

Així doncs les bandes de mel s’obtenen a partir de l’espectre elevat al quadrat, ano-menat el power spectrum i conformen un espaiament perceptiu d’augment de to enaugmentar de banda. El power spectrum es calcula com:

S(n, k) = |X(n, k)|2 (4.3)

M(n,m) = log(S(n, k) · F (m, k)T + 1.0

)(4.4)

on F és calculada com a:

F (m, k) =

0 k < f(m− 1)

k−f(m−1)f(m)−f(m−1)

f(m− 1) ≤ k ≤ f(m)f(m+1)−k

f(m+1)−f(m)f(m) ≤ k ≤ f(m+ 1)

0 k > f(m+ 1)

(4.5)

i la funció f(x) la funció de canvi d’escala (de Hz a mel). f = 1127loge(1 + f

700

)En la Figura 4.13 s’hi mostra l’espectre computat a partir de les bandes de Mel.

21

Page 35: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 22 — #34

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9A

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.2

0.4

0.6

0.8

1

1.2B

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.5

1

1.5

2

2.5C

Figura 4.13: Bandes de Mel

4.4.5 Filtre Medià - Median FilterPer càlculs posteriors calculem el filtre medià d’una sèrie consecutiva d’espectrogramesde Mel. Ho fem seguint l’equació mostrada a continuació:

Mmedian(n,m) = median{M(n− l∗,m), ...,M(n,m)} (4.6)

on mida del filtre ve donada per l, i en aquest cas depèn de la mida de la fragmentl=W/100 (essent W la mida del fragment). La Figura 4.14 mostra el filtre medià aplicatsobre un fragment.

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.05

0.1

0.15

0.2

0.25A

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9B

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8C

Figura 4.14: Filtre Medià del frame

4.4.6 Rectificador FinalLa computació final de diferències és:

D+(n,m) = H(M(n,m)−Mmedian(n,m)) (4.7)

22

Page 36: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 23 — #35

siguent H(x) el rectificador anomenat ’half-wave’ el qual posa a 0 els valors negatius,H(x) = x+|x|

2.

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.05

0.1

0.15

0.2

0.25

0.3

0.35

0.4

0.45

0.5A

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1B

Banda0 5 10 15 20 25 30

Am

plitu

d

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

1.8C

Figura 4.15: Sortida final del pre-processament

4.4.7 Entrades a la xarxa neuronalBöck al seu article [20], parla d’una xarxa neuronal que rep la informació dels espectro-grames de mel (M(n,m)), i la informació de les difernències (D+(n,m)) per a totesles mides de finestra computades. Com a resultat diu, tenim un vector de 120 caracterís-tiques per a cada frame. Contant que tenim 6 vegades l’espectrograma de mel, la midad’aquest serà de 20 bandes de mel per tot el rang freqüencial de la senyal.

23

Page 37: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 24 — #36

4.5 ImplementacióPer a la implementació hem utilitzat, com ja hem dit abans la llibreria creada a la Uni-versitat Pompeu Fabra Essentia [2]. Degut a les limitacions de temps i coneixementsper a la primera versió no hem sigut capaços d’implementar la part de la xarxa neuronala Essentia, i per això l’hem desenvolupat mitjançant la llibreria PyBrain [16]. A parttambé hi han detalls que no estan implementats en aquesta versió, com ara que no femservir totes les característiques que Böck fa servir, sinó que utilitzem les que tenen mesrellevància per a la comprensió del treball (com és la informació de les diferències).

4.5.1 Pre-ProcessamentAquesta part ha estat íntegrament desenvolupada a Essentia. Degut a que la llibre-ria ja conté moltes funcions implementades ens ha estat trivial implementar tot el pre-processament. Cal diferenciar les dos maneres de treballar a Essentia:

• Standard Mode Mode de desenvolupament estàndard, on manualment has d’anarpassant els diferents arxius i cridant els algorismes

• Streaming Mode Mode on es crea una xarxa que s’encarrega de processar elsarxius i de processar-los pels diferents algorismes.

En el nostre cas hem fet servir el mode d’streaming ja que conté un tipus d’algo-ritme que ens és molt útil: l’anomenat Composite Algorithm. Per a fer un algoritmed’aquest tipus l’única tasca que ens cal fer és la d’encadenar i parametritzar diversosalgorismes, per tal que processin les dades d’entrada d’una manera determinada. Hemutilitzat aquest tipus d’algoritme donat que quasi totes les etapes del pre-processamentestaven ja implementades a Essentia (FrameCutter, Windowing, entre d’altres).

Filtre Medià

En el nostre cas, com que el que necessitem és un filtre medià per cada banda de fre-quències, ens ha calgut crear un algorisme nou per a poder computar el filtre medià pera un vector. Tot seguit descrivim l’algorisme creat per a poder fer el còmput correspo-nent:L’algoritme conté els seguents elements:

• Entrada del nou vector.

• Buffer circular on cada element és un vector.

• Computació del medià dins del buffer.

• Sortida del vector medià.

24

Page 38: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 25 — #37

Half-Wave Rectifier

El rectificador Half-Wave no estava implementat dins les funcions que fan transforma-cions dins el mateix vector. Aquest fitxer és el unaryoperator.cpp, ens ha calgut editartambe unaryoperator.h per tal d’afegir el seguent algoritme de còmput del rectificadorutilitzat.

case HALFWAVE:{

for (int i=0; i<(int)input.size(); i++) {output[i] = (input[i]+std::abs(input[i]))/2;

}return;

}

Un cop implementats tots els algorismes necessaris creem el Composite Algorithm in-terconnectant els diferents algorismes seguint l’esquema de la figura 4.5:

_signal >> _frameCutter->input("signal");_frameCutter->output("frame")>> w->input("frame");w->output("frame") >> spectrum->input("frame");spectrum->output("spectrum") >> melbands->input("spectrum");melbands->output("bands") >> median2d->input("signal");melbands->output("bands") >> substract->input("array1");median2d->output("signal") >> substract->input("array2");substract->output("array") >> half_wave->input("array");half_wave->output("array") >> _beats;

Ón _signal és la senyal d’entrada i _beats és la senyal de sortida del preprocessament.

Dades entrenament

Per a poder fer provar si funcionava correctament vam crear un fitxer .cpp que imple-mentés la part sencera de preprocesament que consiteix en:

1. Carregar fitxer d’àudio (Funcions Monoloader d’Essentia).

2. Passar aquest fitxer a 3 pre-processats amb una mida de fragment diferent.

3. Ajuntar les 3 sortides de pre-processat en un vector sol.

25

Page 39: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 26 — #38

Conjuntament amb la part de l’algorisme també ens ha calgut implementar una sèriede extres per tal de poder obtenir les dades pre-processades d’entrenament. Ens hacalgut:

• La llegida dels fitxers d’àudio: a través de les funcions de directori per accedirals arxius on hi han guardats els arxius d’àudio i els arxius anotats

• Transformació de les anotacions: Les anotacions obtenides [11], es trobaven enformat temps del beat - posició al compàs. Aixi doncs teniem files com aquestes:

0.8499773240 11.4700226750 22.0800000000 32.6800000000 43.3000453510 1

I les voliem transformar en un vector de 0 i 1 amb la mateixa mida que el pre-processament, per tal de ser la sortida de cada output (és beat o no ho és).També hem creat un vector oposat, que tingui 0 on és beat, per tal de reproduir lessortides de la xarxa neuronal utilitzada per Böck.

• Guardar dades en fitxer: Degut a que la implementació no la vàrem fer integra-ment a Essentia, ens feia falta treure les dades per tal de passar-les a la seguentetapa del procès.

4.5.2 Long-Short term memoryCom hem comentat abans en aquesta implementació hem utilitzat la llibreria PyBrain[16] per tal de tenir la xarxa neuronal funcionant. Aquesta llibreria té implementatsmolts mètodes que faciliten la tasca de crear (o importar) un set de dades, crear unaxarxa neuronal, entrenar-la i evaluar-la.Per a l’avaluació d’aquesta xarxa neuronal hem creat dos fitxers del llenguatge python(llenguatge amb el qual està implementada la llibreria PyBrain. Un fitxer per a ferl’entrenament de la xarxa i un fitxer per a fer l’avaluació de la xarxa entrenada. Per talde poder guardar la xarxa entrenada hem fet ús de l’eina pickle de python.

26

Page 40: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 27 — #39

Capítol 5

RESULTATS

5.1 Implementació SeccionadaAmb el primer test de l’implementació separada a Essentia i la llibreria PyBrain vamobtenir els següents resultats:Primerament vam implementat una xarxa LSTM unidireccional amb 2 cel.les de me-mòria. Per a provar que la xarxa funcionès correctament vam provar d’entrenar-la itestejar-la amb el mateix dataset. Sabent que tindríem overfitting segurament, però mi-rant si realment el pre-processament implementat servia per a tenir unes dades que per-metessin la classificació de si el fragment analitzat era beat o no. Per a aquesta provaens hem centrat en detectar l’anomenat downbeat que correspon al beat situat al temps1 del compàs. Amb la xarxa descrita i usant sols 2 fitxers d’àudio del dataset per al’entrenament vàrem obtenir la corba d’aprenentatge mostrada a la Figura 5.1

Figura 5.1: Corba d’aprenentatge de la xarxa neuronal

27

Page 41: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 28 — #40

Amb aquesta corba podem veure que efectivament la xarxa neuronal és capaç d’a-prendre i fer un error baix en la detecció del beat.

Un cop utilitzat la funció d’entrenament, correm la funció d’avaluació de la xarxa.Utilitzant les mateixes dades d’entrada d’avaluació que d’aprenentatge, activem la xarxaper tot el set i guardem el resultat. En la Figura 5.2 mostrem la sortida del predictor i elvalor real en aquella instància.

Figura 5.2: Predició vs clasificació real

Veiem que tot i que la funció s’activa entre beat i beat, l’activació en el beat és major,en certs punts. Tot i que no és veu adequadament en algunes línies verdes s’aprecia quetambé hi ha una de blava just darrera que canvia el color de la línia, mostrant que enaquell instant s’ha detectat el beat.

5.2 Implementació FinalEn progrés...

28

Page 42: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 29 — #41

Capítol 6

CONCLUSIONS

6.1 Conclusions

En l’etapa actual del procés podem treure les següents conclusions referents als objec-tius marcats pel projecte:

• Hem aconseguit instal.lar i compilar Essentia satisfactòriament i hem pogut crearun projecte d’Xcode per tal de treballar amb Essentia d’una manera més fluidai còmoda. A part d’aprendre millor el funcionament de la llibreria Essentia, lesseves dificultats, i també les seves utilitats i avantatges.

• Tot i que durant la carrera ja ens hi vàrem anar trobant, entendre l’article científicno va ser del tot fàcil. La xarxa utilitzada no ens hi havíem trobat mai, ni tantsol amb xarxes recursives, però analitzant be el document, i buscant també a lesreferències d’aquest, vam aconseguir entendre’l amb èxit.

• La part de desenvolupament de codi no la vàrem poder aconseguir del tot ja queel nostre algoritme (en la primera i actual versió) no funcionava totalment a lallibreria Essentia, sinó que funcionava una part a Essentia i una altre part a lallibreria PyBrain.

• Vam aconseguir trobar enllaços tan dels fitxers d’àudio del Ballroom Dataset, comde les seves anotacions de beat, i vam poder editar-les correctament per a obtenirdades d’entrenament de la nostra xarxa.

• Hem trobat diverses llibreries LSTM, però tot i que n’hem trobat alguna amb pos-sibilitats de ser implementada a Essentia no ho hem aconseguit, però si implementar-ne una en un altre entorn.

29

Page 43: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 30 — #42

6.2 Treball futurEl treball més proper que tenim és el d’aconseguir utilitzar aquest detector a l’entorn deprogramació Pure Data (pd) [12] per tal de poder-lo usar en temps real. Com a pontentre Essentia farem servir l’external de pd, EssentiaRT2 actualment en desenvolupa-ment.

Cal destacar que en el moment de redactar aquest treball, Böck va treure un altrearticle científic sobre el seguiment de beat[19]. Aquest article científic es tracta d’unacombinació del mateix algorisme implementat en aquest treball però on utilitza diversesinstàncies del mateix algorisme entrenades amb conjunts de dades diferents. Un copaixò avalua el fragment amb tots els models i es queda amb el que té millor detecció.

A part d’això en un futur caldrà treballar mes la part final de l’algorisme desenvo-lupat per Böck [20], on es calcula el tempo de la cançó, ja que en aquest treball no hohem implementat i és interesant per a la detecció de tempo. (sobretot si es tracta d’unfragment on el tempo no és constant).

Actualment, hem desenvolupat un sistema que detecta el beat no només amb lainformació del fragment actual sinó que utilitza la informació dels fragments anteriorsper a poder discernir si es beat o no. Amb aquesta informació es podria intentar trobarl’instant abans que es produeixi un beat per tal de poder-lo predir.

L’anotació utilitzada del Ballroom Dataset ens proporciona, a més de la localitzaciódel beat, el compàs en el qual es troba el beat. Així doncs podríem utilitzar aquestainformació per a determinar temps forts i dèbils en la peça.

30

Page 44: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 31 — #43

Bibliografia

[1] Paul E Allen and Roger B Dannenberg. Tracking Musical Beats in Real Time.International Computer Music Conference Glasgow 1990, pages 140 – 143, 1990.

[2] D Bogdanov, Nicolas Wack, Emilia Gómez, Sankalp Gulati, P Herrera, O Mayor,G Roma, J Salamon, J Zapata, and Xavier Serra. ESSENTIA: an Audio AnalysisLibrary for Music Information Retrieval. International Society for Music Informa-tion Retrieval Conference (ISMIR 2013), pages 493–498, 2013.

[3] Roger B Dannenberg. Following an improvisation in real time. In Proc. 1987International Computer Music Conference, pages 241–248, 1987.

[4] Daniel P. W. Ellis. Beat Tracking by Dynamic Programming. Journal of NewMusic Research, 36(1):51–60, March 2007.

[5] Herman H Goldstine and Adele Goldstine. The electronic numerical integratorand computer (eniac). Mathematical Tables and Other Aids to Computation, pages97–110, 1946.

[6] Masataka Goto. An Audio-based Real-time Beat Tracking System for Music Withor Without Drum-sounds. Journal of New Music Research, 30(2):159–171, June2001.

[7] Masataka Goto and Yoichi Muraoka. A beat tracking system for acoustic signalsof music. Proceedings of ACM, (2):365–372, 1994.

[8] Alex Graves. Supervised Sequence Labelling with Recurrent Neural Networks.2008.

[9] Haruhiro Katayose, H Kato, M Imai, and S Inokuchi. An approach to an artificialmusic expert. 1989.

[10] Anssi P. Klapuri, Antti J. Eronen, and Jaakko T. Astola. Analysis of the meterof acoustic musical signals. IEEE Transactions on Audio, Speech and LanguageProcessing, 14(1):342–355, 2006.

31

Page 45: Detector de Beat - e-Repositori UPF

“main” — 2015/6/15 — 23:53 — page 32 — #44

[11] Florian Krebs, S Böck, and Gerhard Widmer. Rhythmic Pattern Modeling for Beatand Downbeat Tracking in Musical Audio. ISMIR, 2013.

[12] Miller Puckette et al. Pure data: another integrated computer music environment.Proceedings of the Second Intercollege Computer Music Concerts, pages 37–41,1996.

[13] Andrew Robertson, Matthew Davies, and Adam Stark. Real-Time Percussive BeatTracking. pages 1–2, 2014.

[14] Frank Rosenblatt. The perceptron: a probabilistic model for information storageand organization in the brain. Psychological review, 65(6):386, 1958.

[15] David Rosenthal. Intelligent rhythm tracking. In PROCEEDINGS OF THE IN-TERNATIONAL COMPUTER MUSIC CONFERENCE, pages 227–227. INTER-NATIONAL COMPUTER MUSIC ACCOCIATION, 1992.

[16] Tom Schaul, Justin Bayer, Daan Wierstra, Yi Sun, Martin Felder, Frank Sehnke,Thomas Rückstieß, and Jürgen Schmidhuber. PyBrain. Journal of Machine Lear-ning Research, 2010.

[17] E D Scheirer. Tempo and beat analysis of acoustic musical signals. The Journalof the Acoustical Society of America, 103(1):588–601, 1998.

[18] Walter Andrew Schloss. On the automatic transcription of percussive music: fromacoustic signal to high-level analysis. Number 27. Stanford University, 1985.

[19] B Sebastian, Florian Krebs, and Gerhard Widmer. A MULTI-MODEL AP-PROACH TO BEAT TRACKING CONSIDERING HETEROGENEOUS MUSICSTYLES. (Ismir):603–608, 2014.

[20] Markus Schedl Sebastian Böck. Enhanced beat tracking with context-aware neuralnetworks. Proc. of the 14th Int. Conference on Digital Audio Effects (DAFx-11),pages 1–5, 2011.

[21] Joseph Weizenbaum. Elizaa computer program for the study of natural languagecommunication between man and machine. Communications of the ACM, 9(1):36–45, 1966.

[22] José R Zapata, Matthew E P Davies, and Emilia Gómez. Multi-Feature BeatTracking. 22(4):816–825, 2014.

32