読者です 読者をやめる 読者になる 読者になる

Natural Software

KinectなどのDepthセンサーを中心に活動しています

Kinect for Windows SDK beta で遊んでみた 〜 Kinectで音声認識した英語を日本語に翻訳する 〜 #shibuya_ni

Kinect

最近KinectでSpeechを使った音声認識の情報がぽろぽろ出始めたので少しやってみました。

Speechサンプルの動作に必要なファイル

Speech サンプル (x86 のみ)を動作させるには、次の3つをインストールする必要があります。これらをインストールしてSpeechサンプルが動作すること(red,blue,greenの声を認識すること)を確認してください。

やったこと

red,blue,greenの認識ができたので、Bing 翻訳 APIを使って日本語にしてみます。
Bing 翻訳 APIの使い方はこちらが詳しいです。

こんな感じ

検出した色を日本語で表示します。なぜか「green」だけ「グリーン」になりますw

ソース

kinect_sdk_sandbox/Program.cs at master · kaorun55/kinect_sdk_sandbox · GitHub
追加したのは次の2か所のみです。"AppID"には Bing Developer Center で取得した Aplication IDを入れてください。

private static BingTranslate.LanguageServiceClient translator = new BingTranslate.LanguageServiceClient(
                                                                        "BasicHttpBinding_LanguageService",
                                                                        "http://api.microsofttranslator.com/V1/soap.svc" );
Console.Write( "\nSpeech Recognized: \t{0}", e.Result.Text );
Console.WriteLine( "\t{0}", translator.Translate( "AppID", e.Result.Text, "en", "ja" ) );

LanguageServiceClientはバージョンが上がったためか、同名のクラスが2種類あるので、名前で分けてあげます。 app.config の中に「BasicHttpBinding_LanguageService」と「BasicHttpBinding_LanguageService1」ができるので、今回は「BasicHttpBinding_LanguageService」を使いました。
これを設定しない場合の例外は、次のように表示されます。

コントラクト 'ServiceReference1.LanguageService' の複数のエンドポイント構成が見つかったため、このコントラクトのエンドポイント構成セクションを読み込めませんでした。優先するエンドポイント構成セクションを名前で指定してください。

やりたいこと

本当はこんなことがやりたかったのですが、音声認識と、翻訳が意外に時間かかるので今のところできてません。もし、よいやり方があれば教えてください

  • 英語を検出して字幕みたいにしたかった
  • それを逐次翻訳して日本語字幕にしたかった