5

私は現在、MicrosoftのSpeechEngineを使用した音声認識で楽しい時間を過ごしています。C#でのセットアップと使用は非常に簡単で、最初に想像したよりも少ないコード行で素晴らしいことを実現できます。

さて、要点は、私がこれを処理することを本当に知らないということです。エンジンがリッスンを開始する必要があることを理解しています。次に、単語または文を言い、辞書で比較して、一致するものを見つけることができるかどうかを確認します。もしそうなら、プログラムはあなたがしたいことは何でもします。

私が頭を悩ませているのは、エンジンに、彼の辞書にある単語の1つまたはすべてを含む完全なランダムフレーズで単語を「検出」させたいということです。

たとえば、辞書に次の単語があると仮定します。-「読む」-「ニュース」

たとえば、「ニュースを読んでください」-「ニュースを読んでもらえますか」-「ニュースを読んでください」などと言うたびに、これらの特定の単語を検出するコードを作成したいと思います。

どうすればこれを達成できますか?

4

1 に答える 1

7

この機能は「キーワード スポッティング」と呼ばれます。通常、音声認識エンジンでキーワード スポッティングを実行することはできません。特定のスポッティング パッケージが必要です。重要な問題は、エンジンが 2 つの結果 (単語が見つかった場合と単語が見つからない場合) を常に比較する必要があることです。音声認識は、文法にある単語のみを検索し、他の音は考慮しません。スポッティングには別のアルゴリズムが必要です。

多くの可能な音節または他の音を音声認識文法に追加し、エンジンがキーワードの代わりにそれらを見つけることを期待する回避策がありますが、特定のキーワード スポッターと比較して精度の点であまり良い解決策ではありません。

Microsoft のエンジンと密接に結びついておらず、米国英語やフランス語などの共通言語が必要な場合は、CMUSphinxなどの音声認識用のオープン ソース ソフトウェア ツールキットを使用してキーワード スポッティングを実装できます。

于 2012-10-10T15:31:02.237 に答える