@AmauryCrickx#dv14ievn
Identification d’une Empreinte
Vocale pour les Nuls
@AmauryCrickx
Développeur Java
Ingénieur du son
Recognito
@YourTwitterHandle#DVXFR14{session hashtag} @AmauryCrickx#dv14ievn
@AmauryCrickx#dv14ievn
Agenda
Périmètre du
Problème
Comment ça
marche ?
Aspects
Pratiques
@AmauryCrickx#dv14ievn
Caractéristiques de la voix p
arlée
Tonalité Timbre AccentFlot Vocabulaire
Physique Comportement
@AmauryCrickx#dv14ievn
D’où vient la différence ?
Larynx
Cordes vocales
1. Pharynx
3. Cavité nasale
2. Cavité buccale
4. Cavité labiale
@AmauryCrickx#dv14ievn
D’où vient la différence ?
Larynx
Cordes vocales
1. Pharynx
3. Cavité nasale
2. Cavité buccale
4. Cavité labiale
@AmauryCrickx#dv14ievn
Captation du signal
+
-
0
@AmauryCrickx#dv14ievn
Numérisation du signal
Fréquence
d’échantillonnage
de 16 KHz
Amplitude
Temps
 Encodé sur 16 bits
@AmauryCrickx#dv14ievn
Empreinte vocale
Modèle mathématique basé
sur les formants de la voix
• Trigonométrie
• Equations différentielles
et intégrales
• Nombre Complexe
(Réel + Imaginaire)
@AmauryCrickx#dv14ievn
Buts poursuivis
Authentification
Classification
Identification
Segmentation
(Diarisation)
@AmauryCrickx#dv14ievn
En résumé
Fréquences
Uniques
Numériser Extraction
Modèle
Mathématique
Authentifier
Identifier
Classifier
Segmenter
@AmauryCrickx#dv14ievn
Agenda
Périmètre du
Problème
Comment ça
marche ?
Aspects
Pratiques
@AmauryCrickx#dv14ievn
Recognito ?
Identification du locuteur
indépendamment du texte
• Librairie orientée développeurs
• Thread safe
• Licence Apache 2
@AmauryCrickx#dv14ievn
Enrôlement
@AmauryCrickx#dv14ievn
Constructeur 2
@AmauryCrickx#dv14ievn
Identification
@AmauryCrickx#dv14ievn
Dans les coulisses
@AmauryCrickx#dv14ievn
Suppression du silence
@AmauryCrickx#dv14ievn
Normalisation du volume
@AmauryCrickx#dv14ievn
• Linear Predictive Coding – LPC
 Utilisé pour compresser la voix dans la téléphonie
 double[20]
• Fenêtres de 25ms
• Empreinte vocale = moyenne des double[20]
Extraction des caractéristiques
…
Empreinte vocale
Fen. 1
Fen. 2 Moyenne
@AmauryCrickx#dv14ievn
Fenêtrage
@AmauryCrickx#dv14ievn
Fenêtrage
@AmauryCrickx#dv14ievn
Fenêtrage
@AmauryCrickx#dv14ievn
Fenêtrage
@AmauryCrickx#dv14ievn
Fenêtrage
@AmauryCrickx#dv14ievn
Distance Euclidienne
 Somme du carré des différences
@AmauryCrickx#dv14ievn
Une poignée de classes
Recognito
Voice
Activity
Detector
Normalizer
Features
Extractor
Window
Function
LPC
Distance
Calculator
Voice
Print
@AmauryCrickx#dv14ievn
Agenda
Périmètre du
Problème
Comment ça
marche ?
Aspects
Pratiques
@AmauryCrickx#dv14ievn
FOSS
• ALIZE – C/C++ – LGPL
• Laboratoire Informatique d’Avignon
• Plateforme open source d'authentification biométrique
• LIUM – Java – GPL
• Laboratoire Informatique de l’Université du Maine (Le Mans)
• Diarisation des locuteurs
• VoiceId – Python – GPL
• Diarisation LIUM + Identification
• MARF – Java – GPL
@AmauryCrickx#dv14ievn
De nombreux acteurs
• Nuance
• VoiceVault
• ValidSoft
• Agnitio
• VoiceSecure
• Verint
• SesTek
• SpeechPro
• VoiceTrust
• Authentify
• Voice Biometrics Group
• Neurotechnology
• OxfordWaveResearch
• Recognition Technologies
• Acustek
• …
@AmauryCrickx#dv14ievn
Marchés visés
Institutions
Gouvernementales
Call
Centers
Applications
Mobiles
@AmauryCrickx#dv14ievn
Authentification
Référence
Individuelle
Modèle
Universel
seuil
Echantillon à authentifier
@AmauryCrickx#dv14ievn
Indicateurs de performance
Seuil
%Erreur
False
Acceptance
Rate
False
Rejection
Rate
Equal
Error
Rate
@AmauryCrickx#dv14ievn
Indicateurs de performance
FAR, FRR, EER
N’ont de sens que lorsqu’on compare
les mêmes jeux de données
Par exemple :
NIST, PRISM, …
@AmauryCrickx#dv14ievn
Modalités d’authentification
1. Phrase clé « Ma voix est mon mot de passe »
Enrôlement : répéter 3 fois la phrase
@AmauryCrickx#dv14ievn
Modalités d’authentification
Reconnaissance
Vocale
Intonation Flot Robuste
au bruit
1. Phrase clé « Ma voix est mon mot de passe »
@AmauryCrickx#dv14ievn
Modalités d’authentification
• Pas 2 enregistrements identiques
• Détection de traitements numériques
1. Phrase clé « Ma voix est mon mot de passe »
@AmauryCrickx#dv14ievn
Modalités d’authentification
• Plus difficile à obtenir
• Détection de traitements numériques
2. Phrase aléatoire « correct cheval batterie agrafe »
Enrôlement : lire une (longue) liste de mots
@AmauryCrickx#dv14ievn
Modalités d’authentification
• Vérificateur humain
• Encore plus difficile à contrefaire
• Détection de traitements numériques
• Sensible au bruit environnant
3. En continu au cours d’une conversation
Enrôlement : première conversation vérifiée
@AmauryCrickx#dv14ievn
Vérification à facteurs multiples
Savoir Posséder Etre
Mot de passe
Question / réponse
Générateur
de Token
Biométrie
@YourTwitterHandle#DVXFR14{session hashtag} @AmauryCrickx#dv14ievn
@AmauryCrickx#dv14ievn
En résumé
• Technologie mature
• Coût faible
• Meilleure expérience
utilisateur
• Sensibilité au bruit
• Variabilité de la voix
• Statistique par nature
@YourTwitterHandle#DVXFR14{session hashtag} @AmauryCrickx#dv14ievn
@AmauryCrickx#dv14ievn
Crédit image / Creative Commons
• Rue pavée — By-Nc-Sa
•http://www.flickr.com/photos/22914687@N05/4957591422/sizes/l/
• Sous la Tour Eiffel — By-Nc-Sa
•http://www.flickr.com/photos/stewiedewie/244850735/sizes/l/in/photostream/
• Sous le pont — photo par B.Monginoux - By-Nc-Nd
•http://www.landscape-photo.net/displayimage.php?pid=5194
• Le Louvre – Photo par Anthony Gaudun - By-Nc-Sa
•http://www.flickr.com/photos/anthonygaudun/7474397964/sizes/o/in/photostream/
• Slide template created by @glaforge, completed by @nmartignole for Devoxx FR2014

Identification d'une empreinte vocale pour les Nuls