以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、文字入力装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機、デジタルカメラ等に対しても本発明は適用できる。
図1は、本発明の端末装置の一実施形態である携帯電話端末1の外観を示す正面図である。携帯電話端末1は、タッチパネル2と、ボタン3A、ボタン3Bおよびボタン3Cからなる入力部3を備える。タッチパネル2は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等(以下、単に「指」という)を用いてタッチパネル2に対して行われる各種動作を検出する。入力部3は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
携帯電話端末1は、タッチパネル2上で手書き方式によって文字が入力されたことを認識すると、タッチパネル2に仮想キーボードを表示して、文字の入力を仮想キーボードから受け付ける。このように、手書き方式による文字の入力を契機として、仮想キーボード方式による文字の入力を受け付けることにより、文字の入力を迅速に開始することができるという手書き方式の利点と、高速に文字を入力することができるという仮想キーボード方式の利点を両立させることができる。
また、携帯電話端末1は、手書き方式によって入力された文字と、手書き方式による文字入力を契機として表示した仮想キーボードから入力された文字とを、一連の入力として受け付ける。このように、仮想キーボードを表示させる契機となった動作を含めて文字の入力を受け付けることにより、携帯電話端末1は、利用者が無駄な動作をすることなく、効率的に文字を入力することを可能にする。
文字入力の受け付け時の携帯電話端末1の動作について図2および図3の例を参照しながら説明する。s201では、携帯電話端末1は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル2に表示させている。ここでオブジェクトとは、携帯電話端末1が表示、再生、編集等の各種処理を行う対象のデータであり、例えば、画像データ、動画データ、音楽データ、ワープロ文書、電子メール、アドレス帳の個人データ等に相当する。また、オブジェクト閲覧画面とは、オブジェクトの選択や閲覧の為に、オブジェクトに対応するサムネール等のアイコンを表示する画面である。
オブジェクト閲覧画面にはオブジェクトOB1〜OB10のアイコンが表示されており、s202では、利用者が、タッチパネル2上のオブジェクトOB1のアイコンの表示領域内に指を置いている。この状態から利用者が指をタッチパネル2から離すと、携帯電話端末1は、オブジェクトOB1のアイコンがタップされたと判定して、オブジェクトOB1に対して表示、再生、編集等の所定の処理を実行する。
一方、s203のように、利用者が、指をタッチパネル2に触れさせたままでオブジェクトOB1のアイコンの表示領域外へ移動させた場合は、携帯電話端末1は、オブジェクトOB1に対する処理の実行を留保して、指の移動の軌跡を記録する。そして、携帯電話端末1は、所定の条件が満たされるまで、指の移動の軌跡の記録を継続する。この間に携帯電話端末1によって検出される軌跡には、s204およびs205のように、利用者がタッチパネル2から指を一旦離して、タッチパネル2の別の位置に指を触れさせてから移動させた軌跡も含まれる。
携帯電話端末1が指の移動の軌跡の記録を終了させる所定の条件は、1つの文字の入力が終了したと推定される条件であり、例えば、最初にタッチパネル2への指の接触が検出されてからの経過時間が最大経過時間を超過することや、最後に指がタッチパネル2から離れてからの経過時間が最大待ち時間を超過することである。ここで、最大経過時間とは、手書き方式で1つの文字を入力するのに十分な時間であり、最大待ち時間とは、手書き方式で1つの字画の入力を完了してから次の字画の入力を開始するのに十分な時間である。
そして、所定の条件が満たされると、携帯電話端末1は、記録した軌跡に基づいて文字認識処理を行う。例えば、s205の段階で所定の条件が満たされたとすると、携帯電話端末1は、記録した軌跡に基づいて、「か」という文字を入力された文字として認識する。なお、文字認識処理については、どのような方式で実現することとしてもよい。また、図2では、オブジェクト閲覧画面に重畳して、携帯電話端末1が記録した軌跡を図示しているが、このような軌跡を実際にタッチパネル2に表示することは必ずしも必要ではない。
携帯電話端末1は、記録した軌跡に基づいて文字の認識に成功すると、s206のように、タッチパネル2上に仮想キーボード4を表示する。また、携帯電話端末1は、入力中の文字列を出力するための入力文字表示画面15をタッチパネル2上に表示して、認識した「か」を入力された最初の文字として入力文字表示画面15に出力する。
続いて、携帯電話端末1は、手書き方式で認識された文字の後続の文字として、仮想キーボード4から入力された文字を受け付ける。携帯電話端末1は、s207では、「め」と「ら」の文字の入力を仮想キーボード4から受け付け、文字認識処理で認識した「か」の後にこれらの文字を時系列に追加して、「かめら」という文字列を入力された文字列として入力文字表示画面15に出力している。
そして、携帯電話端末1は、入力文字表示画面15の完了ボタンの表示領域内で指がタッチパネル2に触れるといった入力の完了を示す動作を検出すると、入力を受け付けた文字列を用いて所定の処理を行う。ここでいう所定の処理とは、例えば、入力を受け付けた文字列を用いてインターネット検索を実行して検索結果をタッチパネル2に表示する処理や、入力を受け付けた文字列を本文とする電子メールの送信画面をタッチパネル2に表示する処理や、入力を受け付けた文字列を所定のデータとして保存する処理である。
図2に示す例では、携帯電話端末1は、s208として、入力を受け付けた文字列を用いてどの処理を行うかの選択を受け付けるための処理選択画面16をタッチパネル2に表示している。処理選択画面16には、「メモ帳」という選択肢と、「インターネット検索」という選択肢と、「電子メール」という選択肢が含まれている。
「メモ帳」が選択された場合、携帯電話端末1は、入力を受け付けた文字列を、任意のテキストデータの表示/編集が可能なメモ帳プログラムが扱うデータとして保存する。「インターネット検索」が選択された場合、携帯電話端末1は、入力を受け付けた文字列を用いてインターネット検索を実行して検索結果をタッチパネル2に表示する。「電子メール」が選択された場合、携帯電話端末1は、入力を受け付けた文字列を本文とする電子メールの送信画面をタッチパネル2に表示する。
携帯電話端末1は、いずれかの選択肢が選択されると、選択された選択肢に対応する処理を実行し、文字入力の開始前のs201の状態に戻る。なお、図2に示した処理選択画面16は一例であり、他の選択肢を表示する画面であってもよい。また、処理選択画面16は、文字入力の開始時にタッチパネル2に表示されていた画面に応じて表示する選択肢が切り替わるように構成されていてもよい。
続いて、文字認識処理が失敗した場合の動作について説明する。図3に示すように、s204の状態からs209のように文字を構成しない字画が入力された段階で所定の条件が満たされると、携帯電話端末1は、記録した軌跡に基づいて文字認識処理を行う。この場合、文字は認識されない。文字認識処理によって文字が認識されなかった場合、利用者が行った操作は文字入力のためのものではなかったと考えられる。
このため、携帯電話端末1は、文字が認識されないと、軌跡の追跡を開始した時点でタッチパネル2に表示されていた画面に対して軌跡として記録した指の動きがなされた場合に行われる通常の処理を実行する。図3に示した例では、携帯電話端末1は、s210のように、記録した軌跡上に表示されているアイコンを全て選択状態にし、s211のように、選択状態にしたアイコンに対応する処理を実行するアプリケーションを起動している。
なお、記録した軌跡上に表示されているアイコンに対応する処理の実行は、記録した軌跡上に表示されている全てのアイコンについて行ってもよいし、指が表示領域を最初に通過したアイコンについてのみ行ってもよいし、指が表示領域を最後に通過したアイコンについてのみ行ってもよい。
以上説明してきたように、携帯電話端末1は、タッチパネル2に対して手書き方式での文字入力がなされると、仮想キーボード4をタッチパネル2に表示し、手書き方式で入力された文字と仮想キーボード方式で入力された文字とを入力として受け付ける。このため、利用者は、余分な動作を行うことなく、文字入力を迅速に開始することができるという手書き方式の利点と、文字を高速に入力できるという仮想キーボード方式の利点の両方を享受することができる。
また、説明してきたように、携帯電話端末1は、オブジェクト閲覧画面のように文字入力のために特に用意されたものではない画面においても、指をタッチパネル2上でスライドさせる動作が検出された場合には、画面固有の機能の実行を留保して文字の入力を受け付ける。そして、携帯電話端末1は、入力を受け付けた文字列を用いて、処理選択画面16で選択された処理を実行する。このため、利用者は、任意の画面で、文字の入力と、入力した文字を用いた処理とを実行することができる。
ところで、携帯電話端末1は、仮想キーボード4から文字の入力を受け付ける場合、仮想キーボード4内のボタンを1つずつタップする方式だけではなく、連続方式による文字の入力も受け付ける。連続方式とは、利用者が指をタッチパネル2に接触させたまま仮想キーボード4上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル2に接触させたままで、「W」のボタン、「E」のボタン、「T」のボタンの順に滑るように移動させることで「WET」という文字列を入力することができる。
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル2上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード4の配列がQWERTY配列であり、利用者が上記の「WET」という単語を入力したいものとする。この場合、利用者の指は「E」のボタンから「T」のボタンへ移動する際に、それらのボタンの間にある「R」のボタン上を通過することになる。このため、「R」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「WERT」という文字列が入力として受け付けられてしまう。
そこで、携帯電話端末1は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル2によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末1は、指の接触を開始する動作がタッチパネル2によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末1は、指の移動が終了しタッチパネル2から離れる動作がタッチパネル2によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
また、携帯電話端末1は、指がタッチパネル2に触れたまま移動方向を変更する動作がタッチパネル2によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末1は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図4に示すように進入時の移動方向(ベクトル)を示すV1と脱出時の移動方向を示すV2の角度差は小さくなると考えられるためである。また、図5に示すように進入時の移動方向を示すV3と脱出時の移動方向を示すV4の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
また、携帯電話端末1は、図6に示すように、指がタッチパネル2に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル2によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「W」という文字を3回連続して入力したい場合、利用者は「W」のボタン領域内で円を3回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が360度を超える度に1回転とカウントすることにより、回転数をカウントすることができる。
利用者が携帯電話端末1に「エレクトロニクス(EREKUTORONIKUSU)」と入力する場合の操作例を図7に示す。s221では、「E」のボタン領域内に指が置かれた後、指がタッチパネル2に触れたまま、「R」、「E」、「H」、「J」、「K」の順にボタンの上を通過している。この場合、携帯電話端末1は、指が置かれた「E」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「R」、「E」、「K」のボタンが意図的に触れられたと判断する。
s222では、指がタッチパネル2に触れたまま、「U」、「Y」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「U」、「T」のボタンが意図的に触れられたと判断する。s223では、指がタッチパネル2に触れたまま、「O」、「I」、「U」、「Y」、「T」、「R」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「R」のボタンが意図的に触れられたと判断する。
s224では、指がタッチパネル2に触れたまま、「O」、「K」、「N」、「J」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「N」のボタンが意図的に触れられたと判断する。s225では、指がタッチパネル2に触れたまま、「I」、「K」、「U」、「G」、「F」、「D」、「S」、「R」、「T」、「Y」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「I」、「K」、「U」、「S」のボタンが意図的に触れられたと判断する。
s226では、タッチパネル2に触れたまま「U」のボタンへ移動した指が、「U」のボタン領域内でタッチパネル2から離れている。この場合、携帯電話端末1は、指がタッチパネル2から離れた位置にある「U」のボタンが意図的に触れられたと判断する。
以上の操作により、携帯電話端末1は、「E」、「R」、「E」、「K」、「U」、「T」、「O」、「R」、「O」、「N」、「I」、「K」、「U」、「S」、「U」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス(EREKUTORONIKUSU)」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
図7の例が示すように、携帯電話端末1は、利用者の指がタッチパネル2に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末1に対して文字を高速かつ正確に入力することができる。
なお、携帯電話端末1は、単に指が通過したに過ぎないと判定したボタンに対応する文字を無視するのではなく、入力精度を向上させるためにそれらの文字を利用する。具体的には、携帯電話端末1は、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列を辞書と照合し、該当する単語が見つからない場合は、単に指が通過したに過ぎないと判定したボタンに対応する文字を補完して辞書との照合をやり直して正当な単語を見つけ出す。
例えば、利用者が携帯電話端末1に対して「WET」という単語を入力したい場合、利用者は、「W」のボタン領域内に指を置いた後、タッチパネル2に触れたまま指を「T」のボタンの方向へ移動させ、「T」のボタン領域内で指をタッチパネル2から離す。この場合、指が置かれた「W」のボタンと指が離れた「T」のボタンは意図的に触れられたと判定されるが、指が移動する軌道上にある「E」と「R」のボタンは、進入方向と脱出方向の角度差が小さいため、単に通過したに過ぎないと判定される。
しかしながら、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列である「WT」は辞書に存在しない。そこで、携帯電話端末1は、単に通過したに過ぎないと判定したボタンに対応する文字を時系列に補完して、「WET」、「WRT」、「WERT」という候補を作成し、各候補を辞書と照合する。この場合、「WET」という単語が辞書に含まれるため、携帯電話端末1は、「WET」を入力された文字として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
ところで、「WET」という単語を入力する場合、利用者は、タッチパネル2に触れたまま指を「W」のボタンから「T」のボタンの方向へ移動させる最中に、「E」のボタンの中で回転する軌道を描いてもよい。このような操作をすることにより、利用者は、「E」のボタンに意図的に触れたことを携帯電話端末1に明示的に示して、入力した文字列の識別精度を向上させることができる。
次に、携帯電話端末1の機能と制御部との関係を説明する。図8は、図1に示す携帯電話端末1の機能の概略構成を示すブロック図である。図8に示すように携帯電話端末1は、タッチパネル2と、入力部3と、電源部5と、通信部6と、スピーカ7と、マイク8と、記憶部9と、主制御部10と、RAM(Random Access Memory)11とを有する。
タッチパネル2は、表示部2Bと、表示部2Bに重畳されたタッチセンサ2Aとを有する。タッチセンサ2Aは、指を用いてタッチパネル2に対して行われた各種動作を、動作が行われた場所のタッチパネル2上での位置とともに検出する。タッチセンサ2Aによって検出される動作には、指をタッチパネル2の表面に接触させる動作や、指をタッチパネル2の表面に接触させたまま移動させる動作や、指をタッチパネル2の表面から離す動作が含まれる。なお、タッチセンサ2Aは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部2Bは、例えば、液晶ディスプレイ(LCD、Liquid Crystal Display)や、有機EL(Organic Electro−Luminescence)パネルなどで構成され、文字、図形、画像等を表示する。
入力部3は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部10へ送信する。電源部5は、蓄電池または外部電源から得られる電力を、主制御部10を含む携帯電話端末1の各機能部へ供給する。通信部6は、基地局によって割り当てられるチャネルを介し、基地局との間でCDMA方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ7は、電話通信における相手側の音声や着信音等を出力する。マイク8は、利用者等の音声を電気的な信号へ変換する。
記憶部9は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部10での処理に利用されるプログラムやデータを保存する。具体的には、記憶部9は、メールの送受信や閲覧のためのメールプログラム9Aや、WEBページの閲覧のためのブラウザプログラム9Bや、図2に示したような文字入力を実現するための文字入力プログラム9Cを記憶する。
また、記憶部9は、文字入力時にタッチパネル2に表示される仮想キーボード4に関する定義を含む仮想キーボードデータ9Dや、正当な文字列が登録された辞書データ9Eや、オブジェクトの本体であるオブジェクトデータ9Fや、オブジェクトの属性情報が格納される属性データ9Gを記憶する。オブジェクトデータ9Fと属性データ9Gは、共通のID等によって対応付けられる。なお、オブジェクトの属性情報を属性データ9Gに格納するのではなく、オブジェクトデータ9F内に埋め込むこととしてもよい。
記憶部9には、携帯電話端末1の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
主制御部10は、例えば、CPU(Central Processing Unit)であり、携帯電話端末1の動作を統括的に制御する。具体的には、主制御部10は、記憶部9に記憶されているデータを必要に応じて参照しつつ、記憶部9に記憶されているプログラムを実行して、タッチパネル2、通信部6等を制御することによって各種処理を実行する。主制御部10は、記憶部9に記憶されているプログラムや、処理を実行することによって取得/生成/加工されたデータを、一時的な記憶領域を提供するRAM11に必要に応じて展開する。なお、主制御部10が実行するプログラムや参照するデータは、通信部6による無線通信でサーバ装置からダウンロードすることとしてもよい。
ここで、記憶部9が記憶する仮想キーボードデータ9Dの一例を図9に示す。図9の例に示すように、仮想キーボードデータ9Dには、仮想キーボード4に含まれるボタン毎に、ボタンに対応する文字、ボタンの位置(例えば、左上座標)、幅、高さ等が登録される。図9に示す例では、あるボタンに対応する文字が「Q」であり、そのボタンの左上座標がx=10、y=10であり、そのボタンの幅と高さが20と40であること等が登録されている。
次に、携帯電話端末1が文字入力を受け付ける場合の動作について説明する。図10は、携帯電話端末1が文字入力を受け付ける場合の処理手順を示すフロー図である。図10に示す属性情報入力処理は、主制御部10が記憶部9から文字入力プログラム9Cを読み出して実行することにより実現される。
まず、ステップS1として、タッチパネル2に指が触れるタッチ操作をタッチパネル2が検出すると、携帯電話端末1の主制御部10は、ステップS2として、タッチパネル2に触れたままで指が移動するスライド操作が、タッチ操作に続けて、タッチパネル2によって検出されたかを判定する。ここで、スライド操作が検出されなかった場合は(ステップS2,No)、主制御部10は、ステップS3として、タッチパネル2に表示されている画面に応じた通常の処理を実行する。
一方、スライド操作が検出された場合は(ステップS2,Yes)、主制御部10は、ステップS4として、軌跡履歴データをクリアする。軌跡履歴データは、指がタッチパネル2に触れたまま移動し、指がタッチパネル2から離れるまでの軌跡が記録されるデータであり、RAM11または記憶部9に保持される。軌跡履歴データには複数の軌跡を記録することができるが、各軌跡は、指の接触が検出された位置の座標の集合として構成されていてもよいし、指の接触が検出された位置と移動方向を示すベクトルの集合として構成されていてもよい。
そして、主制御部10は、ステップS5として、指がタッチパネル2から離れるまで指の動きを追跡し、指がタッチパネル2から離れたことがタッチパネル2によって検出されると、指がタッチパネル2に触れたまま移動した軌跡を軌跡履歴データに追記記録する。そして、主制御部10は、ステップS6として、後述する手書き入力判定処理を実行する。手書き入力判定処理では、軌跡履歴データに基づいて、手書き方式による文字入力の途中であるか否かが判定され、文字入力が完了したと判定された場合には、文字認識処理によって文字の認識が行われる。
そして、手書き入力判定処理によって手書き方式による文字入力の途中であると判定された場合(ステップS7,Yes)、主制御部10は、ステップS8として、タッチパネル2によってタッチ操作が検出されるのを一定時間待つ。ここでの一定時間はごく短い時間であることが好ましい。そして、主制御部10は、タッチ操作が検出された場合には(ステップS9,Yes)、ステップS5へ戻って、指の動きの追跡と軌跡の記録を行い、タッチ操作が検出されない場合には(ステップS9,No)、ステップS6へ戻って、手書き入力判定処理を実行する。
また、主制御部10は、手書き入力判定処理によって手書き方式による文字入力が完了したと判定された場合は(ステップS7,No)、ステップS10として、手書き入力判定処理によって文字が認識されたかどうかを確認する。そして、文字が認識されていた場合は(ステップS10,Yes)、主制御部10は、ステップS11として、仮想キーボード4をタッチパネル2に表示する。
続いて、主制御部10は、ステップS12として、後述する文字入力処理を実行して、仮想キーボード4からの文字入力を受け付ける。そして、主制御部10は、ステップS13として、入力された文字を用いて、所定の処理を実行する。ステップS13にて用いられる文字は、手書き入力判定処理によって認識された文字と、仮想キーボード4から入力を受け付けた文字とを連結させたものである。
一方、手書き入力判定処理によって文字が認識されなかった場合(ステップS10,No)、主制御部10は、ステップS14として、軌跡履歴データに記録されている軌跡の通りに指がタッチパネル2に触れながら移動した場合に通常行われる処理を実行する。
次に、図11に示したフロー図を参照しながら、図10のステップS6で実行される手書き入力判定処理について説明する。
まず、主制御部10は、ステップS20として、最初にタッチ操作が検出されてからの経過時間(図10のステップS1からの経過時間)である総経過時間を取得する。また、主制御部10は、ステップS21として、最後に指がタッチパネル2から離れてからの経過時間である操作待ち時間を取得する。
そして、主制御部10は、ステップS22として、操作待ち時間を最大待ち時間と比較する。最大待ち時間とは、上述したように、手書き方式で1つの字画の入力を完了してから次の字画の入力を開始するのに十分な時間である。なお、最大待ち時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
操作待ち時間が最大待ち時間より長い場合、利用者は、手書き方式による文字の入力を完了していると考えられる。そこで、操作待ち時間が最大待ち時間より長い場合には(ステップS22,Yes)、主制御部10は、ステップS23として、総経過時間を最小経過時間と比較する。最小経過時間とは、手書き方式で1つの文字を入力する場合に少なくとも必要な時間である。なお、最小経過時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
そして、総経過時間が最小経過時間以下の場合(ステップS23,No)、主制御部10は、ステップS24として、文字が認識されなかった旨を判定結果として手書き入力判定処理を終了させる。このように、主制御部10は、総経過時間から判断して文字が入力されていないことが明らかな場合には、比較的負荷が重い処理である文字認識処理を実行することなく、文字が認識されないと判定する。
一方、総経過時間が最小経過時間より長い場合(ステップS23,Yes)、主制御部10は、ステップS25として、軌跡履歴データに基づいて文字認識処理を実行する。そして、文字認識処理によって文字が認識された場合(ステップS26,Yes)、主制御部10は、ステップS27として、文字が認識された旨を判定結果として手書き入力判定処理を終了させる。また、文字認識処理によって文字が認識されなった場合(ステップS26,No)、主制御部10は、ステップS24として、文字が認識されなかった旨を判定結果として手書き入力判定処理を終了させる。
また、ステップS22で操作待ち時間が最大待ち時間以下だった場合には(ステップS22,No)、主制御部10は、ステップS28として、総経過時間を最大経過時間と比較する。最大経過時間とは、上述したように、手書き方式で1つの文字を入力するのに十分な時間である。なお、最大経過時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
総経過時間が最大経過時間より長い場合、利用者は、手書き方式による文字の入力を完了していると考えられる。そこで、総経過時間が最大経過時間より長い場合には(ステップS28,Yes)、主制御部10は、既に説明したステップS25以降の、文字認識処理とそれに伴う処理を実行する。
一方、総経過時間が最大経過時間以下の場合、利用者は、また手書き方式による文字の入力を完了していない可能性がある。そこで、総経過時間が最大経過時間以下の場合には(ステップS28,No)、主制御部10は、ステップS29として、入力途中である旨を判定結果として手書き入力判定処理を終了させる。
次に、図12に示したフロー図を参照しながら、図10のステップS12で実行される文字入力処理について説明する。なお、以下に説明する文字入力処理は、利用者がタッチパネル2から指を離すことを文字入力の終了条件とするものであり、比較的短い文字列を連続方式で入力する場合に適している。仮想キーボード4内のボタンを1つずつタップして文字を入力することを認める場合や、比較的長い文字列の入力が必要な場合は、以下に説明する文字入力処理を何度も繰り返して実行することとし、図2で説明した完了ボタンのタップ等を文字入力の終了条件とすることが好ましい。
まず、主制御部10は、ステップS30として、入力文字バッファ12をクリアし、ステップS31として、一時バッファ13をクリアする。入力文字バッファ12は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が優先度と対応づけて格納される記憶領域であり、RAM11に設けられる。一時バッファ13は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンのうち、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が一時的に格納される記憶領域であり、RAM11に設けられる。
入力文字バッファ12の一例を図13に示す。図13は、タッチパネル2に対して図7に示した操作が行われた場合の入力文字バッファ12を示している。図13の例において、入力文字バッファ12の上段には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が格納され、下段には、上段の文字に対応づけられた優先度が格納されている。図13の例が示すように、入力文字バッファ12には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が時系列に格納される。
優先度は、入力文字バッファ12に含まれる文字を連結して文字列を構成する際に、対応付けられた文字を採用するか否かを決定するために用いられる。本実施例では、優先度の値が小さいほど、対応付けられた文字が優先的に採用されることとする。具体的には、指が意図的に触れたと判断されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判断されたボタンに対応する文字には優先度として「2」を対応付ける。
一時バッファ13の一例を図14に示す。図14は、図7のS21において指が「J」のボタンから出た時点での一時バッファ13を示している。図14の例が示すように、一時バッファ13には、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が、指がいずれかのボタンに意図的に触れたと判定されるまで、時系列に格納される。
入力文字バッファ12と一時バッファ13のクリアを終えると、主制御部10は、ステップS32として、RAM11に設けた入力完了フラグを0に設定する。入力完了フラグは、1回分の文字入力が完了したか否かを判定するために用いられる。ここでいう1回分の文字入力とは、指をタッチパネル2に接触させてから離すまでの間に行われる文字入力を意味する。
続いて、主制御部10は、ステップS33として、タッチパネル2の最新の検出結果を取得し、ステップS34として、文字入力判定処理を実行する。文字入力判定処理において、主制御部10は、指がタッチパネル2に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファ12や一時バッファ13に格納していく。なお、文字入力判定処理の詳細については後述する。
文字入力判定処理の実行後、主制御部10は、ステップS35として、入力完了フラグが0のままであるかを判定する。ここで、入力完了フラグが0のままである場合、すなわち、1回分の文字入力がまだ完了していない場合(ステップS35,Yes)、主制御部10は、ステップS36として、文字列検索処理を実行して、手書き入力判定処理で認識された文字と入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。なお、文字列検索処理の詳細については後述する。
続いて、主制御部10は、ステップS37として、文字列検索処理によって得られた1ないし複数の文字列を図15に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、入力完了フラグが0でない、すなわち、1回分の文字入力が完了したとステップS35で判定されるまで、ステップS33〜ステップS37を繰り返して実行する。
ステップS35で入力完了フラグが0でなくなっていた場合(ステップS35,No)、主制御部10は、ステップS38として、文字列検索処理を実行して、手書き入力判定処理で認識された文字と入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。ここで、文字列検索処理の処理結果として得られた文字列が1つだけであった場合(ステップS39,Yes)、主制御部10は、ステップS40として、文字列検索処理の処理結果として得られた文字列を入力された文字列として受け付ける。
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合(ステップS39,No)、主制御部10は、ステップS41として、文字列検索処理の処理結果として得られた複数の文字列を図15に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、ステップS42として、タッチパネル2の最新の検出結果を取得し、ステップS43として、入力文字列候補表示領域14に表示した文字列のいずれかが選択されたかを判定する。
ここで、いずれの文字列も選択されていなければ(ステップS43,No)、主制御部10は、いずれかの文字列が選択されるまで、ステップS42〜ステップS43を繰り返して実行する。なお、ステップS42において利用者の指が入力文字列候補表示領域14以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部10が、文字入力処理を終了させることとしてもよい。
ステップS43で入力文字列候補表示領域14に表示した文字列のいずれかが選択されていた場合(ステップS43,Yes)、主制御部10は、ステップS44として、選択された文字列を入力された文字列として受け付ける。
次に、図16に示したフロー図を参照しながら、図12のステップS34で実行される文字入力判定処理について説明する。主制御部10は、ステップS50として、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作、すなわち、指をタッチパネル2の表面に接触させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を開始する動作であった場合(ステップS50,Yes)、主制御部10は、ステップS51として、接触が開始された位置を仮想キーボードデータ9Dと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合(ステップS51,Yes)、ボタンは意図して触れられたと考えられるので、主制御部10は、ステップS52として、そのボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。ボタンに対応する文字は、仮想キーボードデータ9Dから取得される。
そして、主制御部10は、ステップS53として、出力フラグを「1」に設定して文字入力判定処理を終了させる。出力フラグは、RAM11に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ12または一時バッファ13に出力済みであるか否かを判定するために用いられる。出力フラグの値が「0」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「1」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
ステップS51において、接触が開始された位置がボタン領域内でなかった場合(ステップS51,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
ステップS50において、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作でなかった場合(ステップS50,No)、主制御部10は、ステップS54として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であった場合(ステップS54,Yes)、主制御部10は、ステップS55として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、RAM11に記憶される。
続いて、主制御部10は、ステップS56として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS57として、出力フラグを「0」に設定して文字入力判定処理を終了させる。
なお、タッチパネル2の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル2の検出結果から取得される。タッチパネル2の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
ステップS54において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合(ステップS54,No)、主制御部10は、ステップS58として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であった場合(ステップS58,Yes)、主制御部10は、ステップS59として、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合(ステップS59,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
一方、出力フラグが「0」であった場合(ステップS59,Yes)、主制御部10は、ステップS60として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
算出された角度差が所定の閾値以下の場合(ステップS61,No)、指は単にボタンを通過したに過ぎないと考えられるため、主制御部10は、ステップS62として、そのボタンに対応する文字を一時バッファ13に追加して文字入力判定処理を終了させる。
一方、算出された角度差が所定の閾値より大きい場合(ステップS61,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS63以降の処理手順を実行する。
ステップS63として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS64として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS65として、一時バッファ13をクリアして文字入力判定処理を終了させる。
ステップS58において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作でなかった場合(ステップS58,No)、主制御部10は、ステップS66として、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作、すなわち、指をタッチパネル2から離す動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を終了させる動作であった場合(ステップS66,Yes)、主制御部10は、ステップS67として、接触が終了された位置を仮想キーボードデータ9Dと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合(ステップS67,Yes)、ボタンは意図して触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS68以降の処理手順を実行する。
ステップS68として、主制御部10は、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合(ステップS68,Yes)、主制御部10は、ステップS69として、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加する。そして、主制御部10は、ステップS70として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。
そして、タッチパネル2への接触を終了させる動作が行われたということは、一回分の文字入力が完了したことを意味するので、主制御部10は、ステップS71として、入力完了フラグを「1」に設定して文字入力判定処理を終了させる。
接触が終了された位置がボタン領域内でなかった場合(ステップS67,No)、または、出力フラグが「0」でなかった場合(ステップS68,No)、主制御部10は、ステップS71として、入力完了フラグを「1」に設定する処理のみを行って文字入力判定処理を終了させる。
なお、接触が終了された位置がボタン領域内でなかった場合、または、出力フラグが「0」でなかった場合に、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加することとしてもよい。
ステップS66において、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作でなかった場合(ステップS66,No)、主制御部10は、ステップS72として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であった場合(ステップS72,Yes)、主制御部10は、ステップS73として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS74として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
ここで、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していた場合(ステップS74,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS75以降の処理手順を実行する。
ステップS75として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS76として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS77として、出力フラグを「1」に設定し、ステップS78として、移動方向履歴をクリアして文字入力判定処理を終了させる。
ステップS72において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード4上のボタン外を移動していた場合(ステップS72,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。また、ステップS74において、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していなかった場合も(ステップS74,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
なお、タッチパネル2への接触を保ったまま指を仮想キーボード4の外へ出す動作が検出された場合に、タッチパネル2への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル2への接触を保ったまま指を仮想キーボード4の中へ移動させる動作が検出された場合に、タッチパネル2への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、一回分の文字入力を終えた後に、指を上げ下げすることなくタッチパネル2への接触を保ったまま、迅速に次の入力に移ることが可能になる。
次に、図17に示したフロー図を参照しながら、図12のステップS36およびステップS38で実行される文字列検索処理について説明する。主制御部10は、ステップS90として、入力文字バッファ12から優先度が「1」である文字を取得し、手書き入力判定処理で認識された文字と、優先度が「1」の文字を組み合わせて第1候補文字列を生成する。
例えば、手書き入力判定処理で「X」という文字が認識され、また、「A」、「B」、「C」、「D」という4つの文字がこの順序で入力文字バッファ12に時系列に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、手書き入力判定処理で認識された文字と、優先度が「1」の文字とを時系列に連結して「XAD」という第1候補文字列を生成する。
続いて、主制御部10は、ステップS91として、第1候補文字列にマッチする文字列を辞書データ9Eから検索する。
本実施例では、例えば第1候補文字列が「XAD」の場合、「X*A*D」というパターンにマッチする文字列が辞書データ9Eから検索されるものとする。ここで、「*」は、任意の文字にマッチするワイルドカードである。すなわち、本実施例では、第1候補文字列と先頭の文字が一致し、第1候補文字列の2番目以降の各文字が、0個以上の文字を介在させて第1候補文字列と同じ順序で出現する文字列が、第1候補文字列とマッチすると文字列として検索される。
このようにマッチングさせることにより、指によって意図的に触れられたことを判別できないボタンがあった場合でも、入力された文字列を正しく認識することができる可能性を高めることができる。
検索結果として複数の文字列が得られた場合(ステップS92,Yes)、主制御部10は、検索結果を絞り込むために、ステップS93として、入力文字バッファ12から優先度が「2」である文字を取得し、取得した文字を第1候補文字列に補完して、1ないし複数の第2候補文字列を生成する。
例えば、上記と同様に、手書き入力判定処理で「X」という文字が認識され、また、「A」、「B」、「C」、「D」という4つの文字列がこの順序で入力文字バッファ12に時系列に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、格納順序を守りつつ、第1候補文字列である「XAD」に優先度が「2」の文字を少なくとも1つ補完して、「XABD」、「XACD」、「XABCD」という3つの第2候補文字列を生成する。
続いて、主制御部10は、ステップS94として、第2候補文字列のいずれかにマッチする文字列を辞書データ9Eから検索する。マッチングの方式は、第1候補文字列の場合と同様である。
そして、ステップS94において、いずれかの文字列が検索された場合(ステップS95,Yes)、主制御部10は、ステップS96として、検索された文字列を検索結果として文字列検索処理を終了させる。一方、ステップS94において、いずれの文字列も検索されなかった場合(ステップS95,No)、主制御部10は、ステップS97として、ステップS91において第1候補文字列とマッチした文字列を検索結果として文字列検索処理を終了させる。
ステップS91において検索結果として1つの文字列のみが得られた場合(ステップS92,No、かつ、ステップS98,Yes)、主制御部10は、ステップS96として、検索された文字列を検索結果として文字列検索処理を終了させる。ステップS91において検索結果として1つの文字列も得られなかった場合(ステップS98,No)、主制御部10は、ステップS99として、第1候補文字列、すなわち、優先度が「1」の文字を格納順に連結した文字列を検索結果として文字列検索処理を終了させる。
上述してきたように、携帯電話端末1は、タッチパネル2に対して手書き方式での文字入力がなされると、仮想キーボード4をタッチパネル2に表示し、手書き方式で入力された文字と仮想キーボード方式で入力された文字を入力として受け付ける。このため、利用者は、余分な動作を行うことなく、手書き方式で文字入力を迅速に開始した後、仮装キーボード方式で文字を高速に入力できる。
また、上述してきたように、携帯電話端末1は、指をタッチパネル2上でスライドさせる動作が検出された場合には、現在表示されている画面に固有の機能の実行を留保して文字の入力を受け付ける。そして、携帯電話端末1は、文字の入力が完了すると処理選択画面16を表示して処理を選択させ、入力を受け付けた文字列を用いて、選択された処理を実行する。このため、利用者は、任意の画面で、文字の入力と、入力した文字を用いた処理とを実行することができる。
なお、携帯電話端末1の構成は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば図2では、1つの文字の入力が終了したと推定される所定の条件が満たされた後に文字認識処理を実行することとしているが、s202でタップ操作が検出されて以降、文字認識処理を継続的に実行し、手書き方式で入力された文字が文字認識処理によって認識された場合は、所定の条件が満たされていなくても、仮想キーボード4をタッチパネル2に表示することとしてもよい。
また、図2に示した例では、入力された文字を用いて実行する処理を利用者に選択させる例を示したが、入力された文字に応じた機能を携帯電話端末1が判定して起動するようにしてもよい。具体的には、入力された文字が特定の機能の名称または略称である場合には、携帯電話端末1がその機能を起動することとしてもよい。この場合、図2に示したs207の場面では、携帯電話端末1は、入力された「かめら」に対応するカメラ機能を起動する。また、電話番号に相当する複数の数字が入力された場合には、携帯電話端末1が、入力された数字を宛先の電話番号として発呼を実行することとしてもよい。
また、図2に示した例では、インターネット検索等の処理を実行するために文字を入力する例を示したが、図2で示した文字入力方式をオブジェクトの属性情報を入力するために用いることとしてもよい。ここで属性情報とは、オブジェクトの属性を示す文字情報であり、例えば、ファイル名、タイトル、コメント、作者名である。オブジェクトがアドレス帳の個人データである場合、氏名、電話番号、メールアドレス等も属性情報に含まれる。
オブジェクトの属性情報の入力を受け付ける場合の携帯電話端末1の動作について図18の例を参照しながら説明する。
s231では、携帯電話端末1は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル2に表示させている。オブジェクト閲覧画面にはオブジェクトOB1〜OB10のアイコンが表示されており、s232では、利用者が、タッチパネル2上のオブジェクトOB1のアイコンの表示領域内に指を置いている。携帯電話端末1は、オブジェクトOB1のアイコンを反転表示にして、このアイコンが選択状態である旨を表示している。
この状態から利用者が指をタッチパネル2から離すと、携帯電話端末1は、オブジェクトOB1のアイコンがタップされたと判定して、オブジェクトOB1に対して表示、再生、編集等の所定の処理を実行する。
一方、s233のように、利用者が、指をタッチパネル2に触れさせたままでオブジェクトOB1のアイコンの表示領域外へ移動させた場合は、携帯電話端末1は、オブジェクトOB1のアイコンの選択状態を保ったまま、オブジェクトOB1に対する処理の実行を留保して、指の移動の軌跡を記録する。そして、携帯電話端末1は、所定の条件が満たされるまで、指の移動の軌跡の記録を継続する。この間に携帯電話端末1によって検出される軌跡には、s234およびs235のように、利用者がタッチパネル2から指を一旦離して、タッチパネル2の別の位置に指を触れさせてから移動させた軌跡も含まれる。
携帯電話端末1が指の移動の軌跡の記録を終了させる所定の条件は、1つの文字の入力が終了したと推定される条件であり、例えば、最初にタッチパネル2への指の接触が検出されてからの経過時間が最大経過時間を超過することや、最後に指がタッチパネル2から離れてからの経過時間が最大待ち時間を超過することである。
そして、所定の条件が満たされると、携帯電話端末1は、記録した軌跡に基づいて文字認識処理を行う。例えば、s235の段階で所定の条件が満たされたとすると、携帯電話端末1は、記録した軌跡に基づいて、「か」という文字を入力された文字として認識する。
携帯電話端末1は、記録した軌跡に基づいて文字の認識に成功すると、s236のように、タッチパネル2上に仮想キーボード4を表示する。また、携帯電話端末1は、入力中の文字列を出力するための入力文字表示画面15をタッチパネル2上に表示して、認識した「か」を入力された最初の文字として入力文字表示画面15に出力する。
続いて、携帯電話端末1は、手書き方式で認識された文字の後続の文字として、仮想キーボード4から入力された文字を受け付ける。携帯電話端末1は、s237では、「め」と「ら」の文字の入力を仮想キーボード4から受け付け、認識した「か」の後にこれらの文字を時系列に追加して、「かめら」という文字列を入力された文字列として入力文字表示画面15に出力している。
そして、携帯電話端末1は、入力文字表示画面15の完了ボタンの表示領域内で指がタッチパネル2に触れるといった入力の完了を示す動作を検出すると、入力を受け付けた文字列を、選択状態にあるアイコンに対応するオブジェクトOB1の属性情報として保存する。
図18に示す例では、携帯電話端末1は、s238として、入力を受け付けた文字列をどの属性情報として保存するか選択を受け付けるための属性選択画面17をタッチパネル2に表示している。属性選択画面17には、「ファイル名」という選択肢と、「タイトル」という選択肢と、「コメント」という選択肢が含まれている。
「ファイル名」が選択された場合、携帯電話端末1は、入力を受け付けた文字列をオブジェクトOB1のファイル名として保存する。「タイトル」が選択された場合、携帯電話端末1は、入力を受け付けた文字列をオブジェクトOB1のタイトルとして保存する。「コメント」が選択された場合、携帯電話端末1は、入力を受け付けた文字列をオブジェクトOB1のコメントとして保存する。
また、図2に示した例では、手書き方式で1つの文字が入力された後に仮想キーボード方式での文字入力が開始される例を示したが、手書き方式で複数の文字を入力できるようにしてもよい。手書き方式で複数の文字の入力を受け付ける場合の携帯電話端末1の動作について図19の例を参照しながら説明する。
s241では、携帯電話端末1は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル2に表示させている。オブジェクト閲覧画面にはオブジェクトOB1〜OB10のアイコンが表示されており、s242では、利用者が、タッチパネル2上のオブジェクトOB1のアイコンの表示領域内に指を置いている。携帯電話端末1は、オブジェクトOB1のアイコンを反転表示にして、このアイコンが選択状態である旨を示している。
この状態から利用者が指をタッチパネルから離すと、携帯電話端末1は、オブジェクトOB1のアイコンがタップされたと判定して、オブジェクトOB1に対して表示、再生、編集等の所定の処理を実行する。
一方、s243のように、利用者が、指をタッチパネル2に触れさせたままでオブジェクトOB1のアイコンの表示領域外へ移動させた場合は、携帯電話端末1は、オブジェクトOB1のアイコンの選択状態を保ったまま、オブジェクトOB1に対する処理の実行を留保して、指の移動の軌跡を記録する。また、携帯電話端末1は、入力中の文字列を出力するための入力文字表示画面18をタッチパネル2上に表示する。
そして、携帯電話端末1は、指がタッチパネル2に触れたままで入力文字表示画面18の表示領域内に入ると、文字認識処理を実行して、それまでに記録していた軌跡に対応する文字を認識する。s244のように、指がタッチパネル2に触れたままで「こ」の字体に相当する軌跡を描いて移動した後、s245のように、指が入力文字表示画面18の表示領域内に入ると、携帯電話端末1は、「こ」の文字を文字認識処理によって認識して入力文字表示画面18に出力する。
携帯電話端末1は、この段階で指が入力文字表示画面18の「完了」ボタンの表示領域内に入ると、文字の入力の受け付けを完了し、指が「KB」ボタンの表示領域内に入ると、仮想キーボード4を表示して仮想キーボード方式での文字入力を受け付ける状態へ遷移する。また、指が「完了」ボタンと「KB」ボタンのいずれの表示領域内にも入らずに入力文字表示画面18の表示領域から出た場合は、携帯電話端末1は、記録していた軌跡をクリアした後、手書き方式による文字の入力を再開する。
s246では、指が「完了」ボタンと「KB」ボタンのいずれの表示領域内にも入らずに入力文字表示画面18の表示領域から出て、「い」の字体に相当する軌跡を描いて移動した後、入力文字表示画面18の表示領域内に戻っている。この場合、携帯電話端末1は、「い」の文字を文字認識処理によって認識して入力文字表示画面18に追加出力する。
そして、s247では、指が「完了」ボタンと「KB」ボタンのいずれの表示領域内にも入らずに入力文字表示画面18の表示領域から出て、「ぬ」の字体に相当する軌跡を描いて移動した後、入力文字表示画面18の表示領域内に戻り、「完了」ボタンの表示領域内に入っている。
この場合、携帯電話端末1は、指が入力文字表示画面18の表示領域内に戻った段階で、「ぬ」の文字を文字認識処理によって認識して入力文字表示画面18に追加出力する。そして、携帯電話端末1は、指が「完了」ボタンの表示領域内に入った段階で、文字入力の受け付けを終了し、s248のように、属性選択画面17を表示して、入力を受け付けた文字である「こいぬ」を、どの属性情報として保存するかを選択させる。その後、携帯電話端末1は、入力を受け付けた文字である「こいぬ」を、選択状態にあるアイコンに対応するオブジェクトOB1の属性情報として保存する。
このように、手書き方式で複数の文字を入力できるようにすることにより、手書き方式でも容易に入力可能な簡単な文字については手書き方式での入力を継続し、複雑な文字の入力が必要になった場合には「KB」ボタン上に指を動かすだけで仮想キーボード方式へ移行するというように、手書き方式から仮想キーボード方式への遷移を利用者の意思で決定することが可能になる。
なお、図19の例では、手書き方式による文字の入力を一筆書きで行うこととしているが、図2の例で示したように文字の字画を1つずつ入力することとしてもよい。また、図19の例では、属性情報の入力のために文字の入力を受け付けることとしているが、図2の例で示したように所定の処理に用いる文字の入力を受け付ける場合にも、手書き方式で複数の文字の入力を受け付けることとしてよい。また、図19の例では、指が入力文字表示画面18の表示領域内に入ることを1つの文字の入力が完了したと判断する条件としているが、図2の例で示したように、1つの文字の入力が完了したか否かを、最大待ち時間や最大経過時間を用いて判断することとしてもよい。
また、図2に示した例では、仮想キーボード4を表示させる位置を特定していないが、手書き方式での文字の入力が完了した際の指の位置に応じて、仮想キーボード4を表示させる位置を調整することとしてもよい。仮想キーボード4の表示位置を調整する場合の携帯電話端末1の動作について図20の例を参照しながら説明する。
携帯電話端末1は、s251で指が位置Pにあるときに手書き方式による文字の入力が完了したと判定し、入力された文字「か」を文字認識処理によって認識したものとする。この場合、携帯電話端末1は、s252に示すように、接触が最後に検出された位置である位置Pが仮想キーボード4の表示領域に含まれるように仮想キーボード4の表示位置を調整する。
ここで、文字認識処理によって認識した「か」に対応するボタンの表示領域に位置Pが含まれるように、仮想キーボード4のボタンの配列を変更することとしてもよい。図20のs253では、携帯電話端末1は、50音配列の仮想キーボード4のボタンを行単位でローテートさせることで、「か」に対応するボタンの表示領域に位置Pが含まれるようにしている。
そして、s254では、利用者が仮想キーボード4を用いて連続方式による文字の入力を開始している。このように、手書き方式での文字の入力が完了した際の指の位置(指の接触が最後に検出された位置)に応じて、仮想キーボード4を表示させる位置を調整することにより、利用者は、仮想キーボード方式での文字の入力を迅速に開始することができる。
また、上記の実施例では、連続方式での文字入力において、指をタッチパネル2から離さずに移動させた軌跡上の各ボタンに対応する文字に優先度として「1」または「2」を対応付けることとしたが、文字に対応付ける優先度をさらに細分化してもよい。
例えば、意図的に触れられたと判定されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判定されたボタンに対応する文字については優先度として「2」〜「5」のいずれかの値を対応付けることとしてもよい。
この場合、例えば、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指がボタンに進入したときの移動方向と指がボタンから出たときの移動方向の角度差が大きいほど高い優先度を対応付けることとしてもよい。角度差が大きいほど、意図的に触れられたボタンである可能性が高いためである。
また、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指が通過した軌跡がボタンの中心に近いほど高い優先度を対応付けることとしてもよい。通過した軌跡がボタンの中心に近いほど、意図的に触れられたボタンである可能性が高いためである。
そして、このように優先度を細分化した場合、文字列検索処理においては、優先度の高い文字ほど第2候補文字列の作成時に優先的に使用される。具体的には、優先度が「1」の文字を組み合わせた第1候補文字列に複数の文字列がマッチした場合、まず、優先度が「2」の文字を第1候補文字列に補完して検索結果の絞込みが試みられる。そして、優先度が「2」の文字を補完しても複数の文字列がマッチした場合、優先度が「3」の文字を第1候補文字列にさらに補完して検索結果の絞込みが試みられる。
以下同様に、検索結果が1つに絞り込まれるまで、優先度が高い順に文字が補完に利用される。このように、優先度を細分化することにより、意図的に触れられた可能性が高い順に文字を組み合わせて検証対象の文字列を生成することができるため、入力された文字列の識別精度を向上させることができる。
また、図12を参照しながら説明した文字入力処理では、主制御部10がタッチパネル2から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域14に表示することとしているが、一回分の文字入力が完了するまではこのような表示は行わずに、一回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域14に表示することとしてもよい。
また、図17を参照しながら説明した文字列検索処理における辞書データとのマッチング処理は、完全一致や前方一致等の他のマッチング方式を用いることとしてもよい。また、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
また、上記の実施例では、連続方式での文字入力において、指がタッチパネル2に接触したまま移動した軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を優先して入力された文字列を識別することとしているが、本発明は、これに限定されるものではなく、指がタッチパネル2に接触したまま移動した軌跡上またはその近隣に表示されているボタンに対応する文字を含む文字列を入力された文字列として受け付けるものであればよい。
また、上記の実施例では、連続方式での文字入力において、特定の動作として、ボタン領域内でタッチパネル2に接触する動作や、ボタン領域内でタッチパネル2から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
また、図2に示した入力文字表示画面15や処理選択画面16、図18に示した属性選択画面17について、ボタンや選択肢の表示領域内で特定の動作が検出された場合に、そのボタンや選択肢が選択されるように構成してもよい。
また、図3に示したs209の場面のように、記録した軌跡に基づく文字認識処理によっていずれの文字も認識されなかった場合には、携帯電話端末1を、タッチパネル2や入力部3に対して所定の操作が行われるまで受け付けた操作を無視する待機モードへ遷移させてもよい。このように構成することにより、携帯電話端末1をポケットにしまった場合等に、タッチパネル2が利用者の意図しない接触を検出して携帯電話端末1が誤動作することを防止できる。