C # и SAPI, у меня есть распознавание речи, но его подбор слов меня не интересует. Как я могу ограничить, а не только по весу, грамматический дикт?

Уф, большое название, но да, это подводит итог вопросу.

Я работаю на С# с Microsoft SAPI, используя их распознавание речи в программе, над которой я работаю.

то, что я делаю это. грамматика = objRecoContext.CreateGrammar(0);

            menuRule = grammar.Rules.Add("typewrite", SpeechRuleAttributes.SRATopLevel | SpeechRuleAttributes.SRADynamic, 1);
            object PropValue = "";

            menuRule.InitialState.AddWordTransition(null, "will", " ", SpeechGrammarWordType.SGLexical, "will", 1, ref PropValue, 1.0F);
            menuRule.InitialState.AddWordTransition(null, "New", " ", SpeechGrammarWordType.SGLexical, "New", 1, ref PropValue, 1.0F);
            menuRule.InitialState.AddWordTransition(null, "Open", " ", SpeechGrammarWordType.SGLexical, "Open", 2, ref PropValue, 1.0F);
            menuRule.InitialState.AddWordTransition(null, "Close", " ", SpeechGrammarWordType.SGLexical, "Close", 3, ref PropValue, 1.0F);

для пользовательских слов. но это возьмет больше, чем я хочу. Как я могу это исправить.

я спрашиваю, как я могу заставить m $ sapi заботиться только о тех словах, которые я хочу. не каждое слово в словаре по умолчанию.


person w-ll    schedule 05.03.2009    source источник


Ответы (1)


Вы можете попробовать использовать режим Command and Control, чтобы распознаватель распознавал только те слова, которые вам нужны. Для вашего кода все, что вам нужно сделать, это добавить

грамматика.CmdSetRuleState("машинопись",SpeechRuleState.SGDSActive);

и objRecoContext.State = SpeechRecoContextState.SRCS_Enabled;

Надеюсь это поможет..

person user26242    schedule 13.03.2009