Le module Voice Extreme

Ce circuit, capable de parler et de comprendre les commandes vocales, est réalisé à partir d’un microcontrôleur à huit bits RSC364 dont le fonctionnement ne nécessite qu’une mémoire “flash” de 2 Mo, un quartz et quelques autres composants, tient sur une petite carte de 4 x 4 cm.


La firme californienne Sensory produit une puce nommée “Speech Recognition Controller”, contrôleur de reconnaissance vocale. Cette puce prend le nom commercial de Voice Extreme IC (plus simplement VE-IC) étant donné que Voice Extreme est le nom par lequel la firme constructrice désigne la technologie mise en oeuvre à l’intérieur. Il s’agit d’un microcontrôleur à huit bits intégrant toute une série de fonctions matérielles et logicielles optimisées pour constituer, avec peu de composants externes, un système complet de reconnaissance vocale. La puce est en mesure d’enregistrer et de reproduire des messages vocaux et il est doté de ports d’entrée/sortie comme un microcontrôleur normal.
Pour fonctionner, il a besoin d’un quartz externe et d’une mémoire “flash” où trouve place le programme proprement dit, que le microcontrôleur doit exécuter tour à tour et les données mémorisées. Dans la partie données sont mémorisées les variables (comme dans un microcontrôleur ordinaire), les messages vocaux échantillonnés directement par le microcontrôleur (enregistreur de sons) ou insérés pendant la programmation (phrases que le microcontrôleur sera capable de reproduire) et les signaux vocaux nécessaires à la reconnaissance de la parole.
À l’intérieur de ce minuscule circuit intégré, nous trouvons en effet un interprète C, nommé “Voice Extreme C Interpreter”, capable de comprendre les commandes C normales et une série d’instructions propriétaires puissantes en technologie VE et étudiées pour la reconnaissance vocale. Les programmes écrits pour ce circuit intégré doivent l’être en langage C : une fois les diverses instructions écrites et chargées dans la mémoire “flash”, elles sont traduites par l’interprète en langage machine que la CPU exécutera ensuite. Pour écrire un programme en C adapté au VE-IC et pour le transférer dans la “flash”, la maison mère met à disposition un logiciel pour PC nommé Voice Extreme IDE. Le circuit intégré VE-IC est disponible en boîtier TQFP 64 broches : il est donc très petit et il ne peut être monté sur circuit imprimé, en principe, qu’avec une machine d’usine, ce qui exclut l’utilisation du VE-IC par des amateurs ou même des semi-professionnels désireux de le monter sans pour autant s’équiper d’une machine industrielle !

Notre réalisation
C’est pourquoi nous avons décidé de vous proposer un circuit (disponible déjà monté et essayé) comportant sur une seule carte de petites dimensions (4 x 4 cm environ) le VE-IC dans la configuration minimale nécessaire à son fonctionnement. Il faut préciser que Sensory produit une carte nommée Voice Extreme Module (VEM), contenant le VE-IC. Ce module contient le VE-IC en boîtier DIE sans interprète interne, une mémoire ROM avec le “VE-C Interpreter”, une mémoire “flash” et un circuit de pré-amplification microphonique. Le choix d’une mémoire externe pour l’interprète rend le module VEM plutôt complexe, la présence du circuit de pré-amplification microphonique implique que l’on agisse sur certains composants du module VEM si l’on désire faire varier le gain du circuit. Toutes ces raisons : simplifier le circuit, réduire le coût, étendre les possibilités du circuit de pré-amplification, nous ont conduits à réaliser notre propre module, mais avec des dimensions égales et un même connecteur d’interface.

