C # и SAPI, у меня есть распознавание речи, но собирание слов меня не интересует. Как я могу ограничить, а не только превышать вес, диктатор? - PullRequest
1 голос
/ 05 марта 2009

Вот так, большой заголовок, но да, подытоживающий вопрос.

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

что я делаю, так это grammar = 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 заботиться только о словах, которые я хочу. не каждое слово в задании по умолчанию.

1 Ответ

0 голосов
/ 13 марта 2009

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

grammar.CmdSetRuleState ( "машинный", SpeechRuleState.SGDSActive);

и objRecoContext.State = SpeechRecoContextState.SRCS_Enabled;

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

...