Reconnaissance vocale à huit canaux

La voix comme clef d’accès ! Nous vous proposons dans cet article un système de reconnaissance vocale à huit canaux en mesure de percevoir jusqu’aux plus petites nuances de la voix humaine. Ce système fonctionne avec une nouvelle technique de reconnaissance de la voix qui s’inspire de celle du cerveau humain et qui garantit une précision de 99 %. Le montage dispose même d’un circuit de synthèse vocale qui fournit toutes les informations de vive voix pour assister l’utilisateur.


Qui n’a jamais vu un film de science-fiction dans lequel des ordinateurs et des systèmes automatiques répondent vocalement et s’activent seuls, après la réception d’un ordre ?
Science-fiction, précisément, mais pour très peu de temps encore. En ce qui concerne les systèmes à synthèse vocale, « les machines qui parlent » il y a de nombreuses années qu’elles sont fabriquées et qu’on y utilise des circuits intégrés de différents modèles capables de reproduire des phrases avec une excellente fidélité quelle que soit la langue.
En ce qui concerne la reconnaissance vocale, le thème est beaucoup plus compliqué et ce n’est que récemment que des résultats significatifs ont été obtenus. Pour reconnaître des mots ou des phrases entières, il est nécessaire d’utiliser des dispositifs dotés d’une capacité de calcul très élevée permettant de discerner toutes les nuances de la voix humaine. La possibilité qu’une machine reconnaisse et comprenne avec précision tout ce qui peut être dit par une personne est encore éloignée, mais de grands pas ont été faits dans ce sens.
Depuis un certain temps, des logiciels très complexes sont en mesure de transformer les paroles en messages écrits, même si leur précision est peu élevée. Il est encore plus difficile de réaliser des systèmes autonomes, entendez des systèmes qui n’utilisent pas d’ordinateur. Dans ce cas, la solution est d’utiliser des microcontrôleurs très sophistiqués, spécifiquement des DSP (Digital Signal Processor) effectuant l’analyse en utilisant des algorithmes extrêmement complexes qui requièrent une mémoire externe de capacité très élevée.
Depuis peu, des produits encore plus sophistiqués que ce qui existait jusqu’alors et plus efficaces, mais en même temps plus flexibles et plus économiques, ont été mis au point. Parmi les fabricants les plus actifs et dynamiques de ce secteur, il faut signaler la société California Sensory qui a mis au point une série de dispositifs basés sur une technologie dénommée « Neural network recognition », similaire pour ce qui concerne la logique de reconnaissance et de recherche à celle utilisée par le cerveau humain. Une technique qui permet de réduire notablement le matériel utilisé et, dans le même temps, d’atteindre une précision d’environ 99 % contre 96 % pour les systèmes les plus complexes utilisant des DSP. Exploitant cette technique, la société California Sensory a mis au point et commercialisé deux circuits intégrés spécifiques pour cette application référencés RSC-164 et RSC-264.
Ces deux circuits peuvent fonctionner en combinaison avec un PC ou bien de manière autonome. Chacun de ces dispositifs intègre un CPU de 8 bits de 4 MIPS (4 millions d’instructions par seconde) basé sur un 8051 de chez Intel, un convertisseur A/D et D/A avec leurs filtres respectifs, 64 Koctets de ROM et 384 octets de RAM, un bus pour piloter la mémoire externe et une série de broches I/O (entrées sortie) pour un usage général, le tout en boîtier PLCC à 68 broches ou QPF à 64 broches. Evidemment, une aussi importante concentration de broches rend problématique l’utilisation de ce circuit intégré par des amateurs. Pour cette raison nous avions initialement écarté l’idée de réaliser un projet basé sur ce circuit.
Par bonheur, il y a quelques mois, la société California Sensory a commercialisé un produit dénommé « Voice Direct Module » qui comprend le circuit en question, une mémoire et d’autres composants qui simplifient notablement la mise en oeuvre de ce système.
Mais la chose la plus importante pour nous concerne le connecteur utilisé qui est composé de trois rangées de broches au pas de 2,54 mm. Avec ce module, nous avons mis au point un circuit en mesure de reconnaître huit phrases ou mots et d’activer en correspondance autant de relais.
Il est évidemment question d’une première approche de cette technologie mais toutefois le circuit proposé fonctionne par faitement et il ne se « trompe pas une fois ». Le dispositif est en mesure de reconnaître 60 mots ou phrases d’une durée maximum de 3,2 secondes. Non seulement le circuit est complètement interactif dans la mesure où il est capable de générer presque 500 mots ou phrases qui guident l’utilisateur dans chacune de ses actions, aussi bien durant la phase d’apprentissage que durant l’utilisation normale.
Ces phrases sont en anglais et sont contenues dans une mémoire ROM présente dans le module. Il est donc possible de changer le contenu de cette librairie de façon à faire « parler » le circuit dans d’autres langues.
Pour pouvoir opérer correctement, le circuit nécessite une phase d’apprentissage durant laquelle l’utilisateur doit prononcer devant un microphone les mots ou les phrases que le système devra reconnaître par la suite.
Durant cette phase, chacun des mots ou des phrases est analysé et transformé en une donnée numérique. Une information unique qui tient compte de toutes les variantes possibles, y compris l’inflexion l’intonation et la vitesse à laquelle on parle. Après cela, le circuit ne s’active seulement et exclusivement qu’avec la voix de la personne qui a effectué l’apprentissage.
Le message numérique est sauvegardé dans une EEPROM série externe.
Durant la phase de reconnaissance, le système effectue la même opération et recherche parmi les données mémorisées celle qui est identique. Si la recherche est positive, il active la sortie correspondante et avise rapidement que le mot ou la phrase a été identifié en prononçant : « accepté ». Dans le cas contraire, il n’active aucune sortie et le circuit prononce « mot non reconnu ». Dans les cas où un doute subsiste, il prononce le message « répétez pour confirmer » afin de pouvoir accepter la commande.
Toutes les fonctions sont gérées par trois boutons poussoir : P3 est utilisé durant la phase d’apprentissage, P2 sert à effacer les données mémorisées et P1 est utilisé comme bouton « start » (départ) durant l’utilisation normale.
Après un appui sur ce dernier, le système demande « prononcer un mot » et se prépare à reconnaître le mot ou la phrase et à agir en conséquence.
Afin d’éviter d’avoir à agir manuellement sur le bouton start durant l’utilisation normale, nous avons installé un circuit vox temporisé, contrôlé par le même microphone utilisé par le circuit de reconnaissance vocale. De cette façon il suffit de s’approcher du système et de prononcer à haute voix « activation » ou tout autre mot. Cette action est équivalente à une pression sur P1.
Le système invite à prononcer un mot et procède à l’identification. Pour éviter que, pendant cette phase, le vox ne s’active à nouveau, il a été prévu une temporisation qui inhibe le fonctionnement pour environ 10 secondes, le temps suffisant pour terminer la procédure de reconnaissance. Dans notre application, le circuit associe une sortie équipée d’un relais à chaque mot ou phrase analysé.
Nous avons utilisé seulement huit sorties et autant de relais parmi les soixante à notre disposition. Dans cette configuration la logique de sortie devient particulièrement simple. Tant et si bien qu’il suffit de relier directement à chacune des huit lignes de sortie un des huit étages de puissance.
Pour compléter le circuit, nous avons prévu un étage amplificateur basse fréquence, en mesure de délivrer 1 watt, et un régulateur de tension, destiné à fournir du 5 volts stabilisé au module.


Analyse du schéma
Pour pouvoir comprendre de manière approfondie le fonctionnement du circuit, il faut, avant tout, donner un coup d’oeil au module M1. Ce dispositif, entièrement réalisé en technologie CMS, présente des dimensions très compactes et utilise, pour sa connexion aux composants externes, trois connecteurs en ligne au pas de 2,54 mm nommés JP1, JP2 et JP3. La numérotation du module M1 reportée sur le schéma électrique se réfère aux broches du connecteur JP2. Le module est alimenté par une tension de 5 volts à appliquer entre les broches 4 (positif), 3 et 5 (négatif). Les broches 6 et 7, reliées au générateur PWM interne, sont connectées à la masse par deux résistances. Sur la broche 1 est appliqué le signal du microphone et sur la broche 8 est disponible le signal vocal de sortie.
Le bus de données se trouve sur les broches 12 à 19. Chacune de ces lignes a un « poids » logique différent, dans le sens que la première ligne (broche 12) vaut « 1 », la seconde (broche 13) vaut « 2 » et ainsi de suite jusqu’à la huitième (broche 19) qui vaut « 8 ». Si la mémoire du circuit est complètement utilisée avec les 60 mots ou phrases disponibles, lorsqu’un mot est identifié, par exemple le troisième mot mémorisé, la troisième ligne de sortie (broche 14) présente, pendant un bref instant, un niveau logique haut. Il en sera de même avec la septième ligne (broche 18) quand le septième mot sera identifié. Si, par contre, le circuit reconnaît le mot qui occupe la onzième place en mémoire, quelle sortie active-t-il ? La réponse est intuitive : la ligne 8 (broche 19) en même temps que la ligne 3 (broche 14) car 8 + 3 = 11. Si vous ne voulez pas voir les relais s’affoler, il faut se limiter aux 8 premières positions de la mémoire.
Aux broches 10 et 11 et aux lignes relatives aux poussoirs, sont dévolues toutes les autres fonctions. La ligne 11 contrôle la section apprentissage.
Une action sur P3 démarre la phase d’apprentissage des phrases ou des mots. Tout le processus est guidé par le système à synthèse vocale généré par le circuit intégré. Pour interrompre la phase d’apprentissage, il faut appuyer brièvement sur P3. Une pression prolongée (au moins 1 seconde) efface toutes les données contenues dans la mémoire EEPROM et le cycle d’apprentissage recommence à partir du début. Le mini interrupteur DS1b contrôle le niveau de précision du système.
Fermé, la précision maximale est obtenue, ouvert, la tolérance augmente légèrement. La même action vaut pour DS1 qui agit, par contre, durant la phase de reconnaissance. Les deux interrupteurs fermés, on obtient une précision d’environ 99 %, c’est du moins ce que prétend le fabricant. En effet, au cours de nos essais, il n’est jamais arrivé qu’une mauvaise sortie soit activée, par contre, quelquefois, le système n’a pas identifié le mot à la première tentative.
Pour démarrer la reconnaissance de la parole, il faut appuyer sur P1 et suivre les instructions vocales dispensées par le circuit. Toutefois, afin de rendre l’utilisation du système aussi pratique que possible en fonctionnement normal, nous avons prévu un système de vox constitué par les transistors T1 et T2 et par le réseau logique formé par les portes de U2. Le signal audio capté par le microphone est envoyé à l’entrée du module M1 (broche 1). En même temps, ce signal, redressé par la diode D1 et transformé en une impulsion, active le monostable U2c à travers la porte U2a. A son tour, cet étage contrôle le transistor T2 situé en parallèle sur le poussoir P1. La sensibilité du microphone est volontairement basse pour éviter que le circuit ne s’active inutilement et que, durant la phase d’identification, des bruits ne se superposent à la phrase de l’utilisateur, altérant le processus de reconnaissance.
En pratique, pour activer le dispositif, il faut parler à une distance de 10 à 20 cm du microphone et une distance similaire est requise pour la phase de reconnaissance.
Le signal audio généré par le module (rappelons qu’il contient en mémoire presque 500 phrases) est disponible sur la broche 8. Ce signal est envoyé au circuit intégré U3 pour l’amplifier.
Le circuit utilisé dans cet étage est le TBA820M, en mesure de délivrer une puissance de 1 watt sur une charge de 8 ohms. Les réseaux RC reliés aux différentes broches ont pour but de déterminer le gain en boucle fermée et de limiter la bande passante vers le bas et vers le haut. Le signal amplifié disponible sur la broche 5 pilote le hautparleur de 8 ohms connecté entre la sortie et la masse. Le volume est contrôlé par l’intermédiaire du potentiomètre R15 dont le curseur est directement relié à la broche d’entrée (broche 3) du TBA820M.
Les huit lignes de sortie (broches 12 à 19) sont connectées à 8 étages de puissance pilotant chacun un relais.
Quand la ligne est activée, elle passe du niveau bas au niveau haut, permettant la saturation du transistor. Sur le collecteur de ce dernier, nous avons un relais et une diode électroluminescente qui sont activés un bref instant.
Les contacts du relais peuvent êtres utilisés pour piloter un appareil électrique ou électronique, comme par exemple la serrure électrique de la porte d’entrée. Imaginez la surprise que peut produire un système qui ouvre la porte de la maison en prononçant simplement « ouvre la porte » ! Mais la chose la plus abasourdissante réside dans le fait que si une tierce personne cherche à ouvrir la porte suivant le même principe, elle se verra invariablement répondre par le système : « mot non reconnu ».
Pour l’alimentation du circuit, il faut utiliser une alimentation de 12 volts courant continu capable de débiter 200 à 300 mA. Cette tension alimente directement l’étage de puissance BF et les huit sorties à relais. Les autres étages, y compris le module M1, sont alimentés par une tension de 5 volts fournie par le régulateur intégré U1, un 7805.




