Détection de parties d'une chanson


9

Espérons que ce ne soit pas trop subjectif ...

Je cherche une direction dans les efforts pour détecter les différentes "parties" d'une chanson, quel que soit le style musical. Je ne sais pas où chercher, mais en faisant confiance au pouvoir des autres sites StackOverflow, j'ai pensé que quelqu'un ici pourrait aider à orienter la direction.

En termes les plus élémentaires, on pourrait détecter différentes parties d'une chanson en regroupant simplement des motifs répétitifs consécutifs et en les appelant une "partie". Ce n'est peut-être pas si difficile - les ordinateurs sont assez bons pour détecter la répétition d'un signal, même lorsqu'il y a de petites variations.

Mais c'est difficile quand les "parties" se chevauchent, comme c'est le cas dans la plupart des musiques.

Il est difficile de dire quels types de musique conviendraient le mieux à ce type de système. Je suppose que la plupart des musiques symphoniques de style classique seraient plus faciles à traiter.

Avez-vous des idées où chercher des recherches dans ce domaine?


Je pense qu'il existe une application iPhone pour reconnaître la chanson à partir de l'enregistrement d'extraits. Et je pense qu'il y avait un article décrivant cette application. Je suis désolé de ne pas avoir de liens, mais je commencerais par là.
mpiktas

1
@mpiktas: vous faites probablement référence à des applications comme SoundHound ou Shazam . Il existe un livre blanc sur le fonctionnement de Shazam, bien qu'il n'entre pas trop dans les détails. Bien que je ne sois pas sûr que ce soit ce dont le PO a besoin, c'est peut-être un bon point de départ.
nico

Pour un bon blog court sur Shazam (basé, je crois, sur le papier blanc), vous pouvez aussi essayer laplacian.wordpress.com/2009/01/10/how-shazam-works
raegtin

Réponses:


6

Je ne suis pas un expert en traitement du signal, mais je connais assez bien la théorie musicale. Je dirais qu'au contraire, la musique classique serait probablement l'une des musiques les plus difficiles à analyser par des méthodes mathématiques simples. Vous feriez mieux de commencer avec quelque chose de plus simple et de plus répétitif, comme la musique pop ou techno. Pop a souvent un format couplet-refrain-couplet ... etc qui pourrait être propice à une version simpliste de vos objectifs.

