Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
昨日の「Kinect for Window SDK をつかおう!」セミナーで紹介した Kinect マイクロフォンアレイを使った音源位置検出(正確には角度検出)の WPF サンプルを KinectAudionPosition.CodePlex にアップロードしました。
ビームフォーミング技術を使って角度を検出しているそうです。上図の緑の線がビームです。音源がどのビーム(青色)にいるかと、ビーム間のどのあたりかも予測値(オレンジ色)として分かるようになっています。
InotifyPropertyChanged を継承した KinectMicArray クラスを作成しました。このクラスでは BackgroundWorker でオーディオをサンプリングして(実際にはオーディオストリームは使いませんが)、KinectAudioSource.SoundSourcePosition プロパティ(音源予測角度)と、BeamChanged イベント ハンドラーで得たMicArrayBeamAngle を取得します。取得したことを Progress Report として UI スレッドに報告して、UI スレッドで PropertyChanged イベントを発生させています。これは BackgroundWorker(別スレッド)では PropertyChanged イベントを発生させることができないためです。
メインウィンドウでは、(WPF アプリらしく)直線の角度とこれらの角度をバインディングして、自動的にアニメーションができるようにしました。このサンプルではコード(C#)で書きましたが、XAML でも書けるはずです。