以下、実施の形態について図面を参照して説明する。なお、開示はあくまで一例にすぎず、以下の実施形態に記載した内容により発明が限定されるものではない。当業者が容易に想到し得る変形は、当然に開示の範囲に含まれる。説明をより明確にするため、図面において、各部分のサイズ、形状等を実際の実施態様に対して変更して模式的に表す場合もある。複数の図面において、対応する要素には同じ参照数字を付して、詳細な説明を省略する場合もある。
[制御システム]
まず、図1を参照して、一実施形態に係る電子機器を含む制御システム1の構成例を説明する。この電子機器はユーザが携行可能な電子機器であり、例えばモバイルエッジコンピューティングデバイス(MECD)を含むモバイルパーソナルコンピュータ(PC)や、スマートフォン、携帯電話機、PDA等の携帯情報端末として実現され得る。以下では、この電子機器がモバイルPC2として実現される場合を例示する。
制御システム1はモバイルPC2とウェアラブルデバイス3とから構成される。ユーザはモバイルPC2を携行し、ウェアラブルデバイス3を装着する。ウェアラブルデバイス3は、ユーザの身体(例えば、腕、首、頭、等)に装着可能なウェアラブル機器である。ウェアラブルデバイス3としては、メガネ型、ブレスレット型、腕時計型、ヘッドフォン型等のウェアラブルデバイスを使用することができる。以下では、ウェアラブルデバイス3がメガネ型ウェアラブルデバイスである場合を例示する。
ウェアラブルデバイス3は、メガネフレーム142とウェアラブルデバイス本体4とを備える。メガネフレーム142は一般的なメガネからレンズを取り除いた形状でもよく、作業者の顔に装着される。メガネフレーム142はレンズが取り付けられる構造としてもよい。作業者がメガネを常用する場合、常用しているメガネと同様な度数のレンズがメガネフレーム142に取り付けられてもよい。
ウェアラブルデバイス本体4はメガネフレーム142のテンプルに沿った側面部241と作業者の一方の眼球の視線上に位置する前面部242とからなる。側面部241に対する前面部242の角度は調節可能である。
モバイルPC2とウェアラブルデバイス3とは有線または無線により接続される。図1に示す例では、モバイルPC2とウェアラブルデバイス3とはケーブル146により接続されている。このケーブル146は、例えばUSB Type−C(登録商標)規格のケーブルである。なお、モバイルPC2とウェアラブルデバイス3とは、無線LANやブルートゥース(登録商標)のような各種の無線通信方式で接続されてもよい。
図1に示すように、ウェアラブルデバイス本体4の側面部241の後端には、ケーブル146の一端のプラグ146Aが挿入されるUSB Type−C規格のレセプタクル132が設けられる。ケーブル146の他端のプラグ146Bは、モバイルPC2の上部端面に設けられるUSB Type−C規格のレセプタクル207に挿入される。このように、ウェアラブルデバイス本体4はUSB Type−C規格のケーブル146を介してモバイルPC2に接続され、各種の信号がウェアラブルデバイス本体4とモバイルPC2との間で伝送される。なお、プラグとレセプタクルとは設計等に応じて置き換え可能であり、総称してコネクタとも云う。また、ウェアラブルデバイス本体4とモバイルPC2とは、無線LAN、ブルートゥース等の無線通信によりデータを伝送してもよい。
本実施形態では、ウェアラブルデバイス本体4は駆動電源としてのバッテリまたはDC端子を備えず、駆動電源はモバイルPC2からUSB Type−Cケーブル146を介してウェアラブルデバイス本体4に供給される例を示す。しかし、ウェアラブルデバイス本体4が駆動電源を備えていてもよい。
[モバイルPC2]
図2はモバイルPC2の外観の一例を示す。モバイルPC2は片手で把持可能な小型PCであり、そのサイズは、幅が約10cm以下、高さが約18cm以下、厚さが2cm程度であり、重量は約300g程度と、小型で軽量である。このため、モバイルPC2は作業着のポケット、ベルトに装着されるホルスタ、あるいはショルダーケースに収納でき、ウェアラブルである。モバイルPC2は、CPUや半導体メモリ等の半導体チップやSSD(Solid State Disk)等のストレージデバイスを内蔵するが、ディスプレイと文字入力用のハードウェアキーボードは備えない。
モバイルPC2の正面にはアップボタン202a、ライトボタン202b、ダウンボタン202c、レフトボタン202d、および決定ボタン(センターボタン、エンターボタンとも称する)202eからなるカーソルボタン202が配置され、その下に指紋センサ204が配置される。文字入力用のハードウェアキーボードが設けられておらず、暗証番号(PINとも称する)を入力することができないので、指紋センサ204はモバイルPC2にログインする際のユーザ認証のために用いられる。カーソルボタン202は特定の処理の実行命令を入力するために用いられ得る。
カーソルボタン202の操作方法はプログラムによって決められる。
例えば、
決定ボタン202eが1回押されると、項目の選択/項目の実行がなされ、
決定ボタン202eが長押しされると、終了または操作の取り消しがなされ、
アップボタン202aが1回押されると、カーソルが上に移動され、
アップボタン202aが長押しされると、起動中のアプリケーションの一覧が表示され、
ダウンボタン202cが1回押されると、カーソルが下に移動され、
ダウンボタン202cが長押しされると、クイックセッティングメニューが表示され、
レフトボタン202dが1回押されると、右のアイコンが選択され、
ライトボタン202bが1回押されると、左のアイコンが選択される。
モバイルPC2の上部側面には、USB3.0規格のレセプタクル206とUSB Type−C規格のレセプタクル207とオーディオジャック208が設けられる。
モバイルPC2の一方の側面(正面から見て左側の側面)には、メモリカード用のカードスロット218が設けられる。メモリカードは、例えばSDカード、マイクロSDカード(登録商標)等を含む。
モバイルPC2の他方の側面(正面から見て右側の側面)には、ケンジントンロック(登録商標)のためのスロット210、電源スイッチ212、パワーLED213、DC IN/バッテリLED214、DC端子216、および冷却用の通風口222が設けられる。パワーLED213は電源スイッチ212の近傍に配置され、電源オンの期間点灯する。DC IN/バッテリLED214はバッテリが充電中であるか否か等のモバイルPC2の状態とバッテリの残量を表示する。モバイルPC2はバッテリで駆動可能であるが、DC端子216にACアダプタを接続した状態でも駆動可能である。図示しないが、裏面はワンタッチでバッテリが交換可能に構成されている。
図3はモバイルPC2のシステム構成例を示す。モバイルPC2はシステムコントローラ302を備え、システムコントローラ302はプロセッサ(CPU)とコントローラ・ハブからなる。プロセッサには、主メモリ308、BIOS−ROM310、パワーLED213、DC IN/バッテリLED214、USBコントローラ322が接続される。コントローラ・ハブには、フラッシュメモリ326、メモリカードコントローラ328、HDDまたはSSDからなるストレージデバイス330、USB切替器324、オーディオコーデック334、3G/LTE/GPSデバイス336、指紋センサ204、USB3.0レセプタクル206、ブルートゥース/無線LANデバイス340、EC/KBC344が接続される。
システムコントローラ302はストレージデバイス330から主メモリ308にロードされる様々なプログラムを実行する。システムコントローラ302は、これらプログラムに含まれる命令群を実行することによりモバイルPC2内の各部の動作を制御する。
これらプログラムは、OS308A、音声制御プログラム308B、および各種のアプリケーションプログラム308Cを含む。音声制御プログラム308Bは、モバイルPC2およびウェアラブルデバイス3をユーザによって発話されたコマンドで制御するための機能を有する。コマンドは、例えば単語や簡易な文で構成される言葉であり、音声制御プログラム308Bによって用いられる辞書で規定されている。
音声制御プログラム308Bは、例えば、モバイルPC2上で実行であって、ユーザが現在操作可能であるアクティブなアプリケーションプログラム(ホストアプリケーションプログラムとも称する)308Cに対して、ユーザによって発話された様々なコマンドを供給する。つまり、音声制御プログラム308Bはホストアプリケーションプログラム308Cと連携して動作する。
オーディオコーデック334は、再生対象のデジタルの音声信号をアナログの音声信号に変換して、オーディオジャック208に供給する。また、オーディオコーデック334は、オーディオジャック208から入力されるアナログの音声信号をデジタルの音声信号に変換する。
メモリカードコントローラ328は、メモリカードスロット218に挿入されるメモリカード(例えばSDカード)にアクセスして、メモリカードに対するデータの読み書きを制御する。
USBコントローラ322は、USB Type−Cレセプタクル207に接続されるプラグを有するUSB Type−Cケーブル、またはUSB3.0レセプタクル206に接続されるプラグを有するUSB3.0ケーブル(図示せず)に対するデータの送受信を制御する。USB Type−Cレセプタクル207には、USBハブやポート拡張アダプタを接続することにより、USB、HDMI(登録商標)等のインターフェースを使用できる。
ブルートゥース/無線LANデバイス340は、外部機器またはネットワークとの接続のためにブルートゥース規格の無線通信またはIEEE802.11規格の無線LAN通信を実行する。なお、ネットワークとの接続は無線通信によらず、IEEE802.3規格の有線LAN通信によってもよい。
指紋センサ204はモバイルPC2が起動された際の指紋認証のために使用される。
EC/KBC344には、サブプロセッサ346、電源スイッチ212およびカーソルボタン202が接続される。EC/KBC344は、電源スイッチ212の操作に応じてモバイルPC2をパワーオンまたはパワーオフする機能を有する。パワーオンおよびパワーオフの制御は、EC/KBC344と電源回路350との協働動作によって実行される。EC/KBC344はモバイルPC2がパワーオフされている期間中も、バッテリ352またはACアダプタ358からの電力によって動作する。電源回路350は、バッテリ352からの電力または外部電源として接続されるACアダプタ358からの電力を用いて、各コンポーネントへ供給すべき電力を生成する。電源回路350は電圧レギュレータモジュール356を含み、電圧レギュレータモジュール356はシステムコントローラ302内のプロセッサに接続される。
なお、モバイルPC2をウェアラブルデバイス本体4と別体として構成したが、モバイルPC2をウェアラブルデバイス本体4内に組み込んで、両者を一体として構成してもよい。
[ウェアラブルデバイス3]
図4および図5を参照して、モバイルPC2に接続されるウェアラブルデバイス3の外観の一例を説明する。上述したように、ウェアラブルデバイス3はメガネフレーム142とウェアラブルデバイス本体4とを備える。
メガネフレーム142は、ウェアラブルデバイス本体4が着脱される取付具144を左右のテンプルに備える。図4では、作業者の右側に位置するテンプルの取付具144はウェアラブルデバイス本体4に隠され、示されていない。ウェアラブルデバイス本体4はディスプレイ124を備え、作業者はディスプレイ124の画面を片目で見る。そのため、ウェアラブルデバイス本体4が各作業者の利き目側に取り付けられるように、取付具144は左右のテンプルに設けられている。
なお、ウェアラブルデバイス本体4は取付具144によりメガネフレーム142に着脱自在に取り付けられなくてもよく、ウェアラブルデバイス本体4がメガネフレーム142に固定された右眼用または左眼用のウェアラブルデバイス3であってもよい。さらに、ウェアラブルデバイス本体4を、メガネフレーム142ではなく、作業者の頭部に装用されるヘルメット、ゴーグル等に取り付けてもよい。
ウェアラブルデバイス本体4は、図5に示すその係合片128が取付具144の上下の枠内に押し込まれることにより、メガネフレーム142に取り付けられる。ウェアラブルデバイス本体4をメガネフレーム142から取り外す場合は、この係合片128が取付具144から引き抜かれる。
係合片128は、取付具144に取り付けられた状態において、取付具144内で前後に多少は移動可能である。そのため、作業者の焦点がディスプレイ124の画面に合うように、ウェアラブルデバイス本体4の前後位置が調整可能である。
さらに、取付具144はテンプルに直交する軸144Aを中心に回転可能であり、ウェアラブルデバイス本体4がメガネフレーム142に取り付けられた後、ディスプレイ124が作業者の視線上に位置するように上下位置が調整可能である。取付具144の回転角度は90度程度であり、取付具144を上方向に大きく回転することにより、ウェアラブルデバイス本体4をメガネフレーム142からはね上げることができる。これにより、ウェアラブルデバイス本体4により視野が邪魔され実物を見ることが困難な場合や、狭い場所でウェアラブルデバイス本体4が周囲の物体に干渉する場合でも、ウェアラブルデバイス3全体を顔から外すことおよび再装着することなく、ウェアラブルデバイス本体4を作業者の視野から一時的に外すことおよび戻すことができる。
[ウェアラブルデバイス本体4]
上述したように、ウェアラブルデバイス本体4はメガネフレーム142のテンプルに沿った側面部241と作業者の一方の眼球の視線上に位置する前面部242とからなる。側面部241に対する前面部242の角度は調節可能である。
図4に示すように、前面部242の外側表面にはカメラ116、フラッシュライト118、およびカメラLED120が設けられる。フラッシュライト118は暗部の撮影時に発光する補助照明である。カメラLED120は写真や動画の撮影時に点灯し、撮影対象者に撮影していることを認識させるためのものである。
右側のテンプルに取り付けられたウェアラブルデバイス本体4の側面部241の上側面に第1、第2、第3ボタン102、104、106が設けられる。なお、作業者の利き目が左眼の場合、ウェアラブルデバイス本体4は左側のテンプルに取り付けられる。右側に取り付けられるか左側に取り付けられるかで、ウェアラブルデバイス本体4の上下が反転するので、側面部241の上側面と下側面の両面に第1、第2、第3ボタン102、104、106が設けられてもよい。
側面部241の外側表面にはタッチパッド110、第4ボタン108、マイク112、および照度センサ114が設けられる。タッチパッド110と第4ボタン108は人差し指で操作可能である。ボタン102、104、106は、ウェアラブルデバイス本体4が右側に取り付けられた際、それぞれ人差し指、中指、薬指で操作可能な位置に配置される。
タッチパッド110は、その表面上で矢印に示すように作業者が指を上下前後に移動させたことを検出できるようにしている。この移動の検出は、指を接触したまま移動するドラッグの動きに加え指をさっと擦るフリックの動きも含む。タッチパッド110は、作業者の指の上下前後移動を検出すると、ウェアラブルデバイス本体4に対する特定の処理の実行命令を入力する。
第1〜第4ボタン102、104、106、108、タッチパッド110の操作方法はプログラムによって決められている。
例えば、
第3ボタン106が1回押されると、項目の選択/項目の実行がなされ(モバイルPC2では、決定ボタン202eの1回押しに相当)、
第3ボタン106が長押しされると、起動中のアプリケーションの一覧が表示され(モバイルPC2では、アップボタン202aの長押しに相当)、
第2ボタン104が1回押されると、ホーム画面に戻り、
第2ボタン104が長押しされると、クイックセッティングメニューが表示され(モバイルPC2では、ダウンボタン202cの長押しに相当)、
第1ボタン102が1回押されると、操作の取り消し(モバイルPC2では、決定ボタン202eの1回押しに相当、あるいはキーボードのEscキーと同様の動作)が実行される。
タッチパッド110の操作に関しては、例えば、
上下にドラッグされると、カーソルが上下に移動され、
前にフリックされると、左のアイコンが選択され(連続してスクロール)(モバイルPC2では、ライトボタン202bの1回押しに相当)、
後ろにフリックされると、右のアイコンが選択され(連続してスクロール)(モバイルPC2では、レフトボタン202dの1回押しに相当)、
前にドラッグされると、左のアイコンが選択され(1項目ずつスクロール)(モバイルPC2では、ライトボタン202bの1回押しに相当)、
後ろにドラッグされると、右のアイコンが選択され(1項目ずつスクロール)(モバイルPC2では、レフトボタン202dの1回押しに相当)る。
第1ボタン102は人差し指、第2ボタン104は中指、第3ボタン106は薬指、第4ボタン108は小指で操作できるような位置に配置される。なお、第4ボタン108が側面部241の上部ではなく側面部241の外側表面に設けられるのは、スペースの関係上であり、第4ボタン108も第1〜第3ボタン102、104、106と同様に側面部241の上部に設けられてもよい。
ウェアラブルデバイス本体4のボタン102、104、106、108とタッチパッド110とを用いた操作は、上述したモバイルPC2に設けられたカーソルボタン202でも同様の操作が可能である。ウェアラブルデバイス本体4のボタン102、104、106、108とタッチパッド110で操作している様子を作業者は視認することができないので、作業者によっては意図した操作ができるまでに慣れが必要な場合もある。また、ボタン102、104、106、108とタッチパッド110は小型であるので、操作しづらい場合もある。本実施形態では、モバイルPC2のカーソルボタン202でも同じ操作ができるので、上記の懸念は解消できる。
照度センサ114はディスプレイ124の輝度(すなわち明るさ)を自動調整するために周囲の照度を検出する。
図5はウェアラブルデバイス本体4の裏面の外観を例示する。前面部242の内側には、例えばLCDであるディスプレイ124が設けられる。側面部241の内側にはマイク126、スピーカ130、および係合片128が設けられる。マイク126は側面部241の前方に、スピーカ130および係合片128は側面部241の後方に、設けられる。スピーカ130の代わりにヘッドフォンが用いられてもよい。その場合、マイクとヘッドフォンがインカムとして一体的に設けられてもよい。
図6はウェアラブルデバイス本体4のシステム構成の一例を示す。USB Type−Cレセプタクル132はミキサ166に接続される。ディスプレイコントローラ170とUSBハブ164はミキサ166の第1端子および第2端子にそれぞれ接続される。ディスプレイ124はディスプレイコントローラ170に接続される。カメラコントローラ168、オーディオコーデック172、およびセンサコントローラ162はUSBハブ164に接続される。カメラ116とフラッシュライト118とカメラLED120がカメラコントローラ168に接続される。マイク112、126からの音声信号がオーディオコーデック172に入力され、オーディオコーデック172からの音声信号がアンプ174を介してスピーカ130に入力される。
センサコントローラ162に、モーションセンサ(例えば、加速度/地磁気/重力/ジャイロセンサ等)176、照度センサ114、近接センサ178、タッチパッド110、第1〜第4ボタン102、104、106、108、およびGPSセンサ180が接続される。センサコントローラ162はモーションセンサ176、照度センサ114、近接センサ178、タッチパッド110、第1〜第4ボタン102、104、106、108、およびGPSセンサ180からの検出信号を処理して、モバイルPC2へ命令やデータ等を供給する。図5には示していないが、モーションセンサ176および近接センサ178はウェアラブルデバイス本体4の内部に配置される。
モーションセンサ176はウェアラブルデバイス本体4の動き、向き、姿勢等を検出する。センサコントローラ162およびディスプレイコントローラ170は、モーションセンサ176によって検出された動き、向き、姿勢等に基づいてディスプレイ124に表示される画面画像の向きを自動的に調整する向きオート機能を有している。
近接センサ178は作業者の顔、指等の接近によりウェアラブルデバイス3の装着を検出する。
またセンサコントローラ162およびディスプレイコントローラ170は、照度センサ114によって検出された照度に基づき、ディスプレイ124の輝度を自動的に調整する輝度オート機能を有している。また、センサコントローラ162およびカメラコントローラ168は、照度センサ114によって検出された照度に基づき、フラッシュライト118のオンまたはオフを自動的に切り替えるLEDライトオート機能を有している。
ところで、スマートスピーカーのような音声認識装置では、例えば音声による操作のトリガーとなる特定の言葉(トリガーワード)が認識された後に、1つの音声コマンド(命令)が認識される。つまり、ユーザはトリガーワードを発話した後に1つの音声コマンドを発話できる。しかし、ユーザはトリガーワードを発話した後に複数の音声コマンドを連続して発話したい場合もある。
ホストアプリケーションプログラム308CのGUIを音声で操作する場合には、GUIに対して多数の操作が連続して行われることがある。例えばGUIを含む画面において、音声による操作で、カーソルをあるオブジェクト(例えばボタン)上に移動させる場合、カーソルを一定量ずつ上下左右に移動させる操作が繰り返し行われ得る。このような状況において、操作のための音声コマンドを発話しようとする度に、事前にトリガーワードを発話しなければならないことは、ユーザにとって非常に煩雑である。そのため、連続して行われる複数の操作のための複数の音声コマンドを認識できる新たな機能の実現が必要とされる。
本実施形態では、トリガーワードが認識された後に1つの音声コマンドだけを認識可能なシングルモードと、トリガーワードが認識された後に複数の音声コマンドを連続して認識可能なマルチモードとが設けられる。ユーザはこれから行おうとする操作の内容に応じて音声認識のモードを切り替えることができるので、音声による操作の利便性を向上できる。またモード毎に別々の辞書データが用いられることにより、音声データから認識される音声コマンドが各モードで認識されるべきコマンドだけに限定されるので、誤認識の発生や処理の遅延を低減できる。
図7は、モバイルPC2上で実行される音声制御プログラム308Bおよびホストアプリケーションプログラム308Cの機能構成の例を示す。音声制御プログラム308Bは、辞書記憶領域58に格納されている音声認識モード毎の複数の辞書データ581,582,583を用いて、音声データからユーザによって発話された内容を認識する。辞書記憶領域58は、例えばストレージデバイス330等の不揮発性メモリ内に設けられている。
音声制御プログラム308Bはホストアプリケーションプログラム308Cと連携して動作する。音声制御プログラム308Bは、連携する特定のホストアプリケーションプログラム308Cに音声認識結果を示す情報を送出する。以下では、音声制御プログラム308Bと連携するホストアプリケーションプログラム308Cが、カメラ116を用いた撮影機能を有する場合を例示する。
音声制御プログラム308Bは、音声取得部51、音声認識部52、モード制御部54、辞書管理部55、および通知制御部56を備える。
音声取得部51は、例えばウェアラブルデバイス3から、ユーザによる発話を集音することによって得られた音声データを、ケーブル146等を介して取得する。音声データは、ウェアラブルデバイス3のマイク112,126等を用いて集音された音声の信号を、オーディオコーデック172によってアナログ−デジタル(AD)変換して得られた音声データである。また音声取得部51は、モバイルPC2のオーディオジャック208に接続されたマイク(図示せず)を用いて集音された音声の信号を、オーディオコーデック334によってAD変換して得られた音声データを取得してもよい。音声データは、例えばユーザがモバイルPC2およびウェアラブルデバイス3を使用している間、常時取得されている。音声データは音声ファイルであってもよい。
モード制御部54は、音声制御プログラム308B(モバイルPC2)の音声認識モードを制御する。モード制御部54は、音声データから認識された音声コマンドに応じて、音声制御認識モードを、例えばトリガーモードとシングルモードとマルチモードのいずれかに設定する。
トリガーモードでは、関連付けられたトリガーモード辞書データ581に含まれる1つ以上のトリガーコマンド(トリガーワードとも称する)の1つを認識する処理が実行される。各トリガーコマンドは、例えば音声操作の開始を示す。シングルモードでは、関連付けられたシングルモード辞書データ582に含まれる複数の音声コマンドの1つを認識する処理が実行される。またマルチモードでは、関連付けられたマルチモード辞書データ583に含まれる複数の音声コマンドの1つを認識する処理が繰り返し(連続して)実行され得る。
なお、音声制御プログラム308Bはタイマ53をさらに備えていてもよい。タイマ53は、ある音声認識モードでのタイムアウトを検出する。タイマ53には、例えばある音声認識モードに遷移してからタイムアウトが検出されるべきタイミングまでの時間が設定される。例えば音声認識モードがシングルモードに遷移してから閾値時間(例えば10秒)が経過したことに応じて、タイマ53によりタイムアウトが検出されてもよい。タイムアウトが検出されたことに応じて、音声認識モードは初期状態に戻る。初期状態の音声認識モードは例えばトリガーモードであるが、他のモードであってもよい。
図8は、モード制御部54によって音声認識モードの遷移が制御される例を示す。初期状態では音声認識モードは、例えばトリガーモードM1に設定される。モード制御部54は、音声データから認識されたコマンドの種類に応じて、以下のように音声認識モードを切り替える。
(A1)モード制御部54は、トリガーモードM1に設定された音声認識モードを、トリガーコマンド(すなわち音声操作開始を示す音声コマンド)が認識されたことに応じてシングルモードM2に切り替える。
(A2)モード制御部54は、シングルモードM2に設定された音声認識モードを、連続音声操作開始を示す音声コマンドが認識されたことに応じてマルチモードM3に切り替える。
(A3)モード制御部54は、シングルモードM2に設定された音声認識モードを、連続音声操作開始を示す音声コマンド以外の音声コマンドが認識されたことに応じて、あるいはタイムアウトに応じて、トリガーモードM1に切り替える。連続音声操作開始を示す音声コマンド以外の音声コマンドは、ホストアプリケーションプログラム308Cを操作するための音声コマンド(以下、ホスト操作コマンドとも称する)である。
(A4)モード制御部54は、マルチモードM3に設定された音声認識モードを、連続音声操作終了を示す音声コマンドが認識されたことに応じてトリガーモードM1に切り替える。
(A5)モード制御部54は、マルチモードM3に設定された音声認識モードを、連続音声操作終了を示す音声コマンド以外の音声コマンドが認識されている間、マルチモードM3に維持する。連続音声操作終了を示す音声コマンド以外の音声コマンドは、ホストアプリケーションプログラム308Cを操作するための音声コマンド(すなわちホスト操作コマンド)である。
図7に戻り、通知制御部56は、現在設定されている音声認識モード(すなわち音声認識のステータス)を示すモード情報をホストアプリケーションプログラム308Cに送出(通知)する。通知制御部56は、例えばモード制御部54によって音声認識モードが切り替えられたことに応じて、モード情報をホストアプリケーションプログラム308Cに送出する。
より具体的には、音声認識モードがトリガーモードM1からシングルモードM2に切り替えられたことに応じて、通知制御部56はシングルモードM2を示す情報をホストアプリケーションプログラム308Cに送出する。音声認識モードがシングルモードM2からマルチモードM3に切り替えられたことに応じて、通知制御部56はマルチモードM3を示す情報をホストアプリケーションプログラム308Cに送出する。音声認識モードがシングルモードM2からトリガーモードM1に切り替えられたことに応じて、通知制御部56はトリガーモードM1を示す情報をホストアプリケーションプログラム308Cに送出する。音声認識モードがマルチモードM3からトリガーモードM1に切り替えられたことに応じて、通知制御部56はトリガーモードM1を示す情報をホストアプリケーションプログラム308Cに送出する。
なお、通知制御部56は、切り替えられた前後のモードを示す情報をホストアプリケーションプログラム308Cに送出してもよい。また通知制御部56は、ホストアプリケーションプログラム308Cによってモード情報が要求された場合に、モード情報をホストアプリケーションプログラム308Cに送出してもよい。
辞書管理部55は、設定された音声認識モードに関連付けられた辞書データを辞書記憶領域58から読み出し、音声認識部52に供給する。すなわち音声認識モードがトリガーモードM1である場合、辞書管理部55は辞書記憶領域58からトリガーモード辞書データ581を読み出し、音声認識部52に供給する。音声認識モードがシングルモードM2である場合、辞書管理部55は辞書記憶領域58からシングルモード辞書データ582を読み出し、音声認識部52に供給する。音声認識モードがマルチモードM3である場合、辞書管理部55は辞書記憶領域58からマルチモード辞書データ583を読み出し、音声認識部52に供給する。
トリガーモード辞書データ581は、トリガーモードM1で用いられる1つ以上のトリガーコマンドを音声認識するための辞書データである。シングルモード辞書データ582は、シングルモードM2で用いられる複数の音声コマンドを音声認識するための辞書データである。マルチモード辞書データ583は、マルチモードM3で用いられる複数の音声コマンドを音声認識するための辞書データである。
音声認識部52は、モード制御部54により設定された音声認識モードで、辞書管理部55によって供給されたいずれかの辞書データ581,582,583を用いて、音声データに音声認識処理を施す。音声認識処理は、音声データに対する音響分析、特徴抽出、辞書データ581,582,583とのマッチング等を含む。音声データに音声認識処理を施すことにより、音声データに含まれるコマンドが得られる。音声認識部52は、音声取得部51によって常時取得されている音声データに対して、リアルタイムで音声認識処理を施すことができる。
音声認識部52は、例えば音声データを解析して特徴量を算出し、算出された特徴量に、あるコマンドに対応する特徴量が含まれる場合に、音声データからそのコマンドが認識されたと判断する。あるいは音声認識部52は、例えば文字単位の音素の特徴量を含む音素辞書データ(図示せず)を用いて、音素辞書データ内の特徴量と、音声データ内のある区間の音声パターンの特徴量とをマッチングすることにより、その区間の音声パターンに対応する文字(音素)を決定する。このようにして音声データ内の区間毎の音声パターンに対応する文字を順に決定し、決定された文字で構成される文字列があるコマンドの言葉を示す文字列と一致する場合に、音声認識部52は音声データからそのコマンドが認識されたと判断してもよい。
音声認識モードがトリガーモードM1である場合、音声認識部52は、トリガーモード辞書データ581に示される1つ以上のトリガーコマンドの1つを音声データから認識する処理を実行する。
音声認識モードがシングルモードM2である場合、音声認識部52は、シングルモード辞書データ582に示される複数の音声コマンドの1つを音声データから認識する処理を実行する。つまり音声認識モードがシングルモードM2である間に、音声認識部52は1つの音声コマンドだけを認識する。
通知制御部56は、シングルモード辞書データ582に示される複数の音声コマンドの内、連続音声操作の開始を示す音声コマンド以外の音声コマンド(すなわちホスト操作コマンド)が認識された場合、その認識された音声コマンドを示すコマンド情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cは、このコマンド情報に応じて動作する。
また、音声認識モードがマルチモードM3である場合、音声認識部52は、マルチモード辞書データ583に示される複数の音声コマンドの1つを音声データから認識するための処理を繰り返し実行し得る。つまり音声認識モードがマルチモードM3である間に、音声認識部52は複数の音声コマンドを認識し得る。認識される複数の音声認識コマンドには、同一の音声コマンドが含まれていてもよい(例えば「シャッターを押す」を示す音声コマンドが複数含まれていてもよい)し、異なる音声コマンドが含まれていてもよい。
通知制御部56は、マルチモード辞書データ583に示される複数の音声コマンドの内、連続音声操作の終了を示す音声コマンド以外の音声コマンド(すなわちホスト操作コマンド)が認識された場合、その認識された音声コマンドを示すコマンド情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cは、この音声コマンドを示す情報に応じて動作する。
通知制御部56は、ホストアプリケーションプログラム308Cとの間でプロセス間通信のための接続を確立し、このプロセス間通信を用いて、モード情報およびコマンド情報をホストアプリケーションプログラム308Cに送出(通知)する。モード情報およびコマンド情報をホストアプリケーションプログラム308Cに送出する方法は、プロセス間通信に限られず、例えば音声認識モードに対応するキーコードを発行する方法、および認識された音声コマンドに対応するキーコードを発行する方法が用いられてもよい。ホストアプリケーションプログラム308Cの動作は、発行されたキーコードに応じて制御される。
図9から図11を参照して各辞書データ581,582,583の構成について説明する。
図9はトリガーモード辞書データ581の一構成例を示す。トリガーモード辞書データ581は、トリガーモードM1で用いられる1つ以上のトリガーコマンドに対応する1つ以上のレコードを含む。各レコードは、例えばトリガーコマンドIDのフィールドと内容のフィールドとを含む。
あるトリガーコマンドに対応するレコードにおいて、トリガーコマンドIDのフィールドはそのトリガーコマンドの識別情報を示す。内容のフィールドは、そのトリガーコマンドを音声入力するためにユーザが発話すべき内容を示す。
図9に示す例では、トリガーコマンドIDのフィールドに“トリガーコマンド1”が設定され、内容のフィールドに“音声操作開始”が設定されたレコード1−1が示されている。このレコード1−1に示されるトリガーコマンド1は、音声データから複数の音声コマンドの1つを認識する処理が実行されるシングルモードM2を開始するために用いられる。したがってトリガーコマンドは、音声認識モードを変更するためのモード変更コマンドであるとも云える。
図10はシングルモード辞書データ582の一構成例を示す。シングルモード辞書データ582は、シングルモードM2で用いられる複数の音声コマンドに対応する複数のレコードを含む。各レコードは、例えばコマンドIDのフィールドと内容のフィールドとを含む。
ある音声コマンドに対応するレコードにおいて、コマンドIDのフィールドはその音声コマンドの識別情報を示す。内容のフィールドは、その音声コマンドを入力するためにユーザが発話すべき内容を示す。
図10に示す例では、以下のレコードが示されている。
・コマンドIDのフィールドに“コマンド1”が設定され、内容のフィールドに“シャッターを押す”が設定されたレコード2−1
・コマンドIDのフィールドに“コマンド2”が設定され、内容のフィールドに“ズームする”が設定されたレコード2−2
・コマンドIDのフィールドに“コマンド3”が設定され、内容のフィールドに“ズームアウトする”が設定されたレコード2−3
・コマンドIDのフィールドに“コマンド4”が設定され、内容のフィールドに“連続音声操作開始”が設定されたレコード2−4
レコード2−1に示されるコマンド1は、カメラ116を用いた撮影により静止画像を取得する処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード2−2に示されるコマンド2は、カメラ116のズームインのための処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード2−3に示されるコマンド3は、カメラ116のズームアウトのための処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード2−4に示されるコマンド4は、音声データから複数の音声コマンドの1つを認識する処理が繰り返し実行されるマルチモードM3を開始するために用いられる。
レコード2−1,2−2,2−3に示されるコマンド1,2,3は、ホストアプリケーションプログラム308Cに対する操作のために用いられるホスト操作コマンドである。上述したホスト操作コマンドは一例であって、ホスト操作コマンドには、ホストアプリケーションプログラム308Cが有する機能に応じた様々なコマンドが用いられ得る。
一方、レコード2−4に示されるコマンド4は、音声認識モードの変更のために用いられるモード変更コマンドである。なお、各レコードには、対応するコマンドがホスト操作コマンドとモード変更コマンドのいずれであるかの種別を示すフィールドがさらに含まれていてもよい。例えばモード制御部54は、認識された音声コマンドの種別に応じて音声認識モードの遷移を制御してもよい。
図11はマルチモード辞書データ583の一構成例を示す。マルチモード辞書データ583は、マルチモードM3で用いられる複数の音声コマンドに対応する複数のレコードを含む。各レコードは、例えばコマンドIDのフィールドと内容のフィールドとを含む。
ある音声コマンドに対応するレコードにおいて、コマンドIDのフィールドはその音声コマンドの識別情報を示す。内容のフィールドはその音声コマンドを入力するためにユーザが発話すべき内容を示す。
図11に示す例では、以下のレコードが示されている。
・コマンドIDのフィールドに“コマンド1”が設定され、内容のフィールドに“シャッターを押す”が設定されたレコード3−1
・コマンドIDのフィールドに“コマンド2”が設定され、内容のフィールドに“ズームする”が設定されたレコード3−2
・コマンドIDのフィールドに“コマンド3”が設定され、内容のフィールドに“ズームアウトする”が設定されたレコード3−3
・コマンドIDのフィールドに“コマンド5”が設定され、内容のフィールドに“連続音声操作終了”が設定されたレコード3−4
レコード3−1,3−2,3−3に示されるコマンド1,2,3は、図10を参照して上述したシングルモード辞書データ582のレコード2−1,2−2,2−3に示されるコマンド1,2,3とそれぞれ同一である。したがって、レコード3−1,3−2,3−3に示されるコマンド1,2,3はホスト操作コマンドである。
レコード3−4に示されるコマンド5は、音声データから複数の音声コマンドの1つを認識する処理が繰り返し実行されるマルチモードM3を終了するために用いられるモード変更コマンドである。なお、各レコードには、対応するコマンドがホスト操作コマンドとモード変更コマンドのいずれであるかの種別を示すフィールドがさらに含まれていてもよい。
トリガーモード辞書データ581は、予め規定されたものであってもよいし、作成または更新(例えば、変更、追加、削除等)されるものであってもよい。トリガーモード辞書データ581は、モバイルPC2がサーバ等の外部機器から取得するファイル(例えばテキストファイル)を用いて作成または更新されてもよいし、ホストアプリケーションプログラム308C等のGUIを用いたユーザによる操作に応じて作成または更新されてもよい。
辞書記憶領域58には、モバイルPC2上で実行される複数のアプリケーションプログラムにそれぞれ関連付けられる複数のシングルモード辞書データ582および複数のマルチモード辞書データ583が格納され得る。この場合、辞書管理部55は、ユーザによって現在操作可能であるアクティブなアプリケーションプログラム(すなわちホストアプリケーションプログラム308C)を検出し、シングルモードM2ではそのアプリケーションプログラムに関連付けられたシングルモード辞書データ582を取得し、マルチモードM3ではそのアプリケーションプログラムに関連付けられたマルチモード辞書データ583を取得する。
シングルモード辞書データ582およびマルチモード辞書データ583は、予め規定されたものであってもよいし、作成または更新(例えば、変更、追加、削除等)されるものであってもよい。シングルモード辞書データ582およびマルチモード辞書データ583はそれぞれ、モバイルPC2が外部機器から取得するファイルを用いて作成または更新されてもよいし、ホストアプリケーションプログラム308C等のGUIを用いたユーザによる操作に応じて作成または更新されてもよい。
また、ホストアプリケーションプログラム308Cは制御部59を備える。制御部59は、音声制御プログラム308Bの通知制御部56によって送出されるモード情報およびコマンド情報を受信する。制御部59は、受信されたモード情報とコマンド情報の少なくとも一方を用いて、ホストアプリケーションプログラム308Cの動作を制御する。
より具体的には、“シャッターを押す”を示すコマンド情報を通知制御部56から受信した場合、制御部59はカメラ116を用いた撮影により静止画像を取得するための処理を実行する。“ズームする”を示すコマンド情報を通知制御部56から受信した場合、制御部59はカメラ116のズームインのための処理を実行する。また、“ズームアウトする”を示すコマンド情報を通知制御部56から受信した場合、制御部59はカメラ116のズームアウトのための処理を実行する。
また制御部59は、音声認識モードがシングルモードM2に設定された場合、すなわちシングルモードM2を示すモード情報を通知制御部56から受信した場合、音声認識モードがシングルモードM2であることをユーザに通知する。制御部59は、例えばシングルモードM2を表すオブジェクトを、ウェアラブルデバイス3に設けられるディスプレイ124の画面に表示する。
音声認識モードがマルチモードM3に設定された場合、すなわちマルチモードM3を示すモード情報を通知制御部56から受信した場合、制御部59は音声認識モードがマルチモードM3であることをユーザに通知する。制御部59は、例えばマルチモードM3を表すオブジェクトをディスプレイ124の画面に表示する。オブジェクトは、対応する音声認識モードをユーザに認識させられればよく、インジケータ、マーク、テキストのようないずれ形態であってもよい。
さらに音声認識モードがトリガーモードM1に設定された場合、すなわちトリガーモードM1を示すモード情報を通知制御部56から受信した場合、制御部59は音声認識モードがトリガーモードM1であることをユーザに通知する。制御部59は、例えばシングルモードM2またはマルチモードM3で表示されていたオブジェクトをディスプレイ124の画面から消去する。あるいは制御部59は、音声認識モードがトリガーモードM1に設定された場合、トリガーモードM1を表すオブジェクトをディスプレイ124の画面に表示してもよい。
図12から図14を参照して、現在の音声認識モードを示すオブジェクトがディスプレイ124の画面に表示される例について説明する。ここでは、ホストアプリケーションプログラム308Cがカメラ116を用いた撮影機能を有することを想定する。
図12は音声認識モードがトリガーモードM1である場合に、ディスプレイ124に表示されるホストアプリケーションプログラム308Cの画面画像8−1の例を示す。
画面画像8−1には、カメラ116によって撮影されている画像がリアルタイムで表示されるカメラビュー領域611と、ホストアプリケーションプログラム308Cに対して使用可能な1つ以上の音声コマンド(すなわちホスト操作コマンド)を示すコマンドリスト領域612とが設けられている。コマンドリスト領域612には、各音声コマンドについて、音声コマンドとして発話すべき言葉と、その音声コマンドに対応したホストアプリケーションプログラム308Cの動作とが示されている。
図13に示すように、ユーザがトリガーコマンドを発話し、トリガーモードM1からシングルモードM2に遷移したことに応じて、シングルモードM2であることを表すオブジェクト613を含む画面画像8−2がディスプレイ124に表示される。ユーザはこのオブジェクト613により、現在の音声認識モードがシングルモードM2であることを認識できる。これによりユーザは、コマンドリスト領域612に示されている複数の音声コマンドの1つか、あるいは連続音声操作を開始するための音声コマンドが発話可能な状態(すなわちモバイルPC2に対して入力可能な状態)であることを認識できる。
さらに図14に示すように、ユーザが連続音声操作を開始するための音声コマンドを発話し、シングルモードM2からマルチモードM3に遷移したことに応じて、マルチモードM3であることを表すオブジェクト614を含む画面画像8−3がディスプレイ124に表示される。ユーザはこのオブジェクト614により、現在の音声認識モードがマルチモードM3であることを認識できる。これによりユーザは、コマンドリスト領域612に示されている複数の音声コマンドの1つか、あるいは連続音声操作を終了するための音声コマンドが発話可能な状態であることを認識できる。
なお、図12に示す画面画像8−1には、トリガーモードM1を表すオブジェクトが含まれていない。例えば、音声認識モードがシングルモードM2である場合にユーザがホスト操作コマンドを発話し、シングルモードM2からトリガーモードM1に遷移したことに応じて、シングルモードM2を表すオブジェクト613が消去された画面画像8−1が表示される。あるいは音声認識モードがマルチモードM3である場合にユーザが連続音声操作を終了するための音声コマンドを発話し、マルチモードM3からトリガーモードM1に遷移したことに応じて、マルチモードM3を表すオブジェクト614が消去された画面画像8−1が表示される。
上述したようにシングルモードM2およびマルチモードM3では各モードを表すオブジェクト613,614が表示されるのに対して、トリガーモードM1では画面にオブジェクトが表示されていない。したがってユーザは、音声認識モードを表すオブジェクトが何も表示されていないことにより、現在の音声認識モードがトリガーモードM1であることを認識できる。
なお、画面画像8−1にトリガーモードM1を表すオブジェクトが含まれていてもよい。また各画面画像8−1,8−2,8−3には、トリガーコマンド、連続音声操作を開始するための音声コマンドの内容(例えば発話すべき言葉)、連続音声操作を終了するための音声コマンドの内容等がさらに含まれていてもよい。
ユーザに現在の音声認識モードを通知するための方法は、音声認識モードを示すオブジェクトを画面に表示する方法に限られず、音声認識モードを示す自動音声やビープ音を再生する方法等、ユーザが現在の音声認識モードを認識できる方法のいずれであってもよい。
以上の構成により、ユーザがトリガーコマンドを発話したことに応じて、モード制御部54は音声認識モードをトリガーモードM1からシングルモードM2に切り替え、通知制御部56はシングルモードM2を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面にシングルモードM2を示すオブジェクト613を表示する。
またユーザが連続音声操作の開始を示す音声コマンドを発話したことに応じて、モード制御部54は音声認識モードをシングルモードM2からマルチモードM3に切り替え、通知制御部56はマルチモードM3を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面にマルチモードM3を示すオブジェクト614を表示する。
さらにユーザがホスト操作コマンドを発話したことに応じて、あるいはシングルモードM2のタイムアウトが検出されたことに応じて、モード制御部54は音声認識モードをシングルモードM2からトリガーモードM1に切り替え、通知制御部56はトリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面に表示されていたシングルモードM2を表すオブジェクト613を消去する。
あるいは、ユーザが連続音声操作の終了を示す音声コマンドを発話したことにより、モード制御部54は音声認識モードをマルチモードM3からトリガーモードM1に切り替え、通知制御部56はトリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面に表示されていたマルチモードM3を表すオブジェクト614を消去する。
より具体的な例として、カメラ116を用いた撮影で静止画像を取得する機能を有するホストアプリケーションプログラム308Cを、ユーザが音声で操作するシナリオ1およびシナリオ2について説明する。
(シナリオ1)
音声認識が開始されたとき、トリガーモードM1である音声認識モードで音声入力が待ち受けられる。ユーザが「音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からシングルモードM2に遷移し、シングルモードM2を表すオブジェクト613が画面に表示される。
次にユーザが「ズームする」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116のズームインのための処理を実行し、音声認識モードはトリガーモードM1に戻り、オブジェクト613が画面から消去される。
そしてユーザが再度、「音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からシングルモードM2に再び遷移し、シングルモードM2を表すオブジェクト613が画面に表示される。
次にユーザが「シャッターを押す」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116を用いた撮影により静止画像を取得するための処理を実行し、音声認識モードはトリガーモードM1に戻り、オブジェクト613が画面から消去される。
ユーザは、画面上のオブジェクト613の有無に基づいて、音声認識モードがトリガーモードM1であるか、それともシングルモードM2であるかを容易に判別できる。
(シナリオ2)
音声認識が開始されたとき、トリガーモードM1である音声認識モードで音声入力が待ち受けられる。ユーザが「音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からシングルモードM2に遷移し、シングルモードM2を表すオブジェクト613が画面に表示される。
次にユーザが「連続音声操作開始」と発話したことに応じて、音声認識モードはシングルモードM2からマルチモードM3に遷移し、シングルモードM2を表すオブジェクト613が画面から消去されると共に、マルチモードM3を表すオブジェクト614が画面に表示される。
その後、ユーザが「ズームする」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116のズームインのための処理を実行し、さらにユーザが「シャッターを押す」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116を用いた撮影により静止画像を取得するための処理を実行する。この間、マルチモードM3を表すオブジェクト614は画面に表示されたままである。
そしてユーザが「連続音声操作終了」と発話したことに応じて、音声認識モードはマルチモードM3からトリガーモードM1に戻り、オブジェクト614が画面から消去される。
ユーザは、画面上にオブジェクトが表示されているか否かと、表示されている場合のオブジェクトの種別に基づいて、音声認識モードがトリガーモードM1とシングルモードM2とマルチモードM3のいずれであるかを容易に判別できる。
以上のように、モード情報に基づく通知(例えば音声認識モードを示すオブジェクトの表示)により、ユーザは現在の音声認識モードとその切り替わりを認識できるので、現在の音声認識モードにおいて利用可能なコマンドを容易に把握できる。したがって音声操作中に、いずれのコマンドを発話すればよいか迷うような状況が起こることがなく、音声による操作の利便性を向上できる。なお、上述した例では、ホストアプリケーションプログラム308Cがモード情報を用いて、音声認識モードを表すオブジェクトの表示を制御する構成を例示した。しかしながらホストアプリケーションプログラム308Cは、オブジェクトの表示に限られない様々な動作(処理)を、モード情報を用いて制御し得る。
図15から図18のフローチャートを参照して、モバイルPC2によって実行される音声制御処理の手順の例を説明する。この音声制御処理は、音声制御プログラム308Bを実行しているモバイルPC2によって実現される。
図15に示すように、まずモバイルPC2は音声認識モードをトリガーモードM1に設定し、使用する辞書をトリガーモード辞書データ581に設定する(ステップS101)。モバイルPC2は、トリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS102)。
そしてモバイルPC2は、トリガーモードM1での音声認識処理であるトリガーモード認識処理を実行する(ステップS102)。トリガーモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、トリガーモード辞書データ581に登録された1つ以上のトリガーコマンドの1つが認識される。1つのトリガーコマンドが認識されたことに応じてトリガーモード認識処理は終了する。トリガーモード認識処理の具体的な手順については、図16を参照して後述する。
ステップS103のトリガーモード認識処理が終了したならば、すなわち1つのトリガーコマンドが認識されたならば、モバイルPC2は音声認識モードをシングルモードM2に設定し、使用する辞書をシングルモード辞書データ582に設定する(ステップS104)。モバイルPC2は、シングルモードM2を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS105)。
そしてモバイルPC2は、シングルモードM2での音声認識処理であるシングルモード認識処理を実行する(ステップS106)。シングルモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、シングルモード辞書データ582に登録された複数の音声コマンドの1つが認識される。シングルモードM2の1つの音声コマンドが認識されたことに応じてシングルモード認識処理は終了する。シングルモード認識処理の具体的な手順については、図17を参照して後述する。
ステップS106のシングルモード認識処理が終了したならば、モバイルPC2は、シングルモード認識処理において連続音声操作開始を示す音声コマンドが認識されたか否かを判定する(ステップS107)。連続音声操作開始を示す音声コマンドが認識されていない場合(ステップS107のNO)、モバイルPC2は、シングルモード認識処理においてタイムアウトが検出されたか否かを判定する(ステップS108)。
タイムアウトが検出されていない場合(ステップS108のNO)、モバイルPC2は、シングルモード認識処理で認識された音声コマンドを示す情報をホストアプリケーションプログラム308Cに送出する(ステップS109)。一方、タイムアウトが検出された場合(ステップS108のYES)、ステップS101に戻り、トリガーモードM1での音声認識処理が再度開始される。
また連続音声操作開始を示す音声コマンドが認識された場合(ステップS107のYES)、モバイルPC2は音声認識モードをマルチモードM3に設定し、使用する辞書をマルチモード辞書データ583に設定する(ステップS110)。モバイルPC2は、マルチモードM3を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS111)。
そしてモバイルPC2は、マルチモードM3での音声認識処理であるマルチモード認識処理を実行する(ステップS112)。マルチモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、マルチモード辞書データ583に登録された複数の音声コマンドの1つが認識される。マルチモードM3の1つの音声コマンドが認識されたことに応じてマルチモード認識処理は終了する。マルチモード認識処理の具体的な手順については、図18を参照して後述する。
ステップS112のマルチモード認識処理が終了したならば、すなわちマルチモードM3の1つの音声コマンドが認識されたならば、モバイルPC2は、マルチモード認識処理において連続音声操作終了を示す音声コマンドが認識されたか否かを判定する(ステップS113)。連続音声操作終了を示す音声コマンドが認識された場合(ステップS113のYES)、ステップS101に戻り、トリガーモードM1での音声認識処理が再度開始される。
連続音声操作終了を示す音声コマンドが認識されていない場合(ステップS113のNO)、モバイルPC2は、マルチモード認識処理で認識された音声コマンドを示す情報をホストアプリケーションプログラム308Cに送出し(ステップS114)、ステップS112に戻る。したがって、連続音声操作終了を示す音声コマンドが認識されるまで、連続してマルチモード認識処理が行われる。
以上により、ユーザによる発話に基づくコマンドに応じて、音声認識モードの切り替えが制御されると共に、実行中のホストアプリケーションプログラム308Cにモード情報およびコマンド情報が送出される。これによりモバイルPC2は、ホストアプリケーションプログラム308Cをモード情報およびコマンド情報に応じて動作させることができる。また、各音声認識モードでは、その音声認識モードで認識されるべきコマンドのみを含む辞書が使用されるので、認識されるべきコマンドを全て含む単一の辞書が使用される場合よりも、音声認識処理に要する時間を短くでき、且つ認識結果の精度を向上できる。
図16のフローチャートは、モバイルPC2によって実行されるトリガーモード認識処理の手順の例を示す。このトリガーモード認識処理は、図15を参照して上述した音声制御処理のステップS103に相当する。
まずモバイルPC2は音声データが取得されたか否かを判定する(ステップS21)。モバイルPC2は、例えばウェアラブルデバイス3によって送出された音声データを、ケーブル146等を介して取得する。音声データが取得されていない場合(ステップS21のNO)、ステップS21に戻り、音声データが取得されたか否かが再度判定される。
音声データが取得された場合(ステップS21のYES)、モバイルPC2は、取得された音声データからトリガーモード辞書データ581に示されるトリガーコマンドを認識するための処理を行う(ステップS22)。この処理では、例えば、音声データから特徴量が算出され、算出された特徴量に、トリガーモード辞書データ581に示されるあるトリガーコマンドに対応する特徴量が含まれる場合に、音声データからそのトリガーコマンドが認識されたと判断される。
モバイルPC2は、音声データからトリガーコマンドが認識されたか否かを判定する(ステップS23)。音声データからトリガーコマンドが認識されていない場合(ステップS23のNO)、ステップS21に戻り、新たに取得される音声データからトリガーコマンドを認識するための処理が続行される。
一方、音声データからトリガーコマンドが認識された場合(ステップS23のYES)、モバイルPC2は認識されたトリガーコマンドを示す認識結果を返し(ステップS24)、処理を終了する。この認識結果は図15の音声制御処理で用いられ得る。なお、音声制御処理において、トリガーモード辞書データ581に示されるトリガーコマンドの内のいずれが認識されたかを示す情報が必要でない場合には、ステップS24は省略されてもよい。
以上により、音声データからトリガーコマンドを認識できる。
図17のフローチャートは、モバイルPC2によって実行されるシングルモード認識処理の手順の例を示す。このシングルモード認識処理は、図15を参照して上述した音声制御処理のステップS106に相当する。
まずモバイルPC2はタイマ53を起動する(ステップS31)。タイマ53にはシングルモードM2のタイムアウトを検出すべき時間が設定されている。
次にモバイルPC2は、音声データが取得されたか否かを判定する(ステップS32)。音声データが取得された場合(ステップS32のYES)、モバイルPC2は、取得された音声データからシングルモード辞書データ582に示される音声コマンドを認識するための処理を行う(ステップS33)。この処理では、例えば、音声データから特徴量が算出され、算出された特徴量に、シングルモード辞書データ582に示される1つの音声コマンドに対応する特徴量が含まれる場合に、音声データからその音声コマンドが認識されたと判断される。
モバイルPC2は、音声データから音声コマンドが認識されたか否かを判定する(ステップS34)。音声データから音声コマンドが認識された場合(ステップ34のYES)、モバイルPC2は認識された音声コマンドを示す認識結果を返し(ステップS35)、処理を終了する。認識結果は、シングルモード辞書データ582に含まれるいずれかの音声コマンドを示し、図15の音声制御処理で用いられる。
一方、音声データから音声コマンドが認識されていない場合(ステップS34のNO)、あるいは音声データが取得されていない場合(ステップS32のNO)、モバイルPC2はタイマ53によりタイムアウトが検出されたか否かを判定する(ステップS36)。タイムアウトが検出されていない場合(ステップS36のNO)、ステップS32に戻り、新たに取得される音声データから音声コマンドを認識するための処理が続行される。
タイムアウトが検出された場合(ステップS36のYES)、モバイルPC2はタイムアウトを示す情報を返し(ステップS37)、処理を終了する。タイムアウトを示す情報は、図15の音声制御処理で用いられる。
以上により、音声データからシングルモードM2の音声コマンドを認識するか、シングルモードM2のタイムアウトを検出できる。
図18のフローチャートは、モバイルPC2によって実行されるマルチモード認識処理の手順の例を示す。このマルチモード認識処理は、図15を参照して上述した音声制御処理のステップS112に相当する。
まずモバイルPC2は音声データが取得されたか否かを判定する(ステップS41)。音声データが取得されていない場合(ステップS41のNO)、ステップS41に戻り、音声データが取得されたか否かが再度判定される。
音声データが取得された場合(ステップS41のYES)、モバイルPC2は、取得された音声データからマルチモード辞書データ583に示される音声コマンドを認識するための処理を行う(ステップS42)。この処理では、例えば音声データから特徴量が算出され、算出された特徴量に、マルチモード辞書データ583に示される1つの音声コマンドに対応する特徴量が含まれる場合に、音声データからその音声コマンドが認識されたと判断される。
モバイルPC2は、音声データから音声コマンドが認識されたか否かを判定する(ステップS43)。音声データから音声コマンドが認識されていない場合(ステップS43のNO)、ステップS41に戻り、新たに取得される音声データから音声コマンドを認識するための処理が続行される。
一方、音声データから音声コマンドが認識された場合(ステップS43のYES)、モバイルPC2は認識された音声コマンドを示す認識結果を返し(ステップS44)、処理を終了する。この認識結果は、マルチモード辞書データ583に含まれるいずれかの音声コマンドを示し、図15の音声制御処理で用いられる。
以上により、音声データからマルチモードM3の音声コマンドを認識できる。
次いで図19のフローチャートは、モバイルPC2によって実行されるホスト制御処理の手順の例を示す。このホスト制御処理は、ホストアプリケーションプログラム308Cを実行しているモバイルPC2によって実現される。
まずモバイルPC2は、現在の音声認識モードを示すモード情報を受信したか否かを判定する(ステップS501)。モード情報は、図15を参照して上述した音声制御処理において送出される情報である。モード情報を受信した場合(ステップS501のYES)、モバイルPC2は、そのモード情報に示されるモードの種類に応じて処理を分岐する(ステップS502)。
モード情報がトリガーモードM1を示す場合(ステップS502のトリガーモード)、モバイルPC2はウェアラブルデバイス3のディスプレイ124の画面から、表示されているシングルモードM2またはマルチモードM3を表すオブジェクト613,614を消去する(ステップS503)。モード情報がシングルモードM2を示す場合(ステップS502のシングルモード)、モバイルPC2は、シングルモードM2を示すオブジェクト613をディスプレイ124の画面に表示する(ステップS504)。またモード情報がマルチモードM3を示す場合(ステップS502のマルチモード)、モバイルPC2は、マルチモードM3を示すオブジェクト614をディスプレイ124の画面に表示する(ステップS505)。
モード情報を受信していない場合(ステップS501のNO)、モバイルPC2は認識された音声コマンド(ここではホスト操作コマンド)を示すコマンド情報を受信したか否かを判定する(ステップS506)。コマンド情報は、図15を参照して上述した音声制御処理において送出される情報である。コマンド情報を受信していない場合(ステップS506のNO)、ステップS501に戻り、モード情報を受信したか否かが再度判定される。
コマンド情報を受信した場合(ステップS506のYES)、モバイルPC2はコマンド情報に示されるコマンドの種類に応じて処理を分岐する(ステップS507)。コマンド情報がコマンド1(“シャッターを押す”)を示す場合(ステップS507のコマンド1)、モバイルPC2はカメラ116を用いた撮影により静止画像を生成する(ステップS508)。コマンド情報がコマンド2(“ズームする”)を示す場合(ステップS507のコマンド2)、モバイルPC2はカメラ116のズームインを行う(ステップS509)。またコマンド情報がコマンド3(“ズームアウトする”)を示す場合(ステップS507のコマンド3)、モバイルPC2はカメラ116のズームアウトを行う(ステップS510)。
以上によりモバイルPC2は、モード情報またはコマンド情報に応じてホストアプリケーションプログラム308Cの動作を制御できる。すなわちモード情報に応じて、ホストアプリケーションプログラム308Cの画面画像上の音声認識モードを示すオブジェクトの表示を制御できる。またコマンド情報に応じて、ホストアプリケーションプログラム308Cが有するカメラ116を用いた撮影に関する動作を制御できる。
(第2実施形態)
第1実施形態では、トリガーコマンドが認識されたことに応じて、音声認識モードがトリガーモードM1からシングルモードM2に遷移する。これに対して第2実施形態では、トリガーコマンドが認識されたことに応じて、音声認識モードがトリガーモードM1からシングルモードM2とマルチモードM3のいずれかに遷移する。
第2実施形態に係るモバイルPC2およびウェアラブルデバイス3の構成は第1実施形態のモバイルPC2およびウェアラブルデバイス3と同様であり、第2実施形態と第1実施形態とでは、モード制御部54および通知制御部56によって実行される処理の手順のみが異なる。以下、第1実施形態と異なる点のみを説明する。
図20は、モード制御部54によって音声認識モードの遷移が制御される別の例を示す。初期状態では音声認識モードは、例えばトリガーモードM1に設定される。モード制御部54は、音声データから認識されたコマンドの種類に応じて、以下のように音声認識モードを切り替える。
(B1)モード制御部54は、トリガーモードM1に設定された音声認識モードを、音声操作開始を示すトリガーコマンドが認識されたことに応じてシングルモードM2に切り替える。
(B2)モード制御部54は、シングルモードM2に設定された音声認識モードを、ホストアプリケーションプログラム308Cを操作するための音声コマンド(すなわちホスト操作コマンド)が認識されたことに応じて、あるいはタイムアウトに応じて、トリガーモードM1に切り替える。
(B3)モード制御部54は、トリガーモードM1に設定された音声認識モードを、連続音声操作開始を示すトリガーコマンドが認識されたことに応じてマルチモードM3に切り替える。
(B4)モード制御部54は、マルチモードM3に設定された音声認識モードを、連続音声操作終了を示す音声コマンドが認識されたことに応じてトリガーモードM1に切り替える。
(B5)モード制御部54は、マルチモードM3に設定された音声認識モードを、連続音声操作終了を示す音声コマンド以外の音声コマンドが認識されている間、マルチモードM3に維持する。連続音声操作終了を示す音声コマンド以外の音声コマンドは、ホストアプリケーションプログラム308Cを操作するための音声コマンド(すなわちホスト操作コマンド)である。
図21から図23を参照して、第2実施形態のモバイルPC2で用いられるトリガーモード辞書データ581、シングルモード辞書データ582、およびマルチモード辞書データ583の構成についてそれぞれ説明する。
図21はトリガーモード辞書データ581の一構成例を示す。図21に示す例では、以下のレコードが示されている。
・コマンドIDのフィールドに“トリガーコマンド1”が設定され、内容のフィールドに“音声操作開始”が設定されたレコード5−1
・コマンドIDのフィールドに“トリガーコマンド2”が設定され、内容のフィールドに“連続音声操作開始”が設定されたレコード5−2
レコード5−1に示されるトリガーコマンド1は、音声データから複数の音声コマンドの1つを認識する処理が実行されるシングルモードM2を開始するために用いられる。またレコード5−2に示されるトリガーコマンド2は、音声データから複数の音声コマンドの1つを認識する処理が繰り返し実行されるマルチモードM3を開始するために用いられる。したがってトリガーコマンド1,2は、音声認識モードを変更するためのモード変更コマンドであるとも云える。
図22はシングルモード辞書データ582の一構成例を示す。図22に示す例では、以下のレコードが示されている。
・コマンドIDのフィールドに“コマンド1”が設定され、内容のフィールドに“シャッターを押す”が設定されたレコード6−1
・コマンドIDのフィールドに“コマンド2”が設定され、内容のフィールドに“ズームする”が設定されたレコード6−2
・コマンドIDのフィールドに“コマンド3”が設定され、内容のフィールドに“ズームアウトする”が設定されたレコード6−3
レコード6−1に示されるコマンド1は、カメラ116を用いた撮影により静止画像を取得する処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード6−2に示されるコマンド2は、カメラ116のズームインのための処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード6−3に示されるコマンド3は、カメラ116のズームアウトのための処理をホストアプリケーションプログラム308Cに実行させるために用いられる。レコード6−1,6−2,6−3に示されるコマンド1,2,3は、ホストアプリケーションプログラム308Cに対する操作のために用いられるホスト操作コマンドである。
このシングルモード辞書データ582には、モード変更コマンドは含まれていない。そのため通知制御部56は、シングルモード辞書データ582に示される複数の音声コマンドの1つが認識された場合、その認識された音声コマンドを示す情報をホストアプリケーションプログラム308Cに送出する。
図23はマルチモード辞書データ583の一構成例を示す。図23に示す例では、以下のレコードが示されている。
・コマンドIDのフィールドに“コマンド1”が設定され、内容のフィールドに“シャッターを押す”が設定されたレコード7−1
・コマンドIDのフィールドに“コマンド2”が設定され、内容のフィールドに“ズームする”が設定されたレコード7−2
・コマンドIDのフィールドに“コマンド3”が設定され、内容のフィールドに“ズームアウトする”が設定されたレコード7−3
・コマンドIDのフィールドに“コマンド4”が設定され、内容のフィールドに“連続音声操作終了”が設定されたレコード7−4
レコード7−1,7−2,7−3に示されるコマンド1,2,3は、図22を参照して上述したシングルモード辞書データ582のレコード6−1,6−2,6−3に示されるコマンド1,2,3とそれぞれ同一である。したがって、レコード7−1,7−2,7−3に示されるコマンド1,2,3はホスト操作コマンドである。レコード7−4に示されるコマンド4は、音声データから複数の音声コマンドの1つを認識する処理が繰り返し実行されるマルチモードM3を終了するために用いられるモード変更コマンドである。なお、各レコードには、対応するコマンドがホスト操作コマンドとモード変更コマンドのいずれであるかを示すフィールドがさらに含まれていてもよい。
以上の構成により、ユーザがトリガーコマンドである“音声操作開始”を発話したことに応じて、モード制御部54は音声認識モードをトリガーモードM1からシングルモードM2に切り替え、通知制御部56はシングルモードM2を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面にシングルモードM2を示すオブジェクト613を表示する。
さらにユーザがホスト操作コマンドを発話したことに応じて、あるいはシングルモードM2のタイムアウトが検出されたことに応じて、モード制御部54は音声認識モードをシングルモードM2からトリガーモードM1に切り替え、通知制御部56はトリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面に表示されていたシングルモードM2を表すオブジェクト613を消去する。
またユーザがトリガーコマンドである“連続音声操作開始”を発話したことにより、モード制御部54は音声認識モードをトリガーモードM1からマルチモードM3に切り替え、通知制御部56はマルチモードM3を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面にマルチモードM3を示すオブジェクト614を表示する。
さらにユーザが連続音声操作の終了を示す音声コマンドを発話したことにより、モード制御部54は音声認識モードをマルチモードM3からトリガーモードM1に切り替え、通知制御部56はトリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する。ホストアプリケーションプログラム308Cはこのモード情報を用いて、ウェアラブルデバイス3のディスプレイ124の画面に表示されていたマルチモードM3を表すオブジェクト614を消去する。
より具体的な例として、カメラ116を用いた撮影で静止画像を取得する機能を有するホストアプリケーションプログラム308Cを、ユーザが音声で操作するシナリオ3およびシナリオ4を用いて説明する。
(シナリオ3)
音声認識が開始されたとき、トリガーモードM1である音声認識モードで音声入力が待ち受けられる。ユーザが「音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からシングルモードM2に遷移し、シングルモードM2を表すオブジェクト613が画面に表示される。
次にユーザが「ズームする」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116のズームインのための処理を実行し、音声認識モードはトリガーモードM1に戻り、オブジェクト613が画面から消去される。
そしてユーザが再度、「音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からシングルモードM2に再び遷移し、シングルモードM2を表すオブジェクト613が画面に表示される。
次にユーザが「シャッターを押す」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116を用いた撮影により静止画像を取得するための処理を実行し、音声認識モードはトリガーモードM1に戻り、オブジェクト613が画面から消去される。
ユーザは、画面上のオブジェクト613の有無に基づいて、音声認識モードがトリガーモードM1であるか、それともシングルモードM2であるかを容易に判別できる。
(シナリオ4)
音声認識が開始されたとき、トリガーモードM1である音声認識モードで音声入力が待ち受けられる。ユーザが「連続音声操作開始」と発話したことに応じて、音声認識モードはトリガーモードM1からマルチモードM3に遷移し、マルチモードM3を表すオブジェクト614が画面に表示される。
次にユーザが「ズームする」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116のズームインのための処理を実行し、さらにユーザが「シャッターを押す」と発話したことに応じて、ホストアプリケーションプログラム308Cはカメラ116を用いた撮影により静止画像を取得するための処理を実行する。この間、マルチモードM3を表すオブジェクト614は画面に表示されたままである。
そしてユーザが「連続音声操作終了」と発話したことに応じて、音声認識モードはマルチモードM3からトリガーモードM1に戻り、オブジェクト614が画面から消去される。
ユーザは、画面上のオブジェクト614の有無に基づいて、音声認識モードがトリガーモードM1であるか、それともマルチモードM3であるかを容易に判別できる。
以上のように、ユーザは現在の音声認識モードを容易に認識できるので、音声による操作の利便性を向上できる。
図24のフローチャートを参照して、モバイルPC2によって実行される音声制御処理の手順の例を説明する。
まずモバイルPC2は音声認識モードをトリガーモードM1に設定し、使用する辞書をトリガーモード辞書データ581に設定する(ステップS601)。モバイルPC2は、トリガーモードM1を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS602)。
そしてモバイルPC2は、トリガーモードM1での音声認識処理であるトリガーモード認識処理を実行する(ステップS603)。トリガーモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、トリガーモード辞書データ581に登録された1つ以上のトリガーコマンドの1つが認識される。1つのトリガーコマンドが認識されたことに応じてトリガーモード認識処理は終了する。トリガーモード認識処理の具体的な手順については、図16のフローチャートを参照して上述した通りである。
ステップS603のトリガーモード認識処理が終了したならば、すなわち1つのトリガーコマンドが認識されたならば、モバイルPC2はその認識されたトリガーコマンドに応じて処理を分岐する(ステップS604)。認識されたトリガーコマンドが音声操作開始を示すトリガーコマンドであるならば(ステップS604の音声操作開始)、モバイルPC2は音声認識モードをシングルモードM2に設定し、使用する辞書をシングルモード辞書データ582に設定する(ステップS605)。モバイルPC2は、シングルモードM2を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS606)。
そしてモバイルPC2は、シングルモードM2での音声認識処理であるシングルモード認識処理を実行する(ステップS607)。シングルモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、シングルモード辞書データ582に登録された複数の音声コマンドの1つが認識される。シングルモード認識処理の具体的な手順については、図17のフローチャートを参照して上述した通りである。
ステップS607のシングルモード認識処理が終了したならば、モバイルPC2はシングルモード認識処理においてタイムアウトが検出されたか否かを判定する(ステップS608)。タイムアウトが検出されていない場合(ステップS608のNO)、モバイルPC2は、シングルモード認識処理で認識された音声コマンドを示す情報をホストアプリケーションプログラム308Cに送出する(ステップS609)。一方、タイムアウトが検出された場合(ステップS608のYES)、ステップS601に戻り、トリガーモードM1での音声認識処理が再度開始される。
また、認識されたトリガーコマンドが連続音声操作開始を示す音声コマンドであるならば(ステップS604の連続音声操作開始)、モバイルPC2は音声認識モードをマルチモードM3に設定し、使用する辞書をマルチモード辞書データ583に設定する(ステップS610)。モバイルPC2は、マルチモードM3を示すモード情報をホストアプリケーションプログラム308Cに送出する(ステップS611)。
そしてモバイルPC2は、マルチモードM3での音声認識処理であるマルチモード認識処理を実行する(ステップS612)。マルチモード認識処理では、例えばウェアラブルデバイス3からモバイルPC2に入力された音声データから、マルチモード辞書データ583に登録された複数の音声コマンドの1つが認識される。マルチモードM3の1つの音声コマンドが認識されたことに応じてマルチモード認識処理は終了する。マルチモード認識処理の具体的な手順については、図18のフローチャートを参照して上述した通りである。
ステップS612のマルチモード認識処理が終了したならば、すなわちマルチモードM3の1つの音声コマンドが認識されたならば、モバイルPC2はマルチモード認識処理において連続音声操作終了を示す音声コマンドが認識されたか否かを判定する(ステップS613)。連続音声操作終了を示す音声コマンドが認識された場合(ステップS613のYES)、ステップS601に戻り、トリガーモードM1での音声認識処理が再度開始される。
連続音声操作終了を示す音声コマンドが認識されていない場合(ステップS613のNO)、モバイルPC2は、マルチモード認識処理で認識された音声コマンドを示す情報をホストアプリケーションプログラム308Cに送出し(ステップS614)、ステップS612に戻る。したがって、連続音声操作終了を示す音声コマンドが認識されるまで、連続してマルチモード認識処理が行われる。
以上により、ユーザによる発話に基づくコマンドに応じて、音声認識モードの切り替えが制御されると共に、実行中のホストアプリケーションプログラム308Cにモード情報およびコマンド情報が送出される。これによりモバイルPC2は、ホストアプリケーションプログラム308Cをモード情報およびコマンド情報に応じて動作させることができる。また、各音声認識モードでは、その音声認識モードで認識されるべきコマンドのみを含む辞書が使用されるので、認識されるべきコマンドを全て含む単一の辞書が使用される場合よりも、音声認識処理に要する時間を短くでき、且つ認識結果の精度を向上できる。
(第3実施形態)
第1および第2実施形態では、モード情報およびコマンド情報が1つのホストアプリケーションプログラム308Cに送出される。これに対して第3実施形態では、モード情報およびコマンド情報が複数のホストアプリケーションプログラム308Cに送出される。
第3実施形態に係るモバイルPC2およびウェアラブルデバイス3の構成は第1および第2実施形態のモバイルPC2およびウェアラブルデバイス3と同様であり、第3実施形態と第1および第2実施形態とでは、通知制御部56によって実行される処理の手順のみが異なる。以下、第1および第2実施形態と異なる点のみを説明する。
図25に示すように、通知制御部56は、複数のホストアプリケーションプログラム308C−1,……,308C−Nにそれぞれモード情報およびコマンド情報を送出し得る。通知制御部56は、例えば複数のホストアプリケーションプログラム308C−1,……,308C−Nとの間でプロセス間通信のための接続をそれぞれ確立し、それら複数のホストアプリケーションプログラム308C−1,……,308C−Nにモード情報およびコマンド情報を送出する。複数のホストアプリケーションプログラム308C−1,……,308C−Nに設けられる各制御部59−1,……,59−Nは、モード情報およびコマンド情報を用いて動作を制御する。
このような場合、例えばユーザが現在操作可能である一方のホストアプリケーションプログラム308C−1の制御部59−1は、モード情報を用いて現在の音声認識モードを示すオブジェクトをディスプレイ124の画面に表示する。その後、他方のアプリケーションプログラム308−Nがユーザによって操作可能となったならば、そのアプリケーションプログラム308−Nの制御部59−Nが、モード情報を用いて現在の音声認識モードを示すオブジェクトをディスプレイ124の画面に表示してもよい。
以上のように、モバイルPC2はモード情報およびコマンド情報を用いて、複数のホストアプリケーションプログラム308C−1,……,308C−Nの動作を制御できる。したがってユーザによる音声操作に応じて並行して、複数のホストアプリケーションプログラム308C−1,……,308C−Nを制御できるので、音声操作の利便性を向上できる。
(第4実施形態)
第1乃至第3実施形態では、モード情報およびコマンド情報が1つ以上のホストアプリケーションプログラム308Cに送出される。これに対して第4実施形態では、モード情報が第1のホストアプリケーションプログラム308Cに送出され、コマンド情報が第2のホストアプリケーションプログラム308Cに送出される。
第4実施形態に係るモバイルPC2およびウェアラブルデバイス3の構成は第1乃至第3実施形態のモバイルPC2およびウェアラブルデバイス3と同様であり、第4実施形態と第1乃至第3実施形態とでは、通知制御部56によって実行される処理の手順のみが異なる。以下、第1乃至第3実施形態と異なる点のみを説明する。
図26に示すように、通知制御部56は複数のホストアプリケーションプログラム308C−1,308C−2の一方にモード情報を送出し、他方にコマンド情報を送出する。通知制御部56は、例えば2つのホストアプリケーションプログラム308C−1,308C−2との間でプロセス間通信のための接続をそれぞれ確立し、第1ホストアプリケーションプログラム308C−1にモード情報のみを送出し、第2ホストアプリケーションプログラム308C−2にコマンド情報のみを送出する。第1ホストアプリケーションプログラム308C−1の制御部59−1は、モード情報を用いて動作を制御する。また第2ホストアプリケーションプログラム308C−2の制御部59−2は、コマンド情報を用いて動作を制御する。
第1ホストアプリケーションプログラム308C−1の制御部59−1は、モード情報を用いて第2ホストアプリケーションプログラム308C−2の動作を制御することもできる。例えば、制御部59−1はモード情報を用いて、第2ホストアプリケーションプログラム308C−2に対して、現在の音声認識モードを示すオブジェクトをディスプレイ124の画面に表示することを要求する。第2ホストアプリケーションプログラム308C−2の制御部59−2はこの要求に応じて、現在の音声認識モードを示すオブジェクトをディスプレイ124の画面に表示する。
このように、連携して動作する2つのホストアプリケーションプログラム308C−1,308C−2に対して、モード情報とコマンド情報とを別々に送出することもできる。なお、第2ホストアプリケーションプログラム308C−2の制御部59−2が、コマンド情報を用いて第1ホストアプリケーションプログラム308C−1の動作を制御してもよい。
以上のように、モバイルPC2はモード情報およびコマンド情報を用いて、連携する複数のホストアプリケーションプログラム308C−1,308C−2の動作を制御できる。したがってユーザによる音声操作に応じて並行して、複数のホストアプリケーションプログラム308C−1,308C−2を制御できるので、音声操作の利便性を向上できる。
以上説明したように第1乃至第4実施形態によれば、音声による操作の利便性を向上できる。USB Type−C レセプタクル207、ブルートゥース/無線LANデバイス等の接続部は、モバイルPC2をユーザが装着可能なウェアラブルデバイス3に有線または無線で接続する。音声取得部51は、ウェアラブルデバイス3から、ユーザによる発話を集音することによって得られた音声データを取得する。通知制御部56は、音声認識モードが、音声データから複数の第1コマンドの1つを認識する第1認識処理が実行される第1モードに設定された場合、第1モードを示す情報をモバイルPC2上で実行されている1つ以上のホストアプリケーションプログラム308Cに送出し、音声認識モードが、音声データから複数の第2コマンドの1つを認識する第2認識処理が繰り返し実行される第2モードに設定された場合、第2モードを示す情報を1つ以上のホストアプリケーションプログラム308Cに送出する。
ホストアプリケーションプログラム308Cは送出されたモード情報を用いて動作できる。例えば送出されたモード情報を用いて、モード情報に示される各モードがユーザに通知される場合、ユーザは現在の音声認識モードを把握できるので、音声操作におけるユーザによる利便性を向上できる。
第1乃至第4実施形態に記載された様々な機能の各々は、回路(処理回路)によって実現されてもよい。処理回路の例には、中央処理装置(CPU)のような、プログラムされたプロセッサが含まれる。このプロセッサは、メモリに格納されたコンピュータプログラム(命令群)を実行することによって、記載された機能それぞれを実行する。このプロセッサは、電気回路を含むマイクロプロセッサであってもよい。処理回路の例には、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、マイクロコントローラ、コントローラ、他の電気回路部品も含まれる。第1乃至第4実施形態に記載されたCPU以外の他のコンポーネントの各々もまた処理回路によって実現されてもよい。
また、第1乃至第4実施形態の各種処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、第1乃至第4実施形態と同様の効果を容易に実現することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。