Speech Platformの新しいバージョンである Version 11 とKinect SDKを組み合わせると、日本語の音声認識ができるようになるそうなのでやってみました。
参考にしたのは、こちらのサイトです
環境
- Windows 7 Ultimet 64bit
- Visual Studio 2010 Permium
- Kinect for Windows SDK Beta2(64bit版)
- Speech Platform Version 11
Speech Platform Version 11の環境を作成する
インストーラーのダウンロード
雑多な日記: KINECT SDK 日本語音声認識 SpeechPlatform11
- SDK
- http://www.microsoft.com/download/en/details.aspx?id=27226
- リンク先にはx86用とx64用がありますが使用中のOSに合わせてダウンロードすればいいと思います。SDKは2つともインストールする必要はないでしょう。
- Runtime
- http://www.microsoft.com/download/en/details.aspx?id=27225
- ランタイムはOSが64ビットの場合x86、x64ともにインストールする必要があると思います。
- Runtime Languages
- http://www.microsoft.com/download/en/details.aspx?id=27224
- ダウンロードするファイルは「MSSpeech_SR_ja-JP_TELE.msi」になります。
あと、ついでにRuntime Languagesから、音声合成用の日本語パックもダウンロードしておきましょう。
「MSSpeech_TTS_ja-JP_Haruka.msi」
インストール
ダウンロードしたものを順にインストールします。
SDK→Runtime→Runtime Languagesの順でいいと思います。
動作確認
動作確認には、Kinect SDKに付属のサンプルを使用します。
サンプルは「C:\Program Files\Microsoft SDKs\Kinect\v1.0 Beta2\Samples」にZIPファイルがあるので、デスクトップなどProgram Files以外の場所に解凍してください。解凍されたファイルは読み取り専用になっている場合があるので、外すようにしてください。
解凍すると「KinectSDKSamples」というフォルダができるので「Managed」にある「KinectSDKSamples(C#).sln」を開きます。いくつかプロジェクトがある中の「KinectAudioDemo」が、今回の確認用サンプルです。
Speech SDKの参照先を変更します。
「KinectAudioDemo」の参照設定から「参照の追加」を開き「参照」タブで下記DLLを選択します。
このプロジェクトの「MainWindow.xaml.cs」を開き、いくつかをSpeech Platform 11と日本語認識のために修正します。
GetKinectRecognizer
修正前
string value; r.AdditionalInfo.TryGetValue("Kinect", out value); return "True".Equals( value, StringComparison.InvariantCultureIgnoreCase ) && "en-US".Equals( r.Culture.Name, StringComparison.InvariantCultureIgnoreCase );
修正後
return "ja-JP".Equals( r.Culture.Name, StringComparison.InvariantCultureIgnoreCase );
InitializeSpeechRecognition
修正前
var colors = new Choices(); colors.Add( "red" ); colors.Add( "green" ); colors.Add( "blue" );
修正後
var colors = new Choices(); colors.Add( "red" ); colors.Add( "green" ); colors.Add( "blue" ); colors.Add( "あか" ); colors.Add( "ミドリ" ); colors.Add( "青" );
InitializeSpeechRecognition
修正前
switch ( e.Result.Text.ToUpperInvariant() ) { case "RED": brush = redBrush; break; case "GREEN": brush = greenBrush; break; case "BLUE": brush = blueBrush; break; default: brush = blackBrush; break; }
修正後
switch ( e.Result.Text.ToUpperInvariant() ) { case "RED": case "あか": brush = redBrush; break; case "GREEN": case "ミドリ": brush = greenBrush; break; case "BLUE": case "青": brush = blueBrush; break; default: brush = blackBrush; break; }
これを実行して、「あか」「みどり」「あお」というと、帯の色が変わります。
まとめ
簡単に音声認識をさせることができました。
引き続き、Speech Platform の回りをいじってみることにします。