Le schéma électrique
Le montage comporte deux circuits intégrés seulement : le VE-IC en boîtier TQFP 64 broches et la mémoire “flash” de 2 Mo en boîtier TSOP 32 broches. Le microcontrôleur s’interface avec la mémoire par un bus de données à huit bits (broches D0 à D7) et un bus d’adresse à seize bits (broches de A0 à A15). La sortie de “Power Down” (PDN) du microcontrôleur contrôle l’habilitation de la mémoire (“Chip Enable”) et elle est disponible sur la broche 16 du connecteur de sortie J1. La sortie “Data Read Strobe” (RDD) du microcontrôleur contrôle la ligne d’habilitation des sorties (OE) de la mémoire. Enfin, la sortie WRD (“Data Write Strobe”) pilote l’entrée de “Write Enable” de la mémoire et elle “dit” à la mémoire si le processus en cours est d’écriture ou de lecture.
Entre les broches AOFE2 et AIN0 du microcontrôleur est prévu un filtre passe-bas R2/C11. Entre la broche AOFE3 et la broche Vref a été inséré un petit condensateur dans le but de diminuer le plus possible le bruit de fond du circuit de pré-amplification.
L’entrée de cet étage est reliée, à travers un condensateur de découplage C7, à la broche 4 (MIC-IN) de J1. Un circuit de “reset” composé de R1 et de C2 a été inséré afin de permettre au microcontrôleur de se lancer correctement quand il reçoit l’alimentation.
La broche RST du microcontrôleur est, en outre, reliée à la broche 14 “reset” de J1.
Toutes les lignes d’entrée/sortie du microcontrôleur ont été reliées au connecteur J1. A ce propos, précisons que les ports P0.6 et P0.5 sont utilisés extérieurement seulement pour le contrôle d’un clavier à matrice à travers les fonctions correspondantes disponibles dans le VE-IC.
Les ports P0.0, P0.1 et P1.7, en dehors du fait qu’ils sont des lignes normales d’entrée/sortie, sont aussi le canal sériel du microcontrôleur : il est utilisé par exemple pour communiquer avec le PC pendant la programmation de la “flash”.
Enfin, pour fonctionner, le microcontrôleur a besoin d’un quartz de 14,32 MHz (XT1) et de deux petits condensateurs C3 et C4.
Deux sorties de signal audio distinctes sont prévues : l’une est réalisée en PWM et elle est disponible sur les broches PWM0 et PWM1, une sortie analogique est disponible sur la broche DAC du microcontrôleur. Toutes les trois aboutissent au connecteur J1. La sortie PWM0/PWM1 peut piloter directement un haut-parleur de 32 ohms d’impédance. On note que la broche PWM1 est également reliée, à travers R3, à la broche “Download” deJ1. Ceci car, à la suite d’un “reset”, le microcontrôleur transforme pendant un bref instant, la sortie PWM1 en entrée : un changement d’état sur cette broche signifie que nous voulons activer la procédure de programmation de la “flash” (“download” des données dans la “flash”).

Figure 1 : Schéma électrique du module Voice Extreme.

Liste des composants
U1 = SST29VE020 2 Mo EEPROM
U2 = VE-IC SPEECH RECOGNITION CONTROLLER
D1 = diode 1N4148
R1 = 100 kΩ
R2 = 6,8 kΩ
R3 = 4,7 kΩ
R4 = 47 kΩ
C1 = 100 nF
C2 = 100 nF
C3 = 27 pF
C4 = 27 pF
C5 = 100 nF
C6 = 100 nF
C7 = 22 nF
C8 = 10 nF
C9 = 47 μF électrolytique
C10 = 4,7 nF
C11 = 100 nF
C12 = 10 nF
C13 = 220 pF
C14 = 47 μF électrolytique
XTAL1 = quartz 14,318 MHz
J1 = connecteur barrette 2 x 17 pôles au pas de 2,54 mm

Tous les composants sont des CMS.


La réalisation pratique
Nous l’avons dit, le module est disponible déjà monté et essayé, ce qui signifie qu’il n’est pas, en principe, nécessaire d’expliquer comment le monter. Mais, à toutes fins utiles, la figure 2b-1 et 2 vous donne le dessin à l’échelle 1 du circuit imprimé double face à trous métallisés nécessaire au montage des rares (et très petits !) composants de surface (CMS). Si vous utilisez un petit fer à souder (moins de 20 W) à pointe très fine et du tinol de 0,5 mm de diamètre au maximum, vous pouvez envisager, en vous aidant des figures 2a (avec la liste des composants) et 3, de monter les CMS.
Dans ce cas, montez d’abord les deux circuits intégrés (pour une fois : vous y verrez plus clair) : orientez-les bien, IC1 repère-détrompeur en U vers le haut et IC2 repère-détrompeur en point plus pan coupé vers C11 et armez-vous de patience pour les soudures (ni court-circuit entre pistes ou pastilles ni soudure froide collée).
Montez ensuite les résistances, c’est beaucoup plus facile, les condensateurs (en respectant bien la polarité des électrolytiques C9 et C14) et la diode, bague noire repère-détrompeur vers R1. Montez le quartz debout. Montez enfin le long connecteur barrette double 2 x 17 pôles. C’est terminé.
Pour réaliser un programme adapté à votre module et plus généralement au VE-IC, il est nécessaire d’installer sur un PC le logiciel VE-IDEE et d’apprendre les fonctions que l’interprète VE-C met à disposition. Nous pouvons vous assurer que l’écriture d’un programme en langage C pour le VE-IC est plus simple qu’on ne s’y attendrait !

