
Dans beaucoup de films de science-fiction, les habitations recèlent des trésors d’automatismes domotiques qui nous ont fait rêver : elles le font désormais bien moins car, là encore, comme en de multiples domaines, la réalité a rejoint la fiction…quand elle ne l’a pas dépassée. Une maison intelligente (et c’est là la définition de la domotique, n’est-ce pas ?) reconnaît les ordres vocaux que les hôtes des lieux lancent à ses extensions et autres périphériques, elle est un véritable ordinateur habitable sans clavier ni souris : les inflexions des voix, propres à chaque usager, sont reconnues comme des données et suffisent !
Notre réalisation
Avec notre commande vocale domestique à 8 voies (attention à l’orthographe : commandant 8 fonctions de la maison par relais) reconnaissant jusqu’à 3 voix (organes vocaux humains), vous ferez comme Kirk et Spock parlant au vaisseau Enterprise dans Star Trek. Ou presque.
La technologie de reconnaissance vocale a fait, ces derniers temps, d’énormes progrès : en particulier, de nouvelles puces ont fait leur apparition sur le marché, nos lecteurs les plus fidèles les connaissent déjà. Le microcontrôleur VE-IC RSC-300 de SENSORY, en plus des fonctions habituelles remplies par les autres microcontrôleurs, est capable de reconnaître les voix.
Cet ar ticle vous propose de comprendre le fonctionnement et de construire un système de commande vocale domestique, basé sur le module VE-IC : vous pourrez l’utiliser, par exemple, pour la commande d’éclairage (allumage/extinction), du téléviseur, de la chaîne Hi-Fi, de la climatisation ou du four, du relevage ou de la descente des stores (pourvu qu’ils soient motorisés !), etc.
Les applications sont quasi sans limites, y compris dans le domaine professionnel, mais nous laissons cela à votre imagination et à vos besoins propres…que vous connaissez bien mieux que nous.

