Kinectの音声認識を使ってWebブラウザを操作するサンプル

2012年7月12日(木)
薬師寺 国安

音声認識でWebブラウザを操作する

登録しておいたWebサイト名を音声に出して喋ると、そのサイトに遷移します。Next、Backの認識も可能です。プログラムを終了するにはEndと発声します。スクロールバーの操作はマウスで行います。実際に動作させた動画は以下になります。

音声によって発せられたWebサイトに遷移している動画。カーソル操作はマウスで、手動で行っている

サンプルプログラムは以下よりダウンロードできます。
Kinectに音声認識させるサンプルプログラム(96KB)

プロジェクトの作成

VS 2010のメニューから[ファイル(F)/新規作成(N)/プロジェクト(P)]と選択します。次に、「WPF アプリケーション」を選択して、「名前(N)」に任意のプロジェクト名を指定します。ここでは「KINECT_SpeechRecognizeWebBrowser」という名前を付けています。

ツールボックスからデザイン画面上にWebBrowser、TextBlock、StackPanel、Imageコントロールを1個ずつ配置します。

またリスト3のXML文書ファイルを、ソリューションエクスプローラー内のbin\Debugフォルダに配置しておいてください(図2)。

リスト3 XML文書ファイル(URL.xml)

<?xml version="1.0" encoding="utf-8" ?>
  <url>
  <name  tolower="PROJECT KySS">http://www.projectkyss.net</name>
  <name  tolower="Microsoft">http://www.microsoft.com/ja-jp/default.aspx</name>
  <name  tolower="SeinDesign">http://www.seindesign.net/staff/sei_R2.htm</name>
  <name  tolower="Windows Phone">http://www.microsoft.com/ja-jp/windowsphone/</name>
  <name  tolower="Kinect for Windows">http://www.microsoft.com/en-us/kinectforwindows/</name>
</url>
 図2:リスト3のURL.xmlをbin\Debugフォルダに配置した(クリックで拡大)

XAMLコードはリスト4、レイアウトは図3のようなります。

リスト4 書き出されたXAMLコード(MainWindow.xaml)

(1)StackPanel内にはプログラムから読み込んだXML文書ファイルの”tolower”属性の値(サイト名)を表示します。

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="音声認識によるブラウザ操作" Height="792" Width="1328" xmlns:my="clr-namespace:Microsoft.Samples.Kinect.WpfViewers;assembly=Microsoft.Samples.Kinect.WpfViewers">
  <Grid>
    <WebBrowser Height="729" HorizontalAlignment="Left" Margin="12,0,0,12" Name="webBrowser1" VerticalAlignment="Bottom" Width="1065" />
    <TextBlock Height="48" HorizontalAlignment="Left" Margin="1083,12,0,0" Name="textBlock1" Text="対応URL" VerticalAlignment="Top" Width="211" FontSize="32" FontWeight="Bold" Foreground="Crimson" Background="Blue" TextAlignment="Center" />
    <StackPanel Height="251" HorizontalAlignment="Left" Margin="1083,56,0,0" Name="stackPanel1" VerticalAlignment="Top" Width="211" /> ■(1)
    <Image Height="120" HorizontalAlignment="Left" Margin="1144,334,0,0" Name="sourceImage" Stretch="Uniform" VerticalAlignment="Top" Width="160" />
  </Grid>
</Window>
 図3:各コントロールを配置した(クリックで拡大)

参照の追加

VS2010のメニューから「プロジェクト(P)/参照の追加(R)」と選択して、各種コンポーネントを追加しておきます。今回追加するのは、Microsoft.KinectとMicrosoft.Speechの2つです。.NETタブ内に表示されていないDLLファイルは「参照」タブからDLLファイルを指定します。

Microsoft.Kinect.dllは、C:\Program Files\Microsoft SDKs\Kinect\v1.5\Assemblies内に存在しますので、これを指定します。

Microsoft.Speech.dllは
C:\Windows\assembly\GAC_MSIL\Microsoft.Speech\11.0.0.0__31bf3856ad364e35\
に存在しますので、それを指定してください。

  • Kinectに音声認識させるサンプルプログラム

  • Kinectの音声認識を使ってWebブラウザを操作するサンプル

薬師寺国安事務所

薬師寺国安事務所代表。Visual Basic プログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。
1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。1997年に薬師寺聖とコラボレーション・ユニット PROJECT KySS を結成。2003年よりフリーになり、PROJECT KySS の活動に本格的に参加、.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。Windows Phoneアプリ開発を経て、現在はWindows ストア アプリを多数公開中

Microsoft MVP for Development Platforms - Client App Dev (Oct 2003-Sep 2012)。Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。Microsoft MVP for Development Platforms-Windows Platform Development (Oct 2014-Sep 2015)。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています