2

Windows7 64 ビットの VS2012 で System.Speech.Recognition を使用しています。

私の問題は、ユーザーが話し始めると、認識エンジンが話されたすべてのもの (つまり、「アクティブなプログラムを閉じてください」という文全体) を聞いているように見え、その文全体を私の文法に一致させようとすることです。信頼性のために、文全体を一致させる必要はなく、「close」や「active program」などのキーワードだけを聞きたいと思います。

私が理解していることから、エンジンはユーザー入力「アクティブなプログラムを閉じてください」を単一の正しい応答にマップしますが、その単一の入力に複数の「ヒット」があったことを認識する方法が必要です。

ユーザーが各単語の間にギャップを置いて、すべてが個別の入力として処理される場合、私が今持っているものは正常に機能しますが、問題は、普通に話し、文全体を単一の入力として受け入れる場合です。

入力全体の文法で一致を見つけることなく、入力からキーワードだけをエンジンに検出させる方法はありますか? (または、おそらく私の文法で正規表現を設定する方法?)

Choices から構築された Grammar を備えた単純な SpeechRecognitionEngine を使用しています。

4

1 に答える 1

1

Choices にガベージルールを含める必要があります。そうすると、文の他の部分をガベージと一致させることができます。ただし、検出/誤警報率を適切に調整できないため、認識機能を使用してキーワード スポッティングを実装するのは簡単ではありません。特殊なソリューションの方がよい場合があります。

于 2014-05-30T15:53:30.010 に答える