Déroulé de phase et séparation de source

Déroulé de phase et séparation de source

Dans ce chapitre, nous intégrons la méthode de déroulé de phase dans le cadre de la séparation de sources. Nous considérons le problème de séparation de sources comme un problème d’optimisation, qui consiste à minimiser une fonction de coût traduisant l’écart entre les mélanges observé et estimé, sous contrainte que le module des sources estimées est fixé à une valeur objectif. Notre idée consiste alors à incorporer dans ce contexte une information à priori sur la phase, calculée par la méthode de déroulé linéaire. Les aspects techniques de cette procédure itérative ont fait l’objet d’un rapport technique disponible en ligne Magron et al. (2016a). Un article reprenant certaines expériences du chapitre précédent, ainsi que celles présentées dans ce chapitre a été soumis à publication dans la revue IEEE Transactions on Audio, Speech and Language Processing Magron et al. (2017b). Dans la section 5.1, nous proposons une formulation de ce problème de séparation de sources. Dans la section 5.2, nous obtenons donc un algorithme de séparation de sources. Nous évaluons expérimentalement cette technique dans la section 5.3. Nous proposons également une procédure contrainte alternative dans la section 5.4. Enfin, la section 5.5 présente quelques remarques conclusives. 5.1 Position du problème On raisonne dans cette section (et dans la suivante) dans un point TF (f, t), et on s’affranchit des indices pour plus de clarté. Nous cherchons à obtenir un estimateur Xˆ k des K composantes complexes Xk à partir de leur somme X, en supposant que l’on a une estimation de leurs modules V1,…,VK (qui peut être obtenue via une NMF préalable, par exemple).

Procédure itérative d’estimation des composantes

Dans cette section, nous présentons l’algorithme que nous avons mis au point pour estimer les composantes complexes à partir de leur mélange.

Exemple dans le cas de deux nombres complexes

Afin d’estimer les phases de chaque source dans le mélange, illustrons notre technique avec le cas particulier de deux nombres complexes X1 et X2. Leurs modules V1 et V2 sont fixés. La somme X des deux est connue, et on cherche donc à estimer leur argument, ou, formulé différemment, on cherche ces deux complexes avec une contrainte sur leurs modules. La procédure que nous utilisons est inspirée de Gunawan et Sen (2010), dont nous rappelons le principe. À l’itération (it), on a une estimation de chacun des complexes, Xˆ (it) 1 et Xˆ (it) 2 . On peut donc calculer l’erreur entre la somme des deux estimées et le mélange X, soit E(it) = X −Xˆ (it) 1 −Xˆ (it) 2 , erreur que l’on redistribue sur les composantes.

Initialisation de l’algorithme

D’après les remarques de la section 5.1, le choix de l’initialisation de l’algorithme conditionne fortement la qualité des estimations ainsi que la vitesse de convergence. Une idée consiste à initialiser les composantes en leur donnant la phase du mélange. Nous montrons dans l’annexe B que cela est un point fixe de la procédure : après une ou deux itérations (selon le choix des poids λk), les composantes ne sont plus modifiées, et sont alors égales aux composantes initiales à un déphasage de π près, ce qui n’est pas le but recherché. Cela nous incite à initialiser l’algorithme avec notre technique de déroulé de phase plutôt qu’en donnant la phase du mélange aux composantes : on s’attend à ce que celle-ci soit assez proche d’un minimum local, et permette non seulement une convergence rapide de l’algorithme, mais également l’obtention d’une solution qui bénéficie de la propriété de régularité temporelle issue du modèle sinusoïdal. 5.2.5 Protocole de séparation de sources Notre approche repose sur l’utilisation du déroulé linéaire de phase introduit au chapitre précédent. Le déroulé de phase étant récursif, il est initialisé aux trames d’attaque (cf. chapitre 4 section 4.1.5). Nous devons donc faire certaines hypothèses sur les phases des sources dans ces trames. Tout d’abord, nous supposons connues leurs positions. En pratique, on utilise la boîte à outils MATLAB Tempogram Grosche et Müller (2011) sur chaque spectrogramme de source pour les déterminer.Nous présentons dans l’Algorithme 4 la procédure complète de séparation de sources que nous proposons. Notons que dans cette procédure, l’optimisation est effectuée trame par trame, avant de procéder à l’initialisation de la trame suivante par déroulé linéaire. Nous verrons dans l’expérience 5.3.2 l’intérêt de cette approche par rapport à une application de la procédure d’optimisation directement sur toute la TFCT. 

Résultats expérimentaux

Protocole

