2012-06-27 4 views
1

Я создаю приложение распознавания речи с использованием SAPI. Мне нужно уметь выделять разные уровни приоритета для разных грамматик, которые я использую. (диктовка грамматики и другая грамматика, которую я определил). Мне нужен распознаватель для поиска в грамматике, которую я определил, и посмотрите на грамматику диктовки, только если речевой ввод не соответствует ни одному из слов в грамматике, которую я определил. На данный момент у меня есть такой код:Как предоставить уровни приоритета для грамматик в SAPI?

Grammar myGram; 
Choices myEditor = new Choices(); 
myEditor.Add("public"); 
//adding other choices 
myGram = new Grammar(new GrammarBuilder(myEditor)); 
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine(); 
recognizer.LoadGrammar(myGram); 
Grammar dictation = new DictationGrammar(); 
dictation.Name = "Dictation Grammar"; 
recognizer.LoadGrammar(dictation); 
recognizer.SpeechRecognized += new EventHandler<SpeechRecognizedEventArgs>(
       SpeechRecognizedHandler); 
recognizer.SetInputToDefaultAudioDevice(); 
recognizer.RecognizeAsync(RecognizeMode.Multiple); 

Пожалуйста, дайте мне какие-либо идеи о том, как расставить приоритеты myGram над диктовки грамматике. :)

ответ

2

Если вы используете грамматики, совместимые с SRGS, вы можете использовать weights, чтобы в основном назначать уровни приоритета. Объект Grammar поддерживает хмм-форматированные грамматики, соответствующие W3C SRGS specification.