Figure 2a : Schéma d’implantation des composants du module Voice Extreme (à l’échelle 2).

Figure 2b-1 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés du module Voice Extreme.
Côté composants.


Figure 2b-2 : Dessin, à l’échelle 1, du circuit imprimé double face à trous métallisés du module Voice Extreme.
Côté soudures.


Figure 3 : Photo d’un des prototypes de la platine du module Voice Extreme.

Figure 4 : Câblage du connecteur J1.

Figure 5 : Schéma synoptique du VE-IC de Sensory.

Il s’agit d’un microcontrôleur à huit bits intégrant toute une série de fonctions matérielles et logicielles optimisées pour constituer, avec peu de composants externes, un système complet de reconnaissance vocale.
On le voit, c’est un microcontrôleur très particulier : il est possible de lui relier directement un microphone, car il est doté d’un réseau analogique effectuant la pré-amplification nécessaire, avec CAG (contrôle automatique de gain) afin de limiter correctement la dynamique du signal. Nous avons en outre un bloc de conversion A/N (ADC ou CAN, convertisseur analogique/numérique) pour échantillonner le signal analogique du microphone et le rendre disponible pour l’élaboration.
En sortie, le micro contrô leur met à notre disposition un signal PWM, c’est-à-dire dont le rapport cyclique (ou rapport entre niveau logique 1 et niveau logique 0) est modulé par une onde carrée, ou bien une sortie dérivant d’un convertisseur numérique/analogique (DAC ou CNA), qui restitue un signal analogique prêt à être amplifié et filtré avant de piloter un haut-parleur. Externement, il est nécessaire de connecter une mémoire “flash” (c’est-à-dire effaçable et réinscriptible électriquement) : cette mémoire sert à contenir le programme que le microcontrôleur doit exécuter et les données relatives aux signaux vocaux échantillonnés et elle doit avoir une capacité de 2 Mo.
Continuons, nous trouvons ensuite la CPU proprement dite, le coeur numérique de la puce en somme, l’interface pour les lignes de I/O et pour la gestion de la communication via RS232 et un bloc d’élaboration du signal vocal (“Speech Prosessing Unit”). Nous trouvons ensuite le “VE-C Interpreter”, soit l’interprète en langage C, ce qui signifie que les programmes écrits pour ce circuit intégré doivent l’être en langage C. Une fois les diverses instructions écrites et chargées dans la mémoire “flash”, elles sont traduites par l’interprète en instructions en langage machine que la CPU exécutera ensuite. Enfin, nous trouvons le “Speech Technology Firmware”, soit la partie du logiciel permettant de réaliser toutes les fonctions strictement liées à la technologie vocale comme, par exemple, la reconnaissance vocale.

Figure 6 : La programmation du circuit intégré Voice Extreme.

Le programmateur/platine de démonstration ET453.

Installation du logiciel
1) Insérer le CD, si l’ordinateur dispose de la fonction “Autoplay”, l’écran d’installation du logiciel apparaît automatiquement, sinon sélectionner Programmes/Exécuter/Setup.exe. Sur l’écran qui apparaît, sélectionner d’abord “Install Voice Extreme IDE” et ensuite “Install Quick Syntesis” : tout l’environnement du développement de Voice Extreme est installé sur le PC.
2) Copier l’onglet Platine de démonstration sur le disque dur de l’ordinateur en C:\Programmes\Sensory.
3) Relier l’entrée sérielle du PC à la ligne sérielle de la Platine de démonstration et alimenter la platine avec une tension continue et stabilisée de 12 V.

