2 points par GN⁺ 2024-11-11 | 1 commentaires | Partager sur WhatsApp
  • Aperçu du projet

    • Ce projet vise à créer un programme capable de convertir de la musique en partition.
    • Il s’agit d’un projet open source qui sépare une musique en instruments constitutifs sans utiliser de bibliothèque externe de séparation d’instruments.
    • Le projet est né d’un besoin personnel et de l’absence d’algorithmes open source simples.
  • Préparation

    • Les données d’instruments ont été récupérées depuis la base de données de l’Electronic Music Studios de l’University of Iowa.
    • À partir de ces données, la transformée de Fourier de la forme d’onde complète et l’enveloppe de la forme d’onde ont été obtenues.
  • Principe de fonctionnement

    • La forme d’onde sonore d’un instrument se caractérise principalement par la transformée de Fourier et l’enveloppe.
    • Cela permet d’identifier quel instrument joue quelle note.
  • Transformée de Fourier

    • La transformée de Fourier du fichier musical est calculée toutes les 0,1 seconde pour générer un spectrogramme.
    • Les transformées de Fourier enregistrées de chaque instrument sont additionnées pour reconstruire la transformée de Fourier de la fenêtre de 0,1 seconde.
    • L’amplitude de chaque instrument est déterminée via la dérivée partielle en fréquence de la fonction de coût MSE.
  • Enveloppe

    • L’enveloppe correspond à la limite supérieure de la forme d’onde, et une méthode robuste au bruit comme à certains types de formes d’onde est nécessaire.
    • L’enveloppe est obtenue en divisant la forme d’onde en segments et en prenant la valeur maximale de chaque segment.
    • L’enveloppe est analysée en la divisant en attaque, maintien et relâchement.
    • La forme d’onde d’un instrument peut présenter une décroissance statique ou dynamique, distinguée par l’analyse du facteur de décroissance et de son taux de variation.
  • Différents types de formes d’onde

    • Pour traiter le fichier musical, un filtre passe-bande est appliqué à la fréquence de chaque note.
    • Pour chaque instrument, le début et la fin de chaque note sont repérés grâce à la corrélation croisée de l’attaque et du relâchement, puis le MSE est calculé pour obtenir un coût.
    • L’amplitude finale est obtenue en multipliant l’amplitude trouvée à l’étape de la transformée de Fourier par l’inverse du coût.
  • Résultats et affichage

    • La partition est affichée à l’aide d’un nuage de points matplotlib.
    • L’objectif initial était de reconstruire l’audio à partir des amplitudes, mais de nombreux problèmes sont apparus et cette piste a été abandonnée.
    • Le projet est utile pour reconstruire des partitions, et particulièrement pratique lorsqu’on a du mal à identifier des hauteurs ou des accords.

1 commentaires

 
GN⁺ 2024-11-11
Commentaires sur Hacker News
  • Le titre peut prêter à confusion. Ce projet n’est pas de la séparation de sources audio, mais un algorithme de détection de hauteur, avec en plus une fonction de classification des instruments
    • Corriger les résultats peut prendre plus de temps
  • La transcription musicale automatique (audio -> MIDI) est un sous-domaine important du deep learning et de la recherche d’information musicale
    • Le projet MT3 de Google est cité comme un modèle réussi
    • Dans le cas de la transcription de piano, il montre une précision presque parfaite même avec des fichiers audio de faible qualité
  • Si la séparation audio vous intéresse, RipX vaut le détour
    • Il peut exporter les pistes séparées en fichiers MIDI
    • Il reste encore quelques problèmes, mais cela fonctionne bien
    • La séparation de stems est désormais un standard des logiciels musicaux et presque tous les DAW la proposent
  • La physique réelle des instruments ne se laisse peut-être pas capturer par de simples gabarits de transformée de Fourier
    • Une trompette peut avoir un spectre harmonique différent selon qu’elle est jouée doucement ou fort
    • Le contenu harmonique peut varier fortement selon l’intensité de l’instrument
    • Ajouter des gabarits de Fourier dépendants de l’intensité pour chaque instrument pourrait améliorer la précision
  • Cela rappelle des souvenirs de parties d’Audiosurf il y a 15 ans
  • La démo vidéo sur YouTube ne semble pas montrer de séparation de sources
  • Personne ne mentionne que "separation" est mal orthographié quatre fois
  • Certaines vidéos semblent ne pas avoir d’audio
  • Ce projet pourrait être le travail du frère de Joshua Bird
    • Joshua Bird a déjà mené des projets impressionnants
  • Je ne trouve pas le code source, mais le projet a l’air intéressant