Actualizare (20.09.2018): Încercați noua implementare JavaScript!
Actualizare (30.10.2018): Citiți despre îmbunătățiri și un nou set de date în setul de date MAESTRO și Wave2Midi2Wave!
Onsets și cadre este noul nostru model pentru transcrierea automată a muzicii de pian polifonice. Folosind acest model, putem converti înregistrările brute ale interpretărilor de pian solo în MIDI.
De exemplu, ați făcut vreodată o înregistrare a dvs. improvizând la pian și mai târziu ați dorit să știți exact ce ați cântat? Acest model poate transcrie automat acea înregistrare de pian într-un pianor MIDI care ar putea fi folosit pentru a reda aceeași muzică pe un sintetizator sau ca punct de plecare pentru partituri. Transcrierea automată deschide multe posibilități noi pentru analiza muzicii care nu este ușor disponibilă sub formă notată și pentru crearea unor seturi de date de instruire mult mai mari pentru modele generative.
Vom putea realiza o nouă stare de artă folosind CNN și LSTM pentru a prezice evenimentele de debut al pitchului și apoi folosind aceste predicții pentru a condiționa predicțiile pitch pitchwise.
Puteți încerca modelul nostru cu propriile înregistrări de pian în browserul dvs. vizitând Piano Scribe sau Notebook-urile Colab Notebook. De asemenea, am pus codul sursă disponibil pe GitHub atât pentru Python, cât și pentru JavaScript. Mai multe detalii tehnice sunt disponibile în lucrarea noastră despre arXiv: Onsets and Frames: Dual-Objective Piano Transcription.
Model | Scor transcriere F1 (0-100) |
Stadiul tehnicii anterior | 23.14 |
Onsets și cadre | 50,22 |
Mai multe valori și detalii disponibile în lucrarea noastră.
Exemplele de mai sus sunt o bună ilustrare a performanței sistemului nostru. Există cu siguranță unele greșeli, dar face o treabă bună în ceea ce privește captarea armoniei, melodiei și chiar ritmului.
Motivul pentru care modelul nostru funcționează la fel de bine este că împărțim sarcina de detectare a notelor în două stive de rețele neuronale: o stivă este instruită pentru a detecta doar cadre de debut (primele câteva cadre ale fiecărei note) și o stivă este antrenată să detectați fiecare cadru în care este activă o notă. Modelele anterioare foloseau doar o singură stivă, dar am constatat că separând sarcina de detectare a debutului am reușit să obținem o precizie mult mai mare.
Diagrama arhitecturii rețelelor.
Utilizăm ieșirea de la detectorul de debut în două moduri: alimentăm ieșirea brută a acelui detector în detectorul de cadru ca intrare suplimentară și restricționăm, de asemenea, ieșirea finală a modelului pentru a începe note noi numai atunci când detectorul de debut este încrezător că apare o notă în acel cadru.
Funcția noastră de pierdere este suma a două pierderi de entropie încrucișată: una din partea de debut și una din partea de cadru. În termenul de pierdere bazat pe cadru, aplicăm o ponderare pentru a încuraja precizia la începutul notei. Deoarece vectorul de greutate atribuie greutăți mai mari cadrelor timpurii ale notelor, modelul este stimulat să prezică cu precizie începutul notelor, păstrând astfel cele mai importante evenimente muzicale ale piesei.
Figura de mai jos ilustrează importanța restricționării ieșirii modelului pe baza detectorului de debut. Prima imagine prezintă rezultatele din detectoarele de cadre și de debut. Există mai multe exemple de note care fie durează doar câteva cadre sau care se reactivează scurt după ce au fost active pentru o vreme. A doua imagine arată rezultatele cadrului după ce a fost restricționată de detectorul de debut. Majoritatea notelor care erau active doar pentru câteva cadre nu au avut o detecție corespunzătoare de debut și au fost eliminate. Cazurile în care o notă s-a reactivat pentru scurt timp după ce a fost activă o perioadă de timp au fost, de asemenea, eliminate, deoarece un al doilea debut pentru acea notă nu a fost detectat.
În prima imagine, albastru indică predicția cadrului, roșu indică predicția de debut și magenta indică suprapunerea predicției de cadru și debut. Există doar un pic de roșu în imagine (o notă în centru), ceea ce înseamnă că majoritatea cazurilor în care detectorul de debut crede că există o notă, detectorul de cadru este de acord. Cu toate acestea, există mai multe cazuri în care detectorul de cadre consideră că există o notă, iar detectorul de debut nu are (note care nu au un bloc magenta la început). Majoritatea acestor detecții de cadre sunt incorecte, ceea ce ilustrează cât de important este să eliminați notele care nu au un debut detectat.
A doua imagine prezintă predicțiile după eliminarea notelor care nu au avut un debut detectat. Galbenul indică predicția cadrului și adevărul solului se suprapune, verde indică o predicție eronată a cadrului, iar roșu indică adevărul solului fără o predicție cadru.
Calitatea actuală a ieșirii modelului este pe punctul de a permite aplicații din aval, cum ar fi regăsirea informațiilor despre muzică și generarea automată de muzică. Lucrăm la îmbunătățiri care sperăm că vor face modelul și mai precis și util.
Ne-ar plăcea să aflăm despre experiența dvs. cu acest model pe lista de discuții magenta. A existat o transcriere care a produs rezultate deosebit de interesante (bune sau rele)? Încercați-l vizitând Notebook-urile Onsets și Frames Colab sau folosind codul de pe GitHub și anunțați-ne!
Exemplele de transcrieri sunt un derivat al bazei de date MAPS și sunt licențiate sub CC BY-NC-SA 4.0.
- Actualizarea Seven XX duce cadrele de frână pe disc din titan la nivelul următor - Bikerumor
- Prezentarea pianului viitorului - Seaboard
- Participanții au nevoie pentru studiul de slăbire
- Oferiți cele mai recente bucăți Pierdere în Greutate Pierdere în Greutate Minunat - Global Study UK
- Cafea Revital U, Cacao, Smart Caps; Slim Tea Revital U Sweet Dreams