Bonjour à tous,

je tente de mettre au point un logiciel de reconnaissance vocale. Je passe par Vista et je développe en C# via le framework .NET (bibliothèque System.Speech).

J'ai définit une grammaire de type SRGS (classe Grammar) via un fichier de définition grXML, ce genre là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?xml version="1.0" encoding="iso-8859-1" ?>

<!DOCTYPE grammar PUBLIC "-//W3C//DTD GRAMMAR 1.0//EN"
                  "http://www.w3.org/TR/speech-grammar/grammar.dtd">

<grammar xmlns="http://www.w3.org/2001/06/grammar"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.w3.org/2001/06/grammar 
                             http://www.w3.org/TR/speech-grammar/grammar.xsd"
         xml:lang="fr-FR" version="1.0" root="cmd" mode="voice"
         tag-format="semantics-ms/1.0" >

<rule id="cmd">
    <one-of>
      <item>quitter application</item>
      <item>éditer</item>
      <item>nouveau fichier</item>
    </one-of>
</rule>

</grammar>
Au stade où j'en suis, l'application fonctionne bien : elle reconnait bien mes phrases si elles appartiennent à la grammaire.

Maintenant, je voudrais adapter mon code en fonction de la commande prononcée.

Comment faire ? Est-ce que je dois passer par un "if resultReco == 'ouvrir' " après chaque phrase reconnue ?
N'y a-t-il pas un moyen plus efficace de procéder ?

J'ai trouvé de la documentation sur VoiceXML, mais je crois comprendre qu'on ne peut l'utiliser que pour des applications Web (ce qui n'est pas mon cas).

Quelle solution choisir ?

Merci d'avance