SlideShare une entreprise Scribd logo
1  sur  55
Télécharger pour lire hors ligne
Comment faire dire n’importe quoi
à Bruce Willis et Sylvester Stallone
1
Pierre SENDOREK
psendorek@xebia.fr
Conversion de voix
Locuteur source Locuteur target
2
Voder
Voder
inverse
Réseau de
neurones
3
Voder
Voder
inverse
Réseau de
neurones
Audio (source)
4
Voder
Voder
inverse
Réseau de
neurones
Audio (source)
Représentation simplifiée (source)
5
Voder
Voder
inverse
Réseau de
neurones
Audio (source)
Représentation simplifiée (source)
Représentation simplifiée (target)
6
Voder
Voder
inverse
Réseau de
neurones
Audio (source)
Représentation simplifiée (source)
Représentation simplifiée (target)
Audio (target)
7
Voder
Générer la voix à partir d’une représentation simplifiée
8
Voder
Représentation simplifiée (target)
Audio (target)
9
Voder
10
Cordes vocales : son “a”. Composante harmonique.
Souffle : son “ch”. Composante non harmonique.
Déformation de la cavité buccale : filtrage du son
permet de former
“a”, “e”, “i”, “o”, “u”, “ou” (cordes vocales
vibrent)
et
“ch”, “s”, “h”, “kh” (souffle)
mais aussi
“j”, “z” (souffle + vibration des cordes vocales)
Un modèle simplifié du mécanisme de
génération de la voix
Appareil phonatoire humain
Voder
11
Appareil phonatoire humain
Un modèle simplifié du mécanisme de
génération de la voix
“j”
=
“i” + “ch”
Voder
The Bell Telephone
Laboratory’s Voder
(from Voice Operating
Demonstrator) was the
first attempt to
electronically synthesize
human speech by
breaking it down into its
acoustic components.
12
13
Fréquences Fréquences Fréquences
Spectre
14
Sonogramme
Spectre
Transformée
de Fourier
temps
fréquences
15
Sonogramme Spectre
Transformée
de Fourier
16
Spectre
une bande correspond à un spectre
(Transformée de Fourier)
Faible valeur
Grande valeur
Voder
Représentation simplifiée
du spectre du souffle
“ch”
“ch” filtré
Filtrage par
transformée
de Fourier
17
Voder
Représentation simplifiée
du spectre de la composante harmonique
“bzzz”
“bzz” filtré
Filtrage par
transformée
de Fourier
18
Voder
Représentation simplifiée
du spectre de la composante harmonique
+ fréquence de la voix
“bzzz”
modulé en
fréquence
“bzz”
modulé en
fréquence
+ filtré
Filtrage par
transformée
de Fourier
19
Voder
“ch” filtré
Représentation simplifiée
du spectre du souffle
+ du spectre de la composante
harmonique
+ fréquence de la voix
“bzz”
modulé en
fréquence
+ filtré
voix
synthétisée
Addition
20
Voder
“ch” filtré
Représentation simplifiée
du spectre du souffle
+ du spectre de la composante
harmonique
+ fréquence de la voix
“bzz”
modulé en
fréquence
+ filtré
voix
synthétisée
Addition
21
voix originale
Voder inverse
Calculer une représentation simplifiée d’une voix
22
Voder inverse
Voder
inverse
Audio (source)
Représentation simplifiée (source)
23
24
Spectre
une bande correspond à un spectre
(Transformée de Fourier)
Faible valeur
Grande valeur
Approximer le spectre
vecteur “triangle” 1
ㄨ vrai spectre
ㄨ approximation spectrale
vecteur “triangle” 2
Base de fonctions triangulaires
25
Trouver la période
Période : son translaté de la période ≈ son
26
Trouver la période
Période : son translaté de la période ≈ son
Période
27
Séparation en composantes : périodique + bruit
Séparation
par
projection
orthogonale
Signal quasi périodique
Signal périodique
+
bruit aléatoire
28
Séparation en composantes : périodique + bruit
espacebruit
signal périodique 1
ㄨ signal quasi périodique
ㄨ signal périodique
ㄨ bruit
signal périodique 2
Signal périodique
+
bruit aléatoire
29
Séparation en composantes : périodique + bruit
espacebruit
signal périodique 1
ㄨ signal quasi périodique
ㄨ signal périodique
ㄨ bruit
signal périodique 2
Signal périodique
+
bruit aléatoire
Base de signaux périodiques
30
Apprentissage de la conversion
Réseaux de neurones artificiels
31
Réseau de
neurones
Représentation simplifiée (source)
Représentation simplifiée (target)
32
Réseau de neurones artificiels
× exemples
ー prédiction
33
Réseau de neurones artificiels
× exemples
ー prédiction
34
Reconstruction
sans prise en
compte du passé
Réseau de neurones récurrent
× exemples
ー prédiction
35
Réseau de neurones récurrent
36
Ø
Ø
Ø
Réseau de neurones récurrent
37
Ø
Ø
Ø
Réseau de neurones récurrent
38
Ø
Ø
Ø
Réseau de neurones récurrent
39
Ø
Ø
Ø
Alignement de séquences
Dynamic Time Warping
40
Réseau de neurones artificiels
41
Une entrée Une sortie
42
Alignement : Dynamic time warping
Base de données non alignée Base de données alignée
43
Alignement : Dynamic time warping
Matrice des Distances
Faible valeur
Grande valeur
Alignement : Dynamic time warping
44
Matrice des Distances
Faible valeur
Grande valeur
Correspondances
Alignement : Dynamic time warping
45
Correspondances
Alignement : Dynamic time warping
46
Résultats
47
48
Fichier passé en entrée Résultat de la conversion Objectif
?
49
Interprétation : surapprentissage
Conclusion
50
51
Résumé
Conversion de voix
A partir d’exemples de phrases prononcées par
deux locuteurs, on crée un modèle de conversion de
voix.
Aujourd’hui fait pour fonctionner avec un seul
locuteur source.
52
Applications potentielles
Applications potentielles
Voix immortalisées et réutilisables.
Amélioration de la qualité de la transmission de la
voix sur une ligne téléphonique.
Utilisation de la voix d’un acteur dans les jeux
vidéos.
Canulars téléphoniques.
53
Applications potentielles
Conversion de voix
Améliorations possibles
Remplacer le Voder par un réseaux de neurones.
Utiliser un réseau de neurones de type LSTM pour la traduction entre
deux séquences.
Possibilité : plus aucun d’apprentissage nécessaire pour un nouveau
locuteur.
54
Merci
55
https://github.com/pierresendorek/voice_converter
Pierre SENDOREK | psendorek@xebia.fr

Contenu connexe

Plus de Publicis Sapient Engineering

XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéPublicis Sapient Engineering
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...Publicis Sapient Engineering
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !Publicis Sapient Engineering
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizPublicis Sapient Engineering
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéPublicis Sapient Engineering
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectPublicis Sapient Engineering
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...Publicis Sapient Engineering
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018Publicis Sapient Engineering
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...Publicis Sapient Engineering
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...Publicis Sapient Engineering
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuPublicis Sapient Engineering
 
XebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiqueXebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiquePublicis Sapient Engineering
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsPublicis Sapient Engineering
 
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...Publicis Sapient Engineering
 
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Publicis Sapient Engineering
 
Tech4Exec - Etat de l’art et vulgarisation du Machine Learning
Tech4Exec - Etat de l’art et vulgarisation du Machine LearningTech4Exec - Etat de l’art et vulgarisation du Machine Learning
Tech4Exec - Etat de l’art et vulgarisation du Machine LearningPublicis Sapient Engineering
 
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...Publicis Sapient Engineering
 

Plus de Publicis Sapient Engineering (20)

XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribuéXebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
XebiCon'18 - Boostez vos modèles avec du Deep Learning distribué
 
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
XebiCon'18 - Comment j'ai développé un jeu vidéo avec des outils de développe...
 
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
XebiCon'18 - Les utilisateurs finaux, les oubliés de nos produits !
 
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des datavizXebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
XebiCon'18 - Comment fausser l'interprétation de vos résultats avec des dataviz
 
XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture XebiCon'18 - Le développeur dans la Pop Culture
XebiCon'18 - Le développeur dans la Pop Culture
 
XebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilitéXebiCon'18 - Architecturer son application mobile pour la durabilité
XebiCon'18 - Architecturer son application mobile pour la durabilité
 
XebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID ConnectXebiCon'18 - Sécuriser son API avec OpenID Connect
XebiCon'18 - Sécuriser son API avec OpenID Connect
 
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
XebiCon'18 - Structuration du Temps et Dynamique de Groupes, Théorie organisa...
 
XebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an aprèsXebiCon'18 - Spark NLP, un an après
XebiCon'18 - Spark NLP, un an après
 
XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018XebiCon'18 - La sécurité, douce illusion même en 2018
XebiCon'18 - La sécurité, douce illusion même en 2018
 
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
XebiCon'18 - Utiliser Hyperledger Fabric pour la création d'une blockchain pr...
 
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
XebiCon'18 - Ce que l'histoire du métro Parisien m'a enseigné sur la création...
 
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieuXebiCon'18 - La guerre des Frameworks n'aura pas lieu
XebiCon'18 - La guerre des Frameworks n'aura pas lieu
 
XebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs MusiqueXebiCon'18 - Orchestration : Conteneurs vs Musique
XebiCon'18 - Orchestration : Conteneurs vs Musique
 
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-StreamsXebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
XebiCon'18 - Passage à l'échelle de mes applications Kafka-Streams
 
XebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done WrongXebiCon'18 - Data Science Done Wrong
XebiCon'18 - Data Science Done Wrong
 
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
TEch4Exec - OUI.sncf propose des voyages moins chers grâce au Big Data et au ...
 
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
Tech4Exec - Pourquoi faut-il gérer votre projet (Big) data comme une start-up...
 
Tech4Exec - Etat de l’art et vulgarisation du Machine Learning
Tech4Exec - Etat de l’art et vulgarisation du Machine LearningTech4Exec - Etat de l’art et vulgarisation du Machine Learning
Tech4Exec - Etat de l’art et vulgarisation du Machine Learning
 
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...
XebiCon'17 : comment j’ai automatisé la gestion des incidents de photobox en...
 

XebiCon'17 : Faire dire n’importe quoi à Bruce Willis ou Sylvester Stallone - Pierre Sendorek