Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD OF PROCESSING AUDIO DATA FROM A VOCAL EXCHANGE, CORRESPONDING SYSTEM AND COMPUTER PROGRAM
Document Type and Number:
WIPO Patent Application WO/2018/077987
Kind Code:
A1
Abstract:
The invention relates to a method and a system for processing audio data, the audio data coming from a vocal exchange between at least two speakers. The method comprises a processing phase (P20) for processing audio data which includes a speaker identification step (P202) comprising a step of dividing said audio data, according to at least one pause model, delivering a set of segmented audio data. According to the invention, the method comprises, for at least one current audio data item of the set of segmented audio data, recognition of at least one uttered word and the identification of the speaker having uttered the word on the basis of reference vocal identification data and current vocal identification data coming from the segmented audio data.

Inventors:
PRIEM XAVIER (FR)
RIDE YVAN (FR)
GABAL AHMED (FR)
WANG XINGJUN (FR)
Application Number:
PCT/EP2017/077373
Publication Date:
May 03, 2018
Filing Date:
October 25, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
VOXPASS (FR)
International Classes:
G10L17/06; G10L15/26
Foreign References:
US20160217792A12016-07-28
US6081782A2000-06-27
Other References:
KOFI BOAKYE ET AL: "Text-Constrained Speaker Recognition on a Text-Independent Task", ODYSSEY04 -- THE SPEAKER AND LANGUAGE RECOGNITION WORKSHOP, 31 March 2004 (2004-03-31), XP055391877, Retrieved from the Internet [retrieved on 20170718]
HAN K J ET AL: "Forensically inspired approaches to automatic speaker recognition", 2011 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING : (ICASSP 2011) ; PRAGUE, CZECH REPUBLIC, 22 - 27 MAY 2011, IEEE, PISCATAWAY, NJ, 22 May 2011 (2011-05-22), pages 5160 - 5163, XP032001844, ISBN: 978-1-4577-0538-0, DOI: 10.1109/ICASSP.2011.5947519
GERALDINE DAMNATI ET AL: "Robust speaker turn role labeling of TV Broadcast News shows", 2011 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS, SPEECH AND SIGNAL PROCESSING : (ICASSP 2011) ; PRAGUE, CZECH REPUBLIC, 22 - 27 MAY 2011, IEEE, PISCATAWAY, NJ, 22 May 2011 (2011-05-22), pages 5684 - 5687, XP032001975, ISBN: 978-1-4577-0538-0, DOI: 10.1109/ICASSP.2011.5947650
TRIDIBESH DUTTA: "Text Dependent Speaker Identification Based on Spectrograms", PROCEEDINGS OF OF IMAGE AND VISION COMPUTING NEW ZEALAND 2007, 1 December 2007 (2007-12-01), pages 238 - 243, XP055391959
Attorney, Agent or Firm:
VIDON BREVETS & STRATÉGIE (FR)
Download PDF:
Claims:
REVENDICATIONS

Procédé de traitement de données audio, lesdites données audio étant issues d'un échange vocal entre au moins deux locuteurs, ledit procédé comprenant une phase de traitement (P20) des données audio comprenant une étape d'identification de locuteur (P202) laquelle comprend une étape de découpage desdites données audio, en fonction d'au moins u n modèle de pause, délivrant un ensemble de données audio segmentées, ledit procédé étant caractérisé en ce qu'il comprend, pour au moins donnée audio courante dudit ensemble de données audio segmentées :

au moins une étape de reconnaissance vocale (10) de ladite donnée audio courante, mise en œuvre par l'intermédiaire d'au moins un moteur de reconnaissance vocale, délivrant au moins un mot reconnu ou un indicateur d'absence de reconnaissance ; lorsqu'au moins un moteur de reconnaissance vocale délivre au moins un mot reconnu (20) :

une étape de recherche (201), au sein d'une basse de données, d'au moins un mot de référence correspondant audit au moins u n mot reconnu, délivrant au moins une donnée d'identification vocale de référence ;

une étape d'obtention (202), à partir de ladite donnée aud io courante, d'une donnée d'identification vocale courante ;

une étape de calcul (203) d'au moins une correspondance entre ladite donnée d'identification vocale courante et ladite au moins une donnée d'identification vocale de référence, délivrant au moins un score de correspondance ; et lorsqu'un score de correspondance excède un seuil prédéterminé (205), une étape d'attribution (206) de ladite donnée audio courante à l'un desdits au moins deux interlocuteurs.

Procédé selon la revendication 1, caractérisé en ce que l'étape d'obtention (202), à partir de ladite donnée audio courante, d'une donnée d'identification vocale courante comprend :

une étape d'application, sur ladite donnée audio courante, laquelle prend la forme d'un signal audio x(t) monodimensionnel, d'une transformée de Fourier à court terme (TFCT), délivrant une matrice X, dite matrice d'énergie, de taille mxn, m canaux fréquentiels et n trames temporelles et dont l'échelle de fréquence est comprise entre O et 1kHz ;

une étape de normalisation des valeurs de ladite matrice X, délivrant une matrice normalisée laquelle constitue la donnée d'identification vocale courante.

Procédé selon la revendication 2, caractérisé en ce que l'application de ladite transformée de fourrier à court terme sur ledit signal audio x(t) mono dimensionnel est effectué à un pas de temps de 40 ms.

Procédé selon la revendication 2, caractérisé en ce que les valeurs des éléments de la matrice normalisée sont comprises entre 0 et 100.

Procédé selon la revendication 2, caractérisé en ce que ladite au moins une donnée d'identification vocale de référence se présente également sou la forme d'une matrice d'énergie normalisée, préalablement enregistrée au sein de ladite base de données. Procédé selon la revendication 1, caractérisé en ce que l'étape de calcul (203) d'au moins une correspondance, délivrant le score de correspondance, comprend une étape de détermination d'une valeur de corrélation de Pearson de la donnée d'identification vocale courante et de ladite au moins une donnée d'identification vocale de référence.