Les signaux sont échantillonnées à 44100 Hz et la TFCT est calculée avec une fenêtre de Hann de longueur 4096 échantillons (soit 92 ms), 75 % de recouvrement et pas de bourrage de zéros. Les données utilisées proviennent (à l’exception de certains mélanges de notes de piano issues de la base MAPS Emiya et al. (2010)) de la base DSD100 Ono et al. (2015), pour lesquels nous disposons des sources séparées : — bass : il s’agit de la partie de basse électrique ; — drums : il s’agit des percussions (batterie notamment) ; — vocals : il s’agit de la voix chantée ; — other : ce sont tous les autres instruments d’accompagnement (guitare, piano, sons électroniques etc.). On peut calculer le spectrogramme de chaque source isolément. Si on utilise ces valeurs dans les différents algorithmes, on parlera de scénario Oracle. Alternativement, dans l’expérience décrite à la section 5.3.4, on considérera des spectrogrammes d’amplitude estimés, afin de tester l’efficacité des différentes méthodes dans un cadre plus réalistes où les Vk ne sont plus parfaitement connus. Ces estimés sont obtenus par une KLNMF effectuée sur chaque spectrogramme de source isolée. Chaque KLNMF utilise 50 itérations de règles de mises à jour multiplicatives et un rang de factorisation égal à 10. Notons que ce n’est pas un scénario « aveugle », puisqu’on estime les spectrogrammes sur chaque source séparée, mais il nous informe néanmoins sur la performance des méthodes lorsque les spectrogrammes ne sont plus égaux à la vérité terrain. À partir de ces spectrogrammes, on applique les méthodes d’estimation des composantes complexes suivantes : — Le filtrage de Wiener Févotte et al. (2009), noté Wiener ; — Le filtrage de Wiener consistant Le Roux et Vincent (2013), noté W-Cons ; — Le déroulé horizontal, effectué sur chaque source séparément, sans tenir compte de la phase du mélange, noté Unwrap ; — L’algorithme 3 d’estimation des composantes initialisé par la méthode de déroulé, ce qui correspond donc à l’algorithme 4, noté Iter. La qualité de la séparation de source est mesurée par les SDR, SIR et SAR, calculés par la boîte à outils BSS Eval Vincent et al. (2006). Le filtrage de Wiener consistant (introduit dans le chapitre 2, section 2.1.4) dépend d’un paramètre γ qui ajuste l’importance relative du filtrage de Wiener et de la contrainte de consistance. On apprend le paramètre γ optimal (au sens du maximum de SDR, SIR et SAR) sur la base de développement (50 morceaux issus de la base DSD100 différents de ceux utilisés pour les tests). L’influence du paramètre γ sur la qualité de la séparation est illustrée sur la figure 5.2. On choisit la valeur γ = 4 pour l’expérience de séparation de sources qui correspond à une valeur optimale pour l’utilisation du filtrage de Wiener consistant sur ce jeu de données, aussi bien pour le scénario Oracle que pour le cas non-Oracle. 5.3.2 Impact du caractère séquentiel de l’algorithme Nous proposons tout d’abord une expérience pour justifier l’intérêt de la procédure telle que décrite dans l’Algorithme 4. En effet, dans cette procédure, on agit séquentiellement sur les trames : ainsi, l’initialisation de l’Algorithme 3 dans une trame donnée est faite par déroulé linéaire à partir de la phase obtenue après application de l’Algorithme 3 dans la trame précédente. On pourrait penser qu’effectuer un déroulé sur toute la TFCT, puis appliquer l’Algorithme 3 matriciellement serait moins gourmand en temps de calcul. On considère donc 10 morceaux de musique issus de la base DSD100 (extraits de 10 secondes) et on applique deux méthodes de reconstruction des composantes complexes : une méthode séquentielle, c’est-à-dire telle que présentée dans l’Algorithme 4, et une méthode directe, c’est-à-dire en utilisant un déroulé complet (Algorithme 2) puis une application de l’Algorithme 3 matriciellement. Dans les deux cas, les phases dans les trames d’attaque ainsi que les amplitudes des sources sont supposées connues, et la procédure itérative utilise 10 itérations. Les résultats sont présentés dans le tableau 5.1. La méthode séquentielle fournit des résultats supérieurs à la méthode directe. En effet, il est préférable d’estimer convenablement les phases dans une trame donnée avant de procéder au déroulé pour initialiser la trame suivante : la procédure itérative bénéficie alors d’une meilleure initialisation, ce qui conduit à de meilleurs résultats. Bien que la méthode directe soit très légèrement plus rapide, la perte de qualité nous incite à conserver la méthode telle que décrite dans l’Algorithme 4 pour la suite des expériences.

Cours gratuitTélécharger le cours complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *