0

Mon ami Prasad Raghavendra et moi essayions d'expérimenter Machine Learning sur l'audio.Séparation d'audios d'instruments à partir d'un fichier musical non-MIDI à canal unique

Nous le faisions pour apprendre et explorer des possibilités intéressantes lors des prochaines rencontres. J'ai décidé de voir comment l'apprentissage en profondeur ou tout apprentissage automatique peut être alimenté avec certains audios évalués par les humains (évaluation). À notre grande consternation, nous avons constaté que le problème devait être divisé pour tenir compte de la dimensionnalité de l'entrée. Nous avons donc décidé de supprimer les voix et d'évaluer les accompagnements en supposant que les voix et les instruments sont toujours corrélés.

Nous avons essayé de rechercher des mp3/wav au convertisseur MIDI. Malheureusement, ils étaient uniquement pour des instruments simples sur SourceForge et Github et les autres options sont des options payantes. (Ableton Live, Fruity Loops, etc.) Nous avons décidé de considérer cela comme un sous-problème.

Nous avons pensé à la FFT, aux filtres passe-bande et à la fenêtre mobile pour s'adapter à ceux-ci. Mais, nous ne comprenons pas comment nous pouvons procéder à la division des instruments si des accords sont joués et qu'il y a 5-6 instruments dans le fichier.

  1. Quels sont les algorithmes que je peux rechercher?

  2. Mon ami sait jouer au clavier. Donc, je vais pouvoir obtenir des données MIDI. Mais, y a-t-il des ensembles de données pour cela?

  3. Combien d'instruments peuvent détecter ces algorithmes?

  4. Comment diviser l'audio? Nous n'avons pas non plus plusieurs audios ou la matrice de mixage

  5. Nous pensions également à découvrir les modèles d'accompagnement et à utiliser ces accompagnements en temps réel tout en chantant. Je suppose que nous serons en mesure d'y penser une fois que nous obtenons des réponses à 1,2,3 et 4. (Nous réfléchissons à la fois dynamique et Progressions d'accords) markoviens

Merci pour toute l'aide!

P.S .: Nous avons également essayé la FFT et nous sommes en mesure de voir quelques harmoniques. Est-ce dû à Sinc() en fft quand l'onde rectangulaire est entrée dans le domaine temporel? Cela peut-il être utilisé pour déterminer le timbre? FFT of the signals considered

EDIT:

Nous avons pu formuler à peu près le problème. Mais, encore, nous avons du mal à formuler le problème. Si nous utilisons un domaine fréquentiel pour une certaine fréquence, alors les instruments sont indiscernables. Un trombone jouant à 440 Hz ou une guitare jouant à 440 Hz aurait la même fréquence à l'exception du timbre. Nous ne savons toujours pas comment nous pouvons déterminer le timbre. Nous avons décidé d'aller par domaine temporel en prenant en compte les notes. Si une note dépasse une certaine octave, nous l'utiliserons comme une dimension séparée +1 pour l'octave suivante, 0 pour l'octave actuelle et -1 pour l'octave précédente.

Si les notes sont représentées par des lettres telles que 'A', 'B', 'C', etc., alors le problème se réduit aux matrices de mélange.

O = MI pendant l'entraînement. M est la matrice de mixage qui devra être trouvée en utilisant la sortie O connue et l'entrée I du fichier MIDI.

Lors de la prédiction, M doit être remplacé par une matrice de probabilité P qui serait générée en utilisant les M matrices précédentes.

Le problème se réduit à I prédit = P -1 O. L'erreur serait alors réduite à LMSE de I. Nous pouvons utiliser DNN pour ajuster P en utilisant la rétropropagation. Mais, dans cette approche, nous supposons que les notes «A», «B», «C», etc. sont connues. Comment pouvons-nous les détecter instantanément ou en petite durée, comme 0,1 secondes? Parce que, la correspondance de modèle peut ne pas fonctionner en raison d'harmoniques. Toutes les suggestions seraient très appréciées.

+1

La décomposition polyphonique semble être encore un sujet de recherche. Il y a eu des centaines de documents de recherche sur ce sujet présentés à cette conférence: http://www.music-ir.org/mirex/wiki/MIREX_HOME – hotpaw2

+0

@ hotpaw2 Merci! Comment puis-je commencer? Puis-je supposer un tempo variable avec plusieurs instruments? Cela peut être physiquement impossible à distinguer (harmoniques donnés). Mais, si je le banalise, disons, aucun des instruments ne se chevauche ni avec des notes ni avec d'autres instruments, cela n'aura aucune signification. Comment puis-je construire une entrée et une sortie pour cela? J'ai lu des «classes d'instruments» classées manuellement. Mais, je voudrais automatiser le processus entier - Il utilisera probablement LMS dans la fonction d'évaluation. Toute idée sera appréciée! –

+0

Quelles sont les hypothèses nécessaires pour les premiers «petits pas» peuvent eux-mêmes être votre premier problème de recherche. – hotpaw2

Répondre

0

Diviser les différentes parties est un problème d'apprentissage automatique à part entière. Malheureusement, vous ne pouvez pas regarder ce problème dans la terre audio seulement. Vous devez considérer la musique.

Vous devez former quelque chose pour comprendre les motifs musicaux et les progressions dans le contexte du type de musique que vous lui donnez. Il doit comprendre à quoi ressemblent les différents instruments, à la fois mixtes et non mixtes. Il a besoin de comprendre comment ces instruments sont souvent joués ensemble, si cela peut avoir une chance de séparer ce qui se passe.

Ceci est un problème très, très difficile.

+0

Merci. Oui, je sais que c'est un problème difficile. Mais, comment puis-je obtenir un baby-start (peut-être avec deux instruments? Une mélodie et une guitare jouant des accords?) Parce que, les humains semblent reconnaître de nombreux instruments et peuvent approcher des accords comme E7 à E. nous apprendrons beaucoup sur l'apprentissage automatique et trouverons également de bons amis. Merci encore –

+0

@AkhayRathod Vous pourriez être surpris de ce que les humains peuvent et ne peuvent pas faire, et de l'importance du contexte musical. Je pourrais jouer la moitié supérieure d'un accord CMaj, mais si je jouais précédemment un A dans la basse, vous entendrez cela comme Amin7. Bonne chance pour sortir le contexte musical de FFT. :-) Il y a même des situations où les humains entendent des choses qui n'existent pas. Jouez une échelle à la baisse sur un trombone, tout le chemin vers le bas, il ira. Pour les 5 ou 6 dernières notes, il n'y aura pas de fondamental! Les humains le percevront en raison du contexte musical. – Brad

+0

@AkshayRathod En fonction de ce que vous essayez de faire, il vaut probablement mieux obtenir des fichiers racine pour les morceaux que vous voulez analyser. – Brad