Figure 1: Schéma électrique du système de reconnaissance vocale 8 canaux.

Figure 2: Plan d’implantation des composants.

Figure 3: Circuit imprimé à l’échelle 1/1 du système de reconnaissance vocale 8 canaux.

Figure 4: Vue générale du système de reconnaissance vocale 8 canaux.

Liste des composants
R1 : 10 kΩ
R2 : 1 kΩ
R3 : 6,8 kΩ
R4 : 1 kΩ
R5 : 220 kΩ
R6 : 1 kΩ
R7 : 10 kΩ
R8 : 220 kΩ
R9 : 10 kΩ
R10 : 120 Ω
R11 : 10 kΩ
R12 : 1,2 kΩ
R13 : 47 kΩ
R14 : 47 kΩ
R15 : 47 kΩ ajustable
R16 : 150 Ω
R17 : 56 Ω
R18 : 1 Ω
R19 : 2,2 Ω
RA : 10 kΩ (8 pces)
RB : 22 kΩ (8 pces)
RC : 1 kΩ (8 pces)
C1 : 470 μF/35 V chimique
C2 : 470 μF/25 V chimique
C3 : 10 μF/63 V chimique
C4 : 47 μF/25 V chimique
C5 : 47 μF/25 V chimique
C6 : 47 μF/25 V chimique
C7 : 1 μF/63 V chimique
C8 : 100 nF multicouche
C9 : 100 μF/25 V chimique
C10 : 47 μF/25 V chimique
C11 : 150 pF céramique
C12 : 100 nF multicouche
C13 : 470 μF/25 V chimique
C14 : 220 μF/25 V chimique
C15 : 220 μF/16 V chimique
C16 : 100 nF multicouche
C17 : 100 nF multicouche
CA : 100 μF/25 V chimique (8 pces)
D1 : Diode 1N4148
D2 : Diode 1N4148
D3 : Diode 1N4148
D4 : Diode 1N4007
DA : Diode 1N4007 (8 pces)
T1 : Transistor NPN BC547B
T2 : Transistor NPN BC547B
TA : Transistor NPN BC547B (8 pces)
LDA : LED rouge (8 pces)
U1 : Régulateur 7805
U2 : Circuit intégré CD4093
U3 : Circuit intégré TBA820M
M1 : Module Sensory Voice Direct
RLA : Relais 12 V 1RT (8 pces)
DS1 : Dip switch 2 pôles
P1 : Bouton poussoir N/O
P2 : Bouton poussoir N/O
P3 : Bouton poussoir N/O
MIC : Micro électret 2 pôles
HP : Haut-parleur 8 Ω 1 W