Le cerveau de l’appareil est le circuit intégré SENSORY Voice Extreme IC, fourni monté sur un petit module à côté de la mémoire “flash” contenant le programme de notre commande vocale et les données utilisées par celle-ci. Le VE-IC est un microcontrôleur à 8 bits programmable en C, caractérisé par le fait qu’il est capable de remplir une fonction de reconnaissance de la parole. L’article considère le module comme une “boîte noire”, soit comme un bloc du schéma électrique correspondant à un connecteur à 34 broches.
Figure 2 : L’entraînement.
On l’a vu, le module VE-IC nécessite la mémorisation de certains modèles (“templates”) auxquels les signaux vocaux venant du microphone doivent être comparés. Le texte de l’article explique comment activer et comment se passe la procédure d’entraînement (“training”), mais ici nous voulons donner quelques règles de base pour obtenir le meilleur fonctionnement possible de l’appareil :
– La distance entre l’usager et le microphone peut être changée en modifiant les valeurs des composants R12/C14.
Effectuez les enregistrements en vous tenant à peu près à la même distance que celle qui sera pratiquée en fonctionnement réel de commande domestique. Parlez en outre en vous tournant vers le microphone : une voix réfléchie peut créer un modèle incorrect.
– Effectuer l’entraînement dans un silence absolu. Bien que le dispositif soit capable de reconnaître les paroles même avec un certain bruit de fond, la phase d’entraînement est la plus délicate et réaliser cet enregistrement avec du bruit de fond ne permet pas, ensuite, une identification plus sûre.
– Evitez l’interposition d’objets, pouvant altérer le signal vocal, entre l’usager et le microphone.
– Ne superposez pas les mots de reconnaissance avec ceux de la voix-guide, attendez environ 1 seconde après le Prompt de l’appareil pour parler. Le circuit reconnaît le silence et il ne le mémorise pas en modèle.
– N’utilisez pas de monosyllabes ou de bisyllabes, car cela pourrait créer une certaine difficulté dans la création des modèles vocaux par le circuit.
Le fonctionnement de la commande vocale
Entrons un peu plus dans la logique du système : le circuit possède 8 relais de sortie auxquels on peut relier tous les dispositifs électriques à commander que l’on veut. Les actions qu’il est possible d’appliquer à chacun d’eux sont l’activation, la désactivation ou le changement d’état. Chacune des trois actions est identifiée par la prononciation d’un mot : par exemple, “Allume”, “Eteins” et “Change”. Chaque relais est identifié par une commande vocale différente : par exemple (si l’on commande l’intérieur d’un appartement), “Lumière”, “Téléviseur”, “Chaîne stéréo”, “Climatiseur”, etc. (jusqu’à huit appareils). Le systèmes est de plus en mesure de reconnaître les commandes prononcées par un nombre maximum de 3 usagers : leur différentiation se fait par un mot identifiant : par exemple, “Ordinateur” ou “Système”.
Ainsi, par exemple, en prononçant à la suite l’un de l’autre les trois mots “Ordinateur, Allume, Lumière”, on peut obtenir l’allumage de l’éclairage de la maison. Autre exemple, avec la séquence “Ordinateur, Eteins, Chaîne stéréo”, on peut arrêter la chaîne stéréo, etc. Les mots constituant l’identifiant peuvent être différents d’un usager à l’autre : par exemple, le premier usager peut très bien prendre “Ordinateur” et un autre “Système”.
Les techniques de reconnaissance vocale sont du type Continuous Listening pour ce qui est de l’identifiant et du type Speaker Dependent pour les actions de commandes. Ce qui signifie que, lorsque le système est activé, le microcontrôleur est toujours en attente de la prononciation de l’identifiant et qu’en fonction de celui-ci il identifie l’usager. Quand l’interlocuteur a été reconnu, le système considère alors seulement les actions et les commandes correspondantes. Le microcontrôleur se met donc en attente du deuxième mot grâce auquel il identifie l’action à exécuter et enfin le troisième et dernier par lequel il “sait” à quel relais l’appliquer. Des “time out” (délais d’achèvement) sont prévus, permettant au microcontrôleur de se réinitialiser dans le cas où les mots suivants ne seraient pas prononcés.
Pour permettre au VE-IC de reconnaître les divers mots, il est nécessaire de procéder à un apprentissage ou entraînement de la part de chacun des (maximum) trois usagers : identifiant, actions et commandes sont échantillonnés et convertis par le microcontrôleur en modèles vocaux ou “templates”, ensuite utilisés pour effectuer les diverses comparaisons.
Chaque reconnaissance vocale est caractérisée par certains paramètres (introductibles par le biais du mode Configuration), permettant de spécifier le degré de sécurité : pour l’identifiant et les commandes, il est possible de spécifier une valeur entre 1 et 3, pour les actions en revanche, la plage va de 1 à 5. Des valeurs plus élevées permettent un contrôle plus sûr, mais exigent une prononciation plus proche des modèles mémorisés.
La platine comporte 6 touches (P1-Config, P2, P3, P4, P5-On/Off et P6-Reset) pouvant être utilisées pour enter dans le mode de configuration et, là, spécifier le degré de sécurité, ou bien au moyen de ces touches on peut entrer dans le mode d’entraînement ou apprentissage et ensuite mémoriser les modèles de comparaison correspondant aux trois usagers.
Pour entrer dans le mode de configuration, il est nécessaire de presser et de maintenir pressés “reset” et “config” : ensuite on relâche “reset” et on maintient appuyé “config” pendant quelques secondes après l’émission d’un bip. Alors, en relâchant “config”, on entre dans le mode Configuration.
En agissant sur les touches P2 à P4, on fait varier le degré de sécurité.
A chaque modification, la valeur courante est soulignée par une voixguide.
Quand on relâche “reset”, on revient en fonctionnement normal. En mode Entraînement, les trois touches P2 à P4, indiquent l’usager 1, 2 ou 3. Pour l’activer, il est nécessaire de maintenir pressées “reset” et la touche de l’usager pendant quelques secondes après l’émission d’un bip. Alors, une voix-guide demande à l’usager de prononcer le mot identifiant, les mots des actions et les mots des commandes. On a en plus la possibilité d’effacer de la mémoire les modèles correspondants aux usagers : en maintenant pressées “reset” et la touche de l’usager, puis en relâchant ensuite “reset” et, un instant après le bip, la touche d’usager, les modèles correspondants sont effacés. La dernière touche (P5-On/Off) est utilisée pour activer/désactiver la reconnaissance vocale.
L’interface de la commande vocale Voice Control est constituée d’une LED verte signalant la mise sous tension, une LED jaune indiquant qu’un mot a été reconnu, un microphone utilisé pour échantillonner le signal et enfin un haut-parleur utilisé par la voix-guide. Le volume du hautparleur peut être réglé par le trimmer R6 (on peut si l’on veut l’éteindre et ne se baser que sur la LED jaune).
Le gain du microphone aussi peut être réglé (en modifiant les valeurs de R12/C14) en fonction de la distance microphone/usager (figure 2).
Le schéma électrique de la commande vocale
Le coeur du circuit est le module VE-IC (puce U4) : il est en mesure de s’interfacer avec le microphone d’entrée (MIC), avec le haut-parleur de sortie (SPK), avec les 6 touches de configuration et avec la LED de signalisation (LD2). Le signal prélevé sur le microphone est amené à la broche Micln du microcontrôleur par l’intermédiaire d’un réseau RC, dont R12/C14 déterminent le gain. Le signal sonore de sortie en revanche est prélevé sur le bornier DACOut et est amplifié par l’étage U3, dont le gain peut être modifié en agissant sur le trimmer R6.
Le circuit est alimenté en 12 V continu, le circuit intégré régulateur U1 LM317 produit le +3 V alimentant le VE-IC et la puce U5. Le circuit intégré régulateur U2 7809 fournit en revanche le +9 V alimentant U3.
Analysons maintenant comment sont commandés les 8 relais de sortie : ils sont reliés, par l’intermédiaire des deux blocs U5 74HC595 et U6 ULN2803, aux ports P0.2 à P0.4 et P0.7 du module central. Le premier bloc, U5, est un “serial in/parallel out shift register” fournissant en parallèle sur les 8 sorties (P0 à P7, correspondant respectivement aux broches 15, 1 à 7) la valeur logique des 8 bits qui lui sont fournis, selon une transmission sérielle, sur l’entrée Data (broche 14). Le module VE-IC émet en mode sériel (en utilisant la ligne P0.2) la valeur des 8 bits. Ceux-ci sont reçus par le 74HC595 sur la broche Data et donc fournis en parallèle sur les 8 sorties P0 à P7. Les lignes P0.3, P0.4 et P0.7 du VE-IC (correspondant respectivement aux broches MC, Clock et LE de U5) sont utilisées comme “reset” du 74HC595, comme signal d’horloge pour la transmission et comme “storage register clock input”. Enfin, la broche 13 de U5 (active au niveau logique bas) indique au 74HC595 de maintenir toujours habilité l’output.
Les 8 sorties parallèles de U5 sont ensuite amplifiées par le circuit intégré U6, réalisant un “array” (tableau) de 8 transistors Darlington. Les sorties du 74HC595 travaillent à bas niveaux de tension, typiques des dispositifs logiques TTL. Pour commander les relais, on a besoin en revanche de plus hauts niveaux de tension/courant : ceux-ci sont justement fournis par le ULN2803.
Dernier point, LD2 est gérée par le VE-IC comme système de signalisation et LD1 est insérée directement sur l’alimentation et sert de témoin M/A.

