1

ふぅ、大きなタイトルですが、そうです、それが質問を要約しています.

私は、Microsoft SAPI を使用して C# で作業しており、作業中のプログラムで音声認識を使用しています。

私がそれをしているのは何ですか。文法 = 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 に、私が望む言葉だ​​けを気にさせることができるかということです。デフォルトの辞書のすべての単語ではありません。

4

1 に答える 1

0

認識エンジンが必要な単語だけを認識するように、コマンド アンド コントロール モードを使用してみることができます。あなたのコードのために、あなたがする必要があるのは追加するだけです

grammar.CmdSetRuleState("typewrite",SpeechRuleState.SGDSActive);

および objRecoContext.State = SpeechRecoContextState.SRCS_Enabled;

お役に立てれば..

于 2009-03-13T01:40:03.967 に答える