Divers:
1 x Support CI 8 broches
1 x Support CI 14 broches
3 x Borniers 2 plots pour CI
8 x Borniers 3 plots pour CI
1 x Barrette sécable 50 broches pour CI
1 x Circuit imprimé réf. L026





Le module utilisé dans ce projet produit par la société California Sensory fait partie d’une série de dispositifs dénommés Interactive Speech, spécialement étudiés pour la reconnaissance vocale. Le module utilisé dans notre application (Voice Direct IC module) permet de réaliser de manière très simple un système complet de reconnaissance vocale.
Pour sa connexion, le module dispose de trois rangées de broches en ligne au pas de 2,54 mm.

La réalisation
Grâce à l’utilisation du « Voice Direct IC Module » autrement dit du module intégré RSC-164, la réalisation de ce projet est sûrement à la portée de tous nos lecteurs. Pour le câblage du système, nous avons prévu un circuit imprimé sur lequel sont montés tous les composants. Il est représenté à l’échelle 1/1. Afin de permettre une réalisation facile, nous vous conseillons de le réaliser par la méthode photographique qui permet d’obtenir une carte similaire en tout point à la nôtre. Pour la liaison du module, il faut utiliser trois bandes de supports tulipe au pas de 2,54 mm de 14, 17 et 19 broches disposés comme indiqué sur le plan d’implantation des composants.
Monter en premier les composants les plus bas et les composants polarisés (attention au sens + et –). Poursuivre par les diodes et les transistors en faisant attention à leur orientation. Pour le montage des deux circuits intégrés, utiliser deux supports, un de 8 broches et un de 14 broches. Ensuite, monter et souder les huit relais et les borniers à vis permettant les liaisons externes. En dernier, insérer le module M1 qui ne peut être monté que dans un seul sens. A ce moment il faut vérifier entièrement le câblage afin de détecter une erreur éventuelle ou une mauvaise soudure.
Pour pouvoir fonctionner correctement, le système nécessite une phase d’auto-apprentissage. Pour cela, il faut éliminer le circuit vox, cela s’obtient simplement en ne montant pas ou en retirant U2. Choisir également le degré de précision du système, aussi bien en phase d’apprentissage qu’en phase de reconnaissance. Au premier jet, il convient de laisser ouvert les deux interrupteurs (précision la plus basse). Appuyer le poussoir P3 et suivez les instructions du système qui vous invite à prononcer le mot ou la phrase capable de valider la sortie numéro 1 (« say word one ») et à répéter le même mot pour confirmer (« repeat to confirm ») pour ensuite prononcer la phrase (« accepted ») et passer à la suivante (« say word two »). La durée du mot ou de la phrase ne doit pas dépasser 3,2 secondes. Pour les motifs que nous avons exposés plus avant, il faut parler à une distance d’environ 20 centimètres du microphone. Pour interrompre la phase d’apprentissage, il faut appuyer un bref instant sur P2.
Rappelons que pour effacer toutes les données en mémoire, il faut appuyer sur P2 durant un temps plus long (>1 seconde). Ne mémorisez pas plus de 8 phrases pour éviter que plus d’une des 8 lignes de contrôle ne s’activent à la fois.
A ce point nous sommes prêts pour la reconnaissance.
Essayez d’appuyer sur P1 et suivez les instructions vocales (« say a word »). Le système devrait reconnaître les huit phrases mémorisées sans problème. Naturellement la personne qui parle doit être la même que celle qui a effectué la phase d’apprentissage, car la même phrase prononcée par une autre personne ne sera pas reconnue. Si tout fonctionne correctement, après avoir coupé l’alimentation, insérer le circuit intégré U2 et vérifier le fonctionnement du vox. Pour obtenir le démarrage du système, il suffit de parler assez fort dans le microphone en prononçant un mot quelconque afin d’activer le vox, le circuit génère une impulsion qui simule la fermeture de P1.
Commentaires



Font Size
+
16
-
lines height
+
2
-