Procédé selon la revendication 1, caractérisé en ce qu'il comprend, préalablement à ladite phase de traitement (20), une phase d'obtention (P10), pour chacun desdits au moins deux locuteurs, d'une empreinte vocale individuelle comprenant lesdites données d'identification vocale de référence.

Procédé selon la revendication 1, caractérisé en ce que ladite phase de traitement comprend en outre les étapes suivantes :

enregistrement (P201), sous la forme d'au moins un flux audio principal dudit échange verbal ;

lorsqu'aucun flux audio n'existe pour le locuteur courant (P203), création (P204) d'un flux audio propre au locuteur courant ;

marquage temporel (P205), dans ledit au moins un flux audio principal et dans ledit flux audio propre, en utilisant une donnée représentative dudit locuteur courant. Système de traitement (SystTt) traitement de données audio, lesdites données audio étant issues d'un échange vocal entre au moins deux locuteurs, ledit système comprenant un moteur de traitement de locuteur (MTrtUsrs), qui comprend des moyens d'identification de locuteur comprenant des moyens de découpage desdites données audio, en fonction d'au moins un modèle de pause, délivrant un ensemble de données audio segmentées, ledit système étant caractérisé en ce qu'il comprend, pour au moins donnée audio courante dudit ensemble de données audio segmentées : des moyens de reconnaissance vocale de ladite donnée audio courante, mise en œuvre par l'intermédiaire d'au moins un moteur de reconnaissance vocale, délivrant au moins un mot reconnu ou un indicateur d'absence de reconnaissance ;

des moyens de recherche, au sein d'une basse de données, d'au moins un mot de référence correspondant audit au moins un mot reconnu, délivrant au moins une donnée d'identification vocale de référence ;

des moyens d'obtention à partir de ladite donnée audio courante, d'une donnée d'identification vocale courante ;

des moyens de calcul d'au moins une correspondance entre ladite donnée d'identification vocale courante et ladite au moins une donnée d'identification vocale de référence, délivrant au moins un score de correspondance ; et des moyens d'attribution (206) de ladite donnée audio courante à l'un desdits au moins deux interlocuteurs, mis en œuvre lorsqu'un score de correspondance excède un seuil prédéterminé.

Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou stocké sur un support lisible par ordinateur et/ou exécutable par un microprocesseur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution d'un procédé de traitement selon la revendication 1 à 8, lorsqu'il est exécuté sur un processeur.

Description:
Procédé de traitement de données audio issues d'un échange vocal, système et programme d'ordinateur correspondant.

1. Domaine

La présente technique se rapporte au traitement de données vocales d'utilisateurs. La présente technique se rapporte plus particulièrement à l'identification vocale d'utilisateurs qui souhaitent avoir accès à un ensemble de services par l'intermédiaire de leurs empreintes vocales. Plus spécifiquement encore, il est présenté une technique d'accès à un service en ligne comprenant une ségrégation et une segmentation multi voix.

2. Art Antérieur

L'interaction grandissante de l'homme avec le monde numérique va requérir une utilisation renforcée de la reconnaissance vocale, notamment en s'étendant à la relation entre l'être humain et les objets. Les modes d'interaction les plus connus sont les claviers, les souris, les écrans et surfaces tactiles... La voix n'est aujourd'hui utilisée que comme outil de contrôle de services simples (réponse vocale interactive IVR, de l'anglais pour « Interactive Voice Response », sélection de choix sur des automates vocaux ayant remplacé les standardistes). Le contrôle vocal pénètre également les usages automobiles, pour les fonctions non vitales comme la sélection de destination du système de navigation ou le contrôle du volume sonore de l'autoradio. Ainsi, l'introduction massive d'intelligence numérique dans des objets de la vie courante, du réfrigérateur connecté à la voiture, en passant par des services de type « Smart City » (ville intelligente), entraine un besoin crucial d'un interfaçage efficace et acceptable par tout type de public avec son environnement.

