Как разрешить различные варианты выбора с помощью 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