La factorisation matricielle non négative vise à factoriser une matrice dans le produit de deux matrices, , où représente un ensemble de vecteurs de base et leurs activations ou pondérations. Appliqué à la séparation des sources audio, est le spectrogramme (qui nous est connu), et est la base des spectres non négatifs, est leurs activations temporelles.
Cela me semble être capable d'exprimer un spectrogramme comme une somme de différentes fréquences et de leurs amplitudes - ce qui aiderait à filtrer ou à séparer différents hauteurs (faisant apparemment le travail d'un filtre passe-bande normal?). Je ne comprends pas comment cela séparerait en fait, disons, un piano et un chanteur chantant la même hauteur ou une hauteur similaire.
audio
source-separation
Samyukta Ramnath
la source
la source
Réponses:
Rappelons que les colonnes deW peuvent être considérés comme des vecteurs "de base" (ou des éléments d'un dictionnaire - les éléments constitutifs de tout signal) et des éléments dans chaque colonne de H donner les poids correspondants (qui varient dans le temps). Cela nous permet de décomposer le spectrogramme sur la base non seulement des composantes de fréquence mais aussi des informations de début temporel; il fait donc plus que ce qu'un simple filtre passe-bande ou filtre en peigne ferait.
La factorisation matricielle non négative d'un spectrogramme ne séparera pas comme par magie un piano et un chanteur chantant dans la même hauteur. Cependant, il donne une approximation utile en termes de somme de vecteurs de base pondérés qui (espérons-le) peuvent être divisés en contributions de différentes sources car il est peu probable que chaque source occupe exactement la même tranche de fréquence au même instant.
Plus concrètement, laissezV être M× N , W être M× K et H être K× N . Donc nous avonsM bacs de fréquence, N échantillons de temps et K composants décomposés. Siwje sont les colonnes de W et hje sont les rangées de H nous pouvons écrire:
En réalité, nous finirons probablement par une décomposition qui n'atteindra jamais exactement cette séparation. Autrement dit, il y aurawje qui ont des contributions à la fois du chanteur et du piano, ce qui rend difficile la séparation des deux.
Voici un cahier Python montrant cette procédure pour un mélange de batterie et de guitare: http://nbviewer.jupyter.org/gist/ingle/93de575aac6a4c7fe9ee5f3d5adab98f (ou si cela ne fonctionne pas, ici: https://gist.github.com / ingle / 93de575aac6a4c7fe9ee5f3d5adab98f )
Notez que l'algorithme NMF ne génère qu'une décomposition. Il ne peut pas sélectionner de sous-ensembles de{wje} correspondant à chaque source. Dans l'exemple Python, il y a une étape manuelle pour déterminer quelswje Le son ressemble le plus au tambour de guitare v / s. On peut peut-être automatiser cette étape en notant que le tambourwje les vecteurs ont plus de choses dans les basses fréquences.
L'analyse de chaque colonne (trame) du spectrogramme à l'aide d'une banque de filtres passe-bande est une autre façon de décomposer le spectrogramme. Cependant, notez que la décomposition générée par le NMF est de faible rang, c'est-à-dire parcimonieuse. Dans l'exemple Python, il était beaucoup plus facile de sélectionner manuellement des sous-ensembles de 16 colonnes deW correspondant aux deux sources. Avec une banque de filtres passe-bande, nous aurions dû tourner beaucoup plus de boutons (# filtres, emplacements des bandes passantes pour chaque trame) et le nombre de combinaisons de paramètres peut augmenter très rapidement.
Références:
https://ccrma.stanford.edu/~njb/teaching/sstutorial/part2.pdf
http://musicinformationretrieval.com/nmf.html
la source
Objectif: bonne approximation de la séparation d'un chanteur d'un piano. Maintenant quelques réflexions sur les exigences pour une séparation précise des sources sonores étant donné qu'il est peu probable que TOUTES les informations d'entrée nécessaires pour effectuer une séparation précise (éventuellement vos "vecteurs de base"):
- pour chaque volume de chaque note du piano, le résultat distribution de fréquence échantillonnée dans le temps (car elle attaque puis s'estompe). - pour chaque note X volume X phonème des chanteurs voix la distribution de fréquence (et sa variation avec différents niveaux de vibrato). - pour tout ce qui précède, l'effet de réverbération doit être pris en compte. - les paroles de la chanson (pour correspondre aux phonèmes du chanteur)
Il existe également des restrictions dans le domaine temporel telles que chaque note de piano doit commencer par l'attaque et les effets de la pédale de sustain du piano (atténuation soudaine presque simultanée des notes qui "sonnaient" bien que les touches correspondantes aient été relâchées).
Compte tenu de ce qui précède, la recherche consiste à trouver la somme «la plus adaptée» d'un ensemble de spectres de note de piano et d'un spectre de volume de note à un seul chanteur pour approximer le son résultant.
la source