Liste des composants
R1 = 1,8 kΩ
R2 = 200 Ω 1%
R3 = 300 Ω 1%
R4 = 22 kΩ
R5 = 22 kΩ
R6 = 47 kΩ trimmer
R7 = 150 Ω
R8 = 56 Ω
R9 = 1 Ω
R10 = 1 Ω
R11 = 100 Ω
R12 = 1,8 kΩ
R13 = 4,7 kΩ
R14 = 820 Ω
R15 = 100 kΩ
C1 = 100 nF multicouche
C2 = 100 nF multicouche
C3 = 100 nF multicouche
C4 = 220 μF 25 V électro.
C5 = 220 μF 25 V électro.
C6 = 220 μF 25 V électro.
C7 = 100 nF multicouche
C8 = 100 μF 25 V électro.
C9 = 47 μF 25 V électro.
C10 = 220 pF céramique
C11 = 220 μF 25 V électro.
C12 = 100 nF multicouche
C13 = 220 μF 25 V électro.
C14 = 6,8 nF 100 V polyester
C15 = 10 μF 63 V électro.
C16 = 10 nF 100 V polyester
C17 = 100 nF multicouche
LD1 = LED verte 5 mm
LD2 = LED jaune 5 mm
D1 = 1N4007
U1 = LM317
U2 = 7809
U3 = TBA820M
U4 = Voice Extreme Module
U5 = 75HC595
U6 = ULN2803
T1 = BC547
RL1 = Relais miniature 12 V
RL2 = Relais miniature 12 V
RL3 = Relais miniature 12 V
RL4 = Relais miniature 12 V
RL5 = Relais miniature 12 V
RL6 = Relais miniature 12 V
RL7 = Relais miniature 12 V
RL8 = Relais miniature 12 V
MIC = Capsule microphonique
SPK = Haut-parleur 8 Ω 1 W
Divers :
1 support 2 x 4
1 support 2 x 8
1 support 2 x 9
1 prise d’alimentation
6 micro-interrupteurs
3 borniers 2 pôles
8 borniers 3 pôles
2 barrettes tulipes 17 pôles
1 circuit imprimé cod. S0487.
Nous vous rappelons que R12/C14 dépendent de la distance usager/MIC que l’on prévoit :
Moins de 0,25m (R12 = 1 kilΩ C14 = 10 nF)
De 0,25 à 1m (R12 = 1,8 kΩ C14 = 6,8 nF)
Plus de 1m (R12 = 2,7 kΩ C14 = 4,7 nF)
La réalisation pratique de la commande vocale
Une fois que l’on a réalisé le circuit imprimé par la méthode préconisée et décrite dans l'article : "Comment fabriquer vos circuits imprimés facilement ?" (la figure 4b en donne le dessin à l’échelle 1), ou qu’on se l’est procuré, on monte tous les composants dans un certain ordre en regardant fréquemment la figure 4a et la liste des composants.
Montez tout d’abord les 3 supports des circuits intégrés : vérifiez bien les soudures (ni court-circuit entre pistes et pastilles, ni soudure froide collée). Le module VE-IC est fourni avec 2 barrettes tulipes femelles à 17 pôles à utiliser pour connecter ses 34 broches au circuit : montez ces deux barrettes.
Montez ensuite toutes les résistances sans les intervertir et en distinguant bien les deux à 1% (elles sont différentes des 1/4 de W ordinaires à 5%), puis le trimmer R6 à plat. Montez tous les condensateurs en respectant bien la polarité des électrolytiques (la patte la plus longue est le +). Montez la diode D1, bague repère-détrompeur vers C4, puis la LED verte en respectant bien sa polarité (l’anode + est la patte la plus longue).
La LED jaune est montée sur bornier, n’oubliez pas non plus, le moment venu, d’en respecter la polarité.
Montez les deux régulateurs U1 et U2, debout, sans les confondre et semelle métallique tournée vers C3 pour U1 et C2 pour U2. Montez le transistor BC547 méplat repère-détrompeur orienté vers l’intérieur de la platine.
Montez les 6 poussoirs miniatures.
Montez les 8 borniers à 3 pôles pour les charges (OUT) et les 3 à 2 pôles pour la LED jaune (LD2), le microphone (MIC) et le haut-parleur (SPK). Montez la prise d’alimentation. Montez les 8 relais de commandes.
Installez maintenant dans les deux files de barrette tulipe femelle au pas de 2,54 mm le module VE-M par-dessus le circuit imprimé principal (voir figure 5). Enfoncez délicatement les 3 circuits intégrés restants dans leurs supports en orientant bien leur repère-détrompeur en U dans le sens indiqué par la figure 4a. Reliez par les borniers correspondants la LED jaune, le microphone (pour les deux, attention à la polarité) et le haut-parleur.
Quand tout est terminé et vérifié (soudures, composants), connectez l’alimentation continue 12 V et vérifiez que la LED verte s’allume. Si tout fonctionne correctement, la voix-guide devrait vous souhaiter la bienvenue par la phrase “Voice Control Activé” : il est alors possible de commencer la phase d’entraînement et de mémoriser les divers modèles.
Dernier conseil concernant la prononciation des différentes commandes : trois mots sont nécessaires (identifiant, action et commande), entre un mot et le suivant, il faut laisser au VE-IC quelques instants pour échantillonner le signal, construire le modèle vocal et le comparer ensuite avec ceux mémorisés. Le module vous indique, à travers la LED jaune de signalisation et le haut-parleur, que le mot a été correctement échantillonné et converti.


