Deep Neural Network for Audio and Music Transformations
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Title of Series | ||
Number of Parts | 6 | |
Author | ||
Contributors | ||
License | CC Attribution 3.0 Unported: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/54726 (DOI) | |
Publisher | ||
Release Date | ||
Language | ||
Production Year | 2020 |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
00:00
Fourier transformGroup representationInvariant (mathematics)Directed graphOpen setSparse matrixFrequencyElement (mathematics)Schmelze <Betrieb>Correlation and dependenceAreaParameter (computer programming)Sampling (statistics)2 (number)Numerical analysisSinc functionTransformation (genetics)Element (mathematics)Group representationFlow separationSummierbarkeitCartesian coordinate systemHeat transferMathematical analysisPosition operatorFrequencyCross-correlationContent (media)Fourier seriesWell-formed formulaModule (mathematics)CoefficientConnectivity (graph theory)Multiplication signDifferent (Kate Ryan album)Stability theoryMultiplicationLine (geometry)Point (geometry)Latent heatSpacetimeMusical ensembleBounded variationPressureFood energyParameter (computer programming)Invariant (mathematics)Classical physicsFunctional (mathematics)InfinityAverageHarmonic analysisCharacteristic polynomialConvolutionLocal ringComputer animation
09:18
Classical physicsFunction (mathematics)Maxima and minimaHermite polynomialsDirection (geometry)Group representationSequenceModel theoryMechanism designVertical directionFrequencySinguläres IntegralTrigonometric functionsMatrizenzerlegungNegative numberWaveformRecurrence relationMaß <Mathematik>GradientTerm (mathematics)Pauli exclusion principleFlow separationHeat transferContent (media)Flow separationDirected graphState of matterLimit (category theory)Schmelze <Betrieb>Mixture modelSampling (statistics)2 (number)DivisorElement (mathematics)Directed graphSequenceSeries (mathematics)Recurrence relationMaß <Mathematik>Latent heatCartesian coordinate systemHypothesisTransformation (genetics)Direction (geometry)Logical constantMusical ensembleModel theoryFlow separationInvariant (mathematics)Vertex (graph theory)Characteristic polynomialSummierbarkeitHarmonic analysisPropagatorFilter <Stochastik>Group representationDifferent (Kate Ryan album)Scaling (geometry)Sign (mathematics)Matrix (mathematics)Algebraic structureFlow separationEvolutePhysical systemState of matterFrequencyCondition numberGraph (mathematics)Cross-correlationSpectrum (functional analysis)Line (geometry)Multiplication signOperator (mathematics)Wave packetTheory of relativityLinearizationHeat transferFree groupGradientObject (grammar)Point (geometry)Content (media)Euler anglesMathematicsComputer animation
18:36
Process (computing)Flow separationFlow separationDirected graphAlgebraModel theoryMixture modelMechanism designGraph (mathematics)Group representationEstimationWeightAerodynamicsMathematical optimizationMatrix (mathematics)Extension (kinesiology)Line (geometry)Ring (mathematics)ForceTerm (mathematics)Pairwise comparisonMusical ensemblePhysical systemEnergy levelSequenceLogical constantMereologyGroup actionMusical ensembleElement (mathematics)Multiplication signHydraulic jumpMechanism designMatrix (mathematics)Group representationNumerical analysisEstimatorFigurate numberFlow separationNormal (geometry)ResultantDynamical systemMathematical optimizationSimilarity (geometry)Alpha (investment)WeightFlow separationFunction (mathematics)Energy levelRecurrence relationContent (media)Mathematical singularityAlgebraic structurePoint (geometry)Graph (mathematics)Graph (mathematics)Engineering drawing
27:54
Model theoryFunction (mathematics)Heat transferProcess (computing)Heat transferContent (media)AnalogyTranslation (relic)Algebraic structureHarmonic analysisMusical ensembleDirected graphVector spaceEinbettung <Mathematik>Event horizonWeight functionMaß <Mathematik>Recurrence relationMatrix (mathematics)SequenceMetric systemSet theoryMoment of inertiaMechanism designSeries (mathematics)Flow separationModel theoryCartesian coordinate systemContent (media)Function (mathematics)Musical ensembleHeat transferMultiplication signPartition (number theory)Translation (relic)Equivalence relationSequenceConvolution1 (number)ResultantGroup representationNumerical analysisMaß <Mathematik>MathematicsWeißes RauschenPhysical systemMechanism designComputer animation
37:12
Model theoryMechanism designSeries (mathematics)Wave packetComputer animationMeeting/Interview
37:47
Natural numberMeeting/Interview
38:57
Negative numberFactorizationHelmholtz decompositionClique problemAbsolute valuePoint (geometry)Matrix (mathematics)Mechanism designMultiplicationMultiplication signDimensional analysisMeeting/InterviewComputer animation
40:12
Negative numberFactorizationHelmholtz decompositionClique problemEvent horizonPhysical systemFunction (mathematics)SequencePoint (geometry)Object (grammar)Directed graphFlow separationElement (mathematics)Mechanism designSummierbarkeitComputer animation
40:57
Event horizonClique problemStandard deviationMultiplicationLinear regressionComputer animationProgram flowchart
41:33
Standard deviationMultiplicationConstraint (mathematics)Clique problemSpectrum (functional analysis)Event horizonElectric currentTwin primeHelmholtz decompositionMatrix (mathematics)SummierbarkeitCharacteristic polynomialComputer animationProgram flowchart
42:54
Special unitary groupLogistic distributionClique problemSummierbarkeitHadamard matrixCharacteristic polynomialComplex (psychology)Computer animationMeeting/Interview
Transcript: French(auto-generated)
00:15
Donc voilà, je suis très content, merci de m'avoir invité, très content de parler aujourd'hui et je vais
00:20
parler un petit peu de l'utilisation de réseaux de neurones profonds pour le traitement du signal sonore et sur deux aspects, sur deux sujets illustrés avec deux problèmes spécifiques et justement l'utilisation de ces réseaux de neurones profonds.
00:42
Ça ne va pas être très technique, je ne vais pas montrer beaucoup dans les détails, mais je vais essayer de donner des points essentiels qui sont spécifiques, je dirais, au signal sonore. Voilà un peu le contenu de la présentation, je vais rappeler quelques éléments de base du traitement du signal sonore et de la représentation des signaux sonores pour montrer un peu en quoi c'est un peu différent d'image qui est peut-être plus diffusée.
01:06
Et ensuite, je donnerai quelques généralités sur l'utilisation et les spécificités des réseaux de neurones pour l'audio, avant d'entrer en détail sur deux applications plus spécifiques, sur la séparation de voix chantées aidées par les paroles de la chanson et sur le transfert de style musical.
01:33
Alors un signal sonore, c'est une onde sonore, une variation de pression autour de la pression atmosphérique. On continue et la première chose qu'on fait, c'est qu'on la discrétise, on l'échantillonne et pour donner une ordre d'idée, évidemment, pour le
01:47
signal sonore, le signal discrétisé sur un CD audio est échantillonné à 44 100 Hz, c'est-à-dire qu'on prend 44 100 valeurs par seconde de signal. Ça peut donner une idée du nombre de données nécessaires pour représenter un signal sonore, puisque pour une
02:06
seconde, elle donne 44 100 valeurs, ce qui rend des approches comme on verra de type end-to -end en réseau de neurones qui utilisent directement comme représentation le signal sonore en entrée l'onde sonore assez complète.
02:22
Alors en général, ce qu'on fait, c'est qu'on va utiliser une représentation du signal, notamment la représentation, la transformée de Fourier à temps discret, vous avez les formules classiques qui sont en haut, qui permet à partir du signal X de N, la forme d'onde sonore, de représenter les modules des coefficients de Fourier qui permettent de voir les différentes composantes énergétiques du signal.
02:46
Si on voit que le signal, c'est une somme de 10 fonctions signes cellulaires qu'on retrouve ici avec leurs différentes amplitudes dans le temps. Et comme le signal sonore varie dans le temps, on ne peut pas faire une seule transformée de Fourier de moins l'infini à plus
03:01
l'infini, sinon on ne représenterait que la moyenne de l'énergie à chaque composante sonore et on ne traquerait pas les variations dans le temps. Et donc ce qu'on fait, c'est qu'on fait une analyse localisée en fréquence et puis on se déplace dans le temps à l'aide d'une fenêtre d'analyse qui permet de construire ce qu'on appelle un spectrogramme. Ce spectrogramme, pour chaque fenêtre d'analyse, donne une représentation des coefficients de Fourier et donne
03:26
donc le contenu de l'énergie à chaque fréquence du signal avec ses variations dans le temps. Alors là, si je reprends le signal précédent, on a la somme de 10 sinusoïdes. Si on fait une transformée de Fourier, on a cette représentation que j'avais montré au début, les modules des coefficients de Fourier.
03:46
Et le spectrogramme, on refait l'analyse en déplaçant cette fenêtre d'analyse. Évidemment, quand le signal est très très stable, on voit effectivement la représentation du spectrogramme avec en ordonnée les fréquences, en abscisse le temps et puis en niveau de gris l'intensité de chaque fréquence qui ici ne bouge pas puisque le signal est très stable.
04:07
Mais si on prend un signal musical classique, comme ici par exemple, donc là c'est un signal où pendant la moitié du temps, on a la note no, c'est-à-dire avec une fréquence fondamentale de 262 verses qui est produite par un piano.
04:26
Et ensuite, au bout d'un certain temps, à partir d'environ 2,8 secondes, on a la même note de musique de même hauteur qui est jouée par un violon. Et là, dans la représentation spectrogramme qui est située en dessous, donc avec toujours fréquence en fonction du temps et en niveau de gris l'intensité de chaque composante,
04:43
on voit la représentation du signal. On voit que pour le son de piano, il y a une somme de lignes, je dirais, horizontales qui sont régulièrement espacées, qui sont la fréquence fondamentale et les harmoniques, qui sont les multiples de cette fréquence fondamentale.
05:02
Donc c'est les lignes régulièrement espacées sur l'agzirèque. Et on voit que les harmoniques élevées s'estompent dans le temps. Tandis que pour le son de violon qui est situé juste après, on voit à la fois toutes ces lignes qui sont toutes les harmoniques du son, mais aussi la présence de ce qu'on appelle de vibrato, quand le violoniste fait
05:20
vibrer son doigt ou bouger son doigt sur la touche du violon autour d'une position. Et on voit ce vibrato comme une modulation de fréquence d'environ à 6 airs. Pourquoi je présente ça ? C'est parce que ça va me permettre de montrer un peu les différences.
05:43
Parce que là effectivement, avec le spectrogramme, ce qu'on constate, c'est que le spectrogramme, c'est une image. On pourrait très bien se dire qu'il suffit de faire du traitement d'image pour faire du traitement du son. Alors oui, c'est une bonne idée. On prend une image, là vous voyez un autre spectrogramme,
06:03
mais on reconnaît un peu, là c'est un signal qui est un peu plus varié que les précédentes, mais on reconnaît quand même que sur la ségmentation de ce spectrogramme, si vous voyez ma souris, ici on a une note et ici on a une autre note, avec tout le temps les lignes spectrales qui sont régulièrement espacées, qui représentent les harmoniques d'une note, qui sont typiques d'un son périodique.
06:24
Mais il y a quand même des différences fondamentales entre ces deux images. Lorsqu'on parle d'une image, d'une vraie image, on a déjà l'axe des Y et l'axe des X, qui représentent le même concept, une position dans l'espace.
06:42
Ensuite, on a une certaine corrélation spatiale des pixels qui sont les uns à côté des autres. Ces deux caractéristiques, non seulement sont un peu corrélées, mais peuvent représenter le même objet.
07:02
Ces deux caractéristiques ont fait qu'en image, les réseaux de neurones convolutionnels sont particulièrement appropriés. Effectivement, les réseaux de neurones sont connectés localement à l'image d'entrée.
07:21
On peut partager des paramètres entre les neurones d'une même carte de fissure. Et puis, des procédés comme le MaxPooling permettent de construire une certaine variance spatiale. Si on regarde l'image spectrographique qui provient de l'audio,
07:45
comme j'ai essayé de le montrer juste avant, l'axe des Y et l'axe des X représentent des concepts vraiment différents. L'un, c'est le temps, et l'autre, c'est les fréquences. C'est une différence assez majeure entre les deux. Et de plus, on ne peut pas vraiment dire qu'il y a aussi une invariance spatiale,
08:14
puisqu'effectivement, un son va être représenté de manière parsimonieuse sur l'axe des Y, de manière stable par exemple sur l'axe des X,
08:23
mais d'un pixel à l'autre, je dirais, ici, on va passer d'une position d'une harmonique à une position où il n'y a pas d'énergie. Donc, il ne peut pas y avoir une relation spatiale aussi forte. Et donc, en fait, les CNN, les réseaux neurones conductifs, ne sont pas aussi appropriés pour l'audio que pour l'image.
08:47
Alors, je ne dis pas aussi appropriés parce qu'effectivement, ils ont quand même été beaucoup utilisés, ils sont toujours beaucoup utilisés. Et ils sont effectivement, ils sont quand même assez performants, même si ce n'est pas tout à fait intuitif.
09:01
Alors, j'ai évidemment un réseau de neurones convolutionnel classique, comment ça marche, je vais vous donner une idée. Et je vais vous donner une illustration de comment ça a été utilisé en audio. Donc là, par exemple, pour une application de ce qu'on appelle du tagging musical automatique.
09:23
Donc là, typiquement, l'objet d'une telle application, c'est à partir du spectrogramme que vous reconnaissez ici, vous essayez de prédire, par exemple, la présence d'une émotion, quel est le genre musical qui est joué,
09:40
quelle est l'instrumentation qui est présente dans la musique. Vous pouvez voir chaque élément ici et représenter un tag. Vous avez 50 tags et vous essayez de prédire la probabilité de présence de chaque tag musical. Et bien là, une attitude comme ça par CNN marche très bien.
10:03
Et ça a été un système, je dirais, à l'état de l'art de cette tâche musicale. Et ce qui est vrai, c'est que la seule changement qui a été fait par rapport à l'image de spectrogramme que je vous ai montré, c'est qu'au lieu de prendre une échelle linéaire en fréquence pour calculer cette image pétrogrammique,
10:21
on a pris une échelle qui est de type logarithmique, plus proche des caractéristiques de perception de l'art. On voit bien qu'on peut s'améliorer puisqu'on peut évidemment prendre en compte des caractéristiques du signal audio et prendre en compte la façon dont est calculé cette image spétrographique fréquence en fonction du temps.
10:45
Et aussi les caractéristiques du signal audio, c'est-à-dire que c'est un signal temporel, qui a évidemment les élections qui sont mises dans l'ordre de temps et qu'il y a une certaine corrélation temporelle. Alors si on regarde certaines des approches qui ont été particulièrement développées en audio,
11:09
on peut très bien améliorer les réseaux de neurones convolutionnels en les rendant plus adaptés aux signaux musicaux. Et donc comme on a vu effectivement que la structure est spécifique,
11:22
avec des lignes spectralles, des caractéristiques à la fois verticales qui sont liées aux fréquences et à la fois des caractéristiques horizontales qui sont liées à la tenue des harmoniques dans le temps, on peut construire des filtres convolutionnels qui ne sont pas forcément rectangulaires ou carrés.
11:42
Donc on peut construire des filtres horizontaux qui vont mieux traquer l'évolution des harmoniques, invariant à la propagation des harmoniques, ou des filtres verticaux qui vont aussi intégrer le fait qu'il y a la présence de plusieurs harmoniques. On peut aussi utiliser des représentations de signal sonore différentes.
12:02
Donc je vais donner un exemple en prenant du spectrogramme sur une échelle logarithmique de type MEL proche de la perception de l'oreille. Il y a tout un tas d'autres transformés qu'on peut utiliser, des transformés à Q constant, des autres transformés en mongelette, etc. Ou on peut utiliser aussi des modèles qui vont représenter l'entrée du signal comme une somme d'éléments, des médons de décomposition,
12:26
des modèles parsémiueux, des modèles de type factorisation en matrice non négative qui permettent de représenter le signal comme une somme d'éléments pris dans un dictionnaire. Et on peut aussi aller même jusqu'au bout uniquement directement le signal sonore, c'est-à-dire l'onde sonore en étude en fonction du temps.
12:45
Comme je l'ai dit, ici on se retrouve avec des architectures qui deviennent vite complexes puisqu'on a effectivement 44 100 échantillons par seconde de signal, 440 000 échantillons pour 10 secondes, pour une chanson évidemment c'est très très important.
13:08
Alors vers quoi, ce qui est plus approprié, c'est aussi de peut-être se démarquer un peu de ces réseaux de neurones convolutionnels et de prendre des réseaux de neurones qui vont intrinsèquement prendre en compte l
13:21
'aspect temporel, l'aspect séquence, l'aspect série temporelle du signal qu'on analyse. Donc l'utilisation de réseaux temporels, des réseaux récurrents et ce qui est assez populaire en audio c'est évidemment aussi d'utiliser des neurones,
13:42
des unités plus spécifiques qui vont permettre de mieux lutter contre le problème de l'évaluance d'une radion. Donc les unités les plus populaires, je dirais, c'est les LSTM et puis les BRU, les unités récurrentes.
14:07
D'autres réseaux de neurones qui sont extrêmement populaires en audio sont les modèles génératifs. Les GAAN, les researchers de GAAN, etc. Et puis peut-être récemment, ce qui fait le plus le plan percé en
14:23
audio sont les réseaux neuro-navas de mécanismes d'attention notamment récemment les transformés. Donc voilà pour un schéma un petit peu général, une introduction je dirais, qui va me permettre maintenant de rentrer dans un peu plus de détails autour de deux applications.
14:43
Et puis je peux faire des petites démonstrations des performances qui peuvent être obtenues. Donc la première application, ça va être une application de séparation de source en utilisant du texte en plus, qui serait les paroles des chansons qui sont chantées.
15:02
Donc je vais remonter cette tâche. Et puis une autre tâche qui est du transfert de style, c'est-à-dire que après d'un morceau dans un style donné, dans un morceau on va extraire le contenu, dans un autre morceau on va extraire le style et puis on va essayer de jouer le contenu du morceau 1 dans le style du morceau 2.
15:25
Alors là c'est donc un travail mené par Kilian Schultzforser qui devine sa thèse sous la direction conjointe des trois autres personnes. Alors quand on parle de séparation de source, c'est quoi l'objectif de la séparation de source de signes musicaux ?
15:44
C'est au part d'un signal enregistré, un disque avec plusieurs instruments qui jouent simultanément, par exemple au bois, batterie, guitare. Et on essaye d'extraire uniquement ce signal, la voix chantée.
16:02
Alors évidemment l'état de l'art du domaine maintenant, si il y a quelques années c'était encore des techniques traditionnelles, maintenant clairement les meilleures méthodes sont à base de réseaux de neurones supervisés. On apprend cette transformation en ayant une base de données de signaux séparés et de signaux mélangés.
16:25
Et puis le réseau de neurones va apprendre l'opération de filtrage pour obtenir le signal séparé. Le problème c'est qu'obtenir les données d'entraînement ici sont très difficiles puisqu'on n'a pas forcément beaucoup de signaux où les voix sont séparées et on a en même temps le enregistrement.
16:44
Donc l'idée, c'est ça un des challenge, c'est de pouvoir faire de la séparation de source d 'une des voix de l'enregistrement sans avoir besoin d'une masse de données énorme de voix séparée avant le mixage. Et alors une des façons d'essayer d'avoir moins de données à utiliser, c
17:06
'est d'utiliser d'autres sources de données qui sont disponibles, je dirais quasi gratuitement. Et effectivement, on a beaucoup d'enregistrements musicaux, ça c'est clair, mais on a aussi beaucoup de paroles de chansons qui sont disponibles par ailleurs.
17:25
Et donc l'idée, c'est de se dire on va utiliser ces deux éléments pour améliorer la séparation de source sans avoir beaucoup plus de paires, signaux mélangés, signaux séparés.
17:40
Alors évidemment, on voit bien qu'il y a un problème, c'est que les paroles sont dans une dimension, c'est du texte. L'audio, on l'a vu, c'est des échantillons numériques et on n'a pas un alignement du texte sur l'audio. On ne sait pas à quel moment telle parole est présente sur l'audio.
18:04
Et un autre problème, c'est que comme on veut apprendre la tâche globale, on veut éventuellement ne pas utiliser un séparateur de voix chantée déjà entraînée sur la partie mélange pour pouvoir avoir une voix séparée et le texte, ou l'alignement serait un petit peu plus facile.
18:21
On va faire l'alignement directement à partir du texte et du mélange sonore qui comprend la voix chantée, mais tous les autres, en ce moment. Alors là, ce que je vais vous présenter, c'est quelques éléments qui permettent de faire la tâche de manière globale. C'est-à-dire qu'elle va à la fois, à partir du texte et du mélange audio, extraire la voix chantée et obtenir l'alignement du
18:51
texte sur l'audio et d'avoir la liste de phonèmes qui est prononcée et à quel moment du temps chaque phonème est prononcé dans la voix chantée.
19:03
Donc, voilà un peu le mécanisme un peu global qui est utilisé. Vous avez ici un système auto encodeur, je dirais, avec un mécanisme d'attention.
19:22
Donc, on a ici le signal enregistré musical, les scènes, les spectrogrammes et les fenêtres, et on a ici l'information adjacente, qui est ici le texte et qui est donc ici les mots qui sont prononcés, les phonèmes qui sont prononcés.
19:51
Et donc, on va avoir ici un mécanisme d'attention qui va coupler à cet encodeur du contenu, va permettre de prédire la
20:05
voix chantée ou le spectrogramme de la voix chantée, mais va pouvoir utiliser le mécanisme d'attention qui, lui, va utiliser l'information. Pour donner un petit peu plus de détails, on a ici d'abord un premier mécanisme qui va rechercher à calculer une similarité entre
20:27
ces sorties H du réseau de neurones de la formation textuelle et la sortie G du réseau de neurones associée à la sortie musicale.
20:41
Ce mécanisme, donc ce score de similarité, va ensuite être utilisé pour calculer ces poids alpha, qui vont servir à pondérer finalement l'ensemble de ces informations H qui viennent du texte, pour calculer un poids
21:01
de contexte d'attention qui, lui, va être utilisé pour dire à quels éléments H on doit faire attention, pour aider le réencodage, enfin la séparation de la voix chantée à partir de l'information de contenu qui est ici.
21:24
Donc, c'est ce que je disais là. L'élément de contexte ici va être obtenu comme une pondération de ces poids H, de ces poids alpha et de ces sorties H. Donc, là, j'ai rappelé un peu la structure qui est ici pour vous donner un petit peu plus d'éléments de détails de structure.
21:44
Evidemment, ici, quelques éléments qui sont importants, c'est que, évidemment, la taille de cette information adjacente est totalement différente de la taille de ce que l'on a du texte et l'on a du audio. L'encodeur, les deux encodeurs sont des réseaux bidirectionnels récurrents avec des cellules de type LSTM, donc short.
22:14
Et puis l'information, donc là, c'est les deux mêmes encodeurs. Au niveau du décodeur, c'est un petit peu plus, il y a un peu plus de couches.
22:28
L'écodeur, qui permet de calculer ces éléments QN. Ensuite, à partir de cette représentation interne QN, ensuite, on a deux couches de réseaux bidirectionnels récurrents,
22:43
comme l'encodeur, des mêmes types de cellules qui vont construire cette représentation interne QN de deux. Ensuite, on a une couche complètement connectée avec activation en relis pour obtenir l'estimation de cette fenêtre de spectrogramme de la voix chantée.
23:05
Alors, ce qui est intéressant, c'est que là, effectivement, avec ce mécanisme-là, on s'aperçoit que finalement, ces poids ici alpha de N, je vais revenir en plus gros ici, ces poids alpha de N, ils pondèrent finalement quelle information est intéressante dans le texte pour aider la séparation de la voix chantée.
23:23
Et en d'autres termes, ces poids alpha N peuvent être utilisés pour faire l'alignement du texte sur le... Ils font en fait automatiquement l'alignement du texte sur la voix chantée. Et donc, on peut très bien, lorsqu'on regarde finalement cette matrice d'attention en fonction du temps, on s'aperçoit qu'elle est...
23:47
Donc là, tous les phonèmes ont été mis dans l'ordre, puisqu'on va supposer que les phonèmes sont commencé dans l'ordre. On s'aperçoit que cette matrice d'attention, eh bien, suit les phonèmes dans l'ordre et finalement est arrivée à faire l'alignement des phonèmes dans le temps avec la voix chantée.
24:03
Et on s'aperçoit que si on recherche le pas, le chemin optimal dans cette matrice d'attention, par exemple par le mécanisme d'apprentissage dynamique, avec les TW, la programmation dynamique, eh bien, on retrouve le chemin d'alignement
24:24
optimal entre les phonèmes, le texte prononcé et ce qui va être les sons. Et dans une élaboration un peu plus récente du mécanisme de ce travail-là, on a même intégré directement ce principe de DTW dans l'optimisation du réseau
24:42
pour forcer la matrice d'attention à être monotone dans le temps et éviter des sons arrière. Alors, je vais quête sauter quelques détails pour avoir un peu de temps aussi pour vous présenter notre application. Mais en gros, ce qu'on utilise, c'est qu'on utilise pour l'apprentissage un
25:04
corpus de musique dans lequel on a les voix séparées et où on a également des phonèmes pour pouvoir apprendre sur un petit théâtre, un nombre d'exemples. Vous voyez que là, c'est un nombre de chansons assez faibles.
25:22
Il y a relativement peu de données pour l'apprentissage. Je vous donne quelques éléments de résultat, mais ce qu'on voit, c'est qu'effectivement, quand on compare par rapport à une approche de géré de base, on arrive à faire un alignement direct des phonèmes sur le signal sonore avec une très bonne performance,
25:49
tout en étant capable de faire de la séparation de cette voix chantée. Et plus d'autre, de vous commenter ces chiffres qui mesurent finalement la qualité de séparation.
26:05
Je vais vous faire quelques exemples, je vais vous jouer quelques exemples de sons séparés qui vous donneront une idée un peu de la performance. Normalement, vous allez pouvoir entendre les sons, vous allez me confirmer que vous entendez bien les sons.
26:20
Là, je vais vous jouer le son de départ, l'enregistrement de départ. Je vous joue maintenant la voix qu'il faudrait trouver, c'est la voix cible, c'est donc le résultat idéal.
26:47
Et voilà donc une première approche de bassline qui est utilisée, sans une plus simple qui ne s'utilise pas toute la partie de texte.
27:08
Là, un des problèmes, c'est que par exemple, le S a été complètement oublié et on a perdu le son S dans la transcription. Donc avec l'approche que je vous ai décrite, on va mieux entendre le S au moment où il est prononcé.
27:30
Ce qui est amusant, c'est que comme on a fait un alignement avec les phonèmes, on peut très bien remplacer le phonème cible dans le texte et ça va pouvoir changer dans la synthèse le son prononcé.
27:52
Alors ça, cet effet-là est assez intéressant parce qu'on s'est rendu compte qu'une fois qu 'on a appris le réseau et qu'on lui donne un texte comme information adjacente pour séparer la voix chantée,
28:06
et qu'en entrée, au lieu de lui donner le signal sonore réel, mais en lui donnant un bruit blanc, comme je l'ai voulu jouer, on va obtenir en sortie finalement la synthèse de ce bruit blanc et la reconstruction des phonèmes autour de ce bruit blanc.
28:27
Voici le son d'entrée qu'on rentre. Ce n'est donc plus du tout un signal musical, mais à la sortie, voilà ce qu'on obtient avec le séparateur de voix chantée aidé par le texte.
28:46
Alors je vais le rejouer parce qu'on entend peut-être pas très bien. On entend quasiment tous les phonèmes de la phrase, alors que la voix cible qu'on aurait dû reconnaître, que je vais vous jouer, était celle-là.
29:05
Et donc ça c'est un exemple qui montre bien que l'information temporaire, l'information de texte, a bien été apprise par le réseau et aide bien à séparer la voix chantée puisqu'elle a capturé finalement cette information phonétique à partir du texte rentré.
29:26
Voilà pour cette première application. Il y a d'autres exemples sonores sur le lien, aussi bien dans le premier cap et dans le deuxième. Et puis je vais vous parler rapidement de la séparation, du transfert de style musical. N'hésitez pas à me dire si
29:51
j'ai dépassé mon temps, mais je crois que j'ai encore un petit peu de temps puisque j'ai commencé à 40. Jusqu'à 16h10, je pense que c'est pas mal. Encore quelques minutes et pour ensuite avoir le temps pour des questions.
30:07
Donc là l'objectif que je disais en introduction, c'est d'arriver, on prend un morceau A dans un style donné, un morceau B dans un autre style et on va essayer de jouer le morceau A, donc le contenu du morceau A, dans le style du morceau B.
30:22
Donc c'est exactement un problème similaire en image ou à partir d'une photo, on essaie de prendre le style d'une des images et de l'appliquer au contenu de la photo. Alors il y a évidemment des choses un peu différentes, ce qu'on appelle transcription de style, traduction de style et transfert exact de style.
30:46
Donc le premier aspect que je vais vous donner, c'est plutôt un aspect de conversion de style. Donc comment on fait, ici là c'est un modèle qui est assez proche des modèles de séquence, des modèles utilisés en traitement du langage naturel.
31:05
On va utiliser une base synthétique de musique, on va rentrer des accords, vous voyez ici la séquence des accords qui sont donnés ici, ou ici ce qu'on appelle en piano roll, c'est-à-dire qui dit quelle note de musique est jouée dans le temps et combien de temps.
31:23
Et c'est cette représentation discrétisée avec des unités de temps comme le quadrillage le montre, qui va être utilisée pour apprendre le système. Et comme on utilise un synthétiseur automatique, qui est un logiciel du commerce, un branding de box, on utilise ici des partitions.
31:44
Avec le logiciel synthétique, on génère la musique dans le style A, on génère la musique dans le style B et on peut apprendre de manière supervisée un encodeur-decodeur, la conversion du même contenu A en contenu B qui conserve le contenu mais qui va aller vers le style.
32:03
Donc on a un mécanisme d'attention ici qui va donner l'identification du style par lequel on veut aller. Je vais peut-être soutenir un petit peu les détails parce que là on n 'a vraiment pas de temps pour vous donner juste des choses un peu plus intéressantes. Vous voyez que c'est un réseau assez simple qui est basé sur les réseaux sec-to-sec utilisés en traduction de machines.
32:28
Des couches de réseaux convolutionnels et puis une couche de réseaux bidirectionnels RNL avec des cellules en couche. Et le decodeur c'est juste un réseau RNL avec attention.
32:40
Donc on rentre en input ce qu'on appelle ce piano roll qui donne les notes. Et en sortie, on a un modèle de séquence qui dit quand est-ce que les notes sont actives, etc. Là vous avez exactement l'encodage en texte de ça. On a la note 50 qui est jouée là, qui joue à certains temps, pendant le temps, pendant 17 temps.
33:04
Ensuite on a les quatre autres notes qui sont utilisées. Et donc c'est ça qui fait la sortie du réseau qui va piloter un nouveau synthétiseur sonore dans le style C. Je saute quelques éléments. Et donc si on fait ça, ça marche très bien.
33:22
Ça marche très très bien. On arrive vraiment bien à apprendre ce style de synthèse. Mais par contre on ne peut pas générer dans un style qui n'a pas été vu à l'apprentissage. Et ce n'est pas vraiment du transfert de style comme je l'ai montré avec les images. On a un contenu qui est pris dans une image et un style qui est pris dans une autre image.
33:41
Donc si on veut faire exactement la même chose qu'en image, qu'on appelle ici la one-shot style transfert, on est obligé d'avoir un encodeur de style. Et cette fois on va pouvoir avoir un encodeur de style qui va prendre le style dans l'image, le pondérer dans le décodeur pour que le décodeur puisse prendre l'information de contenu dans le signalogio de départ et générer le contenu du départ dans le style.
34:08
Et donc là effectivement, on va apprendre le modèle, de même avec un triplet, le morceau dans le style. Alors là, comme on le fait ici, on fait avec un mécanisme d'auto-apprentissage, d'auto-supervision,
34:28
où le style, pour apprendre ce encodeur de style, on prend le même morceau et met un autre endroit pour avoir le même type de contenu.
34:43
Alors je vais peut-être vous faire une petite démonstration. C'est peut-être une idée de comment ça peut marcher. Les détails sont dans les papiers. Et donc là, ce que vous allez avoir, c'est que typiquement le morceau contenu, ça va être le premier qui va être joué.
35:02
Le morceau style, ça va être le deuxième qui va être joué. Et le morceau résultat sera le troisième morceau, c'est-à-dire du contenu 1 avec le style numéro 2. Ce que je peux préciser, qu'est-ce qui est ressynthétisé dans cette démonstration ? C'est uniquement l'accompagnement musical, mais la mélodie qu'il y a par-dessus, c'est la même.
35:23
Elle a été juste extraite du signal initial et elle a été recopiée dans le signal de sortie. La mélodie n'a pas changé, c'est uniquement l'accompagnement musical, tous les autres instruments ont changé le style.
35:53
Ça c'était le morceau de contenu initial, c'est le morceau de style, le morceau de synthèse.
36:36
Je vais m'arrêter là pour laisser un peu de temps aux questions,
36:40
juste pour conclure qu'effectivement, je vous laisse le transparent de le final pour conclure, ce qui est de plus en plus utilisé pour les signaux audio c'est effectivement la structure temporelle, le mécanisme d'attention, le transformeur, ce qui est particulièrement pertinent parce que ça permet d'avoir un émotionnisme plus simple,
37:00
mais en plutôt, c'est important pour les signaux audio. Voilà, donc je m'arrête là et s'il y a des questions, je serai d'y répondre. Moi j'en ai une petite pour commencer. D'autant excusé, tu disais que les données d'entraînement audio data training étaient difficiles à obtenir
37:21
et je n'ai pas bien compris pourquoi c'était compliqué de les obtenir. Parce qu'on a beaucoup d'enregistrements finalisés, tous les instruments jouent en même temps, et on a beaucoup moins d'enregistrements où on a toutes les voix séparées. D'accord, ok.
37:42
Et donc c'est ça en fait, on n'a pas assez de pairs pour faire l'entraînement supervisé, mais on n'a pas assez d'exemples où on a toutes les voix séparées et tous les enregistrements polyphoniques qui vont avec. D'accord, très bien. Alors je crois qu'il y a Charles qui vous posait une petite question.
38:01
Oui, j'avais une question. D'abord, j'ai vraiment aimé ton exposé, c'est un overview très large de beaucoup de problèmes. Il y a un truc qui m'a pas intrigué, au départ tu parlais de la NMF, et de mettre la NMF en input de méthodes basées sur la réseau de neurones.
38:25
Du coup, je me demandais ce que tu voulais dire par là. Parce que typiquement, la NMF a eu un peu le tsunami d'apprentissage profond, et puis avant, les méthodes basées sur la NMF c'était l'état de l'art.
38:40
Donc du coup, une question naturelle, c'est est-ce que, malgré tout, on peut utiliser des algorithmes qui existaient pour les implanter dans les réseaux de neurones, un peu à l'image de ce que proposait Emilie ce matin. Alors oui, tout à fait.
39:01
Je vais remettre un peu de transparents, parce que j'ai un peu de transparents sur ça pour illustrer un aspect. Donc déjà, je vais repartager mon écran.
39:20
En audio, la NMF, comment ça peut être utilisé, c'est-à-dire le spectrogramme ici. Effectivement, lorsqu'on fait tourner cet algorithme de NMF qui essaie de représenter le spectrogramme comme une multiplication de deux matrices W x H, si ici on a évidemment une dimension 2, c'est-à-dire qu'il n'y a que deux notes,
39:41
il y a une note qui est jouée, une deuxième note qui est jouée, puis en plus les deux notes sont jouées en même temps, on peut représenter ce spectrogramme avec deux templates, deux atomes, deux notes, et l'autre matrice H, l'activation, à quel moment du temps ces templates sont activés. Donc ici, la première note, ensuite elle est rejouée à la fin,
40:01
la deuxième note en rouge, là elle est jouée au milieu, et après elle est rejouée à la fin. Donc ça, c'est évidemment un mécanisme extrêmement intéressant pour représenter les signaux sonores, et notamment faire de la séparation de sources. Et donc dans un problème de,
40:23
par exemple, reconnaissance d'événements sonores, on a le signal sonore, et à partir du signal sonore, on veut reconnaître à quel moment chaque type de signaux est prononcé, donc ici il y a un clacson de voiture, ici un bruit de parole, ici des oiseaux qui chantent,
40:41
et puis tout se superpose, et on veut retrouver à partir du signal audio, ces différents éléments. On s'aperçoit qu'on est assez intéressé par ce signaux sonore, par avoir un mécanisme de séparation sous, un mécanisme qui représente le signal comme une somme d'objet, et que la NMF peut être très bien adaptée pour faire cette étape de somme d'objet du signal sonore.
41:03
Et donc dans un des travaux qu'on a fait, vous n'avez pas la référence, mais c'est un travail réalisé par Victor Bisot, avec Symecide et moi-même, on a ici une approche assez classique de l'analyse de scènes sonores,
41:22
où on prend le signal sonore, on extrait le spectrogramme, et à partir du spectrogramme on fait tourner les réseaux de neurones comme classifieurs, soit des CNN, soit des RNN. Et en fait, comment on peut utiliser la NMF ? On peut utiliser la NMF, donc là c'est une façon de le faire, on peut l'utiliser en NMF comme une étape intermédiaire,
41:44
comme une étape qui va, là elle n'est pas vraiment imbriquée dans le réseau de neurones, mais c'est une étape intermédiaire qui va finalement représenter le spectrogramme comme une somme d'objet sonore, et on va pouvoir apprendre des dictionnaires W
42:02
pour décrire ce spectrogramme de manière appropriée, et on va pouvoir par exemple faire la classification sur cette matrice H qui vont être des nouveaux caractéristiques un peu plus haut niveau, et avoir cette fois nos réseaux de neurones dans une seconde étape à partir de cette décomposition en matrice non négative.
42:23
Alors là je ne vous donne pas les détails, c'est un petit peu plus compliqué que ça, parce qu'il y a un peu trop d'informations, il faut qu'on synthétise et qu'on fasse pas mal d'opérations de type max pooling, mais ce qu'on arrive à montrer en faisant ça, c'est qu'on arrive à avoir des performances équivalentes
42:42
avec ce type d'architecture ici à gauche, mais avec des réseaux beaucoup plus petits. En fait l'idée c'est quand même la dimensionnalité, d'avoir des descripteurs. On réduit la dimensionnalité et on réduit la nécessité du réseau de neurones de devoir apprendre toutes les caractéristiques du signal sonore.
43:06
A la fois on réduit la dimensionnalité, mais on réduit aussi la complexité du problème pour le réseau de neurones. Donc besoin de moins de données, et comme on sait, si on a besoin de moins de données, c'est intéressant sur plein d'aspects. Merci Gaël Richard pour ton exposé,
43:20
et donc pour clore cette journée, on voulait remercier très chaleureusement les oratrices et orateurs de cette journée, les spectateurs et le soutien de l'IHS.
Recommendations
Series of 11 media