Essayez d'utiliser une transformée de Fourier sur vos données pour les diviser en ses fréquences constituantes les plus importantes, peut-être hiérarchiquement entre les différentes sous-sections. En particulier, vous pouvez rechercher différentes choses en fonction de la façon dont vous souhaitez regrouper les "parties" de vos données.

  1. Les oscillations les plus lentes de votre musique pop seront probablement les changements entre le couplet et le refrain et le retour au couplet (peut-être 0,75 oscillations par minute?).

  2. Ensuite, vous pourriez trouver des oscillations de fréquence plus élevée parmi vos progressions d'accords, c'est-à-dire entre chaque mesure complète de votre morceau (peut-être environ 6 oscillations par minute?).

  3. La fréquence la plus élevée suivante serait, selon moi, une barre dans une mesure (peut-être environ 24 oscillations par minute?) Dans laquelle le motif de grattage et la syncopie des paroles se répètent souvent dans la musique pop / folk.

  4. Pour en savoir plus sur les détails sanglants, vous trouverez ensuite les rythmes et les rythmes qui se répètent dans chaque mesure de votre musique. Choisir et isoler l'un d'entre eux (à peut-être 148 oscillations / battements par minute?) Produirait probablement un coup de grosse caisse, ou un coup de sonnette, ou quelque chose dans un ordre similaire.

  5. Quelque part entre les rythmes et les sonorités, vous trouverez peut-être des éléments stylistiques rapides de votre musique, tels que la sélection de vitesse / balayage sur une guitare électrique ou un rythme de rap vocal rapide. (Je n'ai aucune idée de leur vitesse, mais je suppose que c'est quelque part de l'ordre de 1000 battements par minute ou plus).

  6. Enfin, rapidement, et probablement le plus complexe, sont les éléments de ton et de timbre. Je sais que la note "A médiane" est normalisée à 440 Hz, soit 440 oscillations par SECONDE. Je suis sûr qu'il existe des techniques de différenciation basées sur la qualité tonale et le timbre des types d'instruments utilisés; il existe même des algorithmes assez bons pour détecter les voix humaines. Cependant, comme je l'ai dit, je ne suis pas un expert en traitement du signal.


6

La musique est généralement décrite à l'aide de descripteurs MPEG7 avec des éléments supplémentaires comme des MFCC calculés sur les morceaux de morceaux créés par une approche de fenêtre mobile (c'est-à-dire que vous avez une certaine taille de fenêtre et hop, commencez par la fenêtre placée au début du son, calculez la sur la fenêtre, puis déplacez-le par saut et répétez jusqu'à ce que la fin soit atteinte).
De cette façon, une pièce est transformée en table; dans votre cas, il peut être utilisé pour appliquer des clusters sur les morceaux et ainsi détecter ces "parties".


Maintenant, c'est plus comme ça! Bonne réponse technique.
machine désirant le

5

Il existe de nombreuses méthodes différentes et une pléthore de littérature sur ce sujet à partir d'une grande variété de perspectives. Voici quelques points saillants qui pourraient être de bons points de départ pour votre recherche.

Si votre parcours est plus musical que mathématique ou informatique, vous pourriez être intéressé par les œuvres de David Cope, la plupart de ses œuvres publiées se concentrent sur l'analyse de morceaux de musique classique, mais il a une entreprise privée appelée recombinante qui semble plus générale. Une grande partie de son travail a utilisé la musique comme modèle de type linguistique, mais je pense qu'au moins une partie de son travail le plus récent s'est davantage orienté vers l' approche du génome musical dans son ensemble . Il a beaucoup de logiciels disponibles en ligne , mais il est généralement écrit en Lisp et certains ne peuvent s'exécuter que dans différentes versions du système d'exploitation d'Apple, bien que certains devraient fonctionner sous Linux ou n'importe où vous pouvez utiliser le lisp commun .

L'analyse des signaux et de la musique en général a été un problème très populaire dans l'apprentissage automatique. Il existe une bonne couverture de départ dans les textes de Christopher Bishop, Neural Networks for Pattern Recognition et Pattern Recognition and Machine Learning . Voici un exemple d'un article MSc qui a la partie de classification musicale, mais a une bonne couverture sur l'extraction de fonctionnalités, que l'auteur cite au moins un des textes de Bishop et plusieurs autres sources. Il recommande également plusieurs sources pour des articles plus récents sur les sujets.

Livres plus mathématiques ou statistiques (du moins par leur paternité sinon par leur contenu):

Depuis que j'ai mentionné Bishop et la perspective informatique de l'apprentissage automatique, je ne raconterais que la moitié de l'histoire si je ne vous suggérais pas également de jeter un coup d'œil aux éléments les plus récents de l'apprentissage statistique (disponible en téléchargement légal gratuit) par Hastie , Tibshirani et Friedman. Je ne me souviens pas qu'il y ait spécifiquement un exemple de traitement audio dans ce texte, mais un certain nombre de méthodes couvertes pourraient être adaptées à ce problème.

Un autre texte qui mérite d'être examiné est Statistics in Musicology de Jan Beran . Cela fournit un certain nombre d'outils statistiques spécifiquement pour l'analyse des œuvres musicales et a également de nombreuses références.

Encore une fois, il existe de nombreuses autres sources. Cela dépend en grande partie de votre expérience et de l'approche du problème avec laquelle vous êtes le plus à l'aise. Si tout va bien au moins une partie de ceci vous guide un peu dans votre recherche d'une réponse. Si vous nous en dites plus sur vos antécédents, des détails supplémentaires sur le problème ou posez une question en réponse à ce message, je suis sûr que moi-même ou plusieurs autres ici présents serons heureux de vous orienter vers des informations plus spécifiques. Bonne chance!


4

Pas une bonne réponse, mais deux endroits où chercher de la recherche sont:

International Society for Music Information Retrieval a des tonnes d'articles publiés sur ce sujet, incroyable combien d'informations il y a www.ismir.net

& Echo Nest (Une startup avec une API pour faire des choses similaires) echonest.com

MISE À JOUR: ils ont également publié du code d'empreintes digitales open source. http://echoprint.me/


0

J'étais intéressé par le problème similaire. Voici la solution. Ce n'est pas une proposition scientifique si ancienne que l'on appelle un complot de scape . Voir cet article pour plus de détails (il a l'air bien).

En outre, je vous recommande de visiter également le site Web de l'auteur car il existe de nombreuses applications similaires de statistiques en musique. Lorsque vous recherchez d'autres sources similaires, je vous recommande d'utiliser le terme récupération d'informations musicales qui inclut des zones similaires.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.