SpeechRecognitionEngine

昨日は音声合成だったので、今度は音声認識を試してみました。マイクからの入力を認識してコンソールに出力します。「quit」と言えば終了です。

using System;
using System.Speech.Recognition;
using System.Speech.Synthesis;

static class Program {
    static SpeechRecognitionEngine engine = new SpeechRecognitionEngine ();
    static SpeechSynthesizer synth = new SpeechSynthesizer ();

    static void Recognized (object sender, RecognitionEventArgs e) {
        Console.WriteLine (e.Result.Text);
        if (e.Result.Text == "quit") 
            Environment.Exit (0);
    }

    static void Main () {
        engine.SpeechRecognized += Recognized;
        engine.LoadGrammar (new DictationGrammar ());
        engine.SetInputToDefaultAudioDevice ();
        while (true) {
            Console.Write ("Speak:");
            engine.Recognize ();
        }
    }
}
/*
Speak:Microsoft
Speak:quick to
Speak:quit to
Speak:quit
 */

本当は「Hello, World」を認識させたかったんですが、カスリもしません。っていうか、「quit」も一発で認識してもらえませんでした・・・(^^;