Brevet FR3098973A1 — publié le 20210122

Description Titre de l'invention : Procédé de séparation d'un signal acoustique de mélange en une pluralité de M contributions sonores ; Produit programme d'ordinateur et support lisible d'informations associés. woo La présente invention concerne un procédé de séparation de différentes contributions dans un signal sonore de mélange. [0002] Une bande son d'une chanson résulte de la superposition de plusieurs contributions sonores produites par autant de sources. [0003] A partir d'une bande son, on peut souhaiter vouloir isoler différentes contributions, par exemple une contribution vocale (les paroles chantées par un ou plusieurs chanteurs), une contribution percussive (la batterie et les autres éléments sonores de type percussion), une contribution basse (les instruments de musique dont les caractéristiques spectrales correspondent à une voix basse), ainsi qu'une contribution restante (l'ensemble des autres sources du mélange). D'autres décompositions sont bien évidemment envisageables en fonction des besoins de l'application envisagée, mais la décomposition précédente est standard dans le présent domaine technique, notamment pour permettre une comparaison des procédés de séparation entre eux. Cette décomposition sera plus particulièrement utilisée dans la suite du présent document pour présenter l'invention. [0004] On connaît différents algorithmes de séparation qui permettent de séparer différentes contributions sonores dans un signal acoustique de mélange. [0005] Par exemple, comme présenté dans l'article de Cédric Févotte et al. "Single-Channel audio source separation with NMF: divergences, constraints and algorithms," in Audio Source Separation, Springer, 2018, il existe des algorithmes de séparation fondés sur une factorisation en matrices non-négatives. [0006] Il existe également des algorithmes fondés sur des réseaux de neurones artificiels, ou RNA dans ce qui suit. De tels algorithmes, développés récemment, ont permis d'atteindre des résultats bien supérieurs à ceux obtenus avec des algorithmes de séparation fondés sur une factorisation en matrices non-négatives. [0007] On connaît ainsi des RNA structurés selon une architecture convolutionnelle. On connaît, ainsi par exemple l'architecture dite « MMDenseNet », décrite notamment dans l'article de Naoya Takahashi et al. "Multi-scale multi-band densenets for audio source separation", in IEEE Workshop on Applications of Signal Processing to Audio and Acoustics (WASPAA), 2017. [0008] Un RNA utilisé dans l'analyse d'un signal de mélange est. un RNA convenablement paramétré. Il résulte d'une phase d'apprentissage, dite supervisée, au cours de la 2 laquelle sont déterminées les valeurs optimales des paramètres de ce RNA. Ces valeurs optimales sont déterminées en contraignant le RNA, en entrée, avec des signaux de mélange de référence et, en sortie, pour chaque signal de mélange de référence, avec les contributions attendues, dénommées contributions de référence. Pour l'apprentissage, il faut donc disposer d'une hase de données d'apprentissage stockant des lots, un lot associant à un signal de référence une ou plusieurs contributions de référence cibles. Plus la base de données d'apprentissage sera étendue, plus le RNA convenablement paramétré obtenu à l'issue de la phase d'apprentissage sera performant. [0009] La plupart des algorithmes connus de séparation de sources utilisant des RNA sont optimisés pour répondre à un objectif de séparation d'une unique contribution dans un mélange. Dans ces conditions, pour séparer plusieurs contributions dans un mélange, plusieurs RNA indépendants sont exécutés, par exemple en parallèle les uns des autres, chaque RNA permettant d'extraire une contribution particulière du mélange. [0010] Cette approche est avantageuse en ce qu'il n'est pas nécessaire de posséder toutes les contributions de référence pour chaque signal de mélange de référence utilisé dans la phase d'apprentissage, mais seulement au moins une contribution de référence, permettant de déterminer les paramètres optimaux du RNA correspondant. La création de la hase de données d'apprentissage s'en trouve par conséquent facilitée. [0011] Cependant, la mise en oeuvre d'un RNA unique optimisant plusieurs objectifs simul- tanément, c'est-à-dire ici de séparer plusieurs contributions sonores simultanément, pourrait amener de bien meilleurs résultats. En effet, comme théorisé dans l'article de Rich Caruana "Multitask Learning" in Machine Learning, volume 28 (1), pages 41 75, 1997, pour chaque objectif individuel, le biais d'information implicite glané lors de la phase d'apprentissage des autres objectifs, connexes, entraîne une meilleure généralisation du modèle que constitue le RNA convenablement paramétré. [0012] Mais, pour un tel RNA unique, la phase d'apprentissage requiert de posséder toutes les contributions de référence pour chaque signal de mélange de référence utilisé pour paramétrer le réseau. Du fait de la difficulté de disposer de toutes les contributions de référence pour chaque signal de mélange de référence, la base de données d'apprentissage présente une taille réduite, ce qui limite grandement les performances du RNA paramétré utilisé pour l'analyse. [0013] Le but de la présente invention est de pallier les problèmes précités, en proposant notamment un procédé alternatif de séparation fondé sur la mise en oeuvre d'un réseau de neurones artificiels. [0014] Pour cela l'invention a pour objet un procédé de séparation d'un signal acoustique de mélange en une pluralité de contributions sonores, la pluralité de contributions sonores comportant M contributions sonores respectivement indexées par un entier i, entre 1 et 3 M, caractérisé en ce que ledit procédé, qui est mis en oeuvre par ordinateur, comporte une phase d'apprentissage, consistant à déterminer des valeurs optimales pour des paramètres d'un algorithme structuré selon un réseau de neurones artificiels, et une phase de traitement, consistant à : transformer, dans le domaine fréquentiel, le signal acoustique de mélange pour obtenir un spectrogramme de mélange, qui est caractérisé par une magnitude et une phase ; exécuter l'algorithme structuré selon un réseau de neurones artificiels paramétré avec les valeurs optimales déterminées à l'issue de la phase d'apprentissage, sur la magnitude du spectrogramme de mélange, de manière à obtenir une pluralité de M estimations, la ième estimation étant une estimation d'une magnitude d'un spectrogramme de la ième contribution sonore ; transformer, dans le domaine temporel, une combinaison la renie estimation avec la phase, pour obtenir un signal acoustique pure de la ième contribution sonore, une architecture du réseau de neurones artificiels comportant un encodeur, qui est commun à la pluralité de contributions sonores, et une pluralité de décodeurs, le ième décodeur étant associé à la ième contribution sonore, les décodeurs étant indépendants les uns des autres et en série de l'encodeur, le ième décodeur délivrant, à partir des sorties de l'encodeur, la ième estimation. [0015] Suivant des modes particuliers de réalisation, le procédé comporte une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles : [0016] - la phase d'apprentissage comporte une pluralité d'époques successives, chaque époque consistant : à créer une pluralité de M bases de données à partir d'un ensemble de lots d'entrainement, un lot stocké dans la nième base de données étant un lot qui associe une amplitude d'un spectrogramme d'un signal acoustique de mélange de référence et une amplitude d'un spectrogramme d'une contribution sonore de référence, ladite contribution sonore de référence étant la nième contribution sonore dudit signal acoustique de mélange de référence ; puis, à parcourir cycliquement chacune des bases de données, en réalisant, pour la valeur courante de l'indice i de la base de données considérée, les étapes consistant à : lire les valeurs courantes des paramètres de l'encodeur et du ième décodeur ; tirer un lot aléatoirement dans la base de données considérée ; calculer les sorties de l'encodeur à partir de l'amplitude du spectrogramme du signal de mélange de référence du lot tiré, avec les valeurs courantes des paramètres de l'encodeur ; calculer la sortie du ième décodeur à partir des sorties de l'encodeur, avec les valeurs courantes des paramètres du ième décodeur ; mesurer une erreur entre la sortie du ième décodeur et l'amplitude du spectrogramme de la contribution sonore de référence du lot tiré ; et, mettre simultanément à jour les valeurs courantes des paramètres de l'encodeur et du ième décodeur selon une procédure de descente du gradient à partir de l'erreur mesurée. [0017] - la phase d'apprentissage comporte une pluralité d'époques successives, chaque époque consistant : à créer une pluralité de M hases de données à partir d'un ensemble de lots d'entrainement, un lot stocké dans la nième hase de données étant un lot qui associe une amplitude d'un spectrogramme d'un signal acoustique de mélange de référence et une amplitude d'un spectrogramme d'une contribution sonore de référence, ladite contribution sonore de référence étant la nième contribution sonore dudit signal acoustique de mélange de référence ; puis, à parcourir cycliquement les hases de données, en réalisant, pour la valeur courante de l'indice i dc la hase de données considérée, les étapes consistant à : lire les valeurs courantes des paramètres de l'encodeur et du ièmc décodeurs ; tirer un lot aléatoirement dans une hase de données considérée ; calculer les sorties de l'encodeur à partir dc l'amplitude du spectrogramme du signal de mélange de référence du lot tiré, avec les valeurs courantes des paramètres de l'encodeur ; calculer la sortie du ième décodeur à partir des sorties de l'encodeur, avec les valeurs courantes des paramètres du ième décodeur ; mesurer une erreur entre la sortie du ièmc décodeur et l'amplitude du spectrogramme de la contribution sonore dc référence du lot tiré ; mettre à jour les valeurs courantes des paramètres du ième décodeur à l'aide d'une procédure de descente du gradient à partir dc l'erreur mesurée ; accumuler un gradient sur chacune des valeurs courantes des paramètres de l'encodeur dans une variable d'accumulation du gradient correspondante ; et, lorsque la valeur de l'indice i est égale à M, mettre à jour les valeurs courantes des paramètres de l'encodeur à l'aide des valeurs courantes des variables d'accumulation du gradient. [0018] - les bases de données de la pluralité de M bases de données sont indépendantes et asynchrones, c'est-à-dire qu'un signal acoustique de mélange de référence d'un lot contenu dans une base de données ne se retrouve pas forcément dans un lot d'une autre base de données et le nombre de lots d'une base de données n'est pas forcément égal au nombre de lots d'une autre base de données. [0019] - l'étape consistant à une erreur entre la sortie du ième décodeur, notée D ,(e( Y 1))' et l'amplitude du spectrogramme de la contribution sonore de référence, notée r. Ye f S consiste à calculer une grandeur, notée L 1, selon la relation : IfA t'el D i(e(yn? f))), où dist est une distance, par exemple une L dis t S moyenne de la valeur absolue de la différence entre deux matrices ou une moyenne du carré de la différence entre deux matrices. [0020] - l'étape consistant à mettre à jour la valeur courante d'un paramètreDi du ièmc décodeur au moyen d'une procédure de descente du gradient s'effectue selon en. -64 - Li, où le gradient V est calculé par un algorithme de ni rétropropagation du gradient ; et À est un coefficient dépendant d'une règle d'optimisation prédéfinie. [0021] - l'étape consistant à mettre à jour la valeur courante d'un paramètre e e de l'encodeur s'effectue selon l'équation : (9 e es-ÀV Li, où le gradient V 0 e 0 e est calculé par un algorithme de rétropropagation du gradient ; et À est un coefficient dépendant d'une règle d'optimisation prédéfinie. [0022] - l'étape consistant à accumuler un gradient sur la valeur courante d'un paramètre e e de l'encodeur dans une variable d'accumulation du gradient correspondante, notée G , est réalisée selon l'équation : Ge s4- G + V Li, où le gradient V 0 e 0e e e est calculé par un algorithme de rétropropagation du gradient ; et l'étape consistant à mettre à jour la valeur courante du paramètre e e de l'encodeur est faite selon l'équation : 6e-e - À G , où À est un coefficient dépendant d'une règle e d'optimisation prédéfinie, avant de réinitialiser à la valeur nulle la variable d'accumulation du gradient G correspondante e [0023] - l'encodeur et les M décodeurs respectent une architecture du type réseaux de neurones convolutionnels, de préférence tel que chaque décodeur soit symétrique de l'encodeur par rapport à chacune des sorties dudit encodeur. [0024] - l'étape consistant à transformer dans le domaine temporel met en oeuvre une trans- formation inverse d'une transformation temps-fréquence mise en oeuvre dans l'étape consistant à transformer, dans le domaine fréquentiel, le signal acoustique de mélange. [0025] L'invention a également pour objet un produit programme d'ordinateur et un support lisible d'informations associés au procédé précédent. [0026] L'invention et ses avantages seront mieux compris à la lecture de la description détaillée qui va suivre d'un mode de réalisation particulier, donné uniquement à titre d'exemple descriptif et non limitatif, cette description étant faite en se référant aux dessins annexés sur lesquels : [0027] [fie.11 la figure 1 est une représentation sous forme de blocs de la phase de traitement du procédé de séparation selon l'invention ; [0028] [fig.21 la figure 2 est une représentation sous forme de blocs d'un encodeur et d'un des décodeurs du réseau de neurones artificiels qui, une fois convenablement paramétré, est mis en oeuvre dans la phase de traitement de la figure 1 ; [0029] [fig.31 la figure 3 est un premier mode de réalisation d'une époque de la phase d'apprentissage du procédé selon l'invention, permettant de paramétrer conve- 6 nablement le réseau de neurones artificiels de la figure 2 ; et, [0030] [fig.4] la figure 4 est un second mode de réalisation d'une époque de la phase d'apprentissage du procédé selon l'invention, permettant de paramétrer convenablement le réseau de neurones artificiels de la figure 2. [0031] Le procédé de séparation d'un signal acoustique de mélange en une pluralité de contributions sonores selon l'invention est mis en oeuvre par un ordinateur. Celui-ci comporte un moyen de calcul, tel qu'un processeur, et un moyen de mémorisation, tel qu'une mémoire vive et/ou une mémoire morte. Le moyen de mémorisation stocke les instructions de programme d'ordinateur propres à être exécutées par le moyen de calcul. [0032] En particulier, le moyen de mémorisation de l'ordinateur stocke un programme d'ordinateur dont l'exécution conduit à la réalisation du procédé selon l'invention. Ce programme d'ordinateur est par exemple écrit sur un support lisible d'informations, tel qu'un CD-ROM, et transféré vers le moyen de mémorisation pour y être stocké en vue de son exécution. [0033] Le procédé de séparation d'un signal acoustique de mélange en une pluralité de contributions sonores selon l'invention comporte une phase d'apprentissage et une phase de traitement. [0034] Phase de traitement [0035] La phase de traitement 100, représentée à la figure 1, vise à analyser un signal acoustique de mélange, y (t ), pour en extraire une pluralité de contributions sonores, S 1( t ), respectivement indexée par l'entier i, entre 1, M, où M est le nombre total de contributions sonores que l'on cherche à séparer. Une contribution étant associée à une source, on parlera indifféremment de la ième contribution ou de la contribution de la i' me source. [0036] La présente description est limitée, sans pertc de généralité, à la séparation de quatre contributions sonores (M = 4) dans le signal acoustique de mélange y ( t ) : une première contribution si t ) correspondant à une source vocale ; une seconde contribution s 2(t ) correspondant à une source percussive ; une troisième contribution S 3 t ) correspondant à une source basse ; et une quatrième contribution S;} t) correspondant à une source associée au reste de la musique. [0037] La phase de traitement 100 comporte les étapes suivantes. [0038] L'étape 12 est une étape d'acquisition du signal acoustique de mélange, y (t y [0039] Le signal y (t) est un signal temporel discrétisé. Il s'agit de préférence dc tout ou partie d'une bande son, stockée dans le moyen de mémorisation de l'ordinateur. En variante, il peut s'agir dc tout ou partie d'un enregistrement en direct, d'une chanson ou dc l'équivalent, au moyen d'un microphone raccordé à l'ordinateur. Le signal 7 y ( t ) peut être un signal mono ou stéréo. [0040] A l'étape 14, le signal acoustique de mélange, y( 0, est transformé dans le domaine fréquentiel, afin d'obtenir une représentation temps-fréquence du signal acoustique de mélange, aussi dénommée spectrogramme de mélange. [0041] Dans le mode de réalisation envisagée, la transformée temps-fréquence utilisée est une transformée de Fourier à fenêtre glissante (STFT). Mais, en variante, d'autres transformations vers le domaine fréquentiel peuvent être utilisées, comme la transformée à Q constant, ou encore la transformée de Fourier à fenêtre glissante suivie d'un filtrage fréquentiel (en utilisant un banc de filtres en échelle « Mcl » ou « Bark » par exemple). [0042] Lc spectrogramme de mélange se caractérise par une magnitude Y, et une phase e . Alors qu'une magnitude est généralement notée , par soucis de clarté et sans perte de généralité, dans ce qui suit la notation est omise et les magnitudes sont dénotées par leur lettre capitale seule 100431 L'étape 15 consiste ensuite à exécuter un algorithme ayant la structure d'un unique réseau de neurones artificiels convenablement paramétré ou RNA convenablement paramétré. Le RNA convenablement paramétré est obtenu à l'issue de la phase d'apprentissage du procédé selon l'invention, phase d'apprentissage qui sera décrite plus bas en référence aux figures 3 et 4. 100441 L'algorithme exécuté à l'étape 15 prend en entrée la magnitude Y du spectrogramme de mélange et délivre en sortie une pluralité d'estimations 6" , pour 1 = 1, M 41i avec M le nombre total de sources sonores à séparer. [0045] La ièmc estimation 6' est une estimation de la magnitude du spectrogramme de la contribution de la Pm' source sonore. Lorsque M vaut quatre, quatre estimations de magnitude sont obtenues, respectivement , s;'- , et . 1 2 3 4 100461 Enfin, à l'étape 20, chaque estimation 6' est d'abord combinée avec la phase Q de manière à obtenir une estimation du spectrogramme de la contribution de la in., source, cette dernière étant ensuite transformée dans le domaine temporel, pour obtenir le signal sonore pure de la contribution de la Pi., source, S t ). Chaque signal s f t ) est un signal temporel discrétisé. [0047] La transformation fréquence-temps utilisée à l'étape 20 est l'opération inverse de la transformation temps-fréquence utilisée à l'étape 14. [0048] Architecture du RNA [0049] Selon l'invention, le réseau de neurones artificiels - RNA, qui est utilisé à l'étape 15 après avoir été convenablement paramétré, comporte un encodeur commun, noté e, 8 suivi d'une pluralité de M décodeurs, notés D1. [0050] Ainsi, l'étape 15 d'exécution de l'algorithme structuré selon ce RNA comporte une sous-étape d'encodage 16 suivie d'une pluralité de M étapes de décodages 18i. [0051] Le RNA comporte ainsi un encodeur e commun à la pluralité de décodeurss Di. L'encodeur e prend en entrée la magnitude Y du spectrogramme de mélange. [0052] Les décodeurs Di sont indépendants les uns des autres et disposés en parallèle les uns des autres en sortie de l'encodeur $. [0053] Chaque décodeur D1 est associé à une unique contribution à séparer, celle de la source. Le Prim décodeur Di délivre en sortie l'estimation é: de la magnitude du spec- -' trogramme de la contribution de la ?me source. [0054] L'architecture actuellement préférée du RNA utilisé dans le procédé selon l'invention est représentée en détail à la figure 2. [0055] Alors que l'architecture d'un décodeur particulier peut être différente de celle des autres décodeurs, les différents décodeurs D1 ont de préférence une architecture identique. [0056] Alors que l'architecture d'un décodeur peut être indépendante de celle de l'encodeur, les décodeurs D1 adoptent avantageusement une architecture corrélée à celle de l'encodeur e. Ceci permet notamment de faciliter la convergence des valeurs des paramètres des différents modules que constituent l'encodeur et les décodeurs au cours de la phase d'apprentissage. [0057] Dans le présent mode de réalisation, chaque module, encodeur ou décodeur, adopte une architecture convolutionnelle U-Net, telle que par exemple décrite dans l'article d'Andreas .lansson et al. "Singing Voice Separation with Deep U-Net Convolutional Networks", in Proc. International Society for Music Information Retrieval conference (ISMIR), 2017. Cependant, d'autres architectures sont envisageables pour ces différents modules. [0058] L'utilisation de l'architecture U-Net signifie que l'encodeur e consiste en une pluralité de couches convolutionnelles successives, chaque couche correspondant à une résolution particulière et permettant d'extraire une carte d'activation de motif (ou « feature map » en Anglais) à partir de la carte d'activation de motif en sortie de la couche précédente de l'encodeur. [0059] Les décodeurs D1 ont tous la même architecture. [0060] Lc décodeur consiste en une pluralité de couches eonvolutionnelles successive, chaque couche correspondant à une résolution particulière et permettant d'extraire une carte d'activation de motifs à partir de la carte d'activation en sortie de la couche précédente du décodeur et de la carte d'activation en sortie de la couche de l'encodeur de même résolution. 9 [0061] TI peut ainsi être dit que chaque décodeur est symétrique de l'encodeur par rapport à chacune des sorties de l'encodeur. [0062] Sur la figure 2, l'encodeur e comporte ainsi successivement une couche d'entrée 161 et cinq couches intermédiaires, 162 à 166. [0063] La couche d'entrée 161 réalise une opération de convolution, dénommée « Convolution » sur la figure 2. [0064] Chaque couche intermédiaire 162 à 166 réalise une opération, dénommée « Stridcd Convolution » sur la figure 2, permettant à la fois une réduction d'échelle et une convolution avec un pas (ou « stride » en anglais). [0065] La carte d'activation de motif produite en sortie d'une couche est appliquée en entrée de la couche suivante. [0066] Le renie décodeur Di comporte successivement cinq couches intermédiaires, 186 à 182, et une couche de sortie 181. [0067] Chaque couche intermédiaire 186 à 182 réalise une opération dénommée « transposcd convolution » sur la figure 2, permettant à la fois une augmentation d'échelle, une convolution transposée, et une concaténation avec la carte d'activation de motif calculée à la même résolution par l'encodeur $. [0068] La couche de sortie 161 réalise une opération de convolution et de filtrage, par exemple par calcul d'une moyenne. Cette opération est dénommée « Convolution + Average » sur la figure 2. [0069] On constate que les informations extraites par l'encodeur e à chaque résolution sont réutilisées et transformées par les décodeurs Di tout en augmentant la résolution jusqu'à retrouver en sortie, la résolution du signal d'entrée. [0070] Les opérations réalisées par chaque couche aussi bien de l'encodeur que des décodeurs font intervenir un certain nombre de paramètres. On note e les paramètres de l'encodeur e et e D i les paramètres du iC1^e décodeur D. [0071] La phase d'apprentissage du procédé selon l'invention consiste alors à estimer les valeurs optimales des paramètre e e et e D e D 2, e D e D4 qui permettent de séparer convenablement les différentes contributions d'un mélange. 100721 Différentes implémentations de la phase d'apprentissage sont envisageables. Cependant, dans ce qui suit, deux modes de réalisation sont présentés qui tirent avantage de la structure particulière du RNA utilisé dans la présente invention. 100731 Premier mode de réalisation de la phase d'apprentissage 100741 Un premier mode de réalisation de la phase d'apprentissage est illustré sur la figure 3. 100751 La phase d'apprentissage 200 débute avec une étape 201 d'instanciation des valeurs des paramètres e e et e D avec des valeurs initiales, par exemple tirées aléatoirement i selon une distribution gaussienne tronquée, centrée en 0 et dont la déviation standard est définie selon l'article de Kaiming He et al., « Delving Deep into Rectificrs: Surpassing Human-Level Performance on ImageNet Classification », arXiv:1502.01852, 2015. [0076] Puis, la phase d'apprentissage 200 consiste à itérer (boucle 202) le processus 200,, où j est un indice entier. La yin, itération du processus 200, constitue une époque (ou « cpoch » en anglais). [0077] Le processus 200, débute par une étape 205 de création d'une pluralité de M bases de données B1, avec i entre 1 et M. Cette étape consiste à sélectionner un nombre prédéfini de lots aléatoirement dans l'ensemble des données d'apprentissage dis- ponibles. Un lot, A r associe à une amplitude d'un spectrogramme de (Y mélange de référence, y re f, une estimation de l'amplitude du spectrogramme d'une contribution de référence, n l'el., cette contribution de référence étant la contribution i de la i'me source au spectrogramme de mélange de référence y re f. En fonction de l'indice i de sa contribution de référence,n A 'f, un lot sélectionné est enregistré dans Si la base de données B t correspondante. [0078] 11 est possible qu'entre les différentes bases de données ainsi créées, aucun signal de mélange de référence ne soit commun. Il est également possible que ces bases de données ne contiennent pas le même nombre de lots. Pour ces raisons, les bases de données Bl sont dites indépendantes les unes des autres et asynchrones. [0079] Puis, à l'étape 206, les valeurs courantes des paramètres e e et en_ sont lues, la taille K (i.e. le nombre de lots) de la plus petite base de données B 1 est déterminée, et la valeur courante d'un indice k est instanciée à la valeur unité. [0080] Le processus 200j entre alors dans une première boucle 207 portant sur la valeur d'un indice k qui doit parcourir l'ensemble des valeurs entre 1 et K. [0081] Puis, à l'étape 208, la valeur courante d'un indice i est instanciée à la valeur unité. [0082] Le processus 200j entre alors dans une seconde boucle 209 portant sur la valeur de l'indice i qui doit parcourir l'ensemble des valeurs entre 1 et M. [0083] A l'étape 210, pour la valeur courante de l'indice i, un lot ry A )f) est tirée (Y , S aléatoirement dans la base de données B1. Une fois qu'un lot a été tiré, il est retiré de la base de données correspondante pour ne plus pouvoir être utilisé dans la suite de la j 'me itération ou époque. [0084] L'étape 220 consiste à calculer les sorties de l'encodeur e à partir du signal de mélange de référence yre f du lot tiré à l'étape 210, et avec les valeurs courantes des 11 paramètres e e. Ces sorties peuvent être notées : e( yr, [0085] L'étape 230 consiste à calculer la sortie du décodeurs Di à partir des sorties de l'encodeur calculées à l'étape 220 et avec les valeurs courantes des paramètres 6 D Cette sortie peut être notée :, D [0086] A l'étape 240, une erreur est calculée entre la sortie calculée à l'étape 230, D,(e( y r(r)), et la contribution de référence. ,,, l'et, du lot tiré à l'étape 210. S Cette erreur entre la magnitude du spectrogramme estimé par le RNA et celle du spectrogramme de référence est calculée selon l'équation : 100871 Li=dis t( giler - D je( yref))) [0088] où dis t est une mesure de distance entre les magnitudes de deux spectrogrammes, qui, dans le mode de réalisation préféré, est choisie comme étant : dis t(A , B)=A -B11_ , , c'est-à-dire la moyenne de la valeur absolue de la différence cntrc deux matrices A et B. En variante, la distance est : di si-(, B) = A - B 2.2, c'est-à-dire la moyenne du carré de la différence entre deux matrices. 100891 Ensuite, à l'étape 250 et à l'étape 260, les paramètres de l'encodeur e et du décodeur Di sont simultanément mis à jour à l'aide d'une procédure de descente du gradient selon les équations : 100901 O- ee-À V L1 [0091] et) -Ont-AV. L Di e 100921 où les gradients, V 0, pour chaque paramètre e sont calculés selon le principe de ré- tropropagation du gradient, décrit dans le livre de lan Goodfellow et al., "Deep Learning", MIT Press, 2016 ; et où À est un coefficient déterminé conformément à une règle d'optimisation utilisée dans cette procédure de descente du gradient. Cette règle d'optimisation est par exemple l'algorithme Adam, décrit dans l'article de Diederik Kingma et al. "Adam: A mcthod for stochastic optimization", arXiv preprint, arXiv:1412.6980, 2014. [0093] A l'étape 275, la valeur courante de l'indice i est comparée à sa valeur maximale M. [0094] Si la valeur maximale n'est pas atteinte, la valeur courante de l'indice i est in- crémentée d'une unité (étape 270), et les étapes 210 à 260 sont répétées pour un autre type de source à séparer. [0095] Si la valeur maximale de i est atteinte, alors, à l'étape 285, la valeur courante de l'indice k est comparée à sa valeur maximale K, afin de vérifier s'il existe encore des 12 lots dans la base de données ayant la plus petite taille. [0096] Dans l'affirmative, la valeur courante de l'indice k est augmentée d'une unité et la valeur courante de l'indice i est réinitialisée à la valeur unité (étape 280), avant de réaliser une nouvelle fois les étapes 210 à 260. [0097] A défaut, l'ensemble des lots de la plus petite base ayant été utilisé pour l'apprentissage, le processus 200j se termine. [0098] Puis à l'étape 290, un critère est testé pour déterminer si la phase d'apprentissage est terminée. Ce critère est par exemple un nombre J prédéfini d'époques pour la phase d'apprentissage. Si la valeur courante de l'indice j est inférieure à J, alors l'indice j est augmenté d'une unité (étape 290) et la phase d'apprentissage passe à l'itération du processus 200; suivant (répétition des étapes 205 à 285). [0099] En revanche, lorsque le critère de l'étape 295 est respecté, les valeurs courantes des paramètres e eet e sont alors bloquées de manière à définir le RNA conve- nablement paramétré utilisé dans la phase de traitement 100. 101001 Selon ce premier mode de réalisation, les paramètres de l'encodeur et ceux des décodeurs sont mis à jour simultanément. Les paramètres de l'encodeur sont ainsi mis à jour pour chaque lot, c'est-à-dire pour chaque type de source à séparer. L'apprentissage se fait de manière entrelacée, en parcourant cycliquement l'ensemble des bases de données où chaque base correspond à une source dont la contribution est à séparer. [0101] Il est à noter qu'il est préférable de stopper une époque lorsque la base de données la plus petite a été entièrement parcourue afin d'éviter un surapprentissagc de l'encodeur sur les autres bases de données, en particulier la base de données la plus grande. [0102] Second mode de réalisation de la phase d'apprentissage [0103] Un second mode de réalisation de la phase d'apprentissage est représenté sur la figure 4. D'une manière générale, les étapes de cc second mode de réalisation identiques à dès étapes du premier mode de réalisation portent le même chiffre de référence augmenté d'une centaine. [0104] La phase d'apprentissage 300 débute avec une étape 301 d'instanciation des valeurs des paramètres 61 e et e r, avec des valeurs initiales, par exemple tirées aléatoirement. [0105] La phase d'apprentissage 300 consiste ensuite à itérer (boucle 302) le processus 300i, où j est un indice entier. La j'in' itération du processus 300; constitue ce que l'on appelle dans le domaine technique une « époque » (ou « epoch » en anglais). [0106] Le processus 300; débute par une étape 305 de création d'une pluralité de M bases de données B1, avec i entre 1 et M. Cette étape consiste à sélectionner un nombre prédéfini de lots aléatoirement dans l'ensemble des données d'apprentissage dis- ponibles. Un lot, rei n r r), associe à une amplitude d'un spectrogramme de (Y S 13 mélange de référence, y re f, une estimation de l'amplitude du spectrogramme de la i ème contribution de référence' ref,à ce spectrogramme de mélange de référence 5 i re f En fonction de l'indice i de l'estimation. A ref, le lot ro f A ref\ 6- (Y , S lectionné est enregistré dans la ième base de données, Bi. [0107] Les hases de données B1 sont également indépendantes les unes des autres et asynchrones. [0108] Puis, à l'étape 306, les valeurscourantesdesparamètrese.sete. sont lues. La Di taille K de la plus petite des bases de données B 1 est déterminée, et la valeur courante d'un indice k est instanciée à la valeur unité. 101091 Le processus 300j entre alors dans une première boucle 307 portant sur la valeur de l'indice k, qui doit parcourir l'ensemble des valeurs entre 1 et K. 101101 Puis, à l'étape 308, les valeurs d'une pluralité de variables G sont initialisées à la es valeur nulle. Chacune de ces variables est une variable d'accumulation du gradient d'un paramètre e e correspondant de l'encodeur. [0111] A l'étape 308, la valeur courante de l'indice i est également instanciée à la valeur unité. [0112] Le processus 300j entre alors dans une seconde boucle 309 portant sur la valeur de l'indice i, qui doit parcourir l'ensemble des valeurs entre 1 et M. [0113] A l'étape 310, pour la valeur courante de l'indice i, un lot r ef A r e 9 est tirée \ 'S aléatoirement dans la ?me base de données, Bi. Une fois qu'un lot a été tiré, il est retiré de la base de données pour ne plus pouvoir être utilisé dans la suite de la jsne époque. 101141 A l'étape 320, les sorties de l'encodeur e sont calculées à partir de la valeur de yre f et avec les valeurs courantes des paramètres e e. [0115] L'étape 330 consiste alors à calculer la sortie du Pm,. décodeurs D, à partir des sorties de l'encodeur calculées à l'étape 320 et avec les valeurs courantes des paramètres D_ du ième décodeur D - [0116] A l'étape 340, une erreur L est calculée entre la sortie calculée à l'étape 330, Dires S f )), et la contribution de référence, A rer. Cette erreur est par exemple 1-1 ilrel S calculée comme dans le premier mode de réalisation. 101171 Ensuite, à l'étape 350, le gradient sur chacun des paramètres e e de l'encodeur e est accumulé dans la variable d'accumulation du gradient G @ correspondante selon la relation : [0118] 14 G -G +V L. es os oe 1 [0119] A l'étape 360, seules les valeurs des paramètres du ièmc décodeur D sont mises à jour à l'aide d'une procédure de descente du gradient (similaire à celle mise en oeuvre dans le premier mode de réalisation) : DiL; [0120] 0 Di - .1 V eDi [0121] A l'étape 375, la valeur courante de l'indice i est comparée à sa valeur maximale M. [0122] Si la valeur maximale n'est pas atteinte, la valeur courante de l'indice i est in- crémentée d'une unité (étape 370), et les étapes 310 à 360 sont répétées. [0123] Si la valeur maximale est atteinte, alors, à l'étape 355, la valeur de chacun des pa- ramètres de l'encodeur Gl e sont mis à jour avec la valeur courante de la variable d'accumulation du gradient G correspondante, selon la relation : Be 101241 ee- e-À CC:Je [0125] Puis, à l'étape 385, il est vérifié s'il existe encore des lots dans la base de données ayant la plus petite taille, i.e. si l'indice k est inférieur à K. [0126] Si c'est le cas, la valeur courante de l'indice k est augmentée d'une unité et la valeur de chacune des variables G 9e est remise à zéro (étape 380). avant de réaliser une nouvelle itération consistant à parcourir successivement les différentes hases de données. 101271 Si ce n'est pas le cas, l'époque courante 300; de la phase d'apprentissage 300 se termine. 10128] Puis à l'étape 390, un critère est testé pour déterminer si la phase d'apprentissage 300 est terminée. Par exemple, l'apprentissage consistant en l'itération de J époques, où J est un entier prédéterminé, la valeur courante de l'indice j est comparée à J (étape 395). Si l'indice/ est inférieur à J, j est augmenté d'une unité (étape 290) et la phase d'apprentissage itère le processus 300; (répétition des étapes 305 à 385). 101291 En revanche, lorsque le critère de l'étape 395 est respecté, les valeurs courantes des paramètres e e et e n sont bloquées et elles définissent le RNA convenablement paramétré utilisé dans la phase de traitement 100. [0130] Dans ce second mode de réalisation, les paramètres de l'encodeur ne sont pas mis à jour après chaque lot de données considéré, mais seulement une fois qu'un lot pour chaque type de source à séparer a été considéré (i.c. à la sortie de la boucle 309). [0131] Les gradients des paramètres de l'encodeur sont accumulés pour chaque lot de données r f ref \, jusqu'à cc que toutes les types de source aient été vues une I fois. À ce moment là, chaque paramètre de l'encodeur est mis à jour en une seule fois, dans la direction du gradient accumulé, puis la variable d'accumulation est réinitialiséc à zéro pour l'itération suivante de la boucle 309. [0132] Cc second mode de réalisation peut être qualifié d'apprentissage entrelacée avec ac- cumulation du gradient. [0133] La phase d'apprentissage permet donc d'cntrainer un réseau de neurones artificiel pour la séparation de multiples sources sonores en partageant, tout au moins au niveau de l'encodeur, l'information entre les différentes tâches cibles à réaliser (une tâche cible étant la séparation de ième contribution), tout en autorisant l'utilisation de hases de données indépendantes et asynchrones. [0134] Cc procédé permet de conserver les avantages de l'apprentissage multitâches d'un réseau de neurones artificiels unique, tout en permettant l'utilisation d'un ensemble de données plus étendu pour l'apprentissage. [0135] En effet, sont utilisables pour l'apprentissage tous les signaux de mélange de référence pour lesquels on dispose d'au moins une composante de référence. L'ensemble des données n'est donc pas limité aux seuls signaux de mélange de référence pour lesquels on dispose de toutes les composantes de référence. 16 REVENDICATIONS[Revendication 1] Procédé de séparation d'un signal acoustique de mélange (y (t)) en une pluralité de contributions sonores, la pluralité de contributions sonores comportant M contributions sonores respectivement indexées par un entier i, entre 1 et M, caractérisé en ce que ledit procédé, qui est mis en oeuvre par ordinateur, comporte une phase d'apprentissage (200, 300), consistant à déterminer des valeurs optimales pour des paramètres d'un algorithme structuré selon un réseau de neurones artificiels, et une phase de traitement (100), consistant à : - transformer (14), dans le domaine fréquentiel, le signal acoustique de mélange (V ( t ) ) pour obtenir un spectrogramme de mélange, qui est caractérisé par une magnitude ( Y) et une phase (9) ; - exécuter (15) l'algorithme structuré selon un réseau de neurones artificiels paramétré avec les valeurs optimales déterminées à l'issue de la phase d'apprentissage (200, 300), sur la magnitude du spectrogramme de mélange (Y), de manière à obtenir une pluralité de M estimations, la Vine esti m at ion (t4. ) étant une estimation d'une magnitude d'un spec- i trogramme de la i'mc contribution sonore ; - transformer (20), dans le domaine temporel, une combinaison la estimation (c.(> ) avec la phase (9 ), pour obtenir un signal acoustique i pure. CS t ) de la ièmc contribution sonore, une architecture du réseau de neurones artificiels comportant un encodeur (e), qui est commun à la pluralité de contributions sonores, et une pluralité de M décodeurs, le l'Hie décodeur (Di) étant associé à la l'in' contribution sonore, les décodeurs étant indépendants les uns des autres et en série de l'encodeur, le l'in' décodeur délivrant, à partir des sorties de l'encodeur, la ième estimation (.). / [Revendication 2] Procédé de séparation selon la revendication 1, caractérisé en ce que la phase d'apprentissage (200) comporte une pluralité d'époques successives, chaque époque consistant : - à créer (205) une pluralité de M bases de données à partir d'un ensemble de lots d'entrainement, un lot stocké dans la eine hase de données étant un lot qui associe une amplitude d'un spectrogramme d'un signal acoustique de mélange de référence et une amplitude d'un spectrogramme d'une contribution sonore de référence, ladite 17 [Revendication 3] contribution sonore de référence étant la ni.,rfie contribution sonore dudit signal acoustique de mélange de référence ; puis, - à parcourir cycliquement chacune des hases de données, en réalisant, pour la valeur courante de l'indice i de la hase de données considérée, les étapes consistant à : - lire (206) les valeurs courantes des paramètres de l'encodeur et du ième décodeur ; - tirer (210) un lot aléatoirement dans la hase de données considérée (Bi ) ; - calculer (220) les sorties de l'encodeur (e) à partir de l'amplitude du spectrogramme du signal de mélange de référence du lot tiré, avec les valeurs courantes des paramètres de l'encodeur ; - calculer (230) la sortie du 1,,u, décodeur (Di) à partir des sorties de l'encodeur, avec les valeurs courantes des paramètres du Prim décodeur ; - mesurer (240) une erreur entre la sortie du Vine décodeur et l'amplitude du spectrogramme de la contribution sonore de référence du lot tiré ; et, - mettre (250, 260) simultanément à jour les valeurs courantes des paramètres de l'encodeur (e) et du iè1ne décodeur (D 1) selon une procédure de descente du gradient à partir de l'erreur mesurée. Procédé de séparation selon la revendication 1, caractérisé en cc que la phase d'apprentissage (300) comporte une pluralité d'époques successives, chaque époque consistant : - à créer (305) une pluralité de M bases de données à partir d'un ensemble de lots d'entrainement, un lot stocké dans la nième base de données étant un lot qui associe une amplitude d'un spectrogramme d'un signal acoustique de mélange de référence et une amplitude d'un spectrogramme d'une contribution sonore de référence, ladite contribution sonore de référence étant la nième contribution sonore dudit signal acoustique de mélange de référence ; puis, - à parcourir cycliquement les bases de données, en réalisant, pour la valeur courante de l'indice i de la base de données considérée, les étapes consistant à : - lire (306) les valeurs courantes des paramètres de l'encodeur et du ième décodeurs ; - tirer (310) un lot aléatoirement dans une base de données considérée ; - calculer (320) les sorties de l'encodeur (e) à partir de l'amplitude du spectrogramme du signal de mélange de référence du lot tiré, avec les valeurs courantes des paramètres de l'encodeur ; 18 [Revendication 4] [Revendication 5] - calculer (330) la sortie du i,ine décodeur (D 1) à partir des sorties de l'encodeur, avec les valeurs courantes des paramètres du Prim décodeur ; - mesurer (340) une erreur entre la sortie du [élue décodeur et l'amplitude du spectrogramme de la contribution sonore de référence du lot tiré ; - mettre à jour (360) les valeurs courantes des paramètres du Prim décodeur (D 1) à l'aide d'une procédure de descente du gradient à partir de l'erreur mesurée ; - accumuler (350) un gradient sur chacune des valeurs courantes des paramètres de l'encodeur dans une variable d'accumulation du gradient correspondante ; et, - lorsque la valeur de l'indice i est égale à M, mettre à jour (355) les valeurs courantes des paramètres de l'encodeur (e) à l'aide des valeurs courantes des variables d'accumulation du gradient. Procédé de séparation selon l'une quelconque des revendications 2 à 3, caractérisé en ce que les bases de données de la pluralité de M bases de données sont indépendantes et asynchrones, c'est-à-dire qu'un signal acoustique de mélange de référence d'un lot contenu dans une base de données ne se retrouve pas forcément dans un lot d'une autre base de données et le nombre de lots d'une base dc données n'est pas forcément égal au nombre de lots d'une autre base de données. Procédé de séparation selon l'une quelconque des revendications 2 à 4, caractérisé en ce que l'étape consistant à mesurer (240, 340) une erreur entre la sortie du ième décodeur, notéeD y wr e f)), et l'amplitude du spectrogramme dc la contribution sonore de référence, notée L, r t) 12, consiste à calculer une gmndeur, notée I- 1, selon la relation : L1 =Gis- D ,(e( r))) où dist est une distance, par exemple une moyenne de la valeur absolue de la différence entre deux matrices ou une moyenne du carré de la différence entre deux matrices. Procédé de séparation selon la revendication 5, caractérisé en cc que l'étape consistant à mettre à jour (260, 360) la valeur courante d'un paramètre e du iC1ne décodeur au moyen d'une procédure de descente du gradient s'effectue selon l'équation : 9i 9 Di-À V Li D Di où le gradient V est calculé par un algorithme de rétropropagation ait [Revendication 6] 19 [Revendication 7] [Revendication 8] [Revendication 9] [Revendication 10] du gradient ; et A est un coefficient dépendant d'une règle d'optimisation prédéfinie. Procédé de séparation selon la revendication 2 et la revendication 5 en combinaison, caractérisé en ce que l'étape consistant à mettre à jour (250) la valeur courante d'un paramètre e e de l'encodeur s'effectue selon l'équation : e 4- - Vee Li où le gradient V 0 est calculé par un algorithme de rétropropagation du e gradient ; et A est un coefficient dépendant d'une règle d'optimisation prédéfinie. Procédé de séparation selon la revendication 3 et la revendication 5 en combinaison, caractérisé en ce que l'étape consistant à accumuler (350) un gradient sur la valeur courante d'un paramètre e e de l'encodeur dans une variable d'accumulation du gradient correspondante, notée G es , est réalisée selon l'équation : G G +V Li es es os où le gradient V est calculé par un algorithme de rétropropagation du Os gradient ; et en ce que l'étape consistant à mettre à jour (355) la valeur courante du paramètre e e de l'encodeur est faite selon l'équation : Os-AGoe où A est un coefficient dépendant d'une règle d'optimisation prédéfinic, avant de réinitialiser à la valeur nulle la variable d'accumulation du gradient G correspondante. ee Procédé de séparation selon l'une quelconque des revendications 1 à 8, caractérisé en ce que l'encodeur ($) et les M décodeurs (D1) respectent une architecture du type réseaux de neurones convolutionnels, de préférence tel que chaque décodeur soit symétrique de l'encodeur par rapport à chacune des sorties dudit encodeur. Procédé de séparation selon l'une quelconque des revendications 1 à 9, caractérisé en ce que l'étape consistant à transformer (20) dans le domaine temporel met en oeuvre une transformation inverse d'une transformation temps-fréquence mise en oeuvre dans l'étape consistant à 20 [Revendication 11] transformer (14), dans le domaine fréquentiel, le signal acoustique de mélange (y t ) )- [Revendication 12] Produit programme d'ordinateur comprenant un support lisible d'informations, sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeablc dans des moyens de mémorisation d'un ordinateur et exécutable par des moyens de calcul dudit ordinateur pour mettre en oeuvre un procédé conforme au procédé de séparation selon l'une quelconque des revendications 1 à 10. Support lisible d'informations sur lequel est mémorisé un programme d'ordinateur comprenant des instructions de programme, le programme d'ordinateur étant chargeable dans des moyens de mémorisation d'un ordinateur et exécutable par des moyens de calcul dudit ordinateur pour mettre en oeuvre un procédé conforme au procédé de séparation selon l'une quelconque des revendications 1 à 10.