Как разрешить различные варианты выбора с помощью GrammarBuilder

Я работаю над простым приложением для распознавания голоса. Мне нужна помощь с 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);

Этот код ожидает, что пользователь скажет что-то от choice1, затем choice2, а затем choice3 в этом порядке, и прекрасно работает. Но я хочу, чтобы код ожидал выбор1, затем выбор2, а затем ЛЮБУЮ комбинацию выбора2 и выбора3. Я не уверен, как это реализовать.

1 ответ

Решение

Вы можете добавить все варианты от 2 до 3. И затем дважды добавить эту комбинацию в GrammarBuilder. (Тогда у вас есть 4 варианта.) Я уверен, что есть лучшее решение, так как это может показаться обходным решением.

Я сам использую статический SRGS-xml-файл. И у этого есть больше вариантов, чем класс Choices, я думаю.

Вы также можете сделать это динамически, посмотрите на этот пример. http://gotspeech.net/forums/thread/5206.aspx

Другие вопросы по тегам