Programmation du VE-IC
1) Sélectionner et ouvrir le premier programme de démonstration : double clic sur le fichier “C:\Programmes\Sensory\Demoboard\Demob_1\Demob_1.veb”, l’écran du logiciel “Voice Extreme Programmer” apparaît.
2) Sélectionner la commande “Start Download” et appuyer cinq secondes sur le poussoir DWN de la Platine de démonstration : une barre indique la progression de la programmation. Le fichier binaire Demob_1.veb est transféré dans la mémoire “flash” de la Platine de démonstration.
3) Presser le poussoir RST de la Platine de démonstration.
4) Vérifier le fonctionnement du programme de démonstration Demob_1.veb.
5) Répéter les étapes 1 à 4 pour programmer et vérifier le fonctionnement des autres “listings” de démonstration.

Vérification du fonctionnement du “listing” de demo
1) Demob_1.veb - Presser les poussoirs 1 à 9 et vérifier que l’afficheur à 7 segments visualise le numéro du poussoir pressé.
2) Demob_2.veb - Presser les poussoirs 1 à 9, les poussoirs *, #, A, B, C, D et vérifier que le ton DTMF correspondant retentit.
3) Demob_3.veb - Presser les poussoirs disponibles sur la Platine de démonstration et vérifier que la Platine de démonstration prononce le nombre ou la lettre du poussoir pressé, agir sur le trimmer R6 pour régler le volume.
4) Demob_4.veb - Presser le poussoir 1, se conformer aux phrases prononcées par la Platine de démonstration pour insérer deux commandes vocales en technologie Speaker Dependent. Presser le poussoir 2, prononcer la première commande vocale insérée : l’afficheur à 7 segments doit visualiser le chiffre 1. Presser le poussoir 2, prononcer la seconde commande vocale insérée : l’afficheur à 7 segments doit visualiser le chiffre 2.
5) Demob_5.veb - Le programme permet d’enregistrer et reproduire des messages vocaux. Dans ce but on utilise les poussoirs suivants : 0 = Démarre l’enregistrement d’un message, 1 = Démarre la reproduction l’un après l’autre des messages pré-enregistrés, 2 = Efface tous les messages disponibles en mémoire, 3 = Arrêter l’enregistrement ou la reproduction des messages.
6) Demob_6.veb - le programme reproduit trois morceaux musicaux. Dans ce but, on utilise les poussoirs suivants : 1 = Lance la reproduction du morceau 1, 2 = Lance la reproduction du morceau 2, 3 = Lance la reproduction du morceau 3, 4 = Arrête la reproduction du morceau.
7) Demob_7.veb - Presser le poussoir 1 pour lancer la procédure de reconnaissance Speaker Independent, prononcer en anglais les chiffres de 0 à 9, vérifier que l’afficheur à 7 segments visualise bien le chiffre prononcé.
8) Demob_8.veb - Fonctionne comme la démonstration numéro 7, mais le chiffre reconnu est envoyé en sortie sur le canal sériel de la Platine de démonstration.
9) Demob_9.veb - Presser RST, presser le poussoir 1, relâcher RST et maintenir pressé le poussoir 1 jusqu’à entendre un bip. Se conformer aux phrases prononcées par la Platine de démonstration pour insérer deux commandes vocales en technologie “Continuous Listening”.
Prononcer la première commande et vérifier que la Platine de démonstration émet bien un bip, prononcer aussi la seconde commande et vérifier que la Platine de démonstration émet bien trois bips.

Figure 7 : Modifications du module VEM.


Le programmateur/platine de démonstration ET453 est capable de programmer et de travailler avec le module original Sensory (code VEM - Voice Extreme Module) comme avec le module ET455. Les deux modules sont compatibles en dimensions et broche à broche. La seule différence tient à la section microphone (broche MIC-IN) : dans le module original VEM, entre la broche MIC-IN du module et le circuit intégré VE, se trouve un circuit de pré-amplification, dans notre module ET455 la broche MIC-IN du module est reliée directement au circuit intégré VE.

Utilisation du module ET455
Le module est inséré dans la platine de base en respectant la polarité, aucune modification n’est nécessaire.

Utilisation du module VEM
Il est nécessaire d’exclure le circuit de pré-amplification microphonique prévue sur le module étant donné que ce circuit est déjà présent sur la platine de base ET453.
Pour ce faire, il faut dessouder et ôter la résistance CMS R7 du module VEM. Faites cette opération avec un fer de faible puissance et des pinces précelles. R7 se trouve au verso du module (là où se trouve la mémoire et le connecteur J1), côté extérieur en bas.

1 commentaires:

Related Posts Plugin for WordPress, Blogger...