雑記 - otherwise

最近はDQ10しかやっていないダメ技術者がちまちまと綴る雑記帳

C# で音声認識

あけましておめでとうございます。
旧年はオンライン・オフライン問わず、多くの方のお世話になりました。
今年も変わらずよろしくお願いいたします。
……さて。
新年最初のネタは残念ながら(?) Windows Phone ではありませんでした。 :p

元ネタ記事に、

C#やその他の言語から普通に使おうとすると、実用的に使えない残念なものとなりました。

http://d.hatena.ne.jp/rti7743/20111215/1323965483

と書かれている訳ですが、 Kinect for Windows の音声認識サンプル等は問題なく動くので、そっちを参考に書き直してみました。

static void Main()
{
  using (var engine = new SpeechRecognitionEngine())
  {
    var choices = new Choices();
    choices.Add("いおなずん");
    choices.Add("ばるす");
    choices.Add("えんいー");
    var builder = new GrammarBuilder(choices);
    var grammar = new Grammar(builder);
    engine.LoadGrammar(grammar);
    engine.SpeechRecognized += (s, e) => Console.WriteLine(e.Result.Text);
    engine.SetInputToDefaultAudioDevice();
    engine.RecognizeAsync(RecognizeMode.Multiple);
    Console.ReadLine();
  }
}

どうも、 SpeechRecognizer だと例の UI がお出ましになる模様。
SpeechRecognitionEngine を使えば問題なく Managed でもいけますね♪
# ちなみに、この記事を書くきっかけになったのが未来なお部屋ネタだった事は言うまでもありませんw