2011-10-28 3 views
0

Je travaille sur une simple application de reconnaissance vocale. J'ai besoin d'aide avec GrammarBuilder. Voici ce que j'ai essayé:Comment autoriser différents ordres de choix avec GrammarBuilder

Choices choice1 = new Choices(....); 
Choices choice2 = new Choices(....); 
Choices choice3 = new Choices(....); 

GrammarBuilder gb = new GrammarBuilder(); 
gb.Append(choice1); 
gb.Append(choice2); 
gb.Append(choice3); 

Grammar grammar = new Grammar(gb); 
recognitionEngine.LoadGrammar(grammar); 

Ce code prévoit que l'utilisateur de dire quelque chose de choix1 puis choix2 puis Choice3 dans cet ordre et fonctionne très bien. Mais je veux que le code attende choice1 puis choice2 puis toute combinaison de choice2 et choice3. Je ne suis pas sûr de savoir comment l'appliquer.

Répondre

1

Vous pouvez ajouter tous les choix de 2 à 3. Ensuite, ajoutez cette combinaison deux fois à GrammarBuilder. (Vous avez 4 choix ajoutés alors.) Je suis sûr qu'il y a une meilleure solution à cela, car cela peut sembler être un tour de passe-passe.

Moi, j'utilise un fichier statique SRGS-xml. Et il a plus d'options que la classe Choices, je pense.

Vous pouvez également le faire dynamiquement, jetez un oeil à cet exemple. http://gotspeech.net/forums/thread/5206.aspx

+0

En effet, c'est ce que j'ai fait, j'ai sauté GrammarBuilder et est allé avec srgs xml et ça a bien fonctionné. – kr13

Questions connexes