Windows7 64 ビットの VS2012 で System.Speech.Recognition を使用しています。
私の問題は、ユーザーが話し始めると、認識エンジンが話されたすべてのもの (つまり、「アクティブなプログラムを閉じてください」という文全体) を聞いているように見え、その文全体を私の文法に一致させようとすることです。信頼性のために、文全体を一致させる必要はなく、「close」や「active program」などのキーワードだけを聞きたいと思います。
私が理解していることから、エンジンはユーザー入力「アクティブなプログラムを閉じてください」を単一の正しい応答にマップしますが、その単一の入力に複数の「ヒット」があったことを認識する方法が必要です。
ユーザーが各単語の間にギャップを置いて、すべてが個別の入力として処理される場合、私が今持っているものは正常に機能しますが、問題は、普通に話し、文全体を単一の入力として受け入れる場合です。
入力全体の文法で一致を見つけることなく、入力からキーワードだけをエンジンに検出させる方法はありますか? (または、おそらく私の文法で正規表現を設定する方法?)
Choices から構築された Grammar を備えた単純な SpeechRecognitionEngine を使用しています。