Il n'est pas possible de converser de façon complexe avec un objet ou un automate comme de nombreux auteurs de science-fiction ont pu l'imaginer. Des progrès ont été faits, mais à la fois le taux de reconnaissance et la prise en compte de la complexité de la conversation sont encore à améliorer. Le monde numérique ne sera vraiment accessible à tout le monde que lorsque tout le monde peut interagir naturellement et intuitivement avec celui- ci. Pour ce faire, il est nécessaire d'améliorer le taux de la reconnaissance vocale d'une part et d'améliorer la capacité d'un système l'utilisant à rendre une transcription correcte de l'échange vocal. L'objet de la présente n'est pas de décrire de nouveaux algorithmes de reconnaissance mais plutôt de se concentrer sur le système de reconnaissance et sur son fonctionnement. La problématique de traitement audiovisuel de conférence est investiguée depuis de nombreuses années, notamment pour le traitement informatisé de conférence comprenant des participants locaux et des participants distants. On a plus particulièrement décrit et présenté des systèmes de spatialisation de conférences audio visuelles, comprenant un suivi des participants, notamment un suivi des participants prenant la parole (intervenants) par rapport à des participants spectateurs, chaque participants pouvant alternativement jouer le rôle d'intervenant et de spectateur. Par ailleurs, la problématique d'identification et de reconnaissance de la parole a également été investiguée depuis de nombreuses années, essentiellement selon deux axes qui sont d'une part la reconnaissance et la retranscription de la parole en texte et d'autre part l'identification vocale de locuteur. Les techniques de reconnaissance et la retranscription de la parole se divise essentiellement en deux catégories : d'une part les techniques « universelles » qui ne visent pas particulièrement un utilisateur et qui permettent de reconnaître des ordres ou des instructions simples (il s'agit des IVR ou des assistants vocaux de type SI RI™ ou Google Talk™). Les techniques mises en œuvre en visent pas particulièrement à reconnaître un utilisateur spécifique, mais sont adaptées à la reconnaissance de tout type d'utilisateur, et ce sans nécessiter d'apprentissage particulier. A l'inverse, les techniques « spécifiques », mises en œuvre par exemple dans des logiciels bureautiques de reconnaissance, sont basées sur un apprentissage préalable de la voix, de la diction et plus généralement de la manière de parler d'un utilisateur, et ce dans le but de retranscrire de la manière la plus fidèle possible, les textes dictés par l'utilisateur.

Chacune des techniques décrites précédemment est associée à une problématique donnée et indépendante. IL n'existe pas de solution multiplexée qui puisse répondre à d'autres besoins. Il existe donc un besoin de fournir une solution de reconnaissance flexible, pouvant s'adapter en fonction d'un contexte donné, et plus particulièrement en fonction d'un contexte de conférence.

3. Résumé de l'invention

La technique proposée ne présente pas ces inconvénients de l'art antérieur. Plus particulièrement, la technique proposée se rapporte à un procédé de traitement de données audio, lesdites données audio étant issues d'un échange vocal entre au moins deux locuteurs, ledit procédé comprenant une phase de traitement des données audio comprenant une étape d'identification de locuteur laquelle comprend une étape de découpage desdites données audio, en fonction d'au moins un modèle de pause, délivrant un ensemble de données audio segmentées. Ledit procédé comprend, pour au moins donnée audio courante dudit ensemble de données audio segmentées :

au moins une étape de reconnaissance vocale de ladite donnée audio courante, mise en œuvre par l'intermédiaire d'au moins un moteur de reconnaissance vocale, délivrant au moins un mot reconnu ou un indicateur d'absence de reconnaissance ; lorsqu'au moins un moteur de reconnaissance vocale délivre au moins un mot reconnu :

une étape de recherche, au sein d'une basse de données, d'au moins un mot de référence correspondant audit au moins un mot reconnu, délivrant au moins une donnée d'identification vocale de référence ;

une étape d'obtention, à partir de ladite donnée audio courante, d'une donnée d'identification vocale courante ;

une étape de calcul d'au moins une correspondance entre ladite donnée d'identification vocale courante et ladite au moins une donnée d'identification vocale de référence, délivrant au moins un score de correspondance ; et lorsqu'un score de correspondance excède un seuil prédéterminé, une étape d'attribution de ladite donnée audio courante à l'un desdits au moins deux interlocuteurs.

Selon une caractéristique particulière, l'étape d'obtention, à partir de ladite donnée audio courante, d'une donnée d'identification vocale courante comprend :

une étape d'application, sur ladite donnée audio courante, laquelle prend la forme d'un signal audio x(t) monodimensionnel, d'une transformée de Fourier à court terme (TFCT), délivrant une matrice X, dite matrice d'énergie, de taille mxn, m canaux fréquentiels et n trames temporelles et dont l'échelle de fréquence est comprise entre O et 1kHz ;

une étape de normalisation des valeurs de ladite matrice X, délivrant une matrice normalisée laquelle constitue la donnée d'identification vocale courante. Selon une caractéristique particulière, l'application de ladite transformée de fourrier à court terme sur ledit signal audio x(t) mono dimensionnel est effectué à un pas de temps de 40 ms.

Selon une caractéristique particulière, les valeurs des éléments de la matrice normalisée sont comprises entre 0 et 100.

Selon une caractéristique particulière, ladite au moins une donnée d'identification vocale de référence se présente également sou la forme d'une matrice d'énergie normalisée, préalablement enregistrée au sein de ladite base de données.

Selon une caractéristique particulière, l'étape de calcul d'au moins une correspondance, délivrant le score de correspondance, comprend une étape de détermination d'une valeur de corrélation de Pearson de la donnée d'identification vocale courante et de ladite au moins une donnée d'identification vocale de référence.

Selon une caractéristique particulière le procédé comprend, préalablement à ladite phase de traitement, une phase d'obtention, pour chacun desdits au moins deux locuteurs, d'une empreinte vocale individuelle comprenant lesdites données d'identification vocale de référence.

Selon une caractéristique particulière, ladite phase de traitement comprend en outre les étapes suivantes :

enregistrement, sous la forme d'au moins un flux audio principal dudit échange verbal ;

lorsqu'aucun flux audio n'existe pour le locuteur courant, création d'un flux audio propre au locuteur courant ;

marquage temporel, dans ledit au moins un flux audio principal et dans ledit flux audio propre, en utilisant une donnée représentative dudit locuteur courant.

Selon un autre aspect, la présente technique se rapporte également à système conçu pour la mise en œuvre de la méthode précédemment décrite.

Selon une implémentation préférée, les différentes étapes des procédés selon la technique proposée sont mises en œuvre par un ou plusieurs logiciels ou programmes d'ordinateur, comprenant des instructions logicielles destinées à être exécutées par un processeur de données d'un module relais selon la technique proposée et étant conçu pour commander l'exécution des différentes étapes des procédés.

En conséquence, la technique proposée vise aussi un programme, susceptible d'être exécuté par un ordinateur ou par un processeur de données, ce programme comportant des instructions pour commander l'exécution des étapes d'un procédé tel que mentionné ci- dessus.

Ce programme peut utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle autre forme souhaitable.

La technique proposée vise aussi un support d'informations lisible par un processeur de données, et comportant des instructions d'un programme tel que mentionné ci-dessus.

Le support d'informations peut être n'importe quelle entité ou dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM, par exemple un CD ROM ou une ROM de circuit microélectronique, ou encore un moyen d'enregistrement magnétique, par exemple une disquette (floppy dise) ou un disque dur.

D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Le programme selon la technique proposée peut être en particulier téléchargé sur un réseau de type Internet.

Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en question.

Selon un mode de réalisation, la technique proposée est mise en œuvre au moyen de composants logiciels et/ou matériels. Dans cette optique, le terme "module" peut correspondre dans ce document aussi bien à un composant logiciel, qu'à un composant matériel ou à un ensemble de composants matériels et logiciels.

Un composant logiciel correspond à un ou plusieurs programmes d'ordinateur, un ou plusieurs sous-programmes d'un programme, ou de manière plus générale à tout élément d'un programme ou d'un logiciel apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Un tel composant logiciel est exécuté par un processeur de données d'une entité physique (terminal, serveur, passerelle, routeur, etc.) et est susceptible d'accéder aux ressources matérielles de cette entité physique (mémoires, supports d'enregistrement, bus de communication, cartes électroniques d'entrées/sorties, interfaces utilisateur, etc.).

De la même manière, un composant matériel correspond à tout élément d'un ensemble matériel (ou hardware) apte à mettre en œuvre une fonction ou un ensemble de fonctions, selon ce qui est décrit ci-dessous pour le module concerné. Il peut s'agir d'un composant matériel programmable ou avec processeur intégré pour l'exécution de logiciel, par exemple un circuit intégré, une carte à puce, une carte à mémoire, une carte électronique pour l'exécution d'un micrologiciel (firmware), etc.

Chaque composante du système précédemment décrit met bien entendu en œuvre ses propres modules logiciels.

Les différents modes de réalisation mentionnés ci-dessus ainsi que les différentes caractéristiques qui les constituent, sont combinables entre eux pour la mise en œuvre de la technique proposée.

4. Figures

D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels :

la figure 1 expose l'architecture d'un système objet de la présente ;

la figure 2 expose les différentes phases de traitement d'un flux audio ;

la figure 3 expose l'identification d'un locuteur parmi deux locuteurs possible ;

la figure 4 présente un exemple de matrice d'énergie.

5. Description

5.1. Éléments Généraux.

Comme explicité précédemment, le principe général de l'invention consiste à mettre en œuvre plusieurs moteurs de traitement et de reconnaissance de la voix, et ce au sein d'un système de traitement de la parole accessible en ligne et pouvant répondre à des besoins généraux. Le système objet de la présente est implémenté par exemple à l'aide d'une architecture de traitement distribuée (de type « cloud ») dans laquelle l'accès aux ressources (de traitement informatique) est effectué à la demande. Le système comprend d'une part un ensemble de moteurs de reconnaissance vocale, ces moteurs étant conformés pour effectuer d'une part des tâches d'identification vocale, permettant d'identifier un locuteur (la fonctionnalité d'identification vocale est décrite par la suite) et d'autre part des tâches de reconnaissance vocale (la fonctionnalité de reconnaissance vocale est décrite par la suite). Le système objet de la présente comprend également un moteur de traitement de locuteurs. Ce moteur de traitement comprend d'une part un composant de gestion de locuteurs enregistrés et un composant de traitement de locuteurs non enregistrés. Ce moteur de traitement de locuteurs comprend un ensemble d'interfaces de communication (de type « API ») avec les moteurs de reconnaissance vocale. Le composant de traitement de locuteurs enregistrés permet l'enregistrement, la mise à jour des données vocales (et notamment l'enregistrement et la mise à jour de signatures vocales) de locuteurs du système. Le composant de traitement de locuteurs non enregistrés permet l'enregistrement et le traitement, de manière automatique, de données vocales en provenance de locuteurs inconnus. La figure 1 illustre globalement l'architecture du système objet de la présente.

Le système de traitement (SystTt) comprend un moteur de traitement de locuteur (MTrtUsrs) qui comprend au moins une interface de connexion (IC) à au moins un serveur de traitement de médias (SrvTTMed). Le serveur de traitement de médias (SrvTTMed) est en charge des traitements (enregistrements, multiplexage, égalisation) des signaux audio qu'il reçoit. Le serveur de traitement de médias (SrvTTMed) est directement ou indirectement, par l'intermédiaire d'un réseau de communication (WNTWK) à un (ou plusieurs) serveur(s) de VoIP (VOIP) comprenant un logiciel de téléphonie IP idoine. Le serveur VoIP est lui-même connecté, par l'intermédiaire d'une passerelle optionnelle (GTWY) à des dispositifs de production sonore (micro, pieuvre de conférence pour salle de conférence, téléphone intelligent, ordinateur) qui sont mis en œuvre, par exemple lors de conférences téléphoniques.

Le moteur de traitement de locuteur (MTrtUsrs) comprend également des interfaces d'accès et de traitement (API) à au moins un moteur de reconnaissance vocal (ASR#1, ASR#2, etc.), lesquels comprennent chacun un accès à une base de données de traitement de données vocales (DBl, DB2, etc.). Le moteur de traitement de locuteur (MTrtUsrs) comprend également un accès à sa propre base de données de locuteurs (DBU) qui comprend notamment des profils de locuteurs (enregistrés ou non) qui ont accès au système auxquels les composants de traitement de locuteurs enregistré et non enregistrés (CTUe et CTUne) ont accès.

Le moteur de traitement de locuteur (MTrtUsrs) comprend également une interface d'accès à un serveur d'enregistrement de locuteurs (SRVEU), ce serveur comprenant des composants de mise en œuvre d'un service d'enregistrement de locuteurs. Un tel service permet aux locuteurs (qui le souhaitent) de s'enregistrer dans le système, comme cela est décrit par la suite.

Dans le cadre de la présente technique, on distingue deux tâches complémentaires qui sont mises en œuvre par le système et plus particulièrement par le moteur de traitement de locuteur (MTrtUsrs) couplé aux moteurs de reconnaissance vocale (ASR#1, ASR#2, etc.) : en premier lieu, il s'agit de l'identification de locuteur, dont l'objet est de permettre une distinction entre les locuteurs pour lesquels un flux vocal est traité. L'identification par empreinte vocale suppose que certaines caractéristiques physiques des organes vocaux, qui influencent la qualité du son de la parole, ne sont pas exactement identiques d'une personne à une autre. Ces caractéristiques sont la taille des cavités vocales, la gorge, le nez et la bouche, et la forme des muscles d'articulation de la langue, la mâchoire, les lèvres et le voile du palais. Le ou les moteurs de reconnaissance vocaux sont utilisés pour d'une part générer (éventuellement à la volée), au moins une empreinte vocale d'un locuteur. Celle-ci est par la suite utilisée par le système lors de différentes tâches, et notamment lors de la séparation de plusieurs locuteurs dans une même conversation.

En deuxième lieu, il s'agit de la reconnaissance vocale, dont l'objet est de permettre une reconnaissance des paroles prononcées par des locuteurs, afin par exemple, d'effectuer une transcription écrite de leurs de leur discours. Pour effectuer une telle reconnaissance, les techniques mises en œuvre sont classiques, à l'exception d'un algorithme de sélection adapté pour les besoins de la présente technique, algorithme, qui comme cela est présenté par la suite, permet non seulement d'utiliser des résultats de reconnaissances issus du ou des moteurs de reconnaissance, mais également d'autres paramètres.

La base de données d'identification de locuteurs (DBU) comprend notamment des informations relatives aux différents locuteurs qui sont enregistrés dans le système ; plus particulièrement, cette base de données comprend au moins une empreinte vocale unique, issue de chaque locuteur, qui permet d'identifier celui-ci, parmi tous les locuteurs enregistrés. Cette empreinte vocale unique est générée soit à l'issue d'une phase d'inscription (volontaire) du locuteur auprès du système, soit lors de l'utilisation du système par un locuteur non enregistré (par exemple lors d'une conférence comprenant plusieurs locuteurs, dont certains ou tous, ne sont pas enregistré) ou les deux. L'objet de cette base de données est notamment de permettre une différenciation des locuteurs afin d'améliorer la reconnaissance vocale de chacun de ces locuteurs. La base de données a également pour objet le traitement, le regroupement, la classification des différents flux audio attribués à l'utilisateur. En effet, on ne se contente pas de transcrire sous forme de texte, les paroles prononcées par les locuteurs : ces paroles, dialogues échanges sont également conservés dans l'objectif de pouvoir être réutilisés par la suite, par exemple pour effectuer une deuxième reconnaissance vocale, qui pourrait être de meilleure qualité, ou à des fins d'analyse statistique et de comparaison.

Ainsi, l'empreinte vocale unique qui est enregistrée dans le système pour un locuteur donné peut être obtenue d'au moins deux manières différentes.

Une première façon d'obtenir une empreinte vocale unique consiste à s'enregistrer manuellement auprès du système. Cet enregistrement manuel comprend par exemple une création d'un compte locuteur (utilisateur) dans le système, par l'intermédiaire d'un service web. La création de ce compte s'accompagne de la fourniture, par le locuteur, d'un ensemble de données vocales. Cet ensemble de données vocale peut soit être obtenu directement par la lecture d'une ou plusieurs phrases prédéterminées au moment de l'enregistrement. Afin de permettre un enregistrement simple et peu consommateur de temps, le nombre de phrases à lire est volontairement réduit (une dizaine de phrases au maximum). Une autre possibilité, lors de l'enregistrement manuel consiste à télécharger un fichier sonore que le locuteur a préenregistré en lisant un certain nombre de phrases (comme dans l'enregistrement direct en ligne). Ce type d'enregistrement au service permet d'une part, comme indiqué précédemment, de générer une empreinte unique pour le locuteur, cette empreinte étant par la suite utilisée pour identifier le locuteur ; l'enregistrement permet également, d'autre part, d'entraîner un ou plusieurs système de reconnaissance, à reconnaître la voix du locuteur.

Dans un mode de réalisation spécifique, le service en ligne dispose d'une pluralité de moteurs de reconnaissance vocale (d'éditeurs différents). Le flux vocal (en direct ou préenregistré) qui est fourni au système lors de l'enregistrement du locuteur est automatiquement transmis à ces moteurs de reconnaissance vocale, lesquels effectuent, de manière indépendante, des apprentissages de la voix du locuteur, sur la base des phrases lues par le locuteur. Ce mode de réalisation, dans lequel plusieurs moteurs de reconnaissance vocale sont utilisés, est particulièrement adapté dans la mesure où il permet de bénéficier de plusieurs technologies de reconnaissance différentes. Les modules utilisés sont des modules du commerce, fournissant chacun une interface ouverte (API) permettant d'échanger des données avec le système.

5.2. Identification et reconnaissance vocale

Un élément clé du système de l'invention réside dans la capacité du système à séparer les locuteurs puis à reconnaître les mots et phrases prononcés par ces locuteurs. L'identification du locuteur est mise en œuvre par l'intermédiaire d'une ou plusieurs empreintes vocales de ce locuteur, qui ont été préenregistrées (dans une phase préalable). Les empreintes vocales sont obtenues par l'intermédiaire de techniques connues et ne nécessitent pas de description complémentaire.

La reconnaissance vocale est quant à elle mise en œuvre par l'intermédiaire d'un ou plusieurs moteurs de reconnaissance vocale qui délivre(nt), en fonction d'un flux d'entrée, des résultats de reconnaissance auquel le moteur de traitement de locuteur (MTrtUsrs) accède. Ainsi, par exemple, pour la reconnaissance d'un mot (ou d'une phrase) prononcé(e) par un locuteur, chaque module de reconnaissance est appelé par l'intermédiaire de son interface (API). Chacun fournit, en sortie, le mot (ou la phrase), reconnu(e), ainsi qu'une éventuelle probabilité de succès de la reconnaissance, qui est ensuite utilisé par le système pour déterminer et sélectionner le résultat le plus probable, en fonction notamment d'autres paramètres et obtenir un score de véracité qui, lorsqu'il excède un seuil déterminé, est considéré comme le résultat de la transcription.

Les paramètres de sélection sont par exemple :

le nombre d'occurrences d'un mot ou d'un terme au cours de la conversation, de l'échange : si un terme a déjà été prononcé par le locuteur, la probabilité d'occurrence de ce terme est augmenté pour le reste de la conversation ;

le nombre d'occurrences d'un mot ou d'un terme au cours de la conversation, de l'échange : si un terme a déjà été prononcé par un autre locuteur, la probabilité d'occurrence de ce terme est augmenté pour le reste de la conversation ; le nombre d'occurrences d'un mot ou d'un terme au cours d'une conversation ou d'un échange archivé : si un terme a déjà été prononcé par le locuteur, par le passé, la probabilité d'occurrence de ce terme est augmenté pour le reste de la conversation ; le nombre de modules de reconnaissance qui délivrent un résultat identique (lorsque plusieurs modules sont utilisés) ;

En d'autres termes, plutôt que de se baser sur uniquement sur les résultats fournis par le(s) moteurs de reconnaissance vocale utilisés par le système, le moteur de traitement de locuteur utilise des données passées, que ce soit des données passées de la conversation ou de l'échange courant ou des données passées de conversations, d'échange ou d'enregistrements précédents, qui ont été conservés et archivés, dans la base de données de locuteurs. On présente, en relation avec la figure 2, un procédé de traitement de données vocales mis en œuvre par le présent système. Un tel procédé comprend :

une phase d'obtention (P10), pour chaque locuteur, d'une empreinte vocale individuelle ; la manière d'obtenir cette empreinte est décrite infra et supra dans des exemples de mise en œuvre ;

une phase de traitement (P20) d'au moins un flux audio issu d'un échange verbal entre les locuteurs comprenant au moins une itération des étapes suivantes :

enregistrement (P201), sous la forme d'au moins un flux audio principal dudit échange verbal ;

- identification (P202), à l'aide de l'empreinte vocale individuelle, d'un locuteur courant, parmi la pluralité de locuteur ;

lorsqu'aucun flux audio n'existe pour le locuteur courant (P203), création (P204) d'un flux audio propre au locuteur courant ;

marquage temporel (P205), dans ledit au moins un flux audio principal et dans ledit flux audio propre, en utilisant une donnée représentative dudit locuteur courant ; cette donnée représentative du locuteur courant peut avantageusement être un hasché de l'empreinte vocale du locuteur courant ; Ce procédé permet, pour un échange ou une conversation donnée, d'enregistrer, de manière séparée, les différents flux issus des différents locuteurs. Ils sont marqués temporellement, afin de pouvoir segmenter les échanges et permettre une individualisation de la prise de parole lors des échanges. Un mode de réalisation de l'identification du locuteur est présenté infra.

À l'aide des flux audio, phase de reconnaissance est mise en œuvre. En fonction des modes de réalisation elle est mise en œuvre en temps réel ou en différé. Cette phase de reconnaissance comprend au moins une itération des étapes suivantes :

transmission, à au moins un moteur de reconnaissance vocal, d'au moins une portion d'un flux audio propre (à un locuteur courant) ;

obtention, à partir dudit au moins un moteur de reconnaissance vocal, d'au moins un résultat de reconnaissance, prenant la forme d'au moins un mot reconnu ;

détermination d'un score de véracité dudit au moins un mot reconnu en fonction d'au moins un précédent résultat de reconnaissance ;

lorsque ledit score de véracité excède un seuil déterminé, ajout dudit mot reconnu à une structure de donnée de reconnaissance.

La détermination du score de véracité est mise en œuvre en fonction des différents modes de réalisation et notamment de la présence (ou non) de plusieurs moteurs de reconnaissance et de la présence (ou non) d'une probabilité de reconnaissance (fournie par le(s) moteur(s) de reconnaissance et de la disponibilité de résultats de transcription antérieurs. 5.3. Identification vocale d'un locuteur

On décrit ci-après l'identification vocale d'un locuteur, mise en œuvre par le moteur de traitement de locuteur (MTrtUsrs). L'identification vocale d'un locuteur est mise en œuvre par l'intermédiaire d'une pluralité de matrice d'énergie. Ces matrices d'énergie sont enregistrées dans la base de données d'identification de locuteurs (DBU), soit en étant directement associées à un utilisateur qui est enregistré au sein du système, soit en étant associées à un utilisateur non enregistré (utilisateur temporaire), qui est par exemple identifié durant une réunion ou durant un échange verbal. Comme explicité plus haut, lors de la mise en œuvre du système, on fait le tri entre les utilisateurs enregistrés et les utilisateurs non enregistrés (inconnu du système). Les matrices d'énergies sont créées d'une part pour enregistrer l'utilisateur et d'autre part pour reconnaître l'utilisateur lorsqu'il parle.

Enregistrement préalable du locuteur

Le principe d'identification des utilisateurs consiste à créer, à partir du flot de parole d'un locuteur, une ou plusieurs matrices d'énergie associées à ce locuteur. Supposons, à titre illustratif, nous disposons de plusieurs échantillons ou fichiers audio contenant le mot "la", à chaque fois prononcé par un même utilisateur (par exemple un utilisateur en cours d'enregistrement). Ces fichiers ou échantillon sont dans le domaine temporel. Pour l'analyse (et la classification) de ces signaux, une transformée de Fourier à court terme (TFCT) est utilisée. L'avantage de la TFCT est de pouvoir représenter les informations de domaine fréquentiel dans le domaine temporel.

Le choix du pas de temps de la TFCT est complexe. Si le pas de temps est trop faible, le nombre d'échantillons ne suffit pas, donc, les résultats de la transformée de Fourier ne sont pas fiables. Si le pas de temps est trop grand, certaines informations sont manquantes dans le domaine temporel. Pour cette raison, le pas de temps est choisi comme 40 ms.

À l'aide de la TFCT, la matrice d'énergie est calculée comme représentée dans la figure 3. Dans cette représentation illustrative, on dispose de dix fois le mot 'la', c'est-à-dire que l'utilisateur a prononcé dix fois le mot 'la' avec une intonation plus ou moins différente. Pour chacune de ces matrices, l'abscisse représente le temps, l'unité est la seconde. L'ordonnée représente la fréquence, l'unité est le Hertz (Hz). Le pas de temps est de 40 ms. Le pas de fréquence est de 50 Hz. Comme la plupart de l'énergie se trouve distribuée dans les fréquences entre 0 et 1000 Hz, la bande de fréquences est comprise entre 0 et 1000 Hz.

Après l'analyse de la TFCT, pour chaque mot, on obtient une matrice d'énergie. Nous avons choisi comme matrice d'énergie une matrice avec 24 lignes de bande de fréquence et 8 colonnes correspondent au temps. Pour comparer ces matrices, on normalise ces matrices d'énergie. La value maximale est fixée à 100.

Dans l'exemple de la figure 3, on dispose de dix matrices d'énergies. Chaque matrice dispose de 24 lignes pour le pas de la fréquence et de 8 colonnes pour le pas de temps. Ces matrices sont enregistrées dans la base de données d'identification de locuteurs (DBU), en lien avec l'utilisateur donné (qu'il soit enregistré ou non). Chaque matrice peut être enregistrée avec un nombre relativement faible de données : un octet suffit pour chaque valeur de la matrice (valeur normalisée à 100), soit au maximum 24x8=192 octets par matrice (sans optimisation), auxquels il est possible d'appliquer un algorithme de compression.

Dans un mode de réalisation particulier de la présente technique, l'empreinte vocale d'un locuteur est construite à partir d'une pluralité de matrice énergies, se rapportant à un ou plusieurs mots prononcés par le locuteur. D'autres éléments que les matrices énergies peuvent également être intégrés et/ou utiliser pour générer l'empreinte vocale d'un locuteur.

Reconnaissance du locuteur

On suppose que l'on dispose, dans la dans la base de données d'identification de locuteurs (DBU), d'une pluralité de matrices d'énergie associées à un utilisateur, et que cet utilisateur est en cours de discussion et enregistré par le système. Pour reconnaître cet utilisateur, le système sa base sur les matrices issue des mots prononcés par l'utilisateur. Dans une première phase, on suppose qu'un certain nombre de mots ont été reconnus par le système et que l'on dispose d'un échantillon audio pour ces mots reconnus. À titre illustratif, on suppose qu'un des mots reconnus est le mot « la ». Le système dispose déjà de matrices d'énergies issues de la prononciation de ce mot « la » (comme explicité précédemment).

Dans une deuxième phase, le système recherche donc les matrices correspondants au mot « la » qui ont été précédemment générées. Cette recherche est effectuée pour tous les utilisateurs « potentiels » (c'est-à-dire une liste d'utilisateurs possible, compte tenu des circonstances de l'enregistrement) : si par exemple l'enregistrement concerne quatre utilisateurs enregistrés dans le système, la recherche des matrices est effectuée sur ces quatre utilisateurs afin de raccourcir les délais de traitement.

Sur la base des matrices d'énergies obtenues à l'issue de la recherche, l'identification de l'utilisateur est mise en œuvre en utilisant une corrélation de Pearson pour comparer ces matrices d'énergies. Plus précisément, on utilise le coefficient de corrélation de Pearson pour comparer les matrices d'énergies. Ce coefficient est calculé comme représenté dans l'équation suivante :

dans laquelle :

- X {xl,... xn} est une matrice présente dans la base de donnée, que l'on va comparer ;

Y {yl,... yn} est la matrice à comparer, soit la matrice courante :

N est le nombre de valeurs dans les matrices.

La valeur « r » est comprise entre 0 et 1. Si /r/ < 0,4 les deux matrices ont une faible corrélation. Lorsque 0,4 =< \r\ < 0,7 les deux matrices ont une corrélation moyenne. Lorsque 0, 7 < Irl <= 1, les deux matrices ont une corrélation beaucoup plus forte : ce dernier cas est considéré dans le cadre de la présente.

Ainsi en utilisant la valeur du coefficient de corrélation de Pearson, avec un seuil prédéterminé égal à 0,7 (ou proche de 0,7), on décide de la similarité de deux matrices. L'identification du locuteur est effectuée sur les calculs de corrélation dont le résultat est le plus élevés (parmi les résultats supérieurs au seuil prédéterminé).

On présente, en relation avec la figure 4, le procédé mise en œuvre pour réaliser une identification de locuteur. Le procédé mis en œuvre comprend une étape de découpage (non représentée) des données audio, en fonction d'au moins un modèle de pause, délivrant un ensemble de données audio segmentées. Le procédé est mis en œuvre sur la base des données segmentées et il comprend, pour au moins donnée audio courante dudit ensemble de données audio segmentées :

au moins une étape de reconnaissance vocale (10) de ladite donnée audio courante, mise en œuvre par l'intermédiaire d'au moins un moteur de reconnaissance vocale, délivrant au moins un mot reconnu ou un indicateur d'absence de reconnaissance ; lorsqu'au moins un moteur de reconnaissance vocale délivre au moins un mot reconnu

(20) :

une étape de recherche (201), au sein d'une basse de données, d'au moins un mot de référence correspondant audit au moins un mot reconnu, délivrant au moins une donnée d'identification vocale de référence ;

une étape d'obtention (202), à partir de ladite donnée audio courante, d'une donnée d'identification vocale courante ;

une étape de calcul (203) d'au moins une correspondance entre ladite donnée d'identification vocale courante et ladite au moins une donnée d'identification vocale de référence, délivrant au moins un score de correspondance ; et lorsqu'un score de correspondance excède un seuil prédéterminé (205), une étape d'attribution (206) de ladite donnée audio courante à l'un desdits au moins deux interlocuteurs.

Ainsi, ce procédé permet de réaliser une distinction entre les différents locuteurs qui interviennent lors de l'échange vocal. Comme cela a été indiqué précédemment, ce procédé d'identification peut avantageusement être couplé à d'autres méthodes d'identification (notamment la spatialisation sonore), afin notamment de produire des résultats plus probant et/ou d'obtenir ces résultats de manière plus rapide.

5.4. Description d'un cas d'usage

On décrit, dans ce cas d'usage, une mise en œuvre du système pour la reconnaissance et la retranscription des minutes d'une conférence de type conférence téléphonique à laquelle participe une pluralité de locuteurs, certains d'entre eux étant situés dans une même pièce, autour d'un dispositif de type pieuvre de conférence (par exemple deux locuteurs) et un troisième participant à distance par l'intermédiaire d'un combiné téléphonique, d'un ordinateur, etc. Une conférence est mise en œuvre et traitée au moins de manière indirecte par le système. Une conférence débute, pour le système, par une phase d'enregistrement d'une empreinte vocale de chacun des participants à la conférence. Cette phase comprend plusieurs étapes, parmi lesquelles :

une étape de transmission, à chaque locuteur participant à la conférence, d'une requête pour l'énonciation, par ce locuteur, de son nom et/ou de son prénom ; la requête prend par exemple la forme d'un message du type « vous entrez en conférence, veuillez prononcer vos noms et prénoms » :

lorsque le locuteur participe à la conférence par téléphone, la phase d'enregistrement de l'empreinte est mise en œuvre au niveau de cette ligne téléphonique ;

lorsque le locuteur participe à la conférence depuis un ordinateur, la phase d'enregistrement est mise en œuvre par l'intermédiaire de celui-ci, soit en local, sur l'ordinateur, soit sur le système, par transmission du flux audio résultant de l'énonciation ;

lorsque le locuteur participe depuis une salle de conférence, le procédé mis en œuvre est le suivant :

le système requiert l'énoncé du nombre de participant autour de la table par une phrase du type « veuillez indiquer combien de participant se trouvent autour de la table »

une fois le nombre de participants obtenu (soit par saisie sur un clavier, soit par énoncée vocale), et pour chacun des participants, le système requiert, pour chacun, l'énoncée du nom et/ou du prénom de celui-ci ; de plus, le système met en œuvre un algorithme de localisation permettant, en fonction de l'énoncée réalisée, d'obtenir une localisation spatiale du locuteur ;

pour chaque locuteur, s'en suit une étape de calcul d'une empreinte vocale sur la base de l'énonciation précédente ; plusieurs cas sont possibles :

soit le locuteur est inconnu du système : l'empreinte calculée est alors utilisée durant la conférence ;

soit le locuteur est connu du système (car il s'est enregistré précédemment) : en ce cas l'énoncée de son nom et/ou prénom (et la reconnaissance qui en est faite) est utilisée pour rechercher l'empreinte préenregistrée de le locuteur ; ceci permet d'utiliser l'une ou l'autre de ces empreintes pour la reconnaissance du locuteur ;

La conférence se poursuit, pour le système, par l'enregistrement automatique et la reconnaissance des participants à la conférence. À nouveau, plusieurs cas de figure se présentent :

lorsque le locuteur participe via téléphone, le flux audio issu du micro de ce téléphone est enregistré en continu et peut être décodé (éventuellement en continu également) ; l'empreinte du locuteur est utilisée pour attribuer ce flux au locuteur en question ; lorsque le locuteur participe via un ordinateur (ou une tablette, une connexion IP d'un smartphone), le processus est le même que pour une connexion téléphonique ;

lorsque le locuteur participe autour d'une table de conférence, plusieurs procédés sont mise en œuvre de manière concomitante :

a. une reconnaissance de l'empreinte du locuteur à l'aide de l'empreinte préenregistrée : cette reconnaissance tient également compte de la spatialisation du son capté par le ou les micros ;

b. un enregistrement du flux audio issu de la conférence (tous les locuteurs confondus) ;

c. un enregistrement du flux audio issu de la conférence par locuteur :

par exemple si deux locuteurs sont autour de la table pour la conférence, deux flux audio distincts sont enregistrés et les portions audio sont distribuées sur les deux flux en fonction de la reconnaissance de l'empreinte de du locuteur ;

D'un point de vue général, le système de l'invention intervient en deux temps :

il reconnaît les locuteurs en temps réel lors de la tenue de la conférence : l'identification est effectuée en temps réel sur la base des empreintes précédemment calculées ; il s'agit de créer les flux audio de chaque locuteur et de marquer (temporellement) les flux pour déterminer les instants auxquels les différents locuteurs ont pris la parole ; on met alors en œuvre une synchronisation temporelle des flux audio qui permet notamment d'attribuer un ensemble de sons captés à un utilisateur donné ;

il reconnaît les paroles prononcées par chacun des locuteurs : cette phase de reconnaissance peut soit être mise en œuvre en temps réel, pour effectuer par exemple une transcription en temps réel de la conférence (par exemple à destination de personnes ayant perdues l'audition) ou en temps différé ; l'avantage du temps réel est de disposer, pour les participants, d'une trace immédiate des échanges verbaux ; l'inconvénient est que cela nécessite des ressources informatiques importantes, et que les risques d'erreurs sont plus élevés ; l'avantage du temps différé est qu'il nécessite moins de ressources informatiques, car les flux peuvent être traités les uns après les autres ;

D'un point de vue général, le système de l'invention effectue soit un traitement direct e la conférence soit un traitement indirect de celle-ci. La distinction entre traitement direct et idirect de la conférence est la suivante :

en traitement direct, le système est en charge du multiplexage de la conférence, c'est- à-dire de monter les éventuels ponts téléphoniques avec les différents interlocuteurs (lorsqu'il y a une conférence téléphonique), en plus de l'enregistrement et du traitement des flux audio ;

en traitement indirect, le système est en charge de l'enregistrement et du traitement des flux audio, comprenant notamment l'identification et le traitement de la parole des interlocuteurs : il enregistre les éventuels flux téléphoniques et les flux en provenance du ou des micros de la salle dans laquelle se tient la conférence.