Music Information Retrieval Università degli studi di Padova Laurea specialistica in Informatica Music Information Retrieval Corso di Sistemi Informativi Michele De Filippo De Grazia Anno accademico 2006-2007 Music Information Retrieval Bibliografia J. Stephen Downie, Music Information Retrieval, University of Illinois J. Stephen Downie, Evaluating a Simple Approach to Music Information Retrieval: Conceiving Melodic N-grams as Text, University of Western Ontario Kjell Lemström, Pauli Laine, Musical Information Retrieval Using Musical Parameters, International Computer Music Conference 1998 Progetto MIREX: http://www.music-ir.org Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Introduzione Music Information Retrieval: tecniche di immagazzinamento e recupero di materiale musicale Due filoni I sistemi MIR attuali si basano solo sui metadati testuali per adempiere ai propri compiti Ci si pone l’obiettivo di andare oltre all’utilizzo di metadati testuali Recupero di file audio: indicizzazione e ricerca attraverso i metadati testuali all’interno dei file. Tecnica diffusa ma in un ambito molto ristretto Recupero di opere musicali generiche: indicizzazione e ricerca attraverso le caratteristiche musicali dell’opera (multifaceted challenge) Problematiche Complessità nelle rappresentazione musicale Diritti d’autore Assenza di uno standard di riferimento: necessità di una comunità di sviluppo di riferimento Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Multifaceted Challenge Aspetti della rappresentazione musicale Pitch Temporal Harmonic Timbral Editorial Textual Biblioraphic Ognuna gioca un ruolo importante nella definizione del dominio di un sistema MIR Grande complessità per l’interazione esistente tra tutti questi aspetti Oggigiorno i più diffusi sistemi MIR trattano soltanto l’aspetto bibliografico (metadati) Music Information Retrieval Multifaceted Challenge Pitch Temporal L’intonazione di una nota data dalla frequenza fondamentale del suono. Il pitch è rappresentato graficamente come dei simboli (♫,♪,…), nomi (A,B,…,G) o i gradi della scala (I,II,…,VII) L’inviluppo melodico (variazione di toni) è l’aspetto più utilizzato dai sistemi MIR per indicizzare opere musicali (di solito le prime battute) Informazione che concerne alla durata dell’evento musicale Molto importante perché interagendo con Pitch rappresenta completamente un tema musicale (note e la loro durata) Difficoltà nella rappresentazione per i molti aspetti temporali presenti in un’opera Harmonic Rappresentazione delle polifonie ossia di più pitch suonati contemporaneamente Difficile estrazione dai file audio: spesso non sono denotati esplicitamente Esempio: gli accordi (rappresentati mediante sigle) Music Information Retrieval Multifaceted Challenge Timbral Editorial Rappresentazione dell’opera musicale attraverso un testo cantato (testi delle canzoni, cori,…) Maggior indipendenza dei testi dalle melodie e arrangiamenti Perciò posso avere ambiguità e di conseguenza maggior complessità: testi diversi associati alla stessa melodia, testo associato a melodie diverse, stessa melodia con testo in lingue diverse, ecc... Bibliographic Rappresentazione grafica degli spartiti, con l’aggiunta di informazioni utili per l’esecuzione Textual Rappresenta il timbro sonoro dato dai differenti strumenti utilizzati nell’opera musicale Spesso parte di queste informazioni fanno parte dell’aspetto bibliografico Difficoltà nella rappresentazione per l’enorme quantità di timbri diversi prodotti dalle tecniche esecutive (legato, pizzicato) Metadati sulla melodia (autore, titolo, esecutori,…) Unico criterio di indicizzazione utilizzato su larga scala Ricerche in atto per creare sistemi MIR che utilizzino anche altri aspetti Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Ulteriori Problematiche Oltre alle problematiche relative agli aspetti rappresentativi della musica, ne esistono altre Multirepresentational Challange Multicultural Challenge Multiexperiential Challenge Multidisciplinarity Challenge L’aggiunta di questi ulteriori aspetti spiega la grande difficoltà nella realizzazione di un sistema MIR completo Music Information Retrieval Ulteriori Problematiche Multirepresentational Challenge Esistono diverse scelte per la rappresentazione informatica della musica Da queste scelte dipendono la facilità di estrazione delle rappresentazioni interne e lo spazio richiesto per la loro memorizzazione Esempio: • Spartito/MIDI • File audio bassi costi di immagazzinamento onere molto maggiore Problemi di copyright per la creazione di un catalogo musicale Multicultural Challenge L’informazione musicale è per sua natura multiculturale Opere al di fuori del sistema tonale occidentale (musica indiana, tribale africana) richiederebbero uno studio approfondito per cercare altri aspetti rappresentativi Si cerca di superare ciò con informazioni aggiuntive all’interno delle informazioni bibliografiche Music Information Retrieval Ulteriori Problematiche Multiexperiential Challenge La musica può essere catalogata anche secondo i gusti musicali e l’esperienza personale Un ulteriore sviluppo di sistemi MIR potrebbe essere, la catalogazione delle opere musicali secondo considerazioni psico-acustiche sull’effetto emotivo prodotto sull’ascoltatore Esempio: attraverso feedback capire quando un brano è da considerarsi noioso oppure allegro Multidisciplinarity Challenge All’interno di un progetto per realizzare un sistema MIR esiste un enorme “diversità intellettuale” Questo implica chiare difficoltà nel suo sviluppo, infatti eterogeneità tra i ricercatori e sviluppatori comportano • Difficoltà nella definizione degli obiettivi e modalità operative • Necessita di standard per indicizzare le opere (spartiti vs segnale campionato) • Difficoltà nella diffusione della ricerca (diverse comunità con scarsa coesione) Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Sistemi MIR Una classificazione dei sistemi MIR viene fatta sulla loro completezza di rappresentazione Maggiore completezza comporta maggior numero di facet utilizzate per la rappresentazione Un sistema che utilizza tutte le facet elencate si dice “completo” Esistono due tipi principali di sistemi MIR che differiscono per completezza e per diversità d’uso Analytic/Production MIR System Locating MIR System Music Information Retrieval Sistemi MIR Analytic/Production MIR System: caratteristiche Caratterizzato dal più alto grado di completezza rappresentativa Creato per utenti esperti: musicologi, compositori, trascrittori Ha lo scopo di analizzare approfonditamente tutte le facet musicali per specifiche analisi teoriche e produzione musicale (grana fine) Analytic/Production MIR System: tecniche Il suo sviluppo viene ricondotto da un problema di rappresentazione musicale ad un problema di programmazione o comunque ad una qualche tecnica già nota • Tentativi di modellare l’informazione musicale come linguaggio di programmazione (Kassler, Lincoln, Lemstrom) • Sviluppo di linguaggi funzionali appositi (MIRA) per esprimere la rappresentazione musicale (Sutton) • Estensione del modello ER utilizzando DB relazionali (Rubenstein) • Utilizzo di espressioni regolari (McLean’s) e automi a stati finiti (Page) Music Information Retrieval Sistemi MIR Analytic/Production MIR System: strumenti Necessità di sviluppare uno strumento che sia in grado di realizzare i compiti standard di un sistema MIR (encoding, estrazione, pattern matching,…) Humdrum Toolkit cerca di realizzare tutto questo • Composto da 50 programmi integrati tra loro (sviluppato per UNIX) • Strumento potente in grado di gestire query di complessità arbitraria • Grande flessibilità: creazione di query basate su diverse facet musicali • Enorme complessità d’uso: necessità di scrivere le query nello stretto linguaggio formale UNIX extract –i**kern’ HG.kern | semits –x | xdelta –s = |patt –t Motivel –s = -f Motiv1.pat | extract –i**’patt’| assemble HG.krn • Per questo sviluppato per utenti esperti Music Information Retrieval Sistemi MIR Locating MIR System: caratteristiche Sviluppati per assistere l’identificazione locazione e recupero di brani musicali Creato per utenti generici Si focalizza solo su alcune facet musicali: Pitch, Temporal, Textual, Bibliograpich (grana grossa) Locating MIR System: tecniche (1) Query tipiche utilizzando solo informazioni testuali e bibliografiche • Lista di tutte le opere di un dato compositore • Lista delle informazioni correlate ad una data opera Per altre invece necessito della tecnica Incipit Index ovvero della rappresentazione dell’inviluppo melodico privo delle informazioni temporali della prima parte dell’opera • Opera che inizia con una data linea melodica Music Information Retrieval Sistemi MIR Locating MIR System: tecniche (2) Il sistema Incipit Index (1970) è incompleto, infatti la sua rappresentazione porta ad una ricerca solo per tema principale ma ha buoni effetti nella pratica (scrittura query semplice) Un esempio è l’indice di Parsons (1975) • Rappresenta l’inviluppo melodico utilizzando solo tre simboli: R (nota ripetuta), D (melodia discendente) e U (melodia ascendente). • Trascura completamente l’intonazione delle note ma ho una bassa probabilità di fare errori nella formulazione della query • E’ anche possibile utilizzare non solo la parte iniziale ma tutta l’opera Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Multifaceted Challenge e Sistemi MIR Ci sono vari modi in cui un sistema MIR gestisce singoli aspetti della rappresentazione musicale. In seguito ne vedremo alcuni a seconda dell’aspetto trattato Music Information Retrieval Multifaceted Challenge e Sistemi MIR Pitch e Temporal (1) RISM (1997) • DataBase musicale composto da 200.000 composizioni per 8.000 autori • Rappresentazione mediante Incipit Index focalizzata su pitch e durata • Quindi rappresento soltanto la parte iniziale dell’opera, codificata usando codici alfanumerici Plaine and Easie Codifica alfanumerica per i pitch • Codifica numerica per la durata temporale • • Esempio: “Il core vi dono” da “Cosi fan tutte” (Mozart) %F-4$Bb@3/8#’8C.6.3$.B’C&/,8AD6(-)D/,8G’8.C,6B/8F • Problematiche Difficoltà nell’interpretazione delle informazioni e nella formulazione delle query per la necessità di conoscere perfettamente la melodia e il linguaggio • Per risolvere alcuni di questi problemi si è creato il sistema HyperBack che consente l’inserimento delle query utilizzando una interfaccia e una tastiera MIDI • Music Information Retrieval Multifaceted Challenge e Sistemi MIR Pitch e Temporal (2) MELDEX (100.000 file MIDI + 10.000 documenti) • Sistema MIR completo • File MIDI reperiti dal Web utilizzando uno spider • Usa rappresentazioni multiple per la singola composizione (spartito, file audio, MIDI) • Modulo di ricerca con Query by Humming • Ricerca sia utilizzando l’inviluppo melodico semplice (Parsons) sia il match esatto (con informazioni aggiuntive) • Tecniche di programmazione dinamica aumentano l’accuratezza della ricerca ma ad un considerabile costo computazionale Altri sistemi • Utilizzo di n-grammi per rappresentare le melodie a cui applicare le classiche tecniche di IR Music Information Retrieval Multifaceted Challenge e Sistemi MIR Harmonic Query con argomento l’armonia della composizione musicale, che possono essere monofoniche o polifoniche (problema di formulazione) Difficoltà nel discriminare melodia e armonia in opere con forme composite (file audio) Spazio di ricerca per opere polifoniche multidimensionale Utilizzo algoritmi di pattern matching o n-grammi per ridurmi a problemi già noti Timbral Generalmente basato sul processare le melodie per estrarre i timbri in essa presenti Buoni risultati per opere monofoniche (un unico strumento) Ancora non esiste un buon strumento per discriminare gli strumenti in melodie composite Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval MIREX MIREX (Music Information Retrieval Evaluation eXchange) è un progetto nato all’interno di Music-ir.org (comunità di sviluppo per sistemi MIR) che si pone l’obiettivo di definire Un benchmark d’uso per la valutazione di sistemi MIR Metodologie standard per la valutazione dei risultati forniti da sistemi MIR La prima MIREX Conference si è tenuta a Londra, 11-15 settembre 2005 Lo scopo è di confrontare lo stato dell’arte degli algoritmi e sistemi esistenti migliorando gli aspetti relativi alla multidiscipinarietà Music Information Retrieval Outline Introduzione Multifaceted challenge Ulteriori problematiche Sistemi MIR Multifaceted challenge e sistemi MIR MIREX Esempio di un semplice sistema MIR: il progetto MusiFind Music Information Retrieval Il progetto MusiFind Progetto iniziato nel 1993 che aveva il compito di creare un sistema MIR per la raccolta e l’estrazione di brani a partire da un catalogo musicale Ci soffermeremo solo alla parte del progetto relativa alla creazione e rappresentazione del catalogo musicale (indice) e dei risultati ottenuti Il primo passo fu di scegliere il formato con cui dovevano essere codificati i file iniziali La scelta cadde sui file MIDI Formato molto diffuso Codifica relativamente semplice e manipolabile Conosciuto da quasi tutti i ricercatori Il secondo passo fu di scegliere alcuni aspetti chiave sulla rappresentazione musicale Enfatizzare la recall sulla precision, quindi non inserire informazioni ritmiche nell’indice, ossia si preferiva recuperare solo il brano rilevante (single label) Utilizzare intervalli (n-grammi) piuttosto che toni per la loro rappresentazione più generale Music Information Retrieval Il progetto MusiFind Sono state definite alcune unità di misura e loro proprietà “intervallo” = la differenza tra due toni • Un tono codificato secondo MIDI è un valore compreso tra [0..127] allora gli intervalli possibili saranno da -127 a +127 • Questi sono troppi per poter indicizzare quindi nasce la necessità di dividerli in classi “classi di intervalli” = insieme di intervalli equivalenti • Se partizioniamo l’insieme di intervalli I in sottoinsiemi disgiunti I1, I2,…, Ic tali che c I j I e i j Ii I j j 1 • Ogni Ii è chiamata una classe di equivalenza • Ora definiremo una funzione di classificazione Music Information Retrieval Il progetto MusiFind Funzione di classificazione C : I 1..c dove C (i) j i I j Che converte l’intervallo i nella sua classe di equivalenza Tale funzione viene creata ad hoc a seconda del tipo di classificazione Stringa melodica Data una sequenza di toni p1, p2, p3,…,pn definiamo la sua corrispondente sequenza di intervalli come i1, i2, i3,…in-1 dove ij = pj+1 - pj (intervallo tra pj e pj+1) Data una sequenza di intervalli i1, i2, i3,…in-1 definiamo la corrispondente sequenza di classi di intervalli come C(i1), C(i2), C(i3),…,C(in-1) dove C è la funzione di classificazione Music Information Retrieval Il progetto MusiFind Ora definiamo le features utilizzate per l’indicizzazione Data una sequenza X = x1, x2, x3,…, xn definiamo la sottosequenza di lunghezza k a partire dall’elemento j come X kj x j ,..., x j k 1 Allora data una sequenza di classi di intervalli S = c1, c2, c3,…,cn possiamo definire allo stesso modo S kj c j ,..., c j k 1 Queste sottosequenze saranno quindi le nostre features Possiamo finalmente scrivere la prima parte dell’algoritmo per generare tali features dalla collezione Music Information Retrieval Il progetto MusiFind Algoritmo per la creazione delle features 1. 2. 3. 4. Sia data una melodia = sequenza di toni di lunghezza n+1 Calcolo la sequenza di intervalli lunga n relativa alla melodia Applico la funzione di classificazione C ad ogni intervallo producendo la sequenza di classi di intervalli relativa (lunga n) Estraggo tutte le sottosequenze di lunghezza k (k arbitrario) Music Information Retrieval Il progetto MusiFind Osservazioni Le sottosequenze non sono necessariamente distinte Se volessimo quindi costruire una tabella con tutte le sottosequenze di lunghezza k possibili, tale tabella dovrebbe avere ck entry (permutazioni lunghe k delle c classi) Se le enumeriamo da 0 a ck-1 possiamo definire una funzione che mapperà ogni singola sottosequenza in un valore di tale intervallo Sia data una sequenza di classi di intervalli S = s0, s2, s3,…,sk-1 allora definiamo tale funzione come k 1 H ( S ) c i si i 0 Possiamo allora utilizzare H per costruire le features finali, ossia sostituisco ogni sottosequenza con una sorta di “impronta” (univoca) che sarà utilizzata come chiave in una hash table Music Information Retrieval Il progetto MusiFind Algoritmo per la creazione delle features (completo) 1. 2. 3. 4. 5. Sia data una melodia = sequenza di toni di lunghezza n+1 Calcolo la sequenza di intervalli lunga n relativa alla melodia Applico la funzione di classificazione C ad ogni intervallo producendo la sequenza di classi di intervalli relativa (lunga n) Estraggo tutte le sottosequenze di lunghezza k (k arbitrario) Per ogni distinta sottosequenza lunga k applico la funzione H per generare i corrispondenti indici della hash table Music Information Retrieval Il progetto MusiFind Ora è possibile scrivere l’algoritmo per generare un indice sulla collezione musicale (hash table) 1. 2. Inizializzo la tabella in modo che a tutte le entry sia associata una lista vuota Per tutti i file f (melodie) della collezione a. Per tutte le sottosequenze S di classi di intervalli lunghe k in f Calcola l’indice i = H(S) Aggiungi il nome del file f (o un codice identificativo) alla lista della i-esima entry della hash table a meno che f non compaia già nella lista Quindi la lista associata all’entry i rappresenta l’insieme delle melodie che contengono al loro interno la sottosequenza S di classi di intervalli tale che H(S) = i Music Information Retrieval Il progetto MusiFind A partire da questo algoritmo possiamo trovare anche la risposta ad una stringa query q 1. 2. Creare tutte le sottosequenze di classi di intervalli lunghe k in q Per ogni sottosequenza S a. b. 3. Generare l’indice i = H(S) della hash table Estrarre la lista di file associati all’ i-esima entry della hash table Mantenere nella lista finale solo i file che compaiono in tutte le sottoliste Quindi ognuno dei file recuperati conterrà almeno una istanza di ognuna delle sottosequenze di classi di intervalli generate da q Non necessariamente conterrà q stessa, infatti le sequenze potrebbero non essere nell’ordine esatto Da questo fatto abbiamo due conseguenze Buona probabilità di recuperare molte melodie poco rilevanti (bassa precision) La melodia rilevante sarà recuperata (recall massima) Music Information Retrieval Il progetto MusiFind Lo scopo finale di questo progetto era di capire gli effetti sul recupero delle melodie utilizzando gli n-grammi e l’indicizzazione Prima di ciò c’era la necessità di decidere quali valori assegnare a c (numero di classi di equivalenza) e l (lunghezza delle sottosequenze) in modo da non aumentare troppo la grandezza della hash table Inoltre si è deciso di utilizzare sottosequenze di lunghezza diversa per le query, non necessariamente uguale ad l Sottosequenze più lunghe di l • lq = 5 e l = 4 q = 12345 1234 and 2345 • L’insieme finale sarà l’intersezione delle liste risultanti Sottosequenze più corte di l • lq = 4 e l = 6 q = 1234 1234@@ (@=tutti i valori) • L’insieme finale sarà l’unione delle liste risultanti Music Information Retrieval Il progetto MusiFind Furono scelte 4 combinazioni per c e l (creazione di 4 indici diversi) E tre lunghezze per le query 4, 6 e 8 (Q4, Q6, Q8) Collezione di 100 file MIDI Esperimento eseguito su query ricavate dalle melodie stesse c=7 e l=6 (C7L6) con 117.649 entry c=12 e l=5 (C12L5) con 248.832 entry c=14 e l=5 (C14L5) con 537.824 entry c=23 e l=4 (C23L4) con 379.841 entry Come parte iniziale della melodia Scelta random all’interno della melodia Il totale delle query eseguite per esperimento è 1.200 (100 melodie x 4 indici x 3 tipi di query) Da questi esperimenti è stata poi calcolata la precision come P = 1/ n° di melodie recuperate Music Information Retrieval Il progetto MusiFind Risultati ottenuti utilizzando query ricavate dalla parte iniziale delle 100 melodie Media file Max n° file N° query P C7L6Q4 24.93 83 69 0.04 C7L6Q6 7.8 53 87 0.13 C7L6Q8 3.84 53 97 0.26 C12L5Q4 9.95 42 87 0.10 C12L5Q6 2.6 16 97 0.38 C12L5Q8 1.41 14 99 0.71 C14L5Q4 8.34 39 90 0.12 C14L5Q6 2.26 17 96 0.44 C14L5Q8 1.35 11 100 0.74 C23L4Q4 4.86 26 93 0.21 C23L4Q6 1.84 26 97 0.54 C23L4Q8 1.35 26 100 0.74 Media P 0.14 0.40 0.43 0.50 Music Information Retrieval Il progetto MusiFind Risultati ottenuti utilizzando query ricavate random all’interno delle 100 melodie Media file Max n° file N° query P C7L6Q4 23.19 83 75 0.04 C7L6Q6 7.57 53 92 0.13 C7L6Q8 4.15 53 95 0.24 C12L5Q4 11.68 42 79 0.09 C12L5Q6 2.13 14 98 0.47 C12L5Q8 1.36 14 100 0.74 C14L5Q4 8.84 39 87 0.11 C14L5Q6 2.04 15 99 0.49 C14L5Q8 1.24 8 100 0.81 C23L4Q4 4.81 26 95 0.21 C23L4Q6 1.43 26 100 0.70 C23L4Q8 1.35 26 100 0.74 Media P 0.14 0.43 0.47 0.55 Music Information Retrieval Il progetto MusiFind Risultati ottenuti utilizzando ricerca contigua su query ricavate sia all’inizio sia random all’interno delle 100 melodie (medie sui 4 indici) Media file Max n° file N° query P IConQ4 4.59 22 90 0.22 IConQ6 1.41 8 96 0.71 IConQ8 1.08 5 99 0.93 RConQ4 5.17 26 97 0.19 RConQ6 1.30 8 96 0.77 RConQ8 1.04 5 96 0.93 Media P 0.62 0.64 Music Information Retrieval Il progetto MusiFind Vediamo quindi il riepilogo dei risultati ottenuti Precision media per le query estratte all’inizio delle melodie P=0.37 Precision media per le query estratte random dalle melodie P=0.40 Precision media per tutte le query non contigue P=0.38 Precision media per tutte le query contigue P=0.63 Miglior risultato ottenuto con la combinazione C23L4 • Query non contigue P=0.53 • Query contigue P=0.63