(57)【特許請求の範囲】
【請求項１】
画面上の利用者の視線位置を検出する視線位置検出部と、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出するコマンド抽出部と、
前記コマンド抽出部によって抽出されたコマンドと、前記コマンドの音声情報と、前記コマンドの位置情報とを対応付けたテーブルを生成する生成部と、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、前記コマンドの位置情報を特定する特定部と、
前記特定部が特定した前記コマンドの位置情報に対応する前記画面上の位置に、ポインタを移動させ、選択ボタンが押下された場合に、前記ポインタの位置に対応するコマンドを実行する表示制御部と、
を有することを特徴とするポインティング支援装置。
【請求項２】
前記表示制御部は、前記視線位置をポインタの初期位置として設定し、前記ポインタを移動させる経路および前記経路の移動パターンを定義した経路定義情報を基にして、前記初期位置を起点とした前記経路を前記画面上に表示し、前記ポインタを前記経路に沿って移動させる処理を更に実行することを特徴とする請求項１に記載のポインティング支援装置。
【請求項３】
前記表示制御部は、前記特定部が特定したコマンドの位置に前記ポインタを移動させる第１処理と、前記経路定義情報に基づいて、前記ポインタを移動させる第２処理とのいずれかの選択を受け付け、前記第１処理と、前記第２処理とを切り替えて処理を実行することを特徴とする請求項２に記載のポインティング支援装置。
【請求項４】
前記生成部は、前記画面上に存在する全てのコマンドの音声情報を生成して記憶部に格納し、前記コマンド抽出部によって抽出されたコマンドに対応する音声情報を前記記憶部に記憶された音声情報から取得することで、前記テーブルを生成することを特徴とする請求項１、２または３に記載のポインティング支援装置。
【請求項５】
前記生成部は、第１画面上に存在する全てのコマンドの第１音声情報を生成して記憶部に格納し、前記第１画面上のコマンドが選択され第２画面が表示された場合に、前記第２画面上に存在する全てのコマンドの第２音声情報を生成し、前記第１音声情報と区別して、前記第２音声情報を前記記憶部に格納することを特徴とする請求項４に記載のポインティング支援装置。
【請求項６】
前記生成部は、前記コマンド抽出部によってコマンドが抽出される度に、前記記憶部に記憶された音声情報のうち、抽出されたコマンドの音声情報に対応する音声情報の使用頻度を増加させ、前記使用頻度の高い音声情報を優先的に前記記憶部に残すことを特徴とする請求項４に記載のポインティング支援装置。
【請求項７】
前記生成部は、前記コマンド抽出部によって抽出された複数のコマンドと前記複数のコマンドの音声情報とをそれぞれ対応付けたテーブルを生成し、前記特定部は、音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの複数の音声情報との類似度をそれぞれ算出し、受け付けた音声情報との類似度が最大となる音声情報に対応付けられたコマンドを特定することを特徴とする請求項１に記載のポインティング支援装置。
【請求項８】
コンピュータが実行するポインティング支援方法であって、
画面上の利用者の視線位置を検出し、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出し、
抽出したコマンドと、前記コマンドの音声情報と、前記コマンドの位置情報とを対応付けたテーブルを生成し、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、前記コマンドの位置情報を特定し、
特定した前記コマンドの位置情報に対応する前記画面上の位置に、ポインタを移動させ、選択ボタンが押下された場合に、前記ポインタの位置に対応するコマンドを実行する
処理を実行することを特徴とするポインティング支援方法。
【請求項９】
コンピュータに、
画面上の利用者の視線位置を検出し、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出し、
抽出したコマンドと、前記コマンドの音声情報と、前記コマンドの位置情報とを対応付けたテーブルを生成し、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、前記コマンドの位置情報を特定し、
特定した前記コマンドの位置情報に対応する前記画面上の位置に、ポインタを移動させ、選択ボタンが押下された場合に、前記ポインタの位置に対応するコマンドを実行する
処理を実行させることを特徴とするポインティング支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ポインティング支援装置等に関する。
【背景技術】
【０００２】
近年、ＧＵＩ（Graphical  User  Interface）を備えるＰＣ（Personal  computer）、タブレット端末、スマートフォン等の情報機器が普及している。利用者は、ＧＵＩの任意の位置にあるアイコン、ボタン、コマンドタブ等のターゲットをポインティングすることで、情報機器を操作する。
【０００３】
情報機器に対するポインティングは、利用者の上肢によるマウス操作や、タッチパッド、タッチパネル上の手指による操作で行われる。このため、上肢や手指がうまく機能しない肢体不自由者や高齢者等は、ＧＵＩを備えた情報機器を操作することができなかった。
【０００４】
この問題について、上肢や手指による直接的な操作を行わなくても、利用者の音声認識を実行して、ポインティングを行うことを可能とする従来技術がある。
【０００５】
図１９は、従来技術を説明するための図である。従来技術は、ウィンドウ１０Ａが開かれている状態で、利用者が「ShowNumbers（しょうなんばーず）」と発話したことを認識すると、次の処理を行う。従来技術は、マウスによって選択可能なウィンドウ１０Ａ上のボタンやアイコン、コマンドタブ等に相当する領域に固有の番号を割り当てて表示させる。利用者は、選択したい領域に割り振られた番号を発話し、従来技術は音声認識により、選択された領域を判定する。例えば、図１９において、利用者がウィンドウ１０Ａの各番号を参照し、番号「１０」の領域を選択したい場合には、「１０（てん）」と発話し、従来技術は、音声認識により、番号「１０」の領域が選択されたと判定する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】MicroSoft、“音声認識を使用する方法”、［平成２８年２月１０日検索］、インターネット＜URL：http://windows.microsoft.com/ja-jp/windows-8/using-speech-recognition＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した従来技術では、効率的にポインティングを実行することができないという問題がある。
【０００８】
一般的に、発話区間が短いと認識率が低下する傾向にあるため、従来技術のように番号を発話させると、発話区間が短く、利用者の所望する領域を適切に判定することができない場合があった。また、従来技術では、同じウィンドウの同じボタンであっても、毎回異なる番号が割り振られるため、利用者にとって使い勝手の悪いものとなる。また、従来技術では、アイコン、ボタン、コマンドタブにそれまで表示されていた情報の上に、番号が重畳された状態で表示されるため、本来のコマンドが見づらいという問題もある。
【０００９】
１つの側面では、本発明は、効率的にポインティングを実行することができるポインティング支援装置、ポインティング支援方法およびポインティング支援プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
第１の案では、ポインティング支援装置は、視線位置検出部と、コマンド抽出部と、生成部と、判定部とを有する。視線位置検出部は、画面上の利用者の視線位置を検出する。コマンド抽出部は、視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出する。生成部は、コマンド抽出部によって抽出されたコマンドとコマンドの音声情報とを対応付けたテーブルを生成する。判定部は、音声情報を受け付けた場合に、受け付けた音声情報と、テーブルの音声情報とを基にして、コマンドを判定する。
【発明の効果】
【００１１】
効率的にポインティングを実行することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本実施例１に係るポインティング支援装置の処理の一例を説明するための図である。
【図２】図２は、本実施例１に係るポインティング支援装置の構成を示す機能ブロック図である。
【図３】図３は、本実施例１に係るコマンド辞書テーブルのデータ構造の一例を示す図である。
【図４】図４は、本実施例１に係るコマンド辞書キャッシュテーブルのデータ構造の一例を示す図である。
【図５】図５は、本実施例１に係るポインティング支援装置の処理手順を示すフローチャート（１）である。
【図６】図６は、本実施例１に係るポインティング支援装置の処理手順を示すフローチャート（２）である。
【図７】図７は、経路定義テーブルのデータ構造の一例を示す図である。
【図８】図８は、第１経路定義を説明するための図である。
【図９】図９は、第２経路定義を説明するための図である。
【図１０】図１０は、第３経路定義を説明するための図である。
【図１１】図１１は、本実施例２に係るポインティング支援装置の構成を示す機能ブロック図である。
【図１２】図１２は、ステータス画面を説明するための図である。
【図１３】図１３は、表示制御部の処理２を説明するための図（１）である。
【図１４】図１４は、表示制御部の処理２を説明するための図（２）である。
【図１５】図１５は、本実施例２に係るポインティング支援装置の処理手順を示すフローチャート（１）である。
【図１６】図１６は、本実施例２に係るポインティング支援装置の処理手順を示すフローチャート（２）である。
【図１７】図１７は、本実施例２に係るポインティング支援装置の処理手順を示すフローチャート（３）である。
【図１８】図１８は、ポインティング支援プログラムを実行するコンピュータの一例を示す図である。
【図１９】図１９は、従来技術を説明するための図である。
【発明を実施するための形態】
【００１３】
以下に、本願の開示するポインティング支援装置、ポインティング支援方法およびポインティング支援プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１４】
図１は、本実施例１に係るポインティング支援装置の処理の一例を説明するための図である。図１のアプリケーション画面５０は、コマンド５１ａ，５１ｂ，５１ｃ，５１ｄ，５１ｅ，５１ｆ，５１ｇを有する。ポインティング支援装置は、利用者の視線検出を実行し、視線位置５２を検出する。ポインティング支援装置は、視線位置５２の位置を中心として、検索範囲５３に含まれるコマンド５１ｃ，５１ｄ，５１ｅ，５１ｆを抽出する。
【００１５】
ポインティング支援装置は、コマンド５１ｃ，５１ｄ，５１ｅ，５１ｆを音声認識するためのコマンド辞書テーブルを生成する。例えば、ポインティング支援装置は、コマンド５１ｃと音声認識用データ「新規（しんき）」とを対応付け、コマンド５１ｄと、音声認識用データ「返信（へんしん）」とを対応付けた情報をコマンド辞書テーブルに登録する。また、ポインティング支援装置は、コマンド５１ｅと音声認識用データ「転送（てんそう）」とを対応付け、コマンド５１ｆと音声認識用データ「検索（けんさく）」とを対応付けた情報をコマンド辞書テーブルに登録する。
【００１６】
例えば、利用者が「返信（へんしん）」と発話すると、ポインティング支援装置は、音声認識を実行する。ポインティング支援装置は、音声認識結果と、コマンド辞書テーブルの各音声認識用データとを比較して、音声認識結果に対応する音声認識用データのコマンド「返信」を特定し、ポインタの位置を、返信のコマンド５１ｄの位置に移動させる。
【００１７】
図１に示したような処理をポインティング支援装置が実行することで、腕や手足に不自由を抱える肢体不自由者や高齢者等は、マウス等を使うことなく、ストレス無く高精度なＧＵＩ画面のコマンド選択を効率的に行うことができる。
【００１８】
次に、本実施例１に係るポインティング支援装置の構成について説明する。図２は、本実施例１に係るポインティング支援装置の構成を示す機能ブロック図である。図２に示すように、このポインティング支援装置１００は、視線入力部１１０と、入力部１２０と、音声入力部１３０と、表示部１４０と、記憶部１５０と、制御部１６０とを有する。
【００１９】
視線入力部１１０は、利用者の視線を入力するための装置である。例えば、視線入力部１１０は、カメラに対応する。視線入力部１１０は、利用者の顔画像を撮影し、撮影した顔画像のデータを制御部１６０に出力する。
【００２０】
入力部１２０は、利用者によって押下可能なボタンを有するスイッチである。入力部１２０は、ボタンが押下されているか否かの信号を、制御部１６０に出力する。
【００２１】
音声入力部１３０は、利用者が発話した音声を取得するための装置である。例えば、音声入力部１３０は、マイクに対応する。音声入力部１３０は、利用者の音声のデータを、制御部１６０に出力する。
【００２２】
表示部１４０は、制御部１６０から出力される各種の情報を表示する表示装置である。表示部１４０は、液晶ディスプレイやタッチパネル等に対応する。
【００２３】
記憶部１５０は、コマンド辞書テーブル１５１と、コマンド辞書キャッシュテーブル１５２とを有する。記憶部１５０は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子や、ＨＤＤ（Hard  Disk  Drive）などの記憶装置に対応する。
【００２４】
コマンド辞書テーブル１５１は、図１で説明したコマンド辞書テーブルに対応するものであり、コマンドの情報と、コマンドの音声認識用データとを対応付ける。図３は、本実施例１に係るコマンド辞書テーブルのデータ構造の一例を示す図である。図３に示すように、コマンド辞書テーブル１５１は、抽出コマンド文字コード列と、位置座標と、音声認識用データとを対応付ける。
【００２５】
図３において、抽出コマンド文字コード列は、視線位置の位置を中心とした画面上の検索範囲から抽出されるコマンドの文字コード列を示す。位置座標は、抽出されたコマンドの画面上の位置座標を示す。音声認識用データは、コマンドを認識するための音声データである。例えば、図３の１行目のレコードでは、「新規」の文字コード列が登録され、「新規」のコマンドの座標「ｘ１，ｙ１」が登録され、「しんき」の音声認識用データが登録される。
【００２６】
コマンド辞書キャッシュテーブル１５２は、コマンド辞書テーブル１５１の生成を効率化する為に用いられるテーブルである。図４は、本実施例１に係るコマンド辞書キャッシュテーブルのデータ構造の一例を示す図である。図４に示すように、コマンド辞書キャッシュテーブル１５２は、コマンド文字コード列と、音声認識用データとを対応付ける。
【００２７】
図４において、コマンド文字コード列は、画面上に含まれる全てのコマンドの文字コード列を示す。音声認識用データは、コマンドを認識するための音声データである。例えば、図４の１行目のレコードでは、「受信」の文字コード列が登録され、「じゅしん」の音声認識用データが登録される。
【００２８】
図２の説明に戻る。制御部１６０は、視線位置検出部１６１と、コマンド抽出部１６２と、生成部１６３と、判定部１６４と、表示制御部１６５とを有する。制御部１６０は、ＡＳＩＣ（Application  Specific  Integrated  Circuit）や、ＦＰＧＡ（Field  Programmable  Gate  Array）などの集積装置に対応する。また、制御部１６０は、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等の電子回路に対応する。
【００２９】
視線位置検出部１６１は、表示部１４０の画面上の利用者の視線位置を検出する処理部である。視線位置検出部１６１は、視線位置の情報を、コマンド抽出部１６２に出力する。
【００３０】
視線位置検出部１６１は、どのような従来技術を用いて、利用者の視線位置を検出しても良い。例えば、視線位置検出部１６１は、視線入力部１１０から顔画像データを取得する度に、顔画像データを画像解析し、利用者の目の基準点と、動点とを特定する。視線位置検出部１６１は、基準点と動点との関係から、利用者の視線位置を検出する。基準点と動点との組は、利用者の目に関する目頭と虹彩、または、利用者の目に関する角膜反射と瞳孔となる。視線位置検出部１６１は、特開２０１２−１８７１９０号公報に記載された技術を用いて、視線位置を検出しても良い。
【００３１】
コマンド抽出部１６２は、視線位置の初期位置を特定し、初期位置を基準とする検索範囲内に含まれる画面上のコマンドを抽出する処理部である。例えば、コマンド抽出部１６２は、入力部１２０が利用者により押下されたタイミングにおける視線位置を、初期位置として特定する。コマンド抽出部１６２は、抽出したコマンドの情報を、生成部１６３および表示制御部１６５に出力する。例えば、コマンドの情報は、コマンドの文字コード列と、コマンドの位置座標とを対応付けた情報である。
【００３２】
コマンド抽出部１６２は、どのような従来技術を用いて、画面上の検索範囲内のコマンドを抽出しても良い。例えば、画面上に配置されるコマンドの位置、コマンドの文字コード列、属性等をそれぞれ定義した画面情報と、初期位置を基準とする検索範囲とを比較して、コマンドの情報を抽出する。
【００３３】
生成部１６３は、コマンド抽出部１６２から取得するコマンドの情報を基にして、コマンド辞書テーブル１５１を生成する処理部である。以下において、生成部１６３の処理について説明する。生成部１６３は、コマンド辞書テーブル１５１を生成する前に、コマンド辞書キャッシュテーブル１５２を事前に生成する。
【００３４】
生成部１６３が、コマンド辞書キャッシュテーブル１５２を生成する処理の一例について説明する。生成部１６３は、利用者によって画面がアクティブになったことを検出すると、アクティブとなった画面の画面情報を走査して、画面に含まれる全てのコマンドの文字コード列を抽出する。生成部１６３は、抽出した文字コード列を、コマンド辞書キャッシュテーブル１５２のコマンド文字コード列に登録する。
【００３５】
生成部１６３は、コマンド辞書キャッシュテーブル１５２に登録した文字コード列に対応する音声認識用データを生成し、文字コード列と対応付けて、コマンド辞書キャッシュテーブル１５２に登録する。
【００３６】
生成部１６３は、どのような従来技術を用いて、文字コード列に対応する音声認識用データを生成しても良い。例えば、生成部１６３は、文字コード列を解析することで、読み方を特定し、読み方の各文字に対応する音声を組み合わせることで、音声認識用データを生成する。
【００３７】
例えば、生成部１６３は、文字コード列「新規」を解析することで、読み方「しんき」を特定し、各文字「し」、「ん」、「き」に対応する音声を組み合わせることで、文字コード列「新規」の音声認識用データを生成する。なお、各文字の音声は、図示しない音声データベースに格納されており、生成部１６３は、この音声データベースを参照して、各文字の音声のデータを取得する。
【００３８】
なお、上記の説明では、生成部１６３は、コマンド辞書キャッシュテーブル１５２を事前に生成しておき、コマンド辞書テーブル１５１を生成する場合に、コマンド辞書キャッシュテーブル１５２を用いる場合について説明したがこれに限定されない。例えば、生成部１６３は、コマンド辞書キャッシュテーブル１５２を生成しないで、コマンド辞書テーブル１５１を直接生成しても良い。
【００３９】
続いて、生成部１６３が、コマンド辞書キャッシュテーブル１５２を利用して、コマンド辞書テーブル１５１を生成する処理の一例について説明する。生成部１６３は、コマンド抽出部１６２から、コマンドの情報を受け付けると、コマンドの文字コード列と、コマンドの位置座標とを対応付けて、コマンド辞書テーブル１５１に登録する。
【００４０】
また、生成部１６３は、コマンドの文字コード列と、コマンド辞書キャッシュテーブル１５２とを比較して、コマンドの文字コード列と同一の文字コード列に対応付けられた音声認識用データをコマンド辞書キャッシュテーブル１５２から取得する。生成部１６３は、取得した音声認識用データを、文字コード列と対応付けて、コマンド辞書テーブル１５１に登録する。
【００４１】
例えば、生成部１６３が、コマンド抽出部１６２から、コマンドの文字コード列「新規」を取得したとする。この場合には、生成部１６３は、コマンドの文字コード列「新規」に対応する「しんき」の音声認識用データをコマンド辞書キャッシュテーブル１５２から取得する。生成部１６３は、「新規」の文字コード列と「しんき」の音声認識用データとを対応付けて、コマンド辞書テーブル１５１に登録する。
【００４２】
判定部１６４は、音声入力部１３０からの利用者の音声のデータと、コマンド辞書テーブル１５１とを基にして、コマンドを判定する処理部である。判定部１６４は、コマンドの位置座標を、表示制御部１６５に出力する。以下の説明では、利用者の音声のデータを、適宜、音声データと表記する。
【００４３】
ここで、判定部１６４の処理を具体的に説明する。判定部１６４は、音声データと、コマンド辞書テーブル１５１の各音声認識用データとを比較して、類似度をそれぞれ算出する。判定部１６４は、音声データとの類似度が最大となる音声認識用データを特定し、特定した音声認識用データに対応付けられたコマンドが選択されたと判定する。判定部１６４は、特定した音声認識用データに対応付けられたコマンドの位置座標を、表示制御部１６５に出力する。
【００４４】
例えば、判定部１６４は、音声データと、各音声認識用データとを比較して類似度を算出し、「へんしん」の音声認識用データと音声データとの類似度が最大となったとする。この場合には、判定部１６４は、コマンド「返信」が選択されたと判定し、コマンド「返信」の位置座標（ｘ２、ｙ２）を、表示制御部１６５に出力する。
【００４５】
なお、判定部１６４は、音声データと、各音声認識用データとを比較して類似度を算出し、各類似度が閾値未満となる場合には、コマンドを判定する処理を行わず、再度、音声データを音声入力部１３０から取得して、上記処理を実行しても良い。
【００４６】
表示制御部１６５は、図示しない画面情報を表示部１４０に出力して、画面情報を表示させる処理や、判定部１６４、入力部１２０の操作に応答して、ポインタ移動、コマンドの選択を受け付ける処理部である。表示制御部１６５は、コマンドの選択を受け付けた場合には、コマンドの選択に応じた処理を実行し、処理結果を、表示部１４０に表示させる。
【００４７】
例えば、表示制御部１６５は、判定部１６４から位置座標を取得した場合には、位置座標に対応する画面上の位置にポインタを移動させる。表示制御部１６５は、入力部１２０からボタンが押下された信号を受け付けた場合には、ポインタと重なる位置のコマンドが選択されたと判定し、コマンドに応じた処理を実行する。
【００４８】
また、表示制御部１６５は、コマンド抽出部１６２から、検索範囲内に含まれる画面上のコマンドの情報を取得し、検索範囲内に含まれるコマンドの領域を強調表示する。
【００４９】
次に、本実施例１に係るポインティング支援装置１００の処理手順について説明する。図５及び図６は、本実施例１に係るポインティング支援装置の処理手順を示すフローチャートである。図５に示すように、ポインティング支援装置１００の生成部１６３は、アクティブとなった画面からコマンドの文字コード列を抽出し、コマンド辞書キャッシュテーブル１５２を生成する（ステップＳ１０１）。
【００５０】
ポインティング支援装置１００の視線位置検出部１６１は、画面上の視線位置を検出する（ステップＳ１０２）。視線位置検出部１６１は、視線確定指示があるか否かを判定する（ステップＳ１０３）。視線位置検出部１６１は、視線確定指示がない場合には（ステップＳ１０３，Ｎｏ）、ステップＳ１０２に移行する。視線位置検出部１６１は、視線確定指示がある場合には（ステップＳ１０３，Ｙｅｓ）、ステップＳ１０４に移行する。例えば、視線位置検出部１６１は、入力部１２０のボタンが利用者により押下された場合に、視線確定指示があると判定する。
【００５１】
ポインティング支援装置１００のコマンド抽出部１６２は、視線位置をポインタの初期位置に設定する（ステップＳ１０４）。コマンド抽出部１６２は、初期位置中心の検索範囲からコマンドの文字コード列と位置座標とを抽出する（ステップＳ１０５）。コマンド抽出部１６２は、１個以上のコマンドの文字コード列を抽出したか否かを判定する（ステップＳ１０６）。コマンド抽出部１６２は、１個以上のコマンドの文字コード列を抽出していない場合には（ステップＳ１０６，Ｎｏ）、処理を終了する。コマンド抽出部１６２は、１個以上のコマンドの文字コード列を抽出した場合には（ステップＳ１０６，Ｙｅｓ）、ステップＳ１０７に移行する。
【００５２】
ポインティング支援装置１００の生成部１６３は、コマンド抽出部１６２が抽出したコマンドおよびコマンド辞書キャッシュテーブル１５２を基にして、コマンド辞書テーブル１５１を生成する（ステップＳ１０７）。ポインティング支援装置１００の表示制御部１６５は、抽出されたコマンドを強調表示し（ステップＳ１０８）、図６のステップＳ１０９に移行する。
【００５３】
表示制御部１６５は、終了指示があるか否かを判定する（ステップＳ１０９）。表示制御部１６５は、終了指示がある場合には（ステップＳ１０９，Ｙｅｓ）、ステップＳ１１４に移行する。例えば、表示制御部１６５は、入力部１２０のボタンが短く押下されたことを検出すると、終了指示があると判定する。また、利用者は、入力部１２０のボタンを押下する代わりに「終了」と発話し、表示制御部１６５が、音声認識を実行して、「終了」が発話されたことを認識した場合に、終了指示があると判定しても良い。
【００５４】
表示制御部１６５は、強調表示がある場合には、強調表示をクリアし（ステップＳ１１４）、処理を終了する。表示制御部１６５は、終了指示がない場合には（ステップＳ１０９，Ｎｏ）、ステップＳ１１０に移行する。
【００５５】
ポインティング支援装置１００の判定部１６４は、音声データの入力があるか否かを判定する（ステップＳ１１０）。判定部１６４は、音声データの入力がない場合には（ステップＳ１１０，Ｎｏ）、ステップＳ１０９に移行する。判定部１６４は、音声データの入力がある場合には（ステップＳ１１０，Ｙｅｓ）、ステップＳ１１１に移行する。
【００５６】
判定部１６４は、コマンド辞書テーブル１５１の各音声認識用データと、音声データとを比較する（ステップＳ１１１）。判定部１６４は、コマンド辞書テーブル１５１の音声認識用のデータにヒットしたか否かを判定する（ステップＳ１１２）。判定部１６４は、コマンド辞書テーブル１５１の音声認識用のデータにヒットしない場合には（ステップＳ１１２，Ｎｏ）、ステップＳ１０９に移行する。判定部１６４は、コマンド辞書テーブル１５１の音声認識用のデータにヒットした場合には（ステップＳ１１２，Ｙｅｓ）、ステップＳ１１３に移行する。
【００５７】
表示制御部１６５は、ヒットした音声認識用データのコマンドに対応する画面上の位置にポインタを移動させ（ステップＳ１１３）、ステップＳ１０９に移行する。
【００５８】
次に、本実施例１に係るポインティング支援装置１００の効果について説明する。ポインティング支援装置１００は、利用者の視点位置から検索範囲に含まれるコマンドを抽出し、抽出したコマンドの音声認識用データのうち、ユーザの音声入力に最も類似する音声認識用データのコマンドが選択されたと判定する。これにより、腕や手足に不自由を抱える肢体不自由者や高齢者等は、マウス等を使うことなく、ストレス無く高精度なＧＵＩ画面のコマンド選択を効率的に行うことができる。
【００５９】
ポインティング支援装置１００は、アクティブな画面の画面情報を基にして、画面上のコマンドを全て抽出することで、コマンド辞書キャッシュテーブル１５２を予め生成しておく。ポインティング支援装置１００は、検索範囲内に含まれるコマンドを抽出してコマンド辞書テーブル１５１を生成する際に、コマンド辞書キャッシュテーブル１５２に格納された音声認識用データを流用する。一般的に、音声認識用データを生成するためには、文字コード列を解析して読みを特定し、特定した読みに対応する各文字の音声を組み合わせる処理を行うため、処理負荷が重くなる。このため、ポインティング支援装置１００は、コマンド辞書キャッシュテーブル１５２を予め生成しておくことで、コマンド抽出部１６２がコマンドを抽出する度に、音声認識用データを生成する処理を行わなくても良くなり、処理負荷を軽減できる。
【実施例２】
【００６０】
次に、本実施例２に係るポインティング支援装置２００について説明する。ポインティング支援装置２００は、利用者の要求に応じて、実施例１で説明した視線入力と音声認識とを組み合わせてポインティングを支援する「処理１」と、この処理１とは異なる「処理２」とを切り替えてポインティングの支援を行う。処理１に関する説明は、図１等で説明した実施例１の処理と同様であるため、説明を省略する。
【００６１】
ポインティング支援装置２００が行う「処理２」について説明する。ポインティング支援装置２００は、経路定義テーブルに基づいて、ポインタを移動させる。この経路定義テーブルは、ポインタを移動させる経路および経路の移動パターンを定義した経路定義情報を保持するテーブルである。図７は、経路定義テーブルのデータ構造の一例を示す図である。図７に示すように、この経路定義テーブル２５３は、経路定義識別情報と、複数の手順とを対応付ける。経路定義識別情報は、経路定義を一意に識別する情報である。手順は、経路を移動させる手順または経路に沿ってポインタを移動させる手順を示すものである。経路定義には様々なものがあるが、ここでは一例として、第１経路定義、第２経路定義、第３経路定義について説明する。
【００６２】
図８は、第１経路定義を説明するための図である。第１経路定義は、手順１と、手順２とを有する。第１経路定義の手順１は、現在のポインタ位置１０から、直進移動バー１１を表示し、ポインタ位置１０を中心にして、直進移動バー１１を回転移動させる手順である。
【００６３】
第１経路定義の手順２は、第１経路定義の手順１で方向が確定した直進移動バー１１を、直進移動バー１１が示す方向に直進移動させる手順である。ポインタ位置１０ａは、直進移動バー１１の移動に合わせて移動する。第１経路定義では、経路は、直進移動バー１１となる。
【００６４】
図９は、第２経路定義を説明するための図である。第２経路定義は、手順１と、手順２とを有する。第２経路定義の手順１は、現在のポインタ位置１０を中心とする円１２を同心円状に拡大する手順である。
【００６５】
第２経路定義の手順２は、第２経路定義の手順１で確定した円１２上の任意の位置から円１２に沿ってポインタ位置１２ａを移動させる手順である。第２経路定義では、経路は、円１２となる。
【００６６】
図１０は、第３経路定義を説明するための図である。第３経路定義は、手順１と、手順２と、手順３と、手順４とを有する。第３経路定義の手順１は、現在のポインタ位置１０ａからポインタを垂直ガイド１３ａ付きで水平右方向に移動させる手順である。
【００６７】
第３経路定義の手順２は、手順１の移動で決定したポインタ位置１０ｂからポインタを垂直ガイド１３ａ付きで水平左方向に移動させる手順である。
【００６８】
第３経路定義の手順３は、手順２の移動で決定したポインタ位置１０ｃからポインタを水平ガイド１３ｂ付きで垂直上方向に移動させる手順である。
【００６９】
第３経路定義の手順４は、手順３の移動で決定したポインタ位置１０ｄからポインタを水平ガイド１３ｂ付きで垂直下方向に移動させる手順である。
【００７０】
なお、上記で説明した第３経路定義は一例であり、第３経路定義の手順１〜手順４から、手順２、手順４を省略してもよいし、手順１、手順３を省略しても良い。
【００７１】
続いて、本実施例２に係るポインティング支援装置２００の構成について説明する。図１１は、本実施例２に係るポインティング支援装置の構成を示す機能ブロック図である。図１１に示すように、このポインティング支援装置２００は、視線入力部２１０と、入力部２２０と、音声入力部２３０と、表示部２４０と、記憶部２５０と、制御部２６０とを有する。
【００７２】
視線入力部２１０、入力部２２０、音声入力部２３０、表示部２４０に関する説明は、図２に示した、視線入力部１１０、入力部１２０、音声入力部１３０、表示部１４０に関する説明と同様であるため、説明を省略する。
【００７３】
記憶部２５０は、コマンド辞書テーブル２５１と、コマンド辞書キャッシュテーブル２５２と、経路定義テーブル２５３とを有する。記憶部２５０は、ＲＡＭ、ＲＯＭ、フラッシュメモリなどの半導体メモリ素子や、ＨＤＤなどの記憶装置に対応する。
【００７４】
コマンド辞書テーブル２５１、コマンド辞書キャッシュテーブル２５２の説明は、図２で説明した、コマンド辞書テーブル１５１、コマンド辞書キャッシュテーブル１５２に関する説明と同様である。経路定義テーブル２５３は、ポインタを移動させる経路および経路の移動パターンを定義した経路定義情報を保持するテーブルである。経路定義テーブル２５３のデータ構造は、図７で説明したため、説明を省略する。
【００７５】
制御部２６０は、視線位置検出部２６１と、コマンド抽出部２６２と、生成部２６３と、判定部２６４と、表示制御部２６５とを有する。制御部２６０は、ＡＳＩＣや、ＦＰＧＡなどの集積装置に対応する。また、制御部２６０は、例えば、ＣＰＵやＭＰＵ等の電子回路に対応する。
【００７６】
視線位置検出部２６１、コマンド抽出部２６２、生成部２６３、判定部２６４の処理は、図２で説明した、視線位置検出部１６１、コマンド抽出部１６２、生成部１６３、判定部１６４の説明と同様であるため、説明を省略する。
【００７７】
表示制御部２６５は、図示しない画面情報を表示部２４０に出力して、画面情報を表示させる処理や、ポインタ移動、コマンドの選択を受け付ける処理部である。表示制御部２６５は、コマンドの選択を受け付けた場合には、コマンドの選択に応じた処理を実行し、処理結果を、表示部２４０に表示させる。
【００７８】
ここで、表示制御部２６５は、処理１に基づいてポインティングを支援するか、処理２に基づいてポインティングを支援するかの選択を利用者から受け付ける。表示制御部２６５は、選択を受け付けた処理１または処理２に基づいて、ポインティングを支援する。
【００７９】
例えば、表示制御部２６５は、ステータス画面を表示部２４０に表示して、処理１に基づいてポインティングを支援するか、処理２に基づいてポインティングを支援するかを利用者に選択させる。図１２は、ステータス画面を説明するための図である。図１２に示すように、ステータス画面２４１は、表示部２４０の片隅に表示される。また、ステータス画面２４１は、ポインティングのコマンド２４１ａ、音声入力のコマンド２４１ｂ、マルチモードのコマンド２４１ｃが含まれる。
【００８０】
例えば、表示制御部２６５は、ポインティングのコマンド２４１ａが利用者によって選択されると、処理２に基づいて、ポインティングを支援する。表示制御部２６５は、音声入力のコマンド２４１ｂが利用者によって選択されると、処理１に基づいて、ポインティングを支援する。
【００８１】
表示制御部２６５は、マルチモードのコマンド２４１ｃが選択されると、処理１または処理２を動的に切り替えて、ポインティングを支援する。例えば、表示制御部２６５は、利用者から切り替え指示を受け付けたタイミングで、処理１から処理２への切り替え、または、処理２から処理１への切り替えを受け付ける。利用者は、切り替え指示をどのように行っても良い。例えば、利用者が入力部２２０のボタンを長押しすることによって、切り替え指示を、表示制御部２６５に行っても良いし、利用者が「切り替え」と発話することで、切り替え指示を、表示制御部２６５に行っても良い。
【００８２】
ここで、利用者は、表示制御部２６５によるポインティングの支援を受けて、各コマンド２４１ａ〜２４１ｃのいずれかを選択しても良いし、音声によって、各コマンド２４１ａ〜２４１ｃを選択しても良い。例えば、表示制御部２６５は、利用者が「ポインティング」と発話したことを音声認識すると、コマンド２４１ａが選択されたと判定する。例えば、表示制御部２６５は、利用者が「音声入力」と発話したことを音声認識すると、コマンド２４１ｂが選択されたと判定する。表示制御部２６５は、利用者が「マルチモード」と発話したことを音声認識すると、コマンド２４１ｃが選択されたと判定する。
【００８３】
続いて、表示制御部２６５が実行する処理１のポインティング支援と、処理２のポインティング支援の一例について説明する。
【００８４】
「処理１」のポインティング支援は、図２に示した表示制御部１６５のポインティング支援と同様である。すなわち、表示制御部２６５は、判定部２６４から位置座標を取得した場合に、位置座標に対応する画面上の位置にポインタを移動させる。表示制御部２６５は、入力部２２０からボタンが押下された信号を受け付けた場合には、ポインタと重なる位置のコマンドが選択されたと判定し、コマンドに応じた処理を実行する。
【００８５】
「処理２」のポインティング支援について説明する。図１３および図１４は、表示制御部の処理２を説明するための図である。図１３および図１４では一例として、表示制御部２６５が、経路定義テーブル２５３の第１経路定義に基づいて、処理を実行する場合について説明する。
【００８６】
図１３のステップＳ１０について説明する。表示部２４０の画面２４０ａに、ポインティングのターゲット３０と、視線位置２０とが存在する。表示制御部２６５は、視線位置検出部２６１から取得する視線位置２０の情報を基にして、視線位置２０の位置を特定する。表示制御部２６５は、入力部２２０のボタンが押されるまでは、視線位置検出部２６１から視線位置２０の情報を取得する度に、視線位置２０を更新する。
【００８７】
図１３のステップＳ１１について説明する。表示制御部２６５は、利用者によって入力部２２０のボタンが押下され、入力部２２０から信号を受け付けると、視線位置２０をポインタの初期位置とする。例えば、表示制御部２６５は、入力部２２０のボタンが押下されている間、直進移動バー２１を表示させ、初期ポインタの位置２０を中心として、直進移動バー２１を回転させる。
【００８８】
表示制御部２６５は、直進移動バー２１を回転させる場合に、入力部２２０のボタンの押下の強さに応じて、回転速度を調整しても良い。表示制御部２６５は、入力部２２０から、ボタンの押下の強さの情報を取得するものとする。表示制御部２６５は、ボタンの押下の強さが閾値以上である場合には、第１回転速度で、直進移動バー２１を回転させる。表示制御部２６５は、ボタンの押下の強さが閾値未満である場合には、第２回転速度で、直進移動バー２１を回転させる。第１回転速度は、第２回転速度よりも速いものとする。
【００８９】
図１３のステップＳ１２について説明する。利用者は画面２４０ａを参照し、直進移動バー２１が、ターゲット３０と重なったタイミングで、入力部２２０のボタンをはなす。表示制御部２６５は、入力部２２０のボタンが押下されなくなったことを検出すると、直進移動バー２１の回転を停止する。続いて、表示制御部２６５は、直進移動バー２１が示す方向に直進移動バー２１を直進移動させる。
【００９０】
図１３のステップＳ１３について説明する。利用者は画面２４０ａを参照し、直進移動バー２１の起点（ポインタ位置２０）が、ターゲット３０と重なった時点で、入力部２２０のボタンを押下する。表示制御部２６５は、直進移動バー２１の起点（ポインタ位置２０）が、ターゲット３０と重なった時点で、入力部２２０のボタンが押下されたことを検出すると、ターゲット３０が選択されたと判定する。表示制御部２６５は、ターゲット３０が選択されたことによる所定の処理を実行する。
【００９１】
図１３のステップＳ１０〜ステップＳ１３に示した処理を表示制御部２６５が実行することで、視線入力により適切にポインティングを実行することができる。例えば、入力部２２０のボタンが押下される度に、ポインタの初期位置の設定、直進移動バー２１の回転、直進移動という手順により、ターゲット３０を選択可能としている。これにより、視線位置の精度が悪くても、適切に、ターゲット３０を選択することができる。また、入力部２２０のボタンを押下する操作は単純であるため、肢体不自由者や高齢者等でも取り扱うことができる。
【００９２】
続いて、図１４の説明を行う。図１４のステップＳ２０について説明する。表示部２４０の画面２４０ａに、ポインティングのターゲット３０と、視線位置２０とが存在する。表示制御部２６５は、視線位置検出部２６１から取得する視線位置２０の情報を基にして、視線位置２０の位置を特定する。表示制御部２６５は、入力部２２０がシングルクリックされるまでは、視線位置検出部２６１から視線位置２０の情報を取得する度に、画面２４０ａ上の視線位置２０を更新する。
【００９３】
図１４のステップＳ２１について説明する。表示制御部２６５は、利用者によって入力部２２０のボタンがシングルクリックされ、入力部２２０から信号を受け付けると、視線位置２０を初期ポインタの位置とする。例えば、表示制御部２６５は、入力部２２０のボタンが押下されている間、直進移動バー２１を表示させ、初期ポインタの位置２０を中心として、直進移動バー２１を回転させる。
【００９４】
図１４のステップＳ２２について説明する。利用者は画面２４０ａを参照し、あるタイミングで、入力部２２０のボタンをはなす。表示制御部２６５は、入力部２２０のボタンが押下されなくなったことを検出すると、直進移動バー２１の回転を停止する。続いて、表示制御部２６５は、直進移動バー２１が示す方向に直進移動バー２１を直進移動させる。
【００９５】
図１４のステップＳ２３について説明する。表示制御部２６５は、直進移動バー２１を直進移動させている間に、利用者によって入力部２２０のボタンがシングルクリックされると、図１３のステップＳ１３と同様にして、シングルクリックされた時点の直進移動バー２１の起点（ポインタ位置２０）が選択されたと判定し、処理を終了する。
【００９６】
これに対して、表示制御部２６５は、直進移動バー２１を直進移動させている間に、利用者によって入力部２２０のボタンがダブルクリックされると、現在のポインタ位置２０を、初期ポインタの位置として設定する。
【００９７】
図１４のステップＳ２４について説明する。表示制御部２６５は、入力部２２０のボタンが押下されている間、直進移動バー２１を表示させ、初期ポインタの位置２０を中心として、直進移動バー２１を回転させる。例えば、利用者は、ダブルクリックを行う場合に、２回目のボタン押下を継続することで、ボタン押下を継続させる。
【００９８】
表示制御部２６５は、ステップＳ２１において、直進移動バー２１を回転させる速度よりも、ステップＳ２４において、直進移動バー２１を回転させる速度を遅くしても良い。１回目のポインタ位置よりも２回目のポインタ位置の方が、ポインタ位置とターゲット３０との距離が短くなっている。このため、２回目以降のポインタ位置を起点とする直進移動バー２１の回転速度を遅くすることで、直進移動バー２１の方向を、ターゲット３０に合わせやすくすることができる。
【００９９】
図１４のステップＳ２５について説明する。利用者は画面２４０ａを参照し、あるタイミングで、入力部２２０のボタンをはなす。表示制御部２６５は、入力部２２０のボタンが押下されなくなったことを検出すると、直進移動バー２１の回転を停止する。続いて、表示制御部２６５は、直進移動バー２１が示す方向に直進移動バー２１を直進移動させる。表示制御部２６５は、直進移動バー２１を直進移動させている間に、利用者によって入力部２２０のボタンがシングルクリックされると、図１３のステップＳ１３と同様にして、シングルクリックされた時点の直進移動バー２１の起点（ポインタ位置２０）に位置するターゲット３０が選択されたと判定する。
【０１００】
ところで、表示制御部２６５は、ステップＳ２３において、入力部２２０のボタンがダブルクリックされた場合に、再度、第１経路定義に従って、ステップＳ２４、Ｓ２５の処理を行ったがこれに限定されるものではない。例えば、表示制御部２６５は、ダブルクリックされる度に、経路を、第２経路定義、第３経路定義に切り替えて、その後の処理を行っても良い。手順を他の経路定義に切り替えるか否かは、利用者がポインティング支援装置２００に予め設定しておくものとする。
【０１０１】
次に、本実施例２に係るポインティング支援装置２００の処理手順について説明する。図１５、図１６および図１７は、本実施例２に係るポインティング支援装置の処理手順を示すフローチャートである。図１５に示すように、ポインティング支援装置２００の生成部２６３は、アクティブとなった画面からコマンドの文字コード列を抽出し、コマンド辞書キャッシュテーブル２５２を生成する（ステップＳ２０１）。
【０１０２】
ポインティング支援装置２００の視線位置検出部２６１は、画面上の視線位置を検出する（ステップＳ２０２）。視線位置検出部２６１は、視線確定指示があるか否かを判定する（ステップＳ２０３）。視線位置検出部２６１は、視線確定指示がない場合には（ステップＳ２０３，Ｎｏ）、ステップＳ２０２に移行する。視線位置検出部２６１は、視線確定指示がある場合には（ステップＳ２０３，Ｙｅｓ）、ステップＳ２０４に移行する。例えば、視線位置検出部２６１は、入力部２２０のボタンが利用者により押下された場合に、視線確定指示があると判定する。
【０１０３】
ポインティング支援装置２００のコマンド抽出部２６２は、視線位置をポインタの初期位置に設定する（ステップＳ２０４）。コマンド抽出部２６２は、初期位置中心の検索範囲からコマンドの文字コード列と位置座標とを抽出する（ステップＳ２０５）。コマンド抽出部２６２は、１個以上のコマンドの文字コード列を抽出したか否かを判定する（ステップＳ２０６）。コマンド抽出部２６２は、１個以上のコマンドの文字コード列を抽出していない場合には（ステップＳ２０６，Ｎｏ）、処理を終了する。コマンド抽出部２６２は、１個以上のコマンドの文字コード列を抽出した場合には（ステップＳ２０６，Ｙｅｓ）、ステップＳ２０７に移行する。
【０１０４】
ポインティング支援装置２００の生成部２６３は、コマンド抽出部２６２が抽出したコマンドおよびコマンド辞書キャッシュテーブル２５２を基にして、コマンド辞書テーブル２５１を生成する（ステップＳ２０７）。ポインティング支援装置２００の表示制御部１６５は、抽出されたコマンドを強調表示し（ステップＳ２０８）、図１６のステップＳ２０９に移行する。
【０１０５】
ポインティング支援装置２００の表示制御部２６５は、切り替え指示があるか否かを判定する（ステップＳ２０９）。表示制御部２６５は、切り替え指示がある場合には（ステップＳ２０９，Ｙｅｓ）、図１７のステップＳ２１６に移行する。一方、切り替え指示がない場合には（ステップＳ２０９，Ｎｏ）、表示制御部２６５は、ステップＳ２１０に移行する。
【０１０６】
まず、図１６のステップＳ２１６以降の処理について説明する。表示制御部２６５は、終了指示があるか否かを判定する（ステップＳ２１０）。表示制御部２６５は、終了指示がある場合には（ステップＳ２１０，Ｙｅｓ）、ステップＳ２１５に移行する。例えば、表示制御部２６５は、入力部２２０のボタンが短く押下されたことを検出すると、終了指示があると判定する。また、利用者は、入力部２２０のボタンを押下する代わりに「終了」と発話し、表示制御部２６５が、音声認識を実行して、「終了」が発話されたことを認識した場合に、終了指示があると判定しても良い。
【０１０７】
表示制御部２６５は、強調表示がある場合には、強調表示をクリアし（ステップＳ２１５）、処理を終了する。表示制御部２６５は、終了指示がない場合には（ステップＳ２１０，Ｎｏ）、ステップＳ２１１に移行する。
【０１０８】
ポインティング支援装置２００の判定部２６４は、音声データの入力があるか否かを判定する（ステップＳ２１１）。判定部２６４は、音声データの入力がない場合には（ステップＳ２１１，Ｎｏ）、ステップＳ２０９に移行する。判定部２６４は、音声データの入力がある場合には（ステップＳ２１１，Ｙｅｓ）、ステップＳ２１２に移行する。
【０１０９】
判定部２６４は、コマンド辞書テーブル２５１の各音声認識用データと、音声データとを比較する（ステップＳ２１２）。判定部２６４は、コマンド辞書テーブル２５１の音声認識用のデータにヒットしたか否かを判定する（ステップＳ２１３）。判定部２６４は、コマンド辞書テーブル２５１の音声認識用のデータにヒットしない場合には（ステップＳ２１３，Ｎｏ）、ステップＳ２０９に移行する。判定部２６４は、コマンド辞書テーブル２５１の音声認識用のデータにヒットした場合には（ステップＳ２１３，Ｙｅｓ）、ステップＳ２１４に移行する。
【０１１０】
表示制御部２６５は、ヒットした音声認識用データのコマンドに対応する画面上の位置にポインタを移動させ（ステップＳ２１４）、ステップＳ２０９に移行する。
【０１１１】
続いて、図１７のステップＳ２１６以降の処理について説明する。表示制御部２６５は、視線位置をポインタの初期位置に設定する（ステップＳ２１６）。表示制御部２６５は、経路定義テーブル２５３を参照し、経路定義の最初の手順を現在の手順に設定する（ステップＳ２１７）。
【０１１２】
表示制御部２６５は、現在の手順に従い経路を画面に表示し、経路またはポインタ位置を移動させる（ステップＳ２１８）。表示制御部２６５は、入力部２２０のボタンが押下されていない場合には（ステップＳ２１９，Ｎｏ）、再度ステップＳ２１８に移行する。
【０１１３】
一方、表示制御部２６５は、入力部２２０のボタンが押下された場合には（ステップＳ２１９，Ｙｅｓ）、次の手順が存在するか否かを判定する（ステップＳ２２０）。表示制御部２６５は、次の手順が存在する場合には（ステップＳ２２０，Ｙｅｓ）、経路定義の次の手順を、現在の手順に設定し（ステップＳ２２１）、ステップＳ２１８に移行する。
【０１１４】
一方、表示制御部２６５は、次の手順が存在しない場合には（ステップＳ２２０，Ｎｏ）、移動したポインタ位置を、最終的なポインタ位置として決定する（ステップＳ２２２）。
【０１１５】
次に、本実施例２に係るポインティング支援装置２００の効果について説明する。ポインティング支援装置２００は、視線入力と音声認識とを組み合わせてポインティングを支援する処理１と、視線入力と経路定義テーブル２５３とを用いてポインティングを支援する処理２とを切り替える。このため、処理１によって、音声認識がうまくいかない場合には、処理２に切り替えることによって、適切にコマンドを選択することができる。
【０１１６】
ここで、上述した実施例１および実施例２で説明したポインティング支援装置１００，２００の処理は一例であり、ポインティング支援装置１００，２００は、その他の処理を実行しもよい。以下において、ポインティング支援装置１００，２００のその他の処理（１）〜（３）について説明する。以下の説明では、説明の便宜上、図１１に示したポインティング支援装置２００の機能ブロック図を用いて、処理を説明する。
【０１１７】
ポインティング支援装置のその他の処理（１）について説明する。ポインティング支援装置２００の生成部２６３が、コマンド辞書キャッシュテーブル２５２を生成する場合に、画面毎に分けて、コマンド辞書キャッシュテーブル２５２を生成しても良い。例えば、図１に示すように、画面５０がアクティブになった場合に、生成部２６３は、画面５０に含まれるコマンド５１ａ〜５１ｇを抽出し、画面５０に対応するコマンド辞書キャッシュテーブル２５２を生成する。そして、例えば、返信のコマンド５１ｄが選択され、新たな画面が表示された場合に、新たに表示された画面に含まれる全てのコマンドを抽出し、新たな画面に対応するコマンド辞書キャッシュテーブル２５２を生成する。生成部２６３は、新たな画面がアクティブになる度に、上記処理を繰り返し実行する。
【０１１８】
このように、生成部２６３が、画面毎にコマンド辞書キャッシュテーブル２５２を生成することで、コマンド辞書テーブル２５１で用いる音声認識用データの検索効率を向上させることができる。例えば、生成部２６３が、コマンド辞書テーブル２５１を生成する場合に、検索範囲のコマンドが含まれる画面情報をキーにすることで、検索対象となるコマンド辞書キャッシュテーブル２５２を絞り込むことが可能となり、検索効率が向上する。
【０１１９】
ポインティング支援装置のその他の処理（２）について説明する。ポインティング支援装置２００の生成部２６３が、コマンド辞書キャッシュテーブル２５２を生成した後に、使用頻度の高いコマンド文字コード列のレコードを残し、その他のレコードを消去するような処理を実行しても良い。例えば、生成部２６３は、上記処理１または処理２により、利用者によってコマンドが選択される度に、コマンド辞書キャッシュテーブル２５２のコマンドに対応する文字コード列の使用回数を１インクリメントする。生成部２６３は、上記処理を繰り返し実行し、各文字コード列の使用頻度を算出し、使用頻度が高い上位ｎ個のレコードを、コマンド辞書キャッシュテーブル２５２に残し、残りのレコードを削除する。生成部２６３がこのような処理を行うことで、記憶部２５０の資源を有効に活用することができる。
【０１２０】
ポインティング支援装置のその他の処理（３）について説明する。ポインティング支援装置２００の生成部２６３は、使用頻度が高いコマンドが予め指定されている場合には、使用頻度の高いコマンドの音声認識用データを、コマンド辞書キャッシュテーブル２５２に格納しておいてもよい。例えば、生成部２６３は、ファイル、ホーム、コピー、貼り付け、開く、閉じる、保存等のコマンドに対応する音声認識用データを、予め、コマンド辞書キャッシュテーブル２５２に格納しておく。このような処理を行うことで、音声認識用データを生成する処理負荷を軽減できる。
【０１２１】
次に、上記実施例に示したポインティング支援装置１００，２００と同様の機能を実現するポインティング支援プログラムを実行するコンピュータの一例について説明する。図１８は、ポインティング支援プログラムを実行するコンピュータの一例を示す図である。
【０１２２】
図１８に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置３０５ａと、カメラ３０５ｂと、マイク３０５ｃとを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０６と、ハードディスク装置３０７とを有する。そして、各装置３０１〜３０７は、バス３０８に接続される。
【０１２３】
ハードディスク装置３０７は、視線位置検出プログラム３０７ａ、コマンド抽出プログラム３０７ｂ、生成プログラム３０７ｃ、判定プログラム３０７ｄ、選択プログラム３０７ｅ、表示制御プログラム３０７ｆを有する。ＣＰＵ３０１は、視線位置検出プログラム３０７ａ、コマンド抽出プログラム３０７ｂ、生成プログラム３０７ｃ、判定プログラム３０７ｄ、選択プログラム３０７ｅ、表示制御プログラム３０７ｆを読み出してＲＡＭ３０６に展開する。
【０１２４】
視線位置検出プログラム３０７ａは、視線位置検出プロセス３０６ａとして機能する。コマンド抽出プログラム３０７ｂは、コマンド抽出プロセス３０６ｂとして機能する。生成プログラム３０７ｃは、生成プロセス３０６ｃとして機能する。判定プログラム３０７ｄは、判定プロセス３０６ｄとして機能する。選択プログラム３０７ｅは、選択プロセス３０６ｅとして機能する。表示制御プログラム３０７ｆは、表示制御プロセス３０６ｆとして機能する。
【０１２５】
視線位置検出プロセス３０６ａの処理は、視線位置検出部１６１，２６１の処理に対応する。コマンド抽出プロセス３０６ｂは、コマンド抽出部１６２，２６２の処理に対応する。生成プロセス３０６ｃは、生成部１６３，２６３の処理に対応する。判定プロセス３０６ｄは、判定部１６４，２６４の処理に対応する。表示制御プロセス３０６ｆは、表示制御部１６５，２６５の処理に対応する。
【０１２６】
なお、各プログラム３０７ａ〜３０７ｆについては、必ずしも最初からハードディスク装置３０８に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０７ａ〜３０７ｆを読み出して実行するようにしてもよい。
【０１２７】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１２８】
（付記１）画面上の利用者の視線位置を検出する視線位置検出部と、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出するコマンド抽出部と、
前記コマンド抽出部によって抽出されたコマンドと前記コマンドの音声情報とを対応付けたテーブルを生成する生成部と、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、コマンドを判定する判定部と
を有することを特徴とするポインティング支援装置。
【０１２９】
（付記２）前記視線位置をポインタの初期位置として設定し、前記ポインタを移動させる経路および前記経路の移動パターンを定義した経路定義情報を基にして、前記初期位置を起点とした前記経路を前記画面上に表示し、前記ポインタを前記経路に沿って移動させる表示制御部を更に有することを特徴とする付記１に記載のポインティング支援装置。
【０１３０】
（付記３）前記表示制御部は、前記判定部が判定したコマンドの位置に前記ポインタを移動させる第１処理と、前記経路定義情報に基づいて、前記ポインタを移動させる第２処理とのいずれかの選択を受け付け、前記第１処理と、前記第２処理とを切り替えて処理を実行することを特徴とする付記２に記載のポインティング支援装置。
【０１３１】
（付記４）前記生成部は、前記画面上に存在する全てのコマンドの音声情報を生成して記憶部に格納し、前記コマンド抽出部によって抽出されたコマンドに対応する音声情報を前記記憶部に記憶された音声情報から取得することで、前記テーブルを生成することを特徴とする付記１、２または３に記載のポインティング支援装置。
【０１３２】
（付記５）前記生成部は、第１画面上に存在する全てのコマンドの第１音声情報を生成して記憶部に格納し、前記第１画面上のコマンドが選択され第２画面が表示された場合に、前記第２画面上に存在する全てのコマンドの第２音声情報を生成し、前記第１音声情報と区別して、前記第２音声情報を前記記憶部に格納することを特徴とする付記４に記載のポインティング支援装置。
【０１３３】
（付記６）前記生成部は、前記コマンド抽出部によってコマンドが抽出される度に、前記記憶部に記憶された音声情報のうち、抽出されたコマンドの音声情報に対応する音声情報の使用頻度を増加させ、前記使用頻度の高い音声情報を優先的に前記記憶部に残すことを特徴とする付記４に記載のポインティング支援装置。
【０１３４】
（付記７）コンピュータが実行するポインティング支援方法であって、
画面上の利用者の視線位置を検出し、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出し、
抽出したコマンドと前記コマンドの音声情報とを対応付けたテーブルを生成し、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、コマンドを判定する
処理を実行することを特徴とするポインティング支援方法。
【０１３５】
（付記８）前記視線位置をポインタの初期位置として設定し、前記ポインタを移動させる経路および前記経路の移動パターンを定義した経路定義情報を基にして、前記初期位置を起点とした前記経路を前記画面上に表示し、前記ポインタを前記経路に沿って移動させる処理を更に実行することを特徴とする付記７に記載のポインティング支援方法。
【０１３６】
（付記９）前記コマンドを判定する処理によって判定した前記コマンドの位置に前記ポインタを移動させる第１処理と、前記経路定義情報に基づいて、前記ポインタを移動させる第２処理とのいずれかの選択を受け付け、前記第１処理と、前記第２処理とを切り替えて前記ポインタを移動させる処理を更に実行することを特徴とする付記８に記載のポインティング支援方法。
【０１３７】
（付記１０）前記画面上に存在する全てのコマンドの音声情報を生成して記憶部に格納する処理を更に実行し、前記生成する処理は、前記コマンドを抽出する処理により抽出されたコマンドに対応する音声情報を前記記憶部に記憶された音声情報から取得することで、前記テーブルを生成することを特徴とする付記７、８または９に記載のポインティング支援方法。
【０１３８】
（付記１１）前記格納する処理は、第１画面上に存在する全てのコマンドの第１音声情報を生成して記憶部に格納し、前記第１画面上のコマンドが選択され第２画面が表示された場合に、前記第２画面上に存在する全てのコマンドの第２音声情報を生成し、前記第１音声情報と区別して、前記第２音声情報を前記記憶部に格納することを特徴とする付記１０に記載のポインティング支援方法。
【０１３９】
（付記１２）前記コマンドを抽出する処理によってコマンドが抽出される度に、前記記憶部に記憶された音声情報のうち、抽出されたコマンドの音声情報に対応する音声情報の使用頻度を増加させ、前記使用頻度の高い音声情報を優先的に前記記憶部に残す処理を更に実行することを特徴とする付記１０に記載のポインティング支援方法。
【０１４０】
（付記１３）コンピュータに、
画面上の利用者の視線位置を検出し、
前記視線位置を基準とする検索範囲内に含まれる前記画面上のコマンドを抽出し、
抽出したコマンドと前記コマンドの音声情報とを対応付けたテーブルを生成し、
音声情報を受け付けた場合に、受け付けた音声情報と、前記テーブルの音声情報とを基にして、コマンドを判定する
処理を実行させることを特徴とするポインティング支援プログラム。
【０１４１】
（付記１４）前記視線位置をポインタの初期位置として設定し、前記ポインタを移動させる経路および前記経路の移動パターンを定義した経路定義情報を基にして、前記初期位置を起点とした前記経路を前記画面上に表示し、前記ポインタを前記経路に沿って移動させる処理を更にコンピュータに実行させることを特徴とする付記１３に記載のポインティング支援プログラム。
【０１４２】
（付記１５）前記コマンドを判定する処理によって判定した前記コマンドの位置に前記ポインタを移動させる第１処理と、前記経路定義情報に基づいて、前記ポインタを移動させる第２処理とのいずれかの選択を受け付け、前記第１処理と、前記第２処理とを切り替えて前記ポインタを移動させる処理を更にコンピュータに実行させることを特徴とする付記１４に記載のポインティング支援プログラム。
【０１４３】
（付記１６）前記画面上に存在する全てのコマンドの音声情報を生成して記憶部に格納する処理を更にコンピュータに実行させ、前記生成する処理は、前記コマンドを抽出する処理により抽出されたコマンドに対応する音声情報を前記記憶部に記憶された音声情報から取得することで、前記テーブルを生成することを特徴とする付記１３、１４または１５に記載のポインティング支援プログラム。
【０１４４】
（付記１７）前記格納する処理は、第１画面上に存在する全てのコマンドの第１音声情報を生成して記憶部に格納し、前記第１画面上のコマンドが選択され第２画面が表示された場合に、前記第２画面上に存在する全てのコマンドの第２音声情報を生成し、前記第１音声情報と区別して、前記第２音声情報を前記記憶部に格納することを特徴とする付記１６に記載のポインティング支援プログラム。
【０１４５】
（付記１８）前記コマンドを抽出する処理によってコマンドが抽出される度に、前記記憶部に記憶された音声情報のうち、抽出されたコマンドの音声情報に対応する音声情報の使用頻度を増加させ、前記使用頻度の高い音声情報を優先的に前記記憶部に残す処理を更にコンピュータに実行させることを特徴とする付記１６に記載のポインティング支援プログラム。
【符号の説明】
【０１４６】
１００，２００  ポインティング支援装置
１１０，２１０  視線入力部
１２０，２２０  入力部
１３０，２３０  音声入力部
１４０，２４０  表示部
１５０，２５０  記憶部
１５１，２５１  コマンド辞書テーブル
１５２，２５２  コマンド辞書キャッシュテーブル
１６０，２６０  制御部
１６１，２６１  視線位置検出部
１６２，２６２  コマンド抽出部
１６３，２６３  生成部
１６４，２６４  判定部
１６５，２６５  表示制御部
【図１】
0006597397.tif 000002
【図２】
0006597397.tif 000003
【図３】
0006597397.tif 000004
【図４】
0006597397.tif 000005
【図５】
0006597397.tif 000006
【図６】
0006597397.tif 000007
【図７】
0006597397.tif 000008
【図８】
0006597397.tif 000009
【図９】
0006597397.tif 000010
【図１０】
0006597397.tif 000011
【図１１】
0006597397.tif 000012
【図１２】
0006597397.tif 000013
【図１３】
0006597397.tif 000014
【図１４】
0006597397.tif 000015
【図１５】
0006597397.tif 000016
【図１６】
0006597397.tif 000017
【図１７】
0006597397.tif 000018
【図１８】
0006597397.tif 000019
【図１９】
0006597397.tif 000020