FR 3063377 A1 20180831 FR 1770203 A 20170228 1 TITRE Diarisation audio par classification séquentielle avec réduction d'espace DOMAINE TECHNIQUE DE L'INVENTION La présente invention concerne une méthode et un système de traitement pour la séparation de locuteurs dans une conversation audio. L'invention permet, dans l'ordre: l'analyse d'une source audio - fichier ou capture microphone - par un processus d'apprentissage non-supervisé; la réduction, par une méthode de regroupement, du nombre de paramètres du signal audio; la classification par groupes de caractéristiques dominantes; la séparation des locuteurs, ou l'identification du locuteur, en mode prédictif. ETAT DE LA TECHNIQUE ANTÉRIEURE La diarisation est le processus de traitement des intervalles audio en identifiant d'abord des groupes homogènes par rapport à un ensemble de caractéristiques de signal, suivi de leur classification par association à l'identité d'un locuteur lors d'une conversation. La technique de diarisation est un exemple typique de processus d'intelligence artificielle, avec une phase d'apprentissage pour déterminer une trame de modèle et une phase de classification qui associe un flux audio au modèle afin de fournir une estimation d'identification des locuteurs en présence. Les techniques actuelles appliquent toutes une méthode "d'apprentissage supervisé" caractérisée par l'extraction d'un nombre de caractéristiques du signal à partir d'un corpus de données audio de référence et de produire une configuration de modèle. Le volume des caractéristiques nécessaires est assez important, ce qui requiert une puissance de calcul conséquente et ne permet pas, en principe, une prédiction en temps réel. Citation de brevets: - Speaker Separation in diarisation - U520140074467 Ai, dépôt le 3 sept. 2013 - Method and system for speaker diarisation - U58554563 B2, 11 dépôt le sept. 2012 EXPOSÉ DE L'INVENTION La Figure 1 récapitule les différentes étapes qui composent l'architecture globale du traitement durant la phase d'apprentissage. La source audio, quelle que soit sa nature (fichiers de différents format, flux, ...), est décodée et découpée en petits intervalles de base, typiquement de quelques millisecondes à quelques dizaines de millisecondes. Des descrip- teurs de bas niveau (classiquement MFCC, mais de multiples choix sont possibles et tous peuvent être combinés) sont calculés sur chacun de ces intervalles de base. Chaque descripteur est un nombre réel ou complexe. Les données ainsi découpées/re-projetées dans un espace de descripteurs passent alors par un premier module, « classification de niveau I ». Ce module est décrit plus en détail dans la Figure 2. Le module permet d'identifier, dans l'espace des descripteurs, des groupes récurrents de données. Une fois ces groupes identifiés, les données en entrée peuvent être résumées par les groupes observés au cours du temps. Les indices de ces groupes sont agglomérés en des vecteurs colonne pour synthétiser les propriétés du signal en entrée sur des périodes de temps plus larges que la fenêtre de bas niveau. Le second module « classification de niveau II » travaille alors dans un espace de plus faible dimension. Prenant en entrée les vecteurs « résumé », ce module vise à construire un vecteur résumé pour chaque locuteur prenant la parole dans les données d'appren- tissage. Pour ce faire, il effectue une classification en T groupes - où T est le nombre de locuteurs - de tous les vecteurs résumé fournis en entrée. Dans la Figure la tous les descripteurs (réels ou complexes) calculés sur un intervalle de base sont réunis dans un vecteur colonne. Si N descripteurs sont calculés, le vec55 teur colonne comporte N lignes. Chaque intervalle de base est alors représenté par un vec- 3063377 2 teur de descripteurs. Un choix est fait sur l'ordre dans lequel les descripteurs sont réunis dans le vecteur colonne. Ce choix peut être arbitraire, mais la même convention doit être adoptée pour chaque vecteur colonne. 5 Dans la Figure lb les vecteurs de descripteurs associés à chaque intervalle de base sont concaténés horizontalement pour former une matrice. Si les données d'apprentissage contiennent K intervalles de base, on dispose de K vecteurs de descripteurs ordonnés dans le temps. La matrice des données d'apprentissage comporte alors K colonnes, où chaque colonne est associée à un intervalle de base et décrit son contenu. Chaque case d'une co- 10 lonne est associée à un descripteur en particulier ; les différents descripteurs sont toujours ordonnés de la même manière, conformément à l'opération de création des vecteurs décrite dans la Figure 1 a. Dans la Figure 1 c un algorithme de classification non supervisée est appliqué aux 15 colonnes de la matrice des données d'apprentissage décrite Figure 1 b. Le choix de l'algorithme et des métriques de travail est libre et fonction des applications, toutes les possibilités classiques (k-moyennes, classifications hiérarchiques, fondées sur la densité, ...) sont envisageables. L'algorithme travaille dans un espace de dimension N, où N est le nombre de lignes de la matrice. L'algorithme regroupe les K colonnes en L groupes de colonnes. L est 20 fixé arbitrairement, on impose seulement que L soit faible devant K le nombre de colonnes, et que L soit grand devant le nombre de personnes qui prennent la parole dans les données d'apprentissage considérées. Pour chaque groupe i appartenant à [1, L], on calcule G la moyenne des colonnes appartenant au groupe i. La notion de moyenne est dépendante de la distance utilisée ; le choix de la distance peut être quelconque et adapté aux différents 25 cas d'utilisation pour des résultats optimaux. G est lui aussi un vecteur colonne de taille N. On associe à G son label i. La collection des vecteurs G et leurs labels peut être sauvegardée. Dans la Figure ld on associe à chaque colonne de la matrice des données d'appren- 30 tissage (décrite Figure lb.) un label i. Ce label est celui du vecteur G (collection des vecteurs G décrite Figure 1c.) le plus proche de la colonne courante. En pratique, on calcule pour chaque colonne de la matrice des données d'apprentissage une distance à chacun des vecteurs G ; pour chaque colonne de la matrice, on retient la distance minimale parmi toutes les distances entre la colonne et les vecteurs G et on note le label i associé. Le label est un 35 entier compris entre 1 et L. Le choix de la distance est quelconque et peut être adapté aux différents cas d'utilisation. On obtient alors un vecteur ligne de taille K, où chaque case contient un label. À chaque case/label correspond une colonne dans la matrice des données d'apprentissage. On appelle ce vecteur « vecteur de groupes dominants ». 40 On construit à partir du vecteur de groupes dominants une matrice des groupes do- minants. Pour ce faire, on considère une fenêtre glissante W de taille A. A est fixé tel qu'une délimitation corresponde à une durée « raisonnable » de signal, susceptible de bien représenter un locuteur tout en restant suffisamment faible pour permettre des prédictions à des échelles de temps faibles. On vise typiquement des durées de l'ordre de la seconde, et eu 45 égard à la taille de la fenêtre d'analyse de bas niveau (Figure 1) A est de l'ordre de quelques dizaines à quelques centaines. La fenêtre glissante permet de délimiter successivement les cases 1 à A, puis 2 à A+1, 3 à A+2 etc. du vecteur de groupes dominants. Pour chaque délimitation, on construit 50 un vecteur colonne de taille L où L est le nombre de labels défini dans la Figure lc. Chaque case i du vecteur colonne contient un entier qui représente le nombre de fois où le label i est apparu sur la délimitation. Le vecteur colonne somme donc toujours à A, et chacune de ses cases est un entier compris entre 0 et A. Ce vecteur est représentatif des labels apparus et de leur fréquence sur une délimitation de taille A. 3063377 3 En faisant glisser la fenêtre de taille A sur le vecteur de groupes dominants de taille K, on peut construire K-A+1 délimitations. Chacune de ces délimitations étant associée à un vecteur colonne de taille L, on construit par concaténation horizontale (ordonnée dans le temps) une matrice des groupes dominants à L lignes et K-A+1 colonnes. 5 Dans la Figure le la matrice des groupes dominants permet de représenter de manière synthétique le contenu du signal d'entrée, dans un espace de dimension L. Chaque colonne représente la liste et le nombre d'occurrences des groupes dominants (tels que définis Figure 1d.) apparus sur une délimitation de taille A - qui correspond à une durée du 10 signal original de A fois la taille de la fenêtre d'analyse de bas niveau. Le coefficient d'indice j de la matrice des groupes dominants est donc un entier compris entre 0 et A, qui indique combien de fois le label ri' a été trouvé dominant sur la délimitation de j à A+j des cases du vecteur de groupes dominants (défini Figure 1d.). 15 La Figure 2 récapitule les étapes qui constituent la classification de niveau I, telle que représentée dans la Figure 1. Dans le module « calcul descripteurs de bas niveau », des descripteurs de bas niveau sont calculés sur chaque intervalle de base, générant ainsi un vecteur colonne de taille N par intervalle de base (Figure la.). Dans le module « calcul matrice de données d'apprentissage », ces vecteurs colonne, ordonnés dans le temps, sont 20 concaténés horizontalement pour former une matrice à N lignes et K colonnes (Figure lb.). Dans le module « calcul de la collection des centres de gravité et du vecteur de groupes dominants », les K colonnes sont classifiées dans un espace de dimension N en L groupes distincts. Chaque colonne est alors associée au label du groupe auquel elle a été rattachée, ce qui permet de construire un vecteur ligne de taille K, « vecteur de groupes dominants ». 25 Ces opérations sont décrites dans les Figures 1c. et 1d. Un module « calcul matrice des groupes dominants » transforme enfin ce « vecteur de groupes dominants » en une matrice des groupes dominants, décrite Figure 1 e. Pour ce faire, on considère une succession de fenêtres sur le vecteur des groupes dominantes, et construit pour chaque fenêtre un vecteur colonne de taille L, où chaque case i contient un entier représentant le nombre de fois où le 30 label i est apparu sur la fenêtre. Ces vecteurs sont alors concaténés pour former la matrices des groupes dominants (construction décrite Figure 1d.). Comme dans la Figure 2a on cherche alors - première étape de la classification de niveau II - à identifier au sein des colonnes de la matrice des groupes dominants des 35 groupes cohérents. Un algorithme de classification non supervisée est appliqué aux colonnes de la matrice des groupes dominants décrite Figure 1 e. Le choix de l'algorithme et des métriques de travail est libre et fonction des applications, toutes les possibilités classiques (k-moyennes, classifications hiérarchiques, fondées sur la densité, ...) sont envisageables ; la dynamique peut également être utilisée comme source complémentaire d'infor- 40 mation, les différentes colonnes étant ordonnées dans le temps. L'algorithme travaille cette fois dans un espace de dimension L, où L est le nombre de lignes de la matrice des groupes dominants. Il est à noter que les données d'entrée possèdent des coefficients d'entrée entiers, et se répartissent donc sur une grille dans l'espace complet. L'algorithme regroupe les K-A+1 (cf. Figure 1d.) colonnes en T groupes de colonnes. T doit être le nombre de locu- 45 teurs, qui est un des paramètres de la méthode. Pour chaque groupe i où i est un entier entre 1 et T, on calcule H la moyenne des colonnes appartenant au groupe i. La notion de moyenne est dépendante de la distance utilisée ; le choix de la distance peut être quelconque et adapté aux différents cas d'utilisation pour des résultats optimaux ; en tout état de cause, les coefficients de H ne sont pas nécessairement entiers. Chaque vecteur H est un 50 vecteur colonne de taille L, « vecteur représentatif », représentatif des caractéristiques audio du locuteur i. Dans la Figure 2b les T vecteurs représentatifs construits (Figure 2a.) sont alors concaténés horizontalement pour former une matrice à L lignes et T colonnes. On appelle cette 55 matrice « matrice modèle », parce qu'elle modélise chacun des locuteurs apparaissant dans 3063377 4 les données d'entraînement. En effet, chaque colonne correspond à un vecteur H représentatif du locuteur i. La Figure 3 récapitule les étapes qui constituent la classification de niveau Il, telle 5 que représentée dans la Figure 1. Dans le module « calcul des centres de gravité », on identifie T groupes cohérents de colonnes de la matrice des groupes dominants (Figure 2a.), où T est le nombre de locuteurs prenant la parole dans les données d'entraînement. Puis pour chaque groupe, on retient un vecteur H moyenne des éléments du groupe, où i est un entier entre 1 et T. Le module « calcul matrice modèle » regroupe alors les différents vec10 teurs H pour former une « matrice modèle », qui représente les différents locuteurs et permettra par la suite la prédiction. La Figure 4 récapitule les différentes étapes qui composent l'architecture globale du traitement durant la phase de prédiction. La source audio, quelle que soit sa nature (fichiers 15 de différents format, flux, ...), est décodée et découpée en petits intervalles de base. Ces intervalles doivent être de la même longueur (en temps) que les intervalles utilisés durant la phase d'apprentissage (Figure 1). Les mêmes descripteurs de bases que ceux utilisés Figure 1 sont calculés, et stockés dans des vecteurs colonne de taille N. Pour faire une prédiction, on n'extrait qu'une longueur de signal suffisante pour former une fenêtre glissante 20 (taille A), telle que décrite Figure 1d. Il est tout à fait possible d'encapsuler ce système dans une boucle, qui permettra de renvoyer toute une série de prédictions en lisant l'intégralité de la source audio. Dans le module « création matrice collection de descripteurs », décrit plus en détail 25 dans la Figure 4a., les différents vecteurs de descripteurs sont concaténés horizontalement (et de manière ordonnée), pour former une matrice qui regroupe les descripteurs. Ce processus est similaire à la construction de la matrice des données d'apprentissage, décrit dans la Figure 1 b. 30 Dans le module « calcul des groupes dominants », décrit plus en détails Figure 4b., on réassocie chaque colonne de la matrice des descripteurs à un label i. Ce label est choisi en identifiant, parmi la collection des vecteurs G calculés précédemment (Figure 1c.), lequel est le plus proche de la colonne courante. 35 Puis, dans le module « calcul du vecteur de groupes réduit », on résume les labels identifiés par le module précédent en un unique vecteur colonne de taille L. Chaque case i de ce vecteur contient le nombre d'occurrences du label i dans le vecteur renvoyé par le module de « calcul des groupes dominants ». Ce processus est similaire à celui décrit dans la Figure 1d, et est décrit plus en détail dans la Figure 4c. 40 Enfin, le module « calcul distance minimale dans l'espace modèle » cherche à rapprocher le vecteur résumé issu du module « calcul du vecteur de groupes réduit » des différentes colonnes H, où i est un entier entre 1 et T, dont le calcul est décrit Figure 2a. L'indice i de la colonne la plus proche désigne le locuteur parlant sur le segment fourni en entrée. Dans la Figure 4a pour chaque intervalle de base (tel que défini dans la Figure 1), on dispose d'un vecteur colonne de taille N contenant N descripteurs de base. On concatène horizontalement A vecteurs successifs. On obtient une matrice à N lignes et A colonnes, « matrice collection de descripteurs ». Comme décrit dans la Figure 4b on associe à chaque colonne de la « matrice collection de descripteurs » un label i. Ce label est celui du vecteur G (collection des vecteurs G décrite Figure 1c.) le plus proche de la colonne courante. En pratique, on calcule pour chaque colonne de la « matrice collection de descripteurs » une distance à chacun des vec- 45 50 3063377 5 teurs G ; pour chaque colonne de la matrice, on retient la distance minimale parmi toutes les distances entre la colonne et les vecteurs G et on note le label i associé. Le label est un entier compris entre 1 et L. Le choix de la distance est quelconque et peut être adapté aux différents cas d'utilisation. On obtient alors un vecteur ligne de taille A, où chaque case con- 5 tient un label. À chaque case/label correspond une colonne dans la matrice des données d'apprentissage. On appelle ce vecteur « vecteur de groupes dominants ». Comme décrit dans la Figure 4c, a partir du vecteur ligne de groupes dominants, on construit un vecteur colonne résumé des groupes dominants. Chaque case i du vecteur colonne contient un entier qui représente le nombre de fois où le label i est apparu dans le vecteur 10 ligne. Le vecteur colonne somme donc à A, et chacune de ses cases est un entier compris entre 0 et A. Ce vecteur est représentatif des labels apparus et de leur fréquence sur le vecteur ligne des groupes dominants. Il ne reste qu'à rapprocher ce vecteur des colonnes de la « matrice modèle » définie dans la Figure 2b pour identifier le locuteur. 15 DESCRIPTION DES DESSINS Figure 1. Méthode - chaîne de traitement Figure 1 a. Vecteur de descripteurs de bas niveau DBN pour un intervalle de base Figure lb. Matrice de données d'apprentissage Figure 1c. Espace pour la création du vecteur des groupes dominants 20 Figure 1d. Vecteur de groupes dominants Figure 1 e. Matrice des groupes dominants Figure 2. Classification niveau I Figure 2a. Espace pour la création de la matrice Modèle Figure 2b. Matrice Modèle 25 Figure 3. Classification niveau II Figure 4. Système - prédiction Figure 4a. Matrice collecteur de descripteurs en prédiction Figure 4b. Vecteur de groupes dominants en prédiction Figure 4c. Vecteur résumé 30 MODE DE RÉALISATION L'invention peut se matérialiser sous plusieurs formes. Une première possibilité est d'encapsuler la méthode dans une librairie informatique. Cette librairie fournit deux fonctions-interface, l'une pour l'apprentissage, l'autre pour la prédiction. Chacune de ces fonc- 35 tions peut recevoir en entrée indifféremment l'adresse d'un fichier, l'adresse d'un flux ou d'un périphérique. La fonction ne retourne pas de données tant que la fonction d'apprentissage n'a pas été appelée. La fonction d'apprentissage lit les données en entrée (selon le type de données) jusqu'à la fin du fichier, ou l'interruption du flux. Une fois les données lues, elles sont traitées selon la méthode précédemment décrite; les paramètres d'apprentissage sont 40 alors sauvegardés. Sous réserve d'une exécution précédente de la fonction d'apprentissage, la fonction de prédiction lit les données en entrée (selon le type de données) jusqu'à la fin du fichier, ou l'interruption du flux. Elle retourne une liste de prédictions à chaque instant des données en entrée. La librairie peut être compilée pour toutes les plateformes standard (machines de bureau, smartphone, clusters, ...). 45 Il est également possible d'inclure la méthode directement au sein d'une application pour téléphone mobile. Cette application permet à l'utilisateur, via une interface graphique, de désigner des données audio qui auraient déjà été enregistrées. Après analyse, l'utilisateur a alors la possibilité ou de désigner de nouvelles données enregistrées de même nature 50 pour (à simple titre d'exemple) une découpe automatique et le renvoi de fichiers séparés pour chaque locuteur, ou de sauvegarder pour (à titre d'exemple) analyse future. Enfin, tout logiciel au sens large sur les différents systèmes d'exploitation permet d'implémenter la méthode décrite. Le logiciel doit simplement prévoir une interface pour dé- 3063377 6 signer une source audio permettant l'apprentissage, une fonction de sauvegarde des données résultants, et une interface pour désigner une source audio à analyser. APPLICATION INDUSTRIELLE 5 Les domaines d'application du système exposé dans l'invention couvre une multitude de domaines de l'économie, dont on mentionne quelques exemples: - Santé: automatisation de l'analyse fine du comportement en psychopathologie Les chercheurs en psychopathologie ont souvent recours à des mesures fines du 10 comportement et des interactions sociales. Ainsi, certaines études examinent des enregistrements de dialogues entre de jeunes enfants autistes et leurs mères. Parmi les mesures nécessaires à cette analyse se trouvent les temps de parole, les temps de réponse, et les taux d'interruptions. Le plus souvent, ces mesures sont faites manuellement et sont par conséquent chronophages. Un outil de séparation des voix 15 permettrait un gain de temps considérable. - Centres d'appel: analyse des conversations avec les clients De plus en plus de centres d'appel exploitent la reconnaissance vocale et à l'analyse sémantique pour mieux analyser les conversations de leurs opérateurs avec leurs 20 clients. Lorsque les conversations sont enregistrées sur un seul canal audio, il est difficile d'analyser correctement une conversation sans avoir au préalable séparé les voix des locuteurs. L'outil de diarisation présenté ici répondrait à ce besoin. - Enregistrements de réunion en présentiel 25 Avec la popularisation des services de reconnaissance vocale, de nombreux profes- sionnels souhaitent pouvoir garder une trace écrite automatiquement rédigée de leurs réunions en présentiel. La diarisation permettrait de restituer les prises de parole à partir de la transcription brute. 30 - Trading Certaines banques maintiennent des lignes téléphoniques ouvertes en permanence et qui relient des salles de marchés. Ceci leur permet de garder une trace utile pour la résolution de conflit, le reporting, et d'autres tâches. Pour des raisons économiques, ces lignes sont souvent mutualisé en un seul canal. La diarisation permet- 35 trait une séparation des locuteurs pour une ré-écoute ciblée sur un locuteur spéci- fique. REVENDICATIONS1. Méthode pour la conception d'un logiciel de séparation de locuteurs dans une conversation audio par des classifications avec réductions successives du nombre de caractéristiques, la méthode comportant : l'acquisition d'un flux audio, par tranches de temps typiquement de quelques milli- condes à quelques dizaines de millisecondes ; le calcul, pour chacune de ces tranches de temps, d'un ensemble de descripteurs de bas niveau ; la classification par le regroupement des descripteurs de bas niveau dans des grappes 10 labellisées par des indicateurs entiers ; la classification de l'ensemble des grappes générées sur un intervalle plus large, composé de plusieurs tranches de temps de base successives ; la réduction des grappes dominantes sur un ensemble de tranches de temps successives, au nombre estimé de locuteurs, générant une matrice du modèle des locuteurs à identi- 15 fier ; la prédiction, avec action de séparation, des locuteurs lors d'une conversation enregistrée ou en temps réel ; 2. Méthode selon la revendication 1, comportant une unité d'apprentissage non-supervisé pour la création d'un modèle, sous la forme d'une matrice en mémoire ou dans un 20 fichier, pour l'identification des locuteurs. 3. Méthode selon la revendication 2, comportant une unité de classification en deux phases, avec réduction successive du nombre de caractéristiques nécessaires à la création du modèle. 4. Méthode selon la revendication 1, comportant une unité de prédiction utilisant un 25 modèle construit selon la revendication 2. 5. Système selon la revendication 1 pour la séparation de deux ou plusieurs locuteurs en conversation en temps réel, avec un résultat sur l'identification du locuteur sur une interface graphique ou textuelle, ou dans des fichiers sur l'unité de stockage d'un ordinateur. 6. Système selon la revendication 1 pour la séparation de deux ou plusieurs locuteurs 30 d'un enregistrement d'une conversation audio, comportant un module de traitement et un module de sauvegarde des segments émis par chaque locuteur dans des fichiers sur l'unité de stockage d'un ordinateur. 35