共有デスクトップ認識エンジンを使用しているため、デスクトップ認識が開始されていると思います。Inproc Recognizer は、アプリケーションにのみ使用する必要があります。これを行うには、アプリケーションで SpeechRecognitionEngine() をインスタンス化します。
ディクテーション文法とデスクトップ Windows レコグナイザーを使用しているため、話者がトレーニングして精度を向上させることができると思います。Windows 7 レコグナイザー トレーニングを実行して、精度が向上するかどうかを確認します。
.NET スピーチを始めるには、数年前にhttp://msdn.microsoft.com/en-us/magazine/cc163663.aspxで公開された非常に優れた記事があります。これはおそらく、これまでに見つけた中で最高の紹介記事です。少し時代遅れですが、非常に便利です。(AppendResultKeyValue メソッドは、ベータ版の後に削除されました。)
これは、私が考えることができる口述文法を使用する最も単純な .NET Windows フォーム アプリの 1 つを示す簡単なサンプルです。これは、Windows Vista または Windows 7 で動作するはずです。フォームを作成しました。その上にボタンを落として、ボタンを大きくしました。System.Speech と次の行への参照を追加しました。
using System.Speech.Recognition;
次に、次のイベント ハンドラーを button1 に追加しました。
private void button1_Click(object sender, EventArgs e)
{
SpeechRecognitionEngine recognizer = new SpeechRecognitionEngine();
Grammar dictationGrammar = new DictationGrammar();
recognizer.LoadGrammar(dictationGrammar);
try
{
button1.Text = "Speak Now";
recognizer.SetInputToDefaultAudioDevice();
RecognitionResult result = recognizer.Recognize();
button1.Text = result.Text;
}
catch (InvalidOperationException exception)
{
button1.Text = String.Format("Could not recognize input from default aduio device. Is a microphone or sound card available?\r\n{0} - {1}.", exception.Source, exception.Message);
}
finally
{
recognizer.UnloadAllGrammars();
}
}
Microsoft が出荷する音声エンジンと API のさまざまなフレーバーを比較したもう少し詳しい情報は、System.Speech.Recognition と Microsoft.Speech.Recognition の違いは何ですか?で見つけることができます。?