Brevet FR2690247A1 — publié le 19931022

Dispositif de reconnaissance vocale par comparaison dynamique La présente invention concerne de manière générale la reconnaissance vocale. Plus précisément l'invention a trait à un dispositif à architecture multiprocesseur de type pipeline visant à améliorer de façon notable les temps nécessaires à des reconnaissances de mots. Selon la technique antérieure, la reconnaissance vocale par comparaison dynamique est mise en oeuvre principalement par un calculateur. Des progrès technologiques résultant du passage des microprocesseurs à 8 bits aux microprocesseurs à 16 bits, puis à 32 bits, et de l'augmentation de la fréquence d'horloge des microprocesseurs, alliés à des ingéniosités de programmation, ont permis l'implantation d'algorithmes plus performants offrant de meilleurs taux de reconnaissance, une taille accrue du vocabulaire, et une reconnaissance de mots enchaînés pour multilocuteur. Néanmoins, la puissance de calcul des microprocesseurs limite encore les performances de reconnaissance vocale. Pour surmonter cette limitation, les architectures multiprocesseurs et particulièrement les architectures à processeurs matriciels ou architectures SIMD (Single Instruction Multiple Data Stream) ont alors été introduites. Dans ce type d'architecture, l'accroissement en capacité de calcul pour la reconnaissance est obtenu en faisant exécuter les mêmes instructions par un nombre élevé de processeurs. Les inconvénients liés à ces architectures sont principalement leur coût de revient élevé causé par l'élaboration d'un algorithme complexe de gestion des résultats obtenus séparément pour chaque processeur. La présente invention particulièrement destinée aux méthodes de reconnaissance par comparaison dynamique vise pour sa part à introduire une architecture segmentée, dite également architecture pipeline. Cette architecture consiste à décomposer une tâche en plusieurs étapes et à exécuter les étapes indépendamment par des processeurs différents. Chaque fois qu'un résultat intermédiaire est obtenu après l'éxécution d'une étape, celui-ci est transmis au processeur suivant et ainsi de suite. Lorsqu'une étape est terminée, le processeur responsable de l'éxécution de cette étape est libéré et devient donc disponible pour traiter de nouvelles données. En supposant que les durées d'éxécution respectives des différentes étapes soient égales, la période d'obtention des résultats finaux est alors la durée d'éxécution d'une étape. L'invention vise à remédier aux difficultés de réalisation et aux coûts de revient élevés inhérents aux architectures connues selon la technique antérieure en fournissant un dispositif à architecture de type "pipeline" particulièrement destinée à la reconnaissance vocale par comparaison dynamique. A cette fin, un dispositif de reconnaissance vocale par comparaison dynamique qui reçoit un signal vocal échantillonné en des paquets d'échantillons représentatif d'un mot à reconnaître et qui effectue les traitements suivants (a) transformée de Fourier rapide des paquets d'échantillons en des paquets de valeurs fréquentielles numériques respectives, (b) filtrage de Hamming et analyse cepstrale de chaque paquet de valeurs fréquentielles numériques en des vecteurs de coefficients fréquentiels (c) comparaison de chaque vecteur de coefficients fréquentiels avec des vecteurs centroïdes de chaque mot d'un dictionnaire de référence par calcul de distances euclidiennes pondérées de manière récurrente par des distances euclidiennes adjacentes précédemment calculées afin de produire une somme minimale de distances euclidiennes relatives respectivement à chaque vecteur du mot à reconnaître, (d) sélection d'un mot reconnu comme étant le mot du dictionnaire de référence dont la somme minimale de distances euclidiennes est minimale, est caractérisé en ce qu'il comprend un premier moyen de traitement pour effectuer les traitements (a) et (b) relatifs successivement à des groupes d'échantillons du mot à reconnaître afin de produire successivement les vecteurs calculés du mot à reconnaître, un moyen de mémoire tampon dans lesquels sont écrits successivement les vecteurs calculés par les premiers moyens de traitement, et un second moyen de traitement pour effectuer les traitements (c) et (d) sur des vecteurs calculés lus successivement dans les moyens de mémoire tampon au fur et à mesure que lesdits vecteurs sont calculés dans le premier moyen de traitement et écrits dans le moyen de mémoire tampon. Dans ces conditions, le traitement (c) d'un premier vecteur dans le second moyen de traitement est sensiblement effectué pendant les traitements (a) et (b) d'un paquet d'échantillons dans le premier moyen de traitement pour produire un second vecteur succédant au premier vecteur. La durée de reconnaissance d'un mot à reconnaître est ainsi quasiment divisée par deux comparativement à la technique antérieure et est ainsi ramenée au temps de prononciation. D'autres caractéristiques et avantages de la présente invention apparaîtront plus clairement à la lecture de la description suivante, en référence aux dessins annexés correspondants, dans lesquels - la figure 1A est un diagramme temporel d'un signal analogique vocal filtré s'(t); - la figure 1B est un diagramme temporel d'échantillons du signal analogique montré à la figure lA; - la figure 2 est un bloc-diagramme schématique d'une chaîne de reconnaissance vocale; - la figure 3 est un diagramme fonctionnel d'un système de reconnaissance vocale; - la figure 4 montre une matrice de calcul de distance entre des vecteurs d'un mot à reconnaître et des vecteurs d'un mot d'un dictionnaire de référence, relative à un bloc de comparaison inclus dans le système de la figure 3; - la figure 5 est un bloc-diagramme d'un dispositif de reconnaissance vocale selon l'invention; et - la figure 6 est un chronogramme des étapes de traitement de paquets d'échantillons et de vecteurs relatifs à un mot à reconnaître au moyen du dispositif selon l'invention. En référence à la figure 2, une chaîne de reconnaissance vocale par comparaison dynamique comprend typiquement un filtre anti-repliement Al, un échantillonneur A2, un processeur de transformée de Fourier rapide B et un système de reconnaissance vocale C. L'échantillonneur A2 reçoit un signal vocal s(t) préalablement filtré par le filtre anti-repliement Al en un signal s'(t). Une représentation du signal s'(t) est donnée à titre d'exemple à la figure 1A. L'échantillonneur A2 échantillonne le signal s'(t) en un signal échantillonné correspondant sn(t) montré à la figure 1B. Le signal échantillonné sn(t) est appliqué par paquet d'échantillons à une entrée du processeur de transformée de Fourier rapide B qui produit en reponse des paquets de valeurs fréquentielles numériques Cfn(t). Ces valeurs fréquentielles numériques Cfn(t) sont appliquées à une entrée du système de reconnaissance vocale C effectuant l'ensemble du traitement nécessaire à la reconnaissance. Le système de reconnaissance vocale C est montré sous la forme d'un bloc-diagramme fonctionnel à la figure 3. Le système comprend un bloc de filtrage de Hamming et d'analyse cepstrale C1, un bloc de comparaison C2, un bloc de sélection C3 et une mémoire de dictionnaire de référence C4. Le filtrage de Hamming limite par fenêtrage le nombre d'échantillons de chaque paquet de valeurs fréquentielles numériques sur chacun desquels est calculé le cepstre. Le traitement d'analyse cepstrale des paquets de valeurs fréquentielles numériques Cfn(t) filtrés par fenêtrage a pour but de fournir une représentation moins redondante du signal vocal tout en permettant une extraction précise de paramètres significatifs du signal filtré. L'analyse cepstrale ou cepstre est une méthode qui vise à séparer les contributions respectives de la source vocale et du conduit oral et nasal selon le modèle général de la production vocale. Pour cela il est supposé que le signal vocal sn(t) est produit par un excitateur gn(t) représentant la source glottique, et traverse un système linéaire passif de réponse impulsionnelle bn(t), représentant le conduit, soit: sn(t) = gn(t) * bn(t) où * désigne l'opérateur de convolution. L'analyse cepstrale a pour fonction de déconvoluer g(t) et bn(t) afin d'extraire des paramètres significatifs du signal vocal s(t) par traitement numérique, appelés coefficients cepstraux Cn. Il est ainsi obtenu une suite de valeurs numériques représentative de l'énergie du signal en fonction de la fréquence. Selon le modèle cepstral de Mel, I intervalles de fréquence (IF)i avec l Ainsi à chaque intervalle de fréquence (IF)i respectif est associé un coefficient fréquentiel représentatif (coeff)i produit par le bloc C1. En pratique, tous les traitements précités sont effectués par groupe de n échantillons du signal sn(t) au fur et à mesure de la production des échantillons par l'échantillonneur A2. n peut être choisi égal à 256. Le bloc C1 transmet ainsi à une première entrée du bloc de comparaison C2, pour chaque groupe de n échantillons, une suite de coefficients fréquentiels (coeff)l à (coeff)1, appelée vecteur Vj. Le nombre I de ces coefficients fréquentiels produits pour chaque groupe de n échantillons est égal au nombre d'intervalles de fréquence (IF)1 à (IF)I choisis consécutivement dans la gamme de fréquences vocales, en utilisant le modèle cepstral selon l'échelle de Mel. En revenant à la figure 1B, il importe de souligner qu'un instant initial t0 de début de prononciation d'un mot doit être déterminé pour déclencher une étape de reconnaissance. En pratique, cet instant initial est établi lorsque des vecteurs successifs en nombre prédéterminé et donc correspondant à une durée prédéterminée sont respectivement constitués de I' coefficients fréquentiels (avec I' Pour la prononciation d'un mot donné, une suite de J vecteurs Vj est ainsi appliquée à la première entrée du bloc de comparaison C2. Une seconde entrée du bloc C2 est reliée à la mémoire de dictionnaire C4. Une représentation modélisée du traitement effectué par le bloc de comparaison est montrée à la figure 4. La mémoire de dictionnaire C4 mémorise des mots de référence codés sous la forme d'une suite de "vecteurs centroïdes" respectivement. Les mots de référence sont obtenus lors d'une phase d'apprentissage selon le procédé qui vient d'être décrit concernant la phase de reconnaissance. Préalablement, chaque mot de référence est défini par une suite de vecteurs Vj constitués chacun de I coefficients (coeff)i tels que déterminés ci-dessus, le nombre de vecteurs dépendant de la longueur du mot. Des vecteurs du mot de référence Vi considérés comme proches selon des critères prédéterminés de regroupement de vecteurs sont transformés en un unique vecteur dit "vecteur centroïde" VCk avec 1 Ainsi chaque mot de référence dans le dictionnaire est constitué d'une suite de K vecteurs centroïdes VCk . Le nombre K de vecteurs centroïdes pour chacun des mots de référence est limité en fonction de la vitesse de traitement désiré. A titre d'exemple, en référence à la figure 4, les nombres J et K sont supposés égaux à 5 et 4. Le bloc de comparaison C2 reçoit, par la première entrée, une suite de J = 5 vecteurs V1, V2, V3, V4 et V5 représentant un mot à reconnaître et compare chacun de ces J vecteurs avec chacun des K vecteurs centroïdes de chacun des mots du dictionnaire de référence lus dans la mémoire C4. La comparaison entre le mot à reconnaître [V1 à V5] et l'un des mots du dictionnaire de référence [VC1 à VCK] est représentée sous forme de matrice rectangulaire à la figure 4. La méthode de comparaison est la suivante elle consiste à choisir parmi tous les chemins "physiquement possible" dans la matrice celui qui passe par des distances euclidiennes minimales dk,j entre vecteurs Vj et VCk. Un chemin C en trait discontinu est représenté à titre d'exemple dans la matrice comme chemin "physiquement possible". Tous les chemins ne sont pas physiquement possibles pour la raison suivante : le mot à reconnaître est constitué des vecteurs V1 à V5 qui sont produits chronologiquement dans l'ordre V1, puis V2 ....., puis V5, et donc un chemin dans la matrice de la figure 4 ayant une représentation décroissante n'aurait pas de signification dans le cadre de la comparaison (ou signifierait que le mot à reconnaître est prononcé strictement à l'envers!!). En pratique pour un point (k,j) de la matrice, les seuls chemins valides arrivant au point (k,j) proviennent des points (k-l,j), (k,j-1) et (k-l, j1). Le chemin retenu lors de la comparaison du mot à reconnaître avec un des mots du dictionnaire est le chemin dont la somme des distances euclidiennes entre vecteurs du mot à reconnaître et vecteurs du mot du dictionnaire de référence dk,j le long de ce chemin est minimale. Un algorithme permet de calculer la somme des distances euclidiennes minimales le long d'un chemin optimal lors de la comparaison avec un mot du dictionnaire de référence en parcourant la matrice "colonne par colonne" ou "ligne par ligne". Dans chaque ligne ou chaque colonne de la matrice, il est alors sélectionné une distance euclidienne minimale pondérée. Chaque valeur de distance euclidienne dk,j en un point (k,j) de la matrice entre un vecteur centroïde VCk et un vecteur du mot à reconnaître Vj est pondérée de manière récurrente en fonction des résultats des distances euclidiennes pondérées calculées précédemment aux points adjacents (k-l,j), (k,j-l) et (k-l, j-l). Selon cet algorithme, il est alors possible de calculer la somme minimale des distances euclidiennes le long du chemin optimal en sélectionnant ligne par ligne ou colonne par colonne une distance euclidienne pondérée minimale respectivement pour chaque ligne ou chaque colonne et en effectuant la somme des distances euclidiennes pondérées minimales pour toutes les lignes ou toutes les colonnes. Pour chaque vecteur du mot à reconnaître V1 à V5, la distance euclidienne pondérée minimale dmi avec l'un des vecteurs centroïdes VC1 à VC4 du mot de référence correspondant à la plus petite distance dans la ligne correspondante de la matrice montrée à la figure 4, est prélevée. La somme des distances minimales pondérées dans les J lignes de la matrice pour chaque mot de reterence est écrit en mémoire dans le bloc de sélection C3 avec l'adresse du mot de référence. Après la comparaison du mot à reconnaître avec tous les mots du dictionnaire de référence, le bloc C3 reconnaît le mot à reconnaître comme étant le mot pour lequel la somme des distances minimales pondérées est minimale. Comme signalé dans le préambule de la description, les dispositifs connus de reconnaissance vocale par comparaison dynamique utilisent une approche monoprocesseur ou multiprocesseur du type SIMD. L'invention vise en revanche à optimiser les temps de traitement en reconnaissance grâce à une architecture multiprocesseur de type segmentée (ou pipeline) particulièrement bien adaptée à la reconnaissance par comparaison dynamique comme il sera vu par la suite. Le dispositif de reconnaissance vocale selon l'invention montré à la figure 5 comprend deux unités de traitement 1 et 2, une unité moniteur 3 et une mémoire FIFO bidirectionnelle 4. La première unité de traitement 1 comprend un microprocesseur 10, une mémoire locale 11, une mémoire à double accès 12, et un circuit de numérisation et filtrage 13 dont une entrée est reliée à une sortie d'un échantillonneur de signal vocal A. Un premier bus d'adresse/données B1 relie chacun des éléments précités 10 à 13 et un premier port d'entrée/sortie de la mémoire FIFO bidirectionnelle. La seconde unité de traitement 2 comprend un microprocesseur 20, une mémoire locale 21 et une mémoire à double accès 22. Le microprocesseur 20 et les mémoires 21 et 22 sont reliés à un second port d'entrée/sortie de la mémoire FIFO 4 à travers un second bus d'adresse/données B2. La mémoire 4 joue le rôle d'une mémoire tampon de transfert de données entre les unités 1 et 2 de manière à rendre compatible la durée du traitement d'un paquet d'échantillons dans l'unité 1 avec la durée de traitement d'un vecteur dans l'unité 2, comme on le verra dans la suite, et par conséquent autorise un relatif asynchronisme entre ces traitements. Les deux mémoires à double-accès 12 et 22 sont également connectées au moyen d'un troisième bus d'adresse/données B3 à l'unité moniteur 3. Ces deux mémoires à double-accès constituent ainsi des mémoires tampons. L'unité 3 gère les différents paramètres nécessaires aux traitements dans les unités 1 et 2, à travers les mémoires 12 et 22. En particulier l'unité 3 écrit, initialement lors de la phase d'apprentissage, les vecteurs centroïdes des mots de référence dans la mémoire 22 et lit en mémoire 22 les adresses de mots de référence reconnus afin par exemple d'afficher un message et/ou commander un automate en fonction des mots de référence reconnus. En résumant le procédé de reconnaissance vocale par comparaison dynamique, les traitements suivants sont effectués sur le signal vocal échantillonné sn(t) réprésentatif d'une suite de mots à reconnaître: (a) transformée de Fourier rapide des paquets d'échantillons en des paquets de valeurs fréquentielles numériques respectives (Cfn(t)) (b) filtrage de Hamming et analyse cepstrale de chaque paquet de valeurs fréquentielles numériques en des vecteurs de coefficients fréquentiels (Vj) (c) comparaison de chaque vecteur de coefficients fréquentiels avec des vecteurs centroïdes de chaque mot d'un dictionnaire de référence par calcul de distances euclidiennes pondérées de manière récurrente par des distances euclidiennes adjacentes précédemment calculées afin de produire une somme minimale de distances euclidiennes relatives respectivement à chaque vecteur du mot à reconnaître, (d) sélection d'un mot reconnu comme étant le mot du dictionnaire de référence dont la somme minimale de distances euclidiennes est minimale (min Comme signalé, un vecteur de mot à reconnaître est obtenu pour chaque paquet de n échantillons. Dès l'obtention d'un paquet à n échantillons, les traitements (a) et (b) sont appliqués à ce paquet pour produire un vecteur correspondant qui, selon la technique antérieure, est mémorisé pendant le calcul des vecteurs suivants, jusqu'à et pendant la comparaison des vecteurs avec chacun des vecteurs centroïdes des mots du dictionnaire de référence. Ceci constitue l'un des inconvénients principaux qu'offre la technique antérieure en comparaison avec l'invention. En effet, selon la technique antérieure, aucune comparaison avec les mots de référence n'est initialisée tant que la totalité des vecteurs du mot à reconnaître n'est pas générée. Cette approche nécessite alors une durée de reconnaissance de mot relativement longue qui est sensiblement égale à la somme des durées de traitement des vecteurs et de la somme des durées des comparaison de mots, et qui est sensiblement le double de la durée de reconnaissance du même mot selon l'invention. Cette différence résulte du partage cyclique des tâches entre les unités 1 et 2 dans le dispositif de reconnaissance vocale selon l'invention dont le fonctionnement en référence à la figure 6 est maintenant décrit. L'échantillonneur A échantillonne le signal vocal filtré s' (t) en un signal échantillonné sn(t) qui est numérisé dans une bande de fréquence vocale par le circuit 13. Le microprocesseur 10 effectue ensuite les traitements (a) et (b) précités dès qu'un paquet à n échantillons numérisés est produit. Dès qu'un vecteur de coefficients fréquentiels relatifs à ce premier paquet d'échantillons est calculé, le microprocesseur 10 l'écrit dans la mémoire FIFO 4. Le microprocesseur 20 dans la seconde unité de traitement 2 effectue alors le traitement (c) en comparant le vecteur calculé lu dans la mémoire 4 avec tous les vecteurs centroïdes mémorisés préalablement dans la mémoire 22 par l'unité moniteur 3 et lus successivement dans la mémoire 22. Pendant le traitement (c) du vecteur calculé précédant par l'unité 2, l'unité 1 calcule un second vecteur en fonction d'un second paquet suivant d' échantillons. Ainsi, au fur et à mesure que les vecteurs relatifs à des paquets successifs d'échantillons sont produits, ils sont un à un successivement écrits puis lus dans la mémoire FIFO, et comparés avec tous les vecteurs centroïdes des mots de référence dans la mémoire double accès 22. Si la durée de calcul d'un vecteur dans l'unité 1 est sensiblement égale à celle des comparaisons relatives à un vecteur de mot à reconnaître avec tous les vecteurs centroïdes dans l'unité 2, la durée de reconnaissance d'un mot selon l'invention est alors sensiblement la moitié de celle dans les dispositifs connus. Selon une première variante, tous les vecteurs V1 à VJ d'un mot à reconnaître successivement calculés par le microprocesseur 10 et lus dans la mémoire 4 sont comparés aux vecteurs centroïdes VC1 à VCK de tous les mots de référence dans le microprocesseur 20 avant d'effectuer l'étape (d) au cours de laquelle les sommes cumulées de distances euclidiennes minimales correspondant aux mots de référence sont comparées pour en déduire la plus petite somme cumulée déterminant le mot de référence reconnu. Selon une seconde variante, lors de l'étape (d) relative à la comparaison d'un vecteur lu dans la mémoire 4 avec tous les vecteurs centroïdes des mots de référence, les mots du dictionnaire de référence dont tous les vecteurs conduisent, lors de comparaisons respectives avec un vecteur du mot à reconnaître, à des résultats de calcul de distance euclidienne minimale supérieurs à un seuil prédéterminé ne sont pas pris en compte lors des comparaisons des autres vecteurs du mot à reconnaître. Cette caractéristique diminue sensiblement le nombre de comparaisons à effectuer au fur et à mesure de la production des vecteurs du mot à reconnaître lors de sa prononciation. Selon cette variante le mot peut être reconnu avant la fin de sa prononciation en écartant tour à tour chacun des mots du dictionnaire de référence des comparaisons à venir et en sélectionnant finalement l'unique mot restant non écarté comme le mot reconnu. REVENDICATIONS 1 - Dispositif de reconnaissance vocale par comparaison dynamique recevant un signal vocal échantillonné (sn(t)) en des paquets d'échantillons représentatif d'un mot à reconnaître, ledit dispositif effectuant les traitements suivants (a) transformée de Fourier rapide des paquets d'échantillons en des paquets de valeurs fréquentielles numériques respectives (Cfn(t)), (b) filtrage de Hamming et analyse cepstrale de chaque paquet de valeurs fréquentielles numériques en des vecteurs de coefficients fréquentiels (Vj), (c) comparaison de chaque vecteur de coefficients fréquentiels avec des vecteurs centroïdes de chaque mot d'un dictionnaire de référence par calcul de distances euclidiennes pondérées de manière récurrente par des distances euclidiennes adjacentes précédemment calculées afin de produire une somme minimale de distances euclidiennes relatives respectivement à chaque vecteur du mot à reconnaître, (d) sélection d'un mot reconnu comme étant le mot du dictionnaire de référence dont la somme minimale de distances euclidiennes est minimale caracterise en ce qu'il comprend un pressier moyen de traitement (1) pour effectuer les traitements (a) et (b) relatifs successivement à des groupes d'échantillons du mot à reconnaître afin de produire successivement les vecteurs calculés du mot à reconnaître, un moyen de mémoire tampon (4) dans lesquels sont écrits successivement les vecteurs calculés par les premiers moyens de traitement (1), et un second moyen de traitement (2) pour effectuer les traitements (c) et (d) sur des vecteurs calculés lus successivement dans les moyens de mémoire tampon au fur et à mesure que lesdits vecteurs sont calculés dans le premier moyen de traitement (1) et écrits dans le moyen de mémoire tampon (4). 2- Dispositif conforme à la revendication 1, caractérisé en ce que lesdits premier et second moyens de traitement (1,2) comprennent en outre chacun un processeur (10, 20), une mémoire locale (11, 21) et une mémoire à double accès (12,22), les vecteurs centroïdes desdits mots de référence étant initialement chargés et les mots de référence reconnus étant lus dans la mémoire à double accès (22) dudit second moyen de traitement par un moyen moniteur (3). 3 - Dispositif conforme à la revendication 1 ou 2, caractérisé en ce que la sélection du mot de référence reconnu est effectuée dans le second moyen de traitement (2) après les comparaisons des vecteurs de mot à reconnaître (V1 à VJ) avec tous les vecteurs (V1 à VK) centroïdes des mots de référence. 4 - Dispositif conforme à la revendication 1 ou 2, caractérisé en ce que les mots du dictionnaire de référence dont tous les vecteurs centroïdes conduisent, lors de comparaisons respectives avec un vecteur du mot à reconnaître, à des résultats de calcul de distance euclidienne minimale supérieurs à un seuil prédéterminé ne sont pas pris en compte par le second moyen de traitement (2) lors de comparaisons ultérieures avec d'autres vecteurs du mot à reconnaître.