(57)【特許請求の範囲】
【請求項１】
接触を検出するタッチパネルと、
所定の処理に対応するオブジェクトを選択する画面を表示する表示部と、
前記表示部に前記オブジェクトを選択する画面を表示している状態で、前記タッチパネルにより当該オブジェクトに対応する位置で接触が検出されると、当該接触に基づき文字認識処理を実行し、
前記文字認識処理により文字が認識されると、文字入力が可能なオブジェクトを表示し、当該認識した文字を入力文字として受け付ける処理を実行し、
前記文字認識処理により文字が認識されないと、前記検出された接触の位置に対応する当該オブジェクトを選択する処理を実行する制御部と、
を備える文字入力装置。
【請求項２】
前記制御部は、前記文字認識処理により文字が認識されると、当該認識した文字を入力し、前記タッチパネルに対する接触の軌跡に基づき複数の文字を連続して入力することが可能な仮想キーボードを前記タッチパネルに表示することを特徴とする請求項１に記載の文字入力装置。
【請求項３】
前記制御部は、前記仮想キーボードを表示した後、前記タッチパネルにより接触が検出されている間、前記仮想キーボードにより文字を入力することを特徴とする請求項２に記載の文字入力装置。
【請求項４】
前記制御部は、前記タッチパネルにより接触が検出されなくなった後、再度、前記タッチパネルにより接触が検出されると、当該接触に基づき文字認識処理を実行し、前記文字認識処理により文字を認識すると、当該認識した文字を入力する請求項３に記載の文字入力装置。
【請求項５】
前記制御部は、前記文字認識処理により認識し、入力した文字と、前記仮想キーボードにより入力した文字とを、一連の文字列の入力とすることを特徴とする請求項２ないし４のいずれか１項に記載の文字入力装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字入力装置に関する。
【背景技術】
【０００２】
近年、直感的な操作を可能にするとともに、キーボードのように物理的に大きな面積を必要とするデバイスを具備しない小型の文字入力装置を実現するために、タッチパネルが広く利用されるようになっている。タッチパネルを用いて文字を入力するための方式として、タッチパネル上で文字の字体を手書き入力する手書き方式（例えば、特許文献１）と、タッチパネル上に表示された仮想的なキーボード（以下、「仮想キーボード」という）を用いて文字を入力する仮想キーボード方式（例えば、特許文献２）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１４１４４８号公報
【特許文献２】特開２００８−１０８２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
手書き方式は、仮想キーボードのような特別な画面をタッチパネル上に表示させなくてもよいため、文字の入力を迅速に開始することができるという利点を有するが、文字の字体を１つずつ手書きしていかなければならないため、文字の入力に時間を要する。一方、仮想キーボード方式は、仮想キーボード上のボタンを選択することでそのボタンに対応する文字を入力することができるため、高速に文字を入力することができるという利点を有するが、仮想キーボードをタッチパネルに表示させないと文字の入力を開始できないため、文字の入力の開始が遅くなる場合がある。
【０００５】
本発明は、上記に鑑みてなされたものであって、タッチパネルを用いた文字の入力を迅速に開始し、高速に文字を入力することができる文字入力装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、文字入力装置であって、接触を検出するタッチパネルと、所定の処理に対応するオブジェクトを選択する画面を表示する表示部と、前記表示部に前記オブジェクトを選択する画面を表示している状態で、前記タッチパネルにより当該オブジェクトに対応する位置で接触が検出されると、当該接触に基づき文字認識処理を実行し、前記文字認識処理により文字が認識されると、文字入力が可能なオブジェクトを表示し、当該認識した文字を入力文字として受け付ける処理を実行し、前記文字認識処理により文字が認識されないと、前記検出された接触の位置に対応する当該オブジェクトを選択する処理を実行する制御部と、を備えることを特徴とする。
ここで、前記制御部は、前記文字認識処理により文字が認識されると、当該認識した文字を入力し、前記タッチパネルに対する接触の軌跡に基づき複数の文字を連続して入力することが可能な仮想キーボードを前記タッチパネルに表示することが好ましい。
【０００７】
ここで、前記制御部は、前記文字認識処理によって認識された文字と、前記仮想キーボードから入力された文字とを、連結した一連の文字列の入力として受け付けることが好ましい。
【０００８】
また、前記制御部は、前記タッチパネルに操作画面が表示されている状態で前記タッチパネルにおける接触が検出されて前記文字認識処理が開始されると、当該接触の検出された位置に基づく前記操作画面に対応する処理の実行を留保し、前記文字認識処理によっていずれの文字も認識されなかった場合には、前記留保していた処理を実行することが好ましい。
【０００９】
また、前記制御部は、前記仮想キーボードから文字の入力が完了すると、前記文字認識処理によって認識された文字と、前記仮想キーボードから入力された文字とを用いて実行する処理の選択を受け付ける画面を前記タッチパネルに表示させることが好ましい。
【００１０】
また、前記制御部は、前記仮想キーボードから文字の入力が完了すると、前記文字認識処理によって認識された文字と、前記仮想キーボードから入力された文字とに応じた処理を実行することが好ましい。
【００１１】
また、前記制御部は、前記タッチパネルに表示されているオブジェクトが予め選択されていた場合、前記文字認識処理によって認識された文字と、前記仮想キーボードから入力された文字とを連結させた文字列を前記オブジェクトの属性情報として保存することが好ましい。
【００１２】
また、前記制御部は、前記文字認識処理によって文字が認識された場合に、前記タッチパネルによって接触が最後に検出された位置に応じて、前記仮想キーボードを表示する位置を調整することが好ましい。
【００１３】
また、前記制御部は、前記仮想キーボードが前記タッチパネルに表示されている間に、前記タッチパネルの表面の第１の位置で接触が開始され、前記タッチパネルの表面の第２の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第１の位置で接触が開始されてから前記第２の位置で接触が終了するまでに接触が検出された各位置を結ぶ連続入力軌跡上に表示されている前記仮想キーボードのボタンに対応する文字を含む文字列を前記仮想キーボードからの入力として受け付けることが好ましい。
【００１４】
また、前記制御部は、前記連続入力軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を含む文字列を前記仮想キーボードからの入力として受け付けることが好ましい。
【００１５】
また、前記制御部は、前記文字認識処理によっていずれの文字も認識されなかった場合に、前記軌跡上に表示されているオブジェクトに対応する処理を実行することが好ましい。
【００１６】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対して行われる接触を検出するタッチパネルを有する文字入力装置によって実行される文字入力方法であって、前記文字入力装置の制御部が、前記タッチパネルにおいて接触の検出が開始されると、接触が検出された各位置を結ぶ軌跡に基づいて文字認識処理を実行するステップと、前記制御部が、前記文字認識処理によって文字が認識された場合には、前記タッチパネルの表示部に仮想キーボードを表示し、当該仮想キーボードから文字の入力を受け付けるステップと、を含むことを特徴とする。前記文字の入力を受け付けるステップにおいて、前記制御部が、前記タッチパネルの表示部に操作画面が表示されている状態で前記タッチパネルにおける接触が検出されて前記文字認識処理が開始されると、当該接触の検出された位置に基づく前記操作画面に対応する処理の実行を留保し、前記文字認識処理によっていずれの文字も認識されなかった場合には、前記留保していた処理を実行してもよい。
【００１７】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力プログラム
であって、表面に対して行われる接触を検出するタッチパネルを有する文字入力装置に、前記タッチパネルにおいて接触の検出が開始されると、接触が検出された各位置を結ぶ軌跡に基づいて文字認識処理を実行するステップと、前記文字認識処理によって文字が認識された場合には、前記タッチパネルの表示部に仮想キーボードを表示し、当該仮想キーボードから文字の入力を受け付けるステップと、を実行させることを特徴とする。前記タッチパネルの表示部に操作画面が表示されている状態で前記タッチパネルにおける接触が検出されて前記文字認識処理が開始されると、当該接触の検出された位置に基づく前記操作画面に対応する処理の実行を留保し、前記文字認識処理によっていずれの文字も認識されなかった場合には、前記留保していた処理を実行するステップをさらに文字入力装置に実行させてもよい。
【発明の効果】
【００１８】
本発明に係る文字入力装置は、タッチパネルを用いた文字の入力を迅速に開始し、高速に文字を入力することができるという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、携帯電話端末の外観を示す正面図である。
【図２】図２は、文字入力の受け付け時の携帯電話端末の動作を示す図である。
【図３】図３は、文字認識処理が失敗した場合の携帯電話端末の動作を示す図である。
【図４】図４は、ボタン領域内を指が通過した例を示す図である。
【図５】図５は、ボタン領域内で指の移動方向が変化した例を示す図である。
【図６】図６は、ボタン領域内で指が回転する軌跡を描いた例を示す図である。
【図７】図７は、文字入力の操作例を示す図である。
【図８】図８は、携帯電話端末の機能の概略構成を示すブロック図である。
【図９】図９は、仮想キーボードデータの一例を示す図である。
【図１０】図１０は、携帯電話端末が文字入力を受け付ける場合の処理手順を示すフロー図である。
【図１１】図１１は、手書き入力判定処理の処理手順を示すフロー図である。
【図１２】図１２は、文字入力処理の処理手順を示すフロー図である。
【図１３】図１３は、入力文字バッファの一例を示す図である。
【図１４】図１４は、一時バッファの一例を示す図である。
【図１５】図１５は、タッチパネル上に表示される入力文字列候補表示領域を示す図である。
【図１６】図１６は、文字入力判定処理の処理手順を示すフロー図である。
【図１７】図１７は、文字列検索処理の処理手順を示すフロー図である。
【図１８】図１８は、オブジェクトの属性情報を入力する場合の処理手順を示すフロー図である。
【図１９】図１９は、手書き方式で複数の文字を入力する場合の処理手順を示すフロー図である。
【図２０】図２０は、手書き方式での入力が完了した位置に応じて仮想キーボードの表示を調整する場合の処理手順を示すフロー図である。
【発明を実施するための形態】
【００２０】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、文字入力装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機、デジタルカメラ等に対しても本発明は適用できる。
【実施例】
【００２１】
図１は、本発明の端末装置の一実施形態である携帯電話端末１の外観を示す正面図である。携帯電話端末１は、タッチパネル２と、ボタン３Ａ、ボタン３Ｂおよびボタン３Ｃからなる入力部３を備える。タッチパネル２は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等（以下、単に「指」という）を用いてタッチパネル２に対して行われる各種動作を検出する。入力部３は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
【００２２】
携帯電話端末１は、タッチパネル２上で手書き方式によって文字が入力されたことを認識すると、タッチパネル２に仮想キーボードを表示して、文字の入力を仮想キーボードから受け付ける。このように、手書き方式による文字の入力を契機として、仮想キーボード方式による文字の入力を受け付けることにより、文字の入力を迅速に開始することができるという手書き方式の利点と、高速に文字を入力することができるという仮想キーボード方式の利点を両立させることができる。
【００２３】
また、携帯電話端末１は、手書き方式によって入力された文字と、手書き方式による文字入力を契機として表示した仮想キーボードから入力された文字とを、一連の入力として受け付ける。このように、仮想キーボードを表示させる契機となった動作を含めて文字の入力を受け付けることにより、携帯電話端末１は、利用者が無駄な動作をすることなく、効率的に文字を入力することを可能にする。
【００２４】
文字入力の受け付け時の携帯電話端末１の動作について図２および図３の例を参照しながら説明する。ｓ２０１では、携帯電話端末１は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル２に表示させている。ここでオブジェクトとは、携帯電話端末１が表示、再生、編集等の各種処理を行う対象のデータであり、例えば、画像データ、動画データ、音楽データ、ワープロ文書、電子メール、アドレス帳の個人データ等に相当する。また、オブジェクト閲覧画面とは、オブジェクトの選択や閲覧の為に、オブジェクトに対応するサムネール等のアイコンを表示する画面である。
【００２５】
オブジェクト閲覧画面にはオブジェクトＯＢ１〜ＯＢ１０のアイコンが表示されており、ｓ２０２では、利用者が、タッチパネル２上のオブジェクトＯＢ１のアイコンの表示領域内に指を置いている。この状態から利用者が指をタッチパネル２から離すと、携帯電話端末１は、オブジェクトＯＢ１のアイコンがタップされたと判定して、オブジェクトＯＢ１に対して表示、再生、編集等の所定の処理を実行する。
【００２６】
一方、ｓ２０３のように、利用者が、指をタッチパネル２に触れさせたままでオブジェクトＯＢ１のアイコンの表示領域外へ移動させた場合は、携帯電話端末１は、オブジェクトＯＢ１に対する処理の実行を留保して、指の移動の軌跡を記録する。そして、携帯電話端末１は、所定の条件が満たされるまで、指の移動の軌跡の記録を継続する。この間に携帯電話端末１によって検出される軌跡には、ｓ２０４およびｓ２０５のように、利用者がタッチパネル２から指を一旦離して、タッチパネル２の別の位置に指を触れさせてから移動させた軌跡も含まれる。
【００２７】
携帯電話端末１が指の移動の軌跡の記録を終了させる所定の条件は、１つの文字の入力が終了したと推定される条件であり、例えば、最初にタッチパネル２への指の接触が検出されてからの経過時間が最大経過時間を超過することや、最後に指がタッチパネル２から離れてからの経過時間が最大待ち時間を超過することである。ここで、最大経過時間とは、手書き方式で１つの文字を入力するのに十分な時間であり、最大待ち時間とは、手書き方式で１つの字画の入力を完了してから次の字画の入力を開始するのに十分な時間である。
【００２８】
そして、所定の条件が満たされると、携帯電話端末１は、記録した軌跡に基づいて文字認識処理を行う。例えば、ｓ２０５の段階で所定の条件が満たされたとすると、携帯電話端末１は、記録した軌跡に基づいて、「か」という文字を入力された文字として認識する。なお、文字認識処理については、どのような方式で実現することとしてもよい。また、図２では、オブジェクト閲覧画面に重畳して、携帯電話端末１が記録した軌跡を図示しているが、このような軌跡を実際にタッチパネル２に表示することは必ずしも必要ではない。
【００２９】
携帯電話端末１は、記録した軌跡に基づいて文字の認識に成功すると、ｓ２０６のように、タッチパネル２上に仮想キーボード４を表示する。また、携帯電話端末１は、入力中の文字列を出力するための入力文字表示画面１５をタッチパネル２上に表示して、認識した「か」を入力された最初の文字として入力文字表示画面１５に出力する。
【００３０】
続いて、携帯電話端末１は、手書き方式で認識された文字の後続の文字として、仮想キーボード４から入力された文字を受け付ける。携帯電話端末１は、ｓ２０７では、「め」と「ら」の文字の入力を仮想キーボード４から受け付け、文字認識処理で認識した「か」の後にこれらの文字を時系列に追加して、「かめら」という文字列を入力された文字列として入力文字表示画面１５に出力している。
【００３１】
そして、携帯電話端末１は、入力文字表示画面１５の完了ボタンの表示領域内で指がタッチパネル２に触れるといった入力の完了を示す動作を検出すると、入力を受け付けた文字列を用いて所定の処理を行う。ここでいう所定の処理とは、例えば、入力を受け付けた文字列を用いてインターネット検索を実行して検索結果をタッチパネル２に表示する処理や、入力を受け付けた文字列を本文とする電子メールの送信画面をタッチパネル２に表示する処理や、入力を受け付けた文字列を所定のデータとして保存する処理である。
【００３２】
図２に示す例では、携帯電話端末１は、ｓ２０８として、入力を受け付けた文字列を用いてどの処理を行うかの選択を受け付けるための処理選択画面１６をタッチパネル２に表示している。処理選択画面１６には、「メモ帳」という選択肢と、「インターネット検索」という選択肢と、「電子メール」という選択肢が含まれている。
【００３３】
「メモ帳」が選択された場合、携帯電話端末１は、入力を受け付けた文字列を、任意のテキストデータの表示／編集が可能なメモ帳プログラムが扱うデータとして保存する。「インターネット検索」が選択された場合、携帯電話端末１は、入力を受け付けた文字列を用いてインターネット検索を実行して検索結果をタッチパネル２に表示する。「電子メール」が選択された場合、携帯電話端末１は、入力を受け付けた文字列を本文とする電子メールの送信画面をタッチパネル２に表示する。
【００３４】
携帯電話端末１は、いずれかの選択肢が選択されると、選択された選択肢に対応する処理を実行し、文字入力の開始前のｓ２０１の状態に戻る。なお、図２に示した処理選択画面１６は一例であり、他の選択肢を表示する画面であってもよい。また、処理選択画面１６は、文字入力の開始時にタッチパネル２に表示されていた画面に応じて表示する選択肢が切り替わるように構成されていてもよい。
【００３５】
続いて、文字認識処理が失敗した場合の動作について説明する。図３に示すように、ｓ２０４の状態からｓ２０９のように文字を構成しない字画が入力された段階で所定の条件が満たされると、携帯電話端末１は、記録した軌跡に基づいて文字認識処理を行う。この場合、文字は認識されない。文字認識処理によって文字が認識されなかった場合、利用者が行った操作は文字入力のためのものではなかったと考えられる。
【００３６】
このため、携帯電話端末１は、文字が認識されないと、軌跡の追跡を開始した時点でタッチパネル２に表示されていた画面に対して軌跡として記録した指の動きがなされた場合に行われる通常の処理を実行する。図３に示した例では、携帯電話端末１は、ｓ２１０のように、記録した軌跡上に表示されているアイコンを全て選択状態にし、ｓ２１１のように、選択状態にしたアイコンに対応する処理を実行するアプリケーションを起動している。
【００３７】
なお、記録した軌跡上に表示されているアイコンに対応する処理の実行は、記録した軌跡上に表示されている全てのアイコンについて行ってもよいし、指が表示領域を最初に通過したアイコンについてのみ行ってもよいし、指が表示領域を最後に通過したアイコンについてのみ行ってもよい。
【００３８】
以上説明してきたように、携帯電話端末１は、タッチパネル２に対して手書き方式での文字入力がなされると、仮想キーボード４をタッチパネル２に表示し、手書き方式で入力された文字と仮想キーボード方式で入力された文字とを入力として受け付ける。このため、利用者は、余分な動作を行うことなく、文字入力を迅速に開始することができるという手書き方式の利点と、文字を高速に入力できるという仮想キーボード方式の利点の両方を享受することができる。
【００３９】
また、説明してきたように、携帯電話端末１は、オブジェクト閲覧画面のように文字入力のために特に用意されたものではない画面においても、指をタッチパネル２上でスライドさせる動作が検出された場合には、画面固有の機能の実行を留保して文字の入力を受け付ける。そして、携帯電話端末１は、入力を受け付けた文字列を用いて、処理選択画面１６で選択された処理を実行する。このため、利用者は、任意の画面で、文字の入力と、入力した文字を用いた処理とを実行することができる。
【００４０】
ところで、携帯電話端末１は、仮想キーボード４から文字の入力を受け付ける場合、仮想キーボード４内のボタンを１つずつタップする方式だけではなく、連続方式による文字の入力も受け付ける。連続方式とは、利用者が指をタッチパネル２に接触させたまま仮想キーボード４上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル２に接触させたままで、「Ｗ」のボタン、「Ｅ」のボタン、「Ｔ」のボタンの順に滑るように移動させることで「ＷＥＴ」という文字列を入力することができる。
【００４１】
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル２上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
【００４２】
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード４の配列がＱＷＥＲＴＹ配列であり、利用者が上記の「ＷＥＴ」という単語を入力したいものとする。この場合、利用者の指は「Ｅ」のボタンから「Ｔ」のボタンへ移動する際に、それらのボタンの間にある「Ｒ」のボタン上を通過することになる。このため、「Ｒ」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「ＷＥＲＴ」という文字列が入力として受け付けられてしまう。
【００４３】
そこで、携帯電話端末１は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル２によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末１は、指の接触を開始する動作がタッチパネル２によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末１は、指の移動が終了しタッチパネル２から離れる動作がタッチパネル２によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
【００４４】
また、携帯電話端末１は、指がタッチパネル２に触れたまま移動方向を変更する動作がタッチパネル２によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末１は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
【００４５】
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図４に示すように進入時の移動方向（ベクトル）を示すＶ１と脱出時の移動方向を示すＶ２の角度差は小さくなると考えられるためである。また、図５に示すように進入時の移動方向を示すＶ３と脱出時の移動方向を示すＶ４の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
【００４６】
また、携帯電話端末１は、図６に示すように、指がタッチパネル２に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル２によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
【００４７】
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「Ｗ」という文字を３回連続して入力したい場合、利用者は「Ｗ」のボタン領域内で円を３回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が３６０度を超える度に１回転とカウントすることにより、回転数をカウントすることができる。
【００４８】
利用者が携帯電話端末１に「エレクトロニクス（ＥＲＥＫＵＴＯＲＯＮＩＫＵＳＵ）」と入力する場合の操作例を図７に示す。ｓ２２１では、「Ｅ」のボタン領域内に指が置かれた後、指がタッチパネル２に触れたまま、「Ｒ」、「Ｅ」、「Ｈ」、「Ｊ」、「Ｋ」の順にボタンの上を通過している。この場合、携帯電話端末１は、指が置かれた「Ｅ」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「Ｒ」、「Ｅ」、「Ｋ」のボタンが意図的に触れられたと判断する。
【００４９】
ｓ２２２では、指がタッチパネル２に触れたまま、「Ｕ」、「Ｙ」、「Ｔ」、「Ｙ」、「Ｕ」、「Ｉ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｕ」、「Ｔ」のボタンが意図的に触れられたと判断する。ｓ２２３では、指がタッチパネル２に触れたまま、「Ｏ」、「Ｉ」、「Ｕ」、「Ｙ」、「Ｔ」、「Ｒ」、「Ｔ」、「Ｙ」、「Ｕ」、「Ｉ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｏ」、「Ｒ」のボタンが意図的に触れられたと判断する。
【００５０】
ｓ２２４では、指がタッチパネル２に触れたまま、「Ｏ」、「Ｋ」、「Ｎ」、「Ｊ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｏ」、「Ｎ」のボタンが意図的に触れられたと判断する。ｓ２２５では、指がタッチパネル２に触れたまま、「Ｉ」、「Ｋ」、「Ｕ」、「Ｇ」、「Ｆ」、「Ｄ」、「Ｓ」、「Ｒ」、「Ｔ」、「Ｙ」の順にボタンの上を通過している。この場合、携帯電話端末１は、進入方向と脱出方向の角度差が閾値よりも大きい「Ｉ」、「Ｋ」、「Ｕ」、「Ｓ」のボタンが意図的に触れられたと判断する。
【００５１】
ｓ２２６では、タッチパネル２に触れたまま「Ｕ」のボタンへ移動した指が、「Ｕ」のボタン領域内でタッチパネル２から離れている。この場合、携帯電話端末１は、指がタッチパネル２から離れた位置にある「Ｕ」のボタンが意図的に触れられたと判断する。
【００５２】
以上の操作により、携帯電話端末１は、「Ｅ」、「Ｒ」、「Ｅ」、「Ｋ」、「Ｕ」、「Ｔ」、「Ｏ」、「Ｒ」、「Ｏ」、「Ｎ」、「Ｉ」、「Ｋ」、「Ｕ」、「Ｓ」、「Ｕ」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス（ＥＲＥＫＵＴＯＲＯＮＩＫＵＳＵ）」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【００５３】
図７の例が示すように、携帯電話端末１は、利用者の指がタッチパネル２に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末１に対して文字を高速かつ正確に入力することができる。
【００５４】
なお、携帯電話端末１は、単に指が通過したに過ぎないと判定したボタンに対応する文字を無視するのではなく、入力精度を向上させるためにそれらの文字を利用する。具体的には、携帯電話端末１は、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列を辞書と照合し、該当する単語が見つからない場合は、単に指が通過したに過ぎないと判定したボタンに対応する文字を補完して辞書との照合をやり直して正当な単語を見つけ出す。
【００５５】
例えば、利用者が携帯電話端末１に対して「ＷＥＴ」という単語を入力したい場合、利用者は、「Ｗ」のボタン領域内に指を置いた後、タッチパネル２に触れたまま指を「Ｔ」のボタンの方向へ移動させ、「Ｔ」のボタン領域内で指をタッチパネル２から離す。この場合、指が置かれた「Ｗ」のボタンと指が離れた「Ｔ」のボタンは意図的に触れられたと判定されるが、指が移動する軌道上にある「Ｅ」と「Ｒ」のボタンは、進入方向と脱出方向の角度差が小さいため、単に通過したに過ぎないと判定される。
【００５６】
しかしながら、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列である「ＷＴ」は辞書に存在しない。そこで、携帯電話端末１は、単に通過したに過ぎないと判定したボタンに対応する文字を時系列に補完して、「ＷＥＴ」、「ＷＲＴ」、「ＷＥＲＴ」という候補を作成し、各候補を辞書と照合する。この場合、「ＷＥＴ」という単語が辞書に含まれるため、携帯電話端末１は、「ＷＥＴ」を入力された文字として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【００５７】
ところで、「ＷＥＴ」という単語を入力する場合、利用者は、タッチパネル２に触れたまま指を「Ｗ」のボタンから「Ｔ」のボタンの方向へ移動させる最中に、「Ｅ」のボタンの中で回転する軌道を描いてもよい。このような操作をすることにより、利用者は、「Ｅ」のボタンに意図的に触れたことを携帯電話端末１に明示的に示して、入力した文字列の識別精度を向上させることができる。
【００５８】
次に、携帯電話端末１の機能と制御部との関係を説明する。図８は、図１に示す携帯電話端末１の機能の概略構成を示すブロック図である。図８に示すように携帯電話端末１は、タッチパネル２と、入力部３と、電源部５と、通信部６と、スピーカ７と、マイク８と、記憶部９と、主制御部１０と、ＲＡＭ（Random  Access  Memory）１１とを有する。
【００５９】
タッチパネル２は、表示部２Ｂと、表示部２Ｂに重畳されたタッチセンサ２Ａとを有する。タッチセンサ２Ａは、指を用いてタッチパネル２に対して行われた各種動作を、動作が行われた場所のタッチパネル２上での位置とともに検出する。タッチセンサ２Ａによって検出される動作には、指をタッチパネル２の表面に接触させる動作や、指をタッチパネル２の表面に接触させたまま移動させる動作や、指をタッチパネル２の表面から離す動作が含まれる。なお、タッチセンサ２Ａは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部２Ｂは、例えば、液晶ディスプレイ（ＬＣＤ、Liquid  Crystal  Display）や、有機ＥＬ（Organic  Electro−Luminescence）パネルなどで構成され、文字、図形、画像等を表示する。
【００６０】
入力部３は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部１０へ送信する。電源部５は、蓄電池または外部電源から得られる電力を、主制御部１０を含む携帯電話端末１の各機能部へ供給する。通信部６は、基地局によって割り当てられるチャネルを介し、基地局との間でＣＤＭＡ方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ７は、電話通信における相手側の音声や着信音等を出力する。マイク８は、利用者等の音声を電気的な信号へ変換する。
【００６１】
記憶部９は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部１０での処理に利用されるプログラムやデータを保存する。具体的には、記憶部９は、メールの送受信や閲覧のためのメールプログラム９Ａや、ＷＥＢページの閲覧のためのブラウザプログラム９Ｂや、図２に示したような文字入力を実現するための文字入力プログラム９Ｃを記憶する。
【００６２】
また、記憶部９は、文字入力時にタッチパネル２に表示される仮想キーボード４に関する定義を含む仮想キーボードデータ９Ｄや、正当な文字列が登録された辞書データ９Ｅや、オブジェクトの本体であるオブジェクトデータ９Ｆや、オブジェクトの属性情報が格納される属性データ９Ｇを記憶する。オブジェクトデータ９Ｆと属性データ９Ｇは、共通のＩＤ等によって対応付けられる。なお、オブジェクトの属性情報を属性データ９Ｇに格納するのではなく、オブジェクトデータ９Ｆ内に埋め込むこととしてもよい。
【００６３】
記憶部９には、携帯電話端末１の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
【００６４】
主制御部１０は、例えば、ＣＰＵ（Central  Processing  Unit）であり、携帯電話端末１の動作を統括的に制御する。具体的には、主制御部１０は、記憶部９に記憶されているデータを必要に応じて参照しつつ、記憶部９に記憶されているプログラムを実行して、タッチパネル２、通信部６等を制御することによって各種処理を実行する。主制御部１０は、記憶部９に記憶されているプログラムや、処理を実行することによって取得／生成／加工されたデータを、一時的な記憶領域を提供するＲＡＭ１１に必要に応じて展開する。なお、主制御部１０が実行するプログラムや参照するデータは、通信部６による無線通信でサーバ装置からダウンロードすることとしてもよい。
【００６５】
ここで、記憶部９が記憶する仮想キーボードデータ９Ｄの一例を図９に示す。図９の例に示すように、仮想キーボードデータ９Ｄには、仮想キーボード４に含まれるボタン毎に、ボタンに対応する文字、ボタンの位置（例えば、左上座標）、幅、高さ等が登録される。図９に示す例では、あるボタンに対応する文字が「Ｑ」であり、そのボタンの左上座標がｘ＝１０、ｙ＝１０であり、そのボタンの幅と高さが２０と４０であること等が登録されている。
【００６６】
次に、携帯電話端末１が文字入力を受け付ける場合の動作について説明する。図１０は、携帯電話端末１が文字入力を受け付ける場合の処理手順を示すフロー図である。図１０に示す属性情報入力処理は、主制御部１０が記憶部９から文字入力プログラム９Ｃを読み出して実行することにより実現される。
【００６７】
まず、ステップＳ１として、タッチパネル２に指が触れるタッチ操作をタッチパネル２が検出すると、携帯電話端末１の主制御部１０は、ステップＳ２として、タッチパネル２に触れたままで指が移動するスライド操作が、タッチ操作に続けて、タッチパネル２によって検出されたかを判定する。ここで、スライド操作が検出されなかった場合は（ステップＳ２，Ｎｏ）、主制御部１０は、ステップＳ３として、タッチパネル２に表示されている画面に応じた通常の処理を実行する。
【００６８】
一方、スライド操作が検出された場合は（ステップＳ２，Ｙｅｓ）、主制御部１０は、ステップＳ４として、軌跡履歴データをクリアする。軌跡履歴データは、指がタッチパネル２に触れたまま移動し、指がタッチパネル２から離れるまでの軌跡が記録されるデータであり、ＲＡＭ１１または記憶部９に保持される。軌跡履歴データには複数の軌跡を記録することができるが、各軌跡は、指の接触が検出された位置の座標の集合として構成されていてもよいし、指の接触が検出された位置と移動方向を示すベクトルの集合として構成されていてもよい。
【００６９】
そして、主制御部１０は、ステップＳ５として、指がタッチパネル２から離れるまで指の動きを追跡し、指がタッチパネル２から離れたことがタッチパネル２によって検出されると、指がタッチパネル２に触れたまま移動した軌跡を軌跡履歴データに追記記録する。そして、主制御部１０は、ステップＳ６として、後述する手書き入力判定処理を実行する。手書き入力判定処理では、軌跡履歴データに基づいて、手書き方式による文字入力の途中であるか否かが判定され、文字入力が完了したと判定された場合には、文字認識処理によって文字の認識が行われる。
【００７０】
そして、手書き入力判定処理によって手書き方式による文字入力の途中であると判定された場合（ステップＳ７，Ｙｅｓ）、主制御部１０は、ステップＳ８として、タッチパネル２によってタッチ操作が検出されるのを一定時間待つ。ここでの一定時間はごく短い時間であることが好ましい。そして、主制御部１０は、タッチ操作が検出された場合には（ステップＳ９，Ｙｅｓ）、ステップＳ５へ戻って、指の動きの追跡と軌跡の記録を行い、タッチ操作が検出されない場合には（ステップＳ９，Ｎｏ）、ステップＳ６へ戻って、手書き入力判定処理を実行する。
【００７１】
また、主制御部１０は、手書き入力判定処理によって手書き方式による文字入力が完了したと判定された場合は（ステップＳ７，Ｎｏ）、ステップＳ１０として、手書き入力判定処理によって文字が認識されたかどうかを確認する。そして、文字が認識されていた場合は（ステップＳ１０，Ｙｅｓ）、主制御部１０は、ステップＳ１１として、仮想キーボード４をタッチパネル２に表示する。
【００７２】
続いて、主制御部１０は、ステップＳ１２として、後述する文字入力処理を実行して、仮想キーボード４からの文字入力を受け付ける。そして、主制御部１０は、ステップＳ１３として、入力された文字を用いて、所定の処理を実行する。ステップＳ１３にて用いられる文字は、手書き入力判定処理によって認識された文字と、仮想キーボード４から入力を受け付けた文字とを連結させたものである。
【００７３】
一方、手書き入力判定処理によって文字が認識されなかった場合（ステップＳ１０，Ｎｏ）、主制御部１０は、ステップＳ１４として、軌跡履歴データに記録されている軌跡の通りに指がタッチパネル２に触れながら移動した場合に通常行われる処理を実行する。
【００７４】
次に、図１１に示したフロー図を参照しながら、図１０のステップＳ６で実行される手書き入力判定処理について説明する。
【００７５】
まず、主制御部１０は、ステップＳ２０として、最初にタッチ操作が検出されてからの経過時間（図１０のステップＳ１からの経過時間）である総経過時間を取得する。また、主制御部１０は、ステップＳ２１として、最後に指がタッチパネル２から離れてからの経過時間である操作待ち時間を取得する。
【００７６】
そして、主制御部１０は、ステップＳ２２として、操作待ち時間を最大待ち時間と比較する。最大待ち時間とは、上述したように、手書き方式で１つの字画の入力を完了してから次の字画の入力を開始するのに十分な時間である。なお、最大待ち時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
【００７７】
操作待ち時間が最大待ち時間より長い場合、利用者は、手書き方式による文字の入力を完了していると考えられる。そこで、操作待ち時間が最大待ち時間より長い場合には（ステップＳ２２，Ｙｅｓ）、主制御部１０は、ステップＳ２３として、総経過時間を最小経過時間と比較する。最小経過時間とは、手書き方式で１つの文字を入力する場合に少なくとも必要な時間である。なお、最小経過時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
【００７８】
そして、総経過時間が最小経過時間以下の場合（ステップＳ２３，Ｎｏ）、主制御部１０は、ステップＳ２４として、文字が認識されなかった旨を判定結果として手書き入力判定処理を終了させる。このように、主制御部１０は、総経過時間から判断して文字が入力されていないことが明らかな場合には、比較的負荷が重い処理である文字認識処理を実行することなく、文字が認識されないと判定する。
【００７９】
一方、総経過時間が最小経過時間より長い場合（ステップＳ２３，Ｙｅｓ）、主制御部１０は、ステップＳ２５として、軌跡履歴データに基づいて文字認識処理を実行する。そして、文字認識処理によって文字が認識された場合（ステップＳ２６，Ｙｅｓ）、主制御部１０は、ステップＳ２７として、文字が認識された旨を判定結果として手書き入力判定処理を終了させる。また、文字認識処理によって文字が認識されなった場合（ステップＳ２６，Ｎｏ）、主制御部１０は、ステップＳ２４として、文字が認識されなかった旨を判定結果として手書き入力判定処理を終了させる。
【００８０】
また、ステップＳ２２で操作待ち時間が最大待ち時間以下だった場合には（ステップＳ２２，Ｎｏ）、主制御部１０は、ステップＳ２８として、総経過時間を最大経過時間と比較する。最大経過時間とは、上述したように、手書き方式で１つの文字を入力するのに十分な時間である。なお、最大経過時間は、予め固定的に設定されていてもよいし、利用者によって変更可能になっていてもよい。
【００８１】
総経過時間が最大経過時間より長い場合、利用者は、手書き方式による文字の入力を完了していると考えられる。そこで、総経過時間が最大経過時間より長い場合には（ステップＳ２８，Ｙｅｓ）、主制御部１０は、既に説明したステップＳ２５以降の、文字認識処理とそれに伴う処理を実行する。
【００８２】
一方、総経過時間が最大経過時間以下の場合、利用者は、また手書き方式による文字の入力を完了していない可能性がある。そこで、総経過時間が最大経過時間以下の場合には（ステップＳ２８，Ｎｏ）、主制御部１０は、ステップＳ２９として、入力途中である旨を判定結果として手書き入力判定処理を終了させる。
【００８３】
次に、図１２に示したフロー図を参照しながら、図１０のステップＳ１２で実行される文字入力処理について説明する。なお、以下に説明する文字入力処理は、利用者がタッチパネル２から指を離すことを文字入力の終了条件とするものであり、比較的短い文字列を連続方式で入力する場合に適している。仮想キーボード４内のボタンを１つずつタップして文字を入力することを認める場合や、比較的長い文字列の入力が必要な場合は、以下に説明する文字入力処理を何度も繰り返して実行することとし、図２で説明した完了ボタンのタップ等を文字入力の終了条件とすることが好ましい。
【００８４】
まず、主制御部１０は、ステップＳ３０として、入力文字バッファ１２をクリアし、ステップＳ３１として、一時バッファ１３をクリアする。入力文字バッファ１２は、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が優先度と対応づけて格納される記憶領域であり、ＲＡＭ１１に設けられる。一時バッファ１３は、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンのうち、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が一時的に格納される記憶領域であり、ＲＡＭ１１に設けられる。
【００８５】
入力文字バッファ１２の一例を図１３に示す。図１３は、タッチパネル２に対して図７に示した操作が行われた場合の入力文字バッファ１２を示している。図１３の例において、入力文字バッファ１２の上段には、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が格納され、下段には、上段の文字に対応づけられた優先度が格納されている。図１３の例が示すように、入力文字バッファ１２には、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が時系列に格納される。
【００８６】
優先度は、入力文字バッファ１２に含まれる文字を連結して文字列を構成する際に、対応付けられた文字を採用するか否かを決定するために用いられる。本実施例では、優先度の値が小さいほど、対応付けられた文字が優先的に採用されることとする。具体的には、指が意図的に触れたと判断されたボタンに対応する文字には優先度として「１」を対応付け、指が単に通過したに過ぎないと判断されたボタンに対応する文字には優先度として「２」を対応付ける。
【００８７】
一時バッファ１３の一例を図１４に示す。図１４は、図７のＳ２１において指が「Ｊ」のボタンから出た時点での一時バッファ１３を示している。図１４の例が示すように、一時バッファ１３には、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が、指がいずれかのボタンに意図的に触れたと判定されるまで、時系列に格納される。
【００８８】
入力文字バッファ１２と一時バッファ１３のクリアを終えると、主制御部１０は、ステップＳ３２として、ＲＡＭ１１に設けた入力完了フラグを０に設定する。入力完了フラグは、１回分の文字入力が完了したか否かを判定するために用いられる。ここでいう１回分の文字入力とは、指をタッチパネル２に接触させてから離すまでの間に行われる文字入力を意味する。
【００８９】
続いて、主制御部１０は、ステップＳ３３として、タッチパネル２の最新の検出結果を取得し、ステップＳ３４として、文字入力判定処理を実行する。文字入力判定処理において、主制御部１０は、指がタッチパネル２に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファ１２や一時バッファ１３に格納していく。なお、文字入力判定処理の詳細については後述する。
【００９０】
文字入力判定処理の実行後、主制御部１０は、ステップＳ３５として、入力完了フラグが０のままであるかを判定する。ここで、入力完了フラグが０のままである場合、すなわち、１回分の文字入力がまだ完了していない場合（ステップＳ３５，Ｙｅｓ）、主制御部１０は、ステップＳ３６として、文字列検索処理を実行して、手書き入力判定処理で認識された文字と入力文字バッファ１２に格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。なお、文字列検索処理の詳細については後述する。
【００９１】
続いて、主制御部１０は、ステップＳ３７として、文字列検索処理によって得られた１ないし複数の文字列を図１５に示すように入力文字列候補表示領域１４に表示する。そして、主制御部１０は、入力完了フラグが０でない、すなわち、１回分の文字入力が完了したとステップＳ３５で判定されるまで、ステップＳ３３〜ステップＳ３７を繰り返して実行する。
【００９２】
ステップＳ３５で入力完了フラグが０でなくなっていた場合（ステップＳ３５，Ｎｏ）、主制御部１０は、ステップＳ３８として、文字列検索処理を実行して、手書き入力判定処理で認識された文字と入力文字バッファ１２に格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。ここで、文字列検索処理の処理結果として得られた文字列が１つだけであった場合（ステップＳ３９，Ｙｅｓ）、主制御部１０は、ステップＳ４０として、文字列検索処理の処理結果として得られた文字列を入力された文字列として受け付ける。
【００９３】
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合（ステップＳ３９，Ｎｏ）、主制御部１０は、ステップＳ４１として、文字列検索処理の処理結果として得られた複数の文字列を図１５に示すように入力文字列候補表示領域１４に表示する。そして、主制御部１０は、ステップＳ４２として、タッチパネル２の最新の検出結果を取得し、ステップＳ４３として、入力文字列候補表示領域１４に表示した文字列のいずれかが選択されたかを判定する。
【００９４】
ここで、いずれの文字列も選択されていなければ（ステップＳ４３，Ｎｏ）、主制御部１０は、いずれかの文字列が選択されるまで、ステップＳ４２〜ステップＳ４３を繰り返して実行する。なお、ステップＳ４２において利用者の指が入力文字列候補表示領域１４以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部１０が、文字入力処理を終了させることとしてもよい。
【００９５】
ステップＳ４３で入力文字列候補表示領域１４に表示した文字列のいずれかが選択されていた場合（ステップＳ４３，Ｙｅｓ）、主制御部１０は、ステップＳ４４として、選択された文字列を入力された文字列として受け付ける。
【００９６】
次に、図１６に示したフロー図を参照しながら、図１２のステップＳ３４で実行される文字入力判定処理について説明する。主制御部１０は、ステップＳ５０として、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作、すなわち、指をタッチパネル２の表面に接触させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００９７】
検出された動作がタッチパネル２への接触を開始する動作であった場合（ステップＳ５０，Ｙｅｓ）、主制御部１０は、ステップＳ５１として、接触が開始された位置を仮想キーボードデータ９Ｄと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合（ステップＳ５１，Ｙｅｓ）、ボタンは意図して触れられたと考えられるので、主制御部１０は、ステップＳ５２として、そのボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。ボタンに対応する文字は、仮想キーボードデータ９Ｄから取得される。
【００９８】
そして、主制御部１０は、ステップＳ５３として、出力フラグを「１」に設定して文字入力判定処理を終了させる。出力フラグは、ＲＡＭ１１に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ１２または一時バッファ１３に出力済みであるか否かを判定するために用いられる。出力フラグの値が「０」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「１」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
【００９９】
ステップＳ５１において、接触が開始された位置がボタン領域内でなかった場合（ステップＳ５１，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【０１００】
ステップＳ５０において、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作でなかった場合（ステップＳ５０，Ｎｏ）、主制御部１０は、ステップＳ５４として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【０１０１】
検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であった場合（ステップＳ５４，Ｙｅｓ）、主制御部１０は、ステップＳ５５として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、ＲＡＭ１１に記憶される。
【０１０２】
続いて、主制御部１０は、ステップＳ５６として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ５７として、出力フラグを「０」に設定して文字入力判定処理を終了させる。
【０１０３】
なお、タッチパネル２の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル２の検出結果から取得される。タッチパネル２の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
【０１０４】
ステップＳ５４において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合（ステップＳ５４，Ｎｏ）、主制御部１０は、ステップＳ５８として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【０１０５】
検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であった場合（ステップＳ５８，Ｙｅｓ）、主制御部１０は、ステップＳ５９として、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合（ステップＳ５９，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【０１０６】
一方、出力フラグが「０」であった場合（ステップＳ５９，Ｙｅｓ）、主制御部１０は、ステップＳ６０として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
【０１０７】
算出された角度差が所定の閾値以下の場合（ステップＳ６１，Ｎｏ）、指は単にボタンを通過したに過ぎないと考えられるため、主制御部１０は、ステップＳ６２として、そのボタンに対応する文字を一時バッファ１３に追加して文字入力判定処理を終了させる。
【０１０８】
一方、算出された角度差が所定の閾値より大きい場合（ステップＳ６１，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ６３以降の処理手順を実行する。
【０１０９】
ステップＳ６３として、主制御部１０は、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加し、続いて、ステップＳ６４として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。そして、主制御部１０は、ステップＳ６５として、一時バッファ１３をクリアして文字入力判定処理を終了させる。
【０１１０】
ステップＳ５８において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作でなかった場合（ステップＳ５８，Ｎｏ）、主制御部１０は、ステップＳ６６として、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作、すなわち、指をタッチパネル２から離す動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【０１１１】
検出された動作がタッチパネル２への接触を終了させる動作であった場合（ステップＳ６６，Ｙｅｓ）、主制御部１０は、ステップＳ６７として、接触が終了された位置を仮想キーボードデータ９Ｄと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合（ステップＳ６７，Ｙｅｓ）、ボタンは意図して触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ６８以降の処理手順を実行する。
【０１１２】
ステップＳ６８として、主制御部１０は、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合（ステップＳ６８，Ｙｅｓ）、主制御部１０は、ステップＳ６９として、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加する。そして、主制御部１０は、ステップＳ７０として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。
【０１１３】
そして、タッチパネル２への接触を終了させる動作が行われたということは、一回分の文字入力が完了したことを意味するので、主制御部１０は、ステップＳ７１として、入力完了フラグを「１」に設定して文字入力判定処理を終了させる。
【０１１４】
接触が終了された位置がボタン領域内でなかった場合（ステップＳ６７，Ｎｏ）、または、出力フラグが「０」でなかった場合（ステップＳ６８，Ｎｏ）、主制御部１０は、ステップＳ７１として、入力完了フラグを「１」に設定する処理のみを行って文字入力判定処理を終了させる。
【０１１５】
なお、接触が終了された位置がボタン領域内でなかった場合、または、出力フラグが「０」でなかった場合に、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加することとしてもよい。
【０１１６】
ステップＳ６６において、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作でなかった場合（ステップＳ６６，Ｎｏ）、主制御部１０は、ステップＳ７２として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【０１１７】
検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であった場合（ステップＳ７２，Ｙｅｓ）、主制御部１０は、ステップＳ７３として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ７４として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
【０１１８】
ここで、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動していた場合（ステップＳ７４，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ１２に格納されるように、ステップＳ７５以降の処理手順を実行する。
【０１１９】
ステップＳ７５として、主制御部１０は、一時バッファ１３に格納されている文字を優先度「２」と対応付けて入力文字バッファ１２へ追加し、続いて、ステップＳ７６として、ボタンに対応する文字を優先度「１」と対応付けて入力文字バッファ１２に追加する。そして、主制御部１０は、ステップＳ７７として、出力フラグを「１」に設定し、ステップＳ７８として、移動方向履歴をクリアして文字入力判定処理を終了させる。
【０１２０】
ステップＳ７２において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード４上のボタン外を移動していた場合（ステップＳ７２，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。また、ステップＳ７４において、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動していなかった場合も（ステップＳ７４，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【０１２１】
なお、タッチパネル２への接触を保ったまま指を仮想キーボード４の外へ出す動作が検出された場合に、タッチパネル２への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル２への接触を保ったまま指を仮想キーボード４の中へ移動させる動作が検出された場合に、タッチパネル２への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、一回分の文字入力を終えた後に、指を上げ下げすることなくタッチパネル２への接触を保ったまま、迅速に次の入力に移ることが可能になる。
【０１２２】
次に、図１７に示したフロー図を参照しながら、図１２のステップＳ３６およびステップＳ３８で実行される文字列検索処理について説明する。主制御部１０は、ステップＳ９０として、入力文字バッファ１２から優先度が「１」である文字を取得し、手書き入力判定処理で認識された文字と、優先度が「１」の文字を組み合わせて第１候補文字列を生成する。
【０１２３】
例えば、手書き入力判定処理で「Ｘ」という文字が認識され、また、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」という４つの文字がこの順序で入力文字バッファ１２に時系列に格納され、「Ａ」と「Ｄ」の優先度が「１」で、「Ｂ」と「Ｃ」の優先度が「２」であったものとする。この場合、主制御部１０は、手書き入力判定処理で認識された文字と、優先度が「１」の文字とを時系列に連結して「ＸＡＤ」という第１候補文字列を生成する。
【０１２４】
続いて、主制御部１０は、ステップＳ９１として、第１候補文字列にマッチする文字列を辞書データ９Ｅから検索する。
【０１２５】
本実施例では、例えば第１候補文字列が「ＸＡＤ」の場合、「Ｘ＊Ａ＊Ｄ」というパターンにマッチする文字列が辞書データ９Ｅから検索されるものとする。ここで、「＊」は、任意の文字にマッチするワイルドカードである。すなわち、本実施例では、第１候補文字列と先頭の文字が一致し、第１候補文字列の２番目以降の各文字が、０個以上の文字を介在させて第１候補文字列と同じ順序で出現する文字列が、第１候補文字列とマッチすると文字列として検索される。
【０１２６】
このようにマッチングさせることにより、指によって意図的に触れられたことを判別できないボタンがあった場合でも、入力された文字列を正しく認識することができる可能性を高めることができる。
【０１２７】
検索結果として複数の文字列が得られた場合（ステップＳ９２，Ｙｅｓ）、主制御部１０は、検索結果を絞り込むために、ステップＳ９３として、入力文字バッファ１２から優先度が「２」である文字を取得し、取得した文字を第１候補文字列に補完して、１ないし複数の第２候補文字列を生成する。
【０１２８】
例えば、上記と同様に、手書き入力判定処理で「Ｘ」という文字が認識され、また、「Ａ」、「Ｂ」、「Ｃ」、「Ｄ」という４つの文字列がこの順序で入力文字バッファ１２に時系列に格納され、「Ａ」と「Ｄ」の優先度が「１」で、「Ｂ」と「Ｃ」の優先度が「２」であったものとする。この場合、主制御部１０は、格納順序を守りつつ、第１候補文字列である「ＸＡＤ」に優先度が「２」の文字を少なくとも１つ補完して、「ＸＡＢＤ」、「ＸＡＣＤ」、「ＸＡＢＣＤ」という３つの第２候補文字列を生成する。
【０１２９】
続いて、主制御部１０は、ステップＳ９４として、第２候補文字列のいずれかにマッチする文字列を辞書データ９Ｅから検索する。マッチングの方式は、第１候補文字列の場合と同様である。
【０１３０】
そして、ステップＳ９４において、いずれかの文字列が検索された場合（ステップＳ９５，Ｙｅｓ）、主制御部１０は、ステップＳ９６として、検索された文字列を検索結果として文字列検索処理を終了させる。一方、ステップＳ９４において、いずれの文字列も検索されなかった場合（ステップＳ９５，Ｎｏ）、主制御部１０は、ステップＳ９７として、ステップＳ９１において第１候補文字列とマッチした文字列を検索結果として文字列検索処理を終了させる。
【０１３１】
ステップＳ９１において検索結果として１つの文字列のみが得られた場合（ステップＳ９２，Ｎｏ、かつ、ステップＳ９８，Ｙｅｓ）、主制御部１０は、ステップＳ９６として、検索された文字列を検索結果として文字列検索処理を終了させる。ステップＳ９１において検索結果として１つの文字列も得られなかった場合（ステップＳ９８，Ｎｏ）、主制御部１０は、ステップＳ９９として、第１候補文字列、すなわち、優先度が「１」の文字を格納順に連結した文字列を検索結果として文字列検索処理を終了させる。
【０１３２】
上述してきたように、携帯電話端末１は、タッチパネル２に対して手書き方式での文字入力がなされると、仮想キーボード４をタッチパネル２に表示し、手書き方式で入力された文字と仮想キーボード方式で入力された文字を入力として受け付ける。このため、利用者は、余分な動作を行うことなく、手書き方式で文字入力を迅速に開始した後、仮装キーボード方式で文字を高速に入力できる。
【０１３３】
また、上述してきたように、携帯電話端末１は、指をタッチパネル２上でスライドさせる動作が検出された場合には、現在表示されている画面に固有の機能の実行を留保して文字の入力を受け付ける。そして、携帯電話端末１は、文字の入力が完了すると処理選択画面１６を表示して処理を選択させ、入力を受け付けた文字列を用いて、選択された処理を実行する。このため、利用者は、任意の画面で、文字の入力と、入力した文字を用いた処理とを実行することができる。
【０１３４】
なお、携帯電話端末１の構成は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば図２では、１つの文字の入力が終了したと推定される所定の条件が満たされた後に文字認識処理を実行することとしているが、ｓ２０２でタップ操作が検出されて以降、文字認識処理を継続的に実行し、手書き方式で入力された文字が文字認識処理によって認識された場合は、所定の条件が満たされていなくても、仮想キーボード４をタッチパネル２に表示することとしてもよい。
【０１３５】
また、図２に示した例では、入力された文字を用いて実行する処理を利用者に選択させる例を示したが、入力された文字に応じた機能を携帯電話端末１が判定して起動するようにしてもよい。具体的には、入力された文字が特定の機能の名称または略称である場合には、携帯電話端末１がその機能を起動することとしてもよい。この場合、図２に示したｓ２０７の場面では、携帯電話端末１は、入力された「かめら」に対応するカメラ機能を起動する。また、電話番号に相当する複数の数字が入力された場合には、携帯電話端末１が、入力された数字を宛先の電話番号として発呼を実行することとしてもよい。
【０１３６】
また、図２に示した例では、インターネット検索等の処理を実行するために文字を入力する例を示したが、図２で示した文字入力方式をオブジェクトの属性情報を入力するために用いることとしてもよい。ここで属性情報とは、オブジェクトの属性を示す文字情報であり、例えば、ファイル名、タイトル、コメント、作者名である。オブジェクトがアドレス帳の個人データである場合、氏名、電話番号、メールアドレス等も属性情報に含まれる。
【０１３７】
オブジェクトの属性情報の入力を受け付ける場合の携帯電話端末１の動作について図１８の例を参照しながら説明する。
【０１３８】
ｓ２３１では、携帯電話端末１は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル２に表示させている。オブジェクト閲覧画面にはオブジェクトＯＢ１〜ＯＢ１０のアイコンが表示されており、ｓ２３２では、利用者が、タッチパネル２上のオブジェクトＯＢ１のアイコンの表示領域内に指を置いている。携帯電話端末１は、オブジェクトＯＢ１のアイコンを反転表示にして、このアイコンが選択状態である旨を表示している。
【０１３９】
この状態から利用者が指をタッチパネル２から離すと、携帯電話端末１は、オブジェクトＯＢ１のアイコンがタップされたと判定して、オブジェクトＯＢ１に対して表示、再生、編集等の所定の処理を実行する。
【０１４０】
一方、ｓ２３３のように、利用者が、指をタッチパネル２に触れさせたままでオブジェクトＯＢ１のアイコンの表示領域外へ移動させた場合は、携帯電話端末１は、オブジェクトＯＢ１のアイコンの選択状態を保ったまま、オブジェクトＯＢ１に対する処理の実行を留保して、指の移動の軌跡を記録する。そして、携帯電話端末１は、所定の条件が満たされるまで、指の移動の軌跡の記録を継続する。この間に携帯電話端末１によって検出される軌跡には、ｓ２３４およびｓ２３５のように、利用者がタッチパネル２から指を一旦離して、タッチパネル２の別の位置に指を触れさせてから移動させた軌跡も含まれる。
【０１４１】
携帯電話端末１が指の移動の軌跡の記録を終了させる所定の条件は、１つの文字の入力が終了したと推定される条件であり、例えば、最初にタッチパネル２への指の接触が検出されてからの経過時間が最大経過時間を超過することや、最後に指がタッチパネル２から離れてからの経過時間が最大待ち時間を超過することである。
【０１４２】
そして、所定の条件が満たされると、携帯電話端末１は、記録した軌跡に基づいて文字認識処理を行う。例えば、ｓ２３５の段階で所定の条件が満たされたとすると、携帯電話端末１は、記録した軌跡に基づいて、「か」という文字を入力された文字として認識する。
【０１４３】
携帯電話端末１は、記録した軌跡に基づいて文字の認識に成功すると、ｓ２３６のように、タッチパネル２上に仮想キーボード４を表示する。また、携帯電話端末１は、入力中の文字列を出力するための入力文字表示画面１５をタッチパネル２上に表示して、認識した「か」を入力された最初の文字として入力文字表示画面１５に出力する。
【０１４４】
続いて、携帯電話端末１は、手書き方式で認識された文字の後続の文字として、仮想キーボード４から入力された文字を受け付ける。携帯電話端末１は、ｓ２３７では、「め」と「ら」の文字の入力を仮想キーボード４から受け付け、認識した「か」の後にこれらの文字を時系列に追加して、「かめら」という文字列を入力された文字列として入力文字表示画面１５に出力している。
【０１４５】
そして、携帯電話端末１は、入力文字表示画面１５の完了ボタンの表示領域内で指がタッチパネル２に触れるといった入力の完了を示す動作を検出すると、入力を受け付けた文字列を、選択状態にあるアイコンに対応するオブジェクトＯＢ１の属性情報として保存する。
【０１４６】
図１８に示す例では、携帯電話端末１は、ｓ２３８として、入力を受け付けた文字列をどの属性情報として保存するか選択を受け付けるための属性選択画面１７をタッチパネル２に表示している。属性選択画面１７には、「ファイル名」という選択肢と、「タイトル」という選択肢と、「コメント」という選択肢が含まれている。
【０１４７】
「ファイル名」が選択された場合、携帯電話端末１は、入力を受け付けた文字列をオブジェクトＯＢ１のファイル名として保存する。「タイトル」が選択された場合、携帯電話端末１は、入力を受け付けた文字列をオブジェクトＯＢ１のタイトルとして保存する。「コメント」が選択された場合、携帯電話端末１は、入力を受け付けた文字列をオブジェクトＯＢ１のコメントとして保存する。
【０１４８】
また、図２に示した例では、手書き方式で１つの文字が入力された後に仮想キーボード方式での文字入力が開始される例を示したが、手書き方式で複数の文字を入力できるようにしてもよい。手書き方式で複数の文字の入力を受け付ける場合の携帯電話端末１の動作について図１９の例を参照しながら説明する。
【０１４９】
ｓ２４１では、携帯電話端末１は、オブジェクトを閲覧するためのオブジェクト閲覧画面をタッチパネル２に表示させている。オブジェクト閲覧画面にはオブジェクトＯＢ１〜ＯＢ１０のアイコンが表示されており、ｓ２４２では、利用者が、タッチパネル２上のオブジェクトＯＢ１のアイコンの表示領域内に指を置いている。携帯電話端末１は、オブジェクトＯＢ１のアイコンを反転表示にして、このアイコンが選択状態である旨を示している。
【０１５０】
この状態から利用者が指をタッチパネルから離すと、携帯電話端末１は、オブジェクトＯＢ１のアイコンがタップされたと判定して、オブジェクトＯＢ１に対して表示、再生、編集等の所定の処理を実行する。
【０１５１】
一方、ｓ２４３のように、利用者が、指をタッチパネル２に触れさせたままでオブジェクトＯＢ１のアイコンの表示領域外へ移動させた場合は、携帯電話端末１は、オブジェクトＯＢ１のアイコンの選択状態を保ったまま、オブジェクトＯＢ１に対する処理の実行を留保して、指の移動の軌跡を記録する。また、携帯電話端末１は、入力中の文字列を出力するための入力文字表示画面１８をタッチパネル２上に表示する。
【０１５２】
そして、携帯電話端末１は、指がタッチパネル２に触れたままで入力文字表示画面１８の表示領域内に入ると、文字認識処理を実行して、それまでに記録していた軌跡に対応する文字を認識する。ｓ２４４のように、指がタッチパネル２に触れたままで「こ」の字体に相当する軌跡を描いて移動した後、ｓ２４５のように、指が入力文字表示画面１８の表示領域内に入ると、携帯電話端末１は、「こ」の文字を文字認識処理によって認識して入力文字表示画面１８に出力する。
【０１５３】
携帯電話端末１は、この段階で指が入力文字表示画面１８の「完了」ボタンの表示領域内に入ると、文字の入力の受け付けを完了し、指が「ＫＢ」ボタンの表示領域内に入ると、仮想キーボード４を表示して仮想キーボード方式での文字入力を受け付ける状態へ遷移する。また、指が「完了」ボタンと「ＫＢ」ボタンのいずれの表示領域内にも入らずに入力文字表示画面１８の表示領域から出た場合は、携帯電話端末１は、記録していた軌跡をクリアした後、手書き方式による文字の入力を再開する。
【０１５４】
ｓ２４６では、指が「完了」ボタンと「ＫＢ」ボタンのいずれの表示領域内にも入らずに入力文字表示画面１８の表示領域から出て、「い」の字体に相当する軌跡を描いて移動した後、入力文字表示画面１８の表示領域内に戻っている。この場合、携帯電話端末１は、「い」の文字を文字認識処理によって認識して入力文字表示画面１８に追加出力する。
【０１５５】
そして、ｓ２４７では、指が「完了」ボタンと「ＫＢ」ボタンのいずれの表示領域内にも入らずに入力文字表示画面１８の表示領域から出て、「ぬ」の字体に相当する軌跡を描いて移動した後、入力文字表示画面１８の表示領域内に戻り、「完了」ボタンの表示領域内に入っている。
【０１５６】
この場合、携帯電話端末１は、指が入力文字表示画面１８の表示領域内に戻った段階で、「ぬ」の文字を文字認識処理によって認識して入力文字表示画面１８に追加出力する。そして、携帯電話端末１は、指が「完了」ボタンの表示領域内に入った段階で、文字入力の受け付けを終了し、ｓ２４８のように、属性選択画面１７を表示して、入力を受け付けた文字である「こいぬ」を、どの属性情報として保存するかを選択させる。その後、携帯電話端末１は、入力を受け付けた文字である「こいぬ」を、選択状態にあるアイコンに対応するオブジェクトＯＢ１の属性情報として保存する。
【０１５７】
このように、手書き方式で複数の文字を入力できるようにすることにより、手書き方式でも容易に入力可能な簡単な文字については手書き方式での入力を継続し、複雑な文字の入力が必要になった場合には「ＫＢ」ボタン上に指を動かすだけで仮想キーボード方式へ移行するというように、手書き方式から仮想キーボード方式への遷移を利用者の意思で決定することが可能になる。
【０１５８】
なお、図１９の例では、手書き方式による文字の入力を一筆書きで行うこととしているが、図２の例で示したように文字の字画を１つずつ入力することとしてもよい。また、図１９の例では、属性情報の入力のために文字の入力を受け付けることとしているが、図２の例で示したように所定の処理に用いる文字の入力を受け付ける場合にも、手書き方式で複数の文字の入力を受け付けることとしてよい。また、図１９の例では、指が入力文字表示画面１８の表示領域内に入ることを１つの文字の入力が完了したと判断する条件としているが、図２の例で示したように、１つの文字の入力が完了したか否かを、最大待ち時間や最大経過時間を用いて判断することとしてもよい。
【０１５９】
また、図２に示した例では、仮想キーボード４を表示させる位置を特定していないが、手書き方式での文字の入力が完了した際の指の位置に応じて、仮想キーボード４を表示させる位置を調整することとしてもよい。仮想キーボード４の表示位置を調整する場合の携帯電話端末１の動作について図２０の例を参照しながら説明する。
【０１６０】
携帯電話端末１は、ｓ２５１で指が位置Ｐにあるときに手書き方式による文字の入力が完了したと判定し、入力された文字「か」を文字認識処理によって認識したものとする。この場合、携帯電話端末１は、ｓ２５２に示すように、接触が最後に検出された位置である位置Ｐが仮想キーボード４の表示領域に含まれるように仮想キーボード４の表示位置を調整する。
【０１６１】
ここで、文字認識処理によって認識した「か」に対応するボタンの表示領域に位置Ｐが含まれるように、仮想キーボード４のボタンの配列を変更することとしてもよい。図２０のｓ２５３では、携帯電話端末１は、５０音配列の仮想キーボード４のボタンを行単位でローテートさせることで、「か」に対応するボタンの表示領域に位置Ｐが含まれるようにしている。
【０１６２】
そして、ｓ２５４では、利用者が仮想キーボード４を用いて連続方式による文字の入力を開始している。このように、手書き方式での文字の入力が完了した際の指の位置（指の接触が最後に検出された位置）に応じて、仮想キーボード４を表示させる位置を調整することにより、利用者は、仮想キーボード方式での文字の入力を迅速に開始することができる。
【０１６３】
また、上記の実施例では、連続方式での文字入力において、指をタッチパネル２から離さずに移動させた軌跡上の各ボタンに対応する文字に優先度として「１」または「２」を対応付けることとしたが、文字に対応付ける優先度をさらに細分化してもよい。
【０１６４】
例えば、意図的に触れられたと判定されたボタンに対応する文字には優先度として「１」を対応付け、指が単に通過したに過ぎないと判定されたボタンに対応する文字については優先度として「２」〜「５」のいずれかの値を対応付けることとしてもよい。
【０１６５】
この場合、例えば、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指がボタンに進入したときの移動方向と指がボタンから出たときの移動方向の角度差が大きいほど高い優先度を対応付けることとしてもよい。角度差が大きいほど、意図的に触れられたボタンである可能性が高いためである。
【０１６６】
また、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指が通過した軌跡がボタンの中心に近いほど高い優先度を対応付けることとしてもよい。通過した軌跡がボタンの中心に近いほど、意図的に触れられたボタンである可能性が高いためである。
【０１６７】
そして、このように優先度を細分化した場合、文字列検索処理においては、優先度の高い文字ほど第２候補文字列の作成時に優先的に使用される。具体的には、優先度が「１」の文字を組み合わせた第１候補文字列に複数の文字列がマッチした場合、まず、優先度が「２」の文字を第１候補文字列に補完して検索結果の絞込みが試みられる。そして、優先度が「２」の文字を補完しても複数の文字列がマッチした場合、優先度が「３」の文字を第１候補文字列にさらに補完して検索結果の絞込みが試みられる。
【０１６８】
以下同様に、検索結果が１つに絞り込まれるまで、優先度が高い順に文字が補完に利用される。このように、優先度を細分化することにより、意図的に触れられた可能性が高い順に文字を組み合わせて検証対象の文字列を生成することができるため、入力された文字列の識別精度を向上させることができる。
【０１６９】
また、図１２を参照しながら説明した文字入力処理では、主制御部１０がタッチパネル２から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域１４に表示することとしているが、一回分の文字入力が完了するまではこのような表示は行わずに、一回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域１４に表示することとしてもよい。
【０１７０】
また、図１７を参照しながら説明した文字列検索処理における辞書データとのマッチング処理は、完全一致や前方一致等の他のマッチング方式を用いることとしてもよい。また、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
【０１７１】
また、上記の実施例では、連続方式での文字入力において、指がタッチパネル２に接触したまま移動した軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を優先して入力された文字列を識別することとしているが、本発明は、これに限定されるものではなく、指がタッチパネル２に接触したまま移動した軌跡上またはその近隣に表示されているボタンに対応する文字を含む文字列を入力された文字列として受け付けるものであればよい。
【０１７２】
また、上記の実施例では、連続方式での文字入力において、特定の動作として、ボタン領域内でタッチパネル２に接触する動作や、ボタン領域内でタッチパネル２から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
【０１７３】
また、図２に示した入力文字表示画面１５や処理選択画面１６、図１８に示した属性選択画面１７について、ボタンや選択肢の表示領域内で特定の動作が検出された場合に、そのボタンや選択肢が選択されるように構成してもよい。
【０１７４】
また、図３に示したｓ２０９の場面のように、記録した軌跡に基づく文字認識処理によっていずれの文字も認識されなかった場合には、携帯電話端末１を、タッチパネル２や入力部３に対して所定の操作が行われるまで受け付けた操作を無視する待機モードへ遷移させてもよい。このように構成することにより、携帯電話端末１をポケットにしまった場合等に、タッチパネル２が利用者の意図しない接触を検出して携帯電話端末１が誤動作することを防止できる。
【産業上の利用可能性】
【０１７５】
以上のように、本発明に係る文字入力装置は、タッチパネルを用いた文字の入力に有効であり、タッチパネルを用いた文字の入力を迅速に開始し、高速に文字を入力することが必要な場合に特に適している。
【符号の説明】
【０１７６】
１  携帯電話端末
２  タッチパネル
２Ａ  タッチセンサ
２Ｂ  表示部
３  入力部
３Ａ、３Ｂ、３Ｃ  ボタン
４  仮想キーボード
５  電源部
６  通信部
７  スピーカ
８  マイク
９  記憶部
９Ａ  メールプログラム
９Ｂ  ブラウザプログラム
９Ｃ  文字入力プログラム
９Ｄ  仮想キーボードデータ
９Ｅ  辞書データ
１０  主制御部
１１  ＲＡＭ
１２  入力文字バッファ
１３  一時バッファ
１４  入力文字列候補表示領域
１５  入力文字表示画面
１６  処理選択画面
１７  属性選択画面
【図１】
0005487226.tif 000002
【図２】
0005487226.tif 000003
【図３】
0005487226.tif 000004
【図４】
0005487226.tif 000005
【図５】
0005487226.tif 000006
【図６】
0005487226.tif 000007
【図７】
0005487226.tif 000008
【図８】
0005487226.tif 000009
【図９】
0005487226.tif 000010
【図１０】
0005487226.tif 000011
【図１１】
0005487226.tif 000012
【図１２】
0005487226.tif 000013
【図１３】
0005487226.tif 000014
【図１４】
0005487226.tif 000015
【図１５】
0005487226.tif 000016
【図１６】
0005487226.tif 000017
【図１７】
0005487226.tif 000018
【図１８】
0005487226.tif 000019
【図１９】
0005487226.tif 000020
【図２０】
0005487226.tif 000021