Commande vocale d'un réseau



1. Description du système

Vous parlez devant un micro et le PC transmet les commandes au réseau. C'est possible grace à un logiciel de reconnaissance vocale fourni gratuitement par Microsoft et qui peut s'interfacer avec Visual Basic.

Vous devez d'abord télécharger le logiciel Microsoft Speech SDK 5.1 sur le site de Microsoft en cliquant ici.
Vous devez ensuite installer le logiciel sur votre PC.

Il faut noter que ce logiciel ne comprend que l'Anglais et par conséquent, les ordres de commande doivent être des mots anglais.

Evidemment, vous devez avoir un micro connecté sur l'entrée micro du PC.

J'ai interfacé mon TCO logiciel avec ce programme et ça marche.
Le tableau suivant donne les ordres reconnus par le programme et les fonctions associées.

Commande vocale Fonction associée
STOP arrêt d'urgence
RUN marche
GO FRONT passage en marche avant
V ONE à V TEN réglage de la vitesse entre 0 et 10
REVERSE passage en marche arrière
C ONE ON alim canton C1 on
C ONE OFF alim canton C1 off
SWITCH ONE DIRECT aiguille 1 en position directe
SWITCH ONE DEVIATED aiguille 1 en position déviée


2. Conception d'un TCO logiciel avec commandes vocales

A titre d'exemple, on va reprendre le TCO logiciel décrit dans la rubrique "Exemples de programmes pour la commande par PC d'un réseau de trains" et le modifier pour l'adapter aux commandes vocales.

Vous pouvez télécharger le programme Visual Basic en cliquant ici.

On trouve dans le code de la form1 une librairie des mots clés qui doivent être reconnus:
Private Sub Form_Load()
'La source de la gramaire
Set GrammarSource = New Collection
GrammarSource.Add "Hi everyone"
GrammarSource.Add "It works"
GrammarSource.Add "Stop"
GrammarSource.Add "Run"
etc...
end sub

Pour ajouter un nouveau mot clé à reconnaître (par exemple REVERSE), il suffit de taper le code suivant:
GrammarSource.Add "REVERSE"

Chaque mot clé est associé à une commande qui se trouve dans un sous programme intitulé:
Private Sub RecoContext_Recognition(ByVal StreamNumber As Long, ByVal StreamPosition As Variant, ByVal RecognitionType As SpeechLib.SpeechRecognitionType, ByVal Result As SpeechLib.ISpeechRecoResult)

Par exemple, pour associer le mot clé "Stop" à la commande d'arrêt d'urgence, il faut taper le code suivant:
If text = "Stop" Then
Label16.Caption = text
OutputAnalogChannel 1, 0
Label3.Caption = 0
HScroll1.Value = 0
End If

Voici une capture d'écran de l'interface graphique du TCO à commandes vocales:



Retour vers la page d'accueil