(57)【要約】【課題】タッチパネル上で高速に文字を入力することを可能にする文字入力装置、文字入力方法および文字入力プログラムを提供する。【解決手段】携帯電話端末（文字入力装置）１は、表面に対して行われた動作を検出するタッチパネル２と、タッチパネル２上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させる主制御部１０とを有する。主制御部１０は、タッチパネル２の表面の第１の位置で接触が開始され、タッチパネル２の表面の第２の位置で接触が終了する動作がタッチパネル２によって検出された場合に、第１の位置で接触が開始されてから第２の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完して得られた文字列を入力された文字列の候補としてタッチパネル２に表示させる。【選択図】図７
2012048588.tif 000002
【特許請求の範囲】
【請求項１】
表面に対する接触を検出するタッチパネルと、
前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させる制御部とを備えた文字入力装置であって、
前記制御部は、前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させることを特徴とする文字入力装置。
【請求項２】
辞書データを記憶する記憶部をさらに備え、
前記制御部は、前記子音と子音とが連続している部分に母音を補完して得られる複数の文字の並びと文字の順が一致する文字列を前記辞書データから抽出し、当該文字列を、入力された文字列の候補として前記タッチパネルに表示させることを特徴とする請求項１に記載の文字入力装置。
【請求項３】
前記制御部は、母音の補完を行う際、前記子音と子音とが連続している部分に対しては、当該部分の前方で最も近い位置に連結されている母音を補完することを特徴とする請求項１に記載の文字入力装置。
【請求項４】
前記制御部は、拗音文字の入力に用いられる子音が連続している部分に母音を補完せずに得られる複数の文字の並び順によって特定される文字列を、入力された文字列の候補にさらに含めることを特徴とする請求項１から３のいずれか１項に記載の文字入力装置。
【請求項５】
前記制御部は、前記軌跡上に表示されているボタンのうち、特定の動作が検出された位置に表示されているボタンに対応する文字を時系列に連結することを特徴とする請求項１から４のいずれか１項に記載の文字入力装置。
【請求項６】
前記制御部は、接触を開始する動作を前記特定の動作の１つと判定することを特徴とする請求項５に記載の文字入力装置。
【請求項７】
前記制御部は、接触を終了する動作を前記特定の動作の１つと判定することを特徴とする請求項５または６に記載の文字入力装置。
【請求項８】
前記制御部は、移動方向を変化させる動作を前記特定の動作の１つと判定することを特徴とする請求項５から７のいずれか１項に記載の文字入力装置。
【請求項９】
前記制御部は、特定の形状の軌跡を描く動作を前記特定の動作の１つと判定することを特徴とする請求項５から８のいずれか１項に記載の文字入力装置。
【請求項１０】
前記制御部は、全てのアルファベットに対応するボタンを任意の配置で表示することを特徴とする請求項１から９のいずれか１項に記載の文字入力装置。
【請求項１１】
表面に対する接触を検出するタッチパネルを有する文字入力装置によって実行される文字入力方法であって、
前記文字入力装置が、前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させるステップと、
前記文字入力装置が、前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させるステップと
を含むことを特徴とする文字入力方法。
【請求項１２】
表面に対する接触を検出するタッチパネルを有する文字入力装置に、
前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させるステップと、
前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させるステップと
を実行させることを特徴とする文字入力プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、文字入力装置、文字入力方法および文字入力プログラムに関する。
【背景技術】
【０００２】
近年、直感的な操作を可能にするとともに、キーボードのように物理的に大きな面積を必要とするデバイスを具備しない小型の文字入力装置を実現するために、タッチパネルが広く利用されるようになっている。タッチパネルを用いて文字を入力するための技術として、タッチパネル上で文字を手書き入力する技術（例えば、特許文献１）と、タッチパネル上に表示された仮想的なキーボード（以下、「仮想キーボード」という）を用いて文字を入力する技術（例えば、特許文献２）が知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１４１４４８号公報
【特許文献２】特開２００８−１０８２３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、タッチパネル上で文字を手書き入力する従来技術には、入力と文字認識処理に時間がかかるため高速な文字入力が困難であるという問題があった。また、仮想キーボードを用いて文字を入力する従来技術でも、入力したい文字に対応するキーごとに指をタッチパネルに対して上げ下げする動作を繰り返す必要があったため、高速な文字入力が困難であった。
【０００５】
本発明は、上記に鑑みてなされたものであって、タッチパネル上で高速に文字を入力することを可能にする文字入力装置、文字入力方法および文字入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、表面に対する接触を検出するタッチパネルと、前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させる制御部とを備えた文字入力装置であって、前記制御部は、前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させることを特徴とする。
【０００７】
ここで、文字入力装置が、辞書データを記憶する記憶部をさらに備え、前記制御部は、前記子音と子音とが連続している部分に母音を補完して得られる複数の文字の並びと文字の順が一致する文字列を前記辞書データから抽出し、当該文字列を、入力された文字列の候補として前記タッチパネルに表示させることが好ましい。
【０００８】
また、前記制御部は、母音の補完を行う際、前記子音と子音とが連続している部分に対しては、当該部分の前方で最も近い位置に連結されている母音を補完することが好ましい。
【０００９】
また、前記制御部は、拗音文字の入力に用いられる子音が連続している部分に母音を補完せずに得られる複数の文字の並び順によって特定される文字列を、入力された文字列の候補にさらに含めることが好ましい。
【００１０】
また、前記制御部は、前記軌跡上に表示されているボタンのうち、特定の動作が検出された位置に表示されているボタンに対応する文字を時系列に連結することが好ましい。
【００１１】
また、前記制御部は、接触を開始する動作を前記特定の動作の１つと判定することが好ましい。
【００１２】
また、前記制御部は、接触を終了する動作を前記特定の動作の１つと判定することが好ましい。
【００１３】
また、前記制御部は、移動方向を変化させる動作を前記特定の動作の１つと判定することが好ましい。
【００１４】
また、前記制御部は、特定の形状の軌跡を描く動作を前記特定の動作の１つと判定することが好ましい。
【００１５】
また、前記制御部は、全てのアルファベットに対応するボタンを任意の配置で表示することが好ましい。
【００１６】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対する接触を検出するタッチパネルを有する文字入力装置によって実行される文字入力方法であって、前記文字入力装置が、前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させるステップと、前記文字入力装置が、前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させるステップとを含むことを特徴とする。
【００１７】
また、上述した課題を解決し、目的を達成するために、本発明は、文字入力プログラムであって、表面に対する接触を検出するタッチパネルを有する文字入力装置に、前記タッチパネル上に子音または母音のいずれかの文字と対応づけられた複数のボタンを表示させるステップと、前記タッチパネルによって前記タッチパネルへの接触の検出が開始されてから、接触の検出が終了するまでに、前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を時系列に連結し、子音と子音とが連続している部分に母音を補完した場合に得られる複数の文字の並び順によって特定される文字列を入力された文字列の候補として前記タッチパネルに表示させるステップとを実行させることを特徴とする。
【発明の効果】
【００１８】
本発明に係る文字入力装置、文字入力方法および文字入力プログラムは、タッチパネル上で高速に文字を入力することを可能にするという効果を奏する。
【図面の簡単な説明】
【００１９】
【図１】図１は、携帯電話端末の外観を示す正面図である。
【図２】図２は、タッチパネル上に表示される仮想キーボードを示す図である。
【図３】図３は、ボタン領域内を指が通過した例を示す図である。
【図４】図４は、ボタン領域内で指の移動方向が変化した例を示す図である。
【図５】図５は、ボタン領域内で指が回転する軌跡を描いた例を示す図である。
【図６】図６は、実施形態１における文字入力の操作例を示す図である。
【図７】図７は、携帯電話端末の機能の概略構成を示すブロック図である。
【図８】図８は、仮想キーボードデータの一例を示す図である。
【図９】図９は、携帯電話端末による文字入力処理の処理手順を示すフロー図である。
【図１０】図１０は、文字入力判定処理の処理手順を示すフロー図である。
【図１１】図１１は、実施形態１における文字列検索処理の処理手順を示すフロー図である。
【図１２】図１２は、実施形態２における文字入力の操作例を示す図である。
【図１３】図１３は、実施形態２における文字列検索処理の処理手順を示すフロー図である。
【図１４】図１４は、入力文字列の候補の選択の仕方の一例を示す図である。
【発明を実施するための形態】
【００２０】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、文字入力装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、ＰＨＳ（Personal  Handyphone  System）、ＰＤＡ、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機等に対しても本発明は適用できる。
【００２１】
（実施形態１）
図１は、本発明の文字入力装置の一実施形態である携帯電話端末１の外観を示す正面図である。携帯電話端末１は、タッチパネル２と、ボタン３Ａ、ボタン３Ｂおよびボタン３Ｃからなる入力部３を備える。タッチパネル２は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等（以下、単に「指」という）を用いてタッチパネル２に対して行われる各種動作を検出する。入力部３は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
【００２２】
携帯電話端末１は、利用者から文字の入力を受け付けるために、図２に示すように、タッチパネル２上に仮想キーボード４を表示させる。仮想キーボード４は、物理的なキーボードのキーを模した複数の仮想的なボタンを含む。例えば、利用者が仮想キーボード４内の「Ｑ」のボタンに指を置いて（接触して）離す動作をすると、その動作がタッチパネル２によって検出され、携帯電話端末１は、「Ｑ」という文字を入力として受け付ける。なお、図２では、仮想キーボード４上に各アルファベットに対応するボタンがＱＷＥＲＹ配列で配置されているが、ボタンの配置は任意でよい。
【００２３】
携帯電話端末１は、さらに、仮想キーボード４上での連続方式による文字の入力を受け付ける。連続方式とは、利用者が指をタッチパネル２に接触させたまま仮想キーボード４上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル２に接触させたままで、「Ｗ」のボタン、「Ｅ」のボタン、「Ｔ」のボタンの順に滑るように移動させることで「ＷＥＴ」という文字列を入力することができる。
【００２４】
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル２上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
【００２５】
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード４の配列がＱＷＥＲＴＹ配列であり、利用者が上記の「ＷＥＴ」という単語を入力したいものとする。この場合、利用者の指は「Ｅ」のボタンから「Ｔ」のボタンへ移動する際に、それらのボタンの間にある「Ｒ」のボタン上を通過することになる。このため、「Ｒ」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「ＷＥＲＴ」という文字列が入力として受け付けられてしまう。
【００２６】
そこで、携帯電話端末１は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル２によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末１は、指の接触を開始する動作がタッチパネル２によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末１は、指の移動が終了しタッチパネル２から離れる動作がタッチパネル２によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
【００２７】
また、携帯電話端末１は、指がタッチパネル２に触れたまま移動方向を変更する動作がタッチパネル２によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末１は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
【００２８】
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図３に示すように進入時の移動方向（ベクトル）を示すＶ１と脱出時の移動方向を示すＶ２の角度差は小さくなると考えられるためである。また、図４に示すように進入時の移動方向を示すＶ３と脱出時の移動方向を示すＶ４の角度差の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
【００２９】
また、携帯電話端末１は、図５に示すように、指がタッチパネル２に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル２によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
【００３０】
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「Ｗ」という文字を３回連続して入力したい場合、利用者は「Ｗ」のボタン領域内で円を３回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が３６０度を超える度に１回転とカウントすることにより、回転数をカウントすることができる。
【００３１】
また、携帯電話端末１は、子音が連続して入力された場合に、子音の間に母音を補完し、補完後の文字列を辞書データと照合して、該当する文字列を入力文字列の候補として表示し、利用者に選択させる。ここで、連続方式で入力された最後の文字が子音の場合は、最後に入力された子音の後にも母音を補完することとしてもよい。
【００３２】
例えば、利用者が、「たぬき（ＴＡＮＵＫＩ）」と入力したいものとする。この場合、利用者が連続方式等で「Ｔ」、「Ｎ」、「Ｋ」の順に子音を入力することにより、携帯電話端末１が、連続する子音の間に母音を補完して、「ＴＡＮＡＫＡ」、「ＴＡＮＡＫＩ」、「ＴＡＮＡＫＵ」、「ＴＡＮＡＫＥ」、「ＴＡＮＡＫＯ」、「ＴＡＮＩＫＡ」、「ＴＡＮＩＫＩ」、「ＴＡＮＩＫＵ」、「ＴＡＮＩＫＥ」、「ＴＡＮＩＫＯ」、…、「ＴＯＮＯＫＯ」等の文字列を生成する。そして、携帯電話端末１は、生成された各文字列を辞書データと照合し、該当する文字列を入力文字列の候補として表示する。ここで、表示される入力文字列の候補には、「たぬき」が含まれる。そして、利用者が表示された候補の中から「たぬき」を選択することにより、「たぬき」が入力された文字列として携帯電話端末１によって受け付けられる。
【００３３】
このように、携帯電話端末１が連続する子音の間に母音を補完することにより、利用者は、入力する文字を少なくして、文字入力を迅速に行うことが可能になる。例えば、上記の「たぬき」の例の場合、利用者は、本来は母音も含めて６文字を入力しなければならないところ、３文字の子音を入力し、表示された候補の中から「たぬき」を選択するだけで済む。
【００３４】
利用者が携帯電話端末１に文字を入力する場合の操作例を図６に示す。なお、ここでは、利用者は、文字入力欄１５に「和歌山（ＷＡＫＡＹＡＭＡ）」と入力したいものとする。また、ここでは、末尾の文字が子音の場合には、末尾の子音の後にも母音を補完するものとする。
【００３５】
Ｓ１では、「Ｗ」のボタン領域内に指が置かれている。この場合、携帯電話端末１は、指が置かれた「Ｗ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｗ」に対応する「ｗ」の文字を入力途中の未確定の文字として文字入力欄１５に表示する。また、携帯電話端末１は、「ｗ」の文字の後に母音を補完した文字列を辞書データと照合し、「ワールド」、「和歌山」、「早稲田」、「若山」、「惑星」および「脇役」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。
【００３６】
ここで、入力文字列候補表示領域１４は、入力文字列の候補が表示されるタッチパネル２上の領域である。利用者が入力文字列候補表示領域１４に表示された候補をタップする動作を行った場合、携帯電話端末１は、タップされた候補を入力文字列として確定し、文字入力対象領域である文字入力欄１５に表示させる。携帯電話端末１は、入力文字列の候補が多数ある場合、使用頻度や文脈との整合性等に基づいて各候補の優先度を評価し、優先度に基づいて絞り込んだ候補だけを入力文字列候補表示領域１４に表示する。
【００３７】
Ｓ２では、指がタッチパネル２に触れたまま「Ｋ」のボタン領域内まで移動した後に、「Ｙ」のボタンの方向へ移動方向を変更している。この場合、携帯電話端末１は、指の移動方向が変化した「Ｋ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｋ」に対応する「ｋ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」と「ｋ」を連結した「ｗｋ」の子音が連続している部分と末尾とに母音を補完した文字列を辞書データと照合し、「和歌山」、「若山」、「惑星」および「脇役」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。「ｋ」が入力されたことにより、Ｓ２の場面では、Ｓ１の場面よりも入力文字列の候補が絞り込まれている。
【００３８】
Ｓ３では、指がタッチパネル２に触れたまま「Ｙ」のボタン領域内まで移動した後に、「Ｍ」のボタンの方向へ移動方向を変更している。この場合、携帯電話端末１は、指の移動方向が変化した「Ｙ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｙ」に対応する「ｙ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」、「ｋ」および「ｙ」を連結した「ｗｋｙ」の子音が連続している部分と末尾とに母音を補完した文字列を辞書データと照合し、「和歌山」、「若山」および「脇役」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。「ｙ」が入力されたことにより、Ｓ３の場面では、入力文字列の候補がさらに絞り込まれている。
【００３９】
Ｓ４では、指がタッチパネル２に触れたまま「Ｍ」のボタン領域内まで移動した後に、指がタッチパネル２から離れている。この場合、携帯電話端末１は、指が離れた位置にある「Ｍ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｍ」に対応する「ｍ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」、「ｋ」、「ｙ」および「ｍ」を連結した「ｗｋｙｍ」の子音が連続している部分と末尾とに母音を補完した文字列を辞書データと照合し、「和歌山」および「若山」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。「ｍ」が入力されたことにより、Ｓ４の場面では、入力文字列の候補がさらに絞り込まれている。
【００４０】
Ｓ５では、指が入力文字列候補表示領域１４に表示された「和歌山」の表示領域内でタッチパネル２に接触している。この場合、携帯電話端末１は、「和歌山」が選択されたと判断し、Ｓ６として、「和歌山」を確定した入力文字列として文字入力欄１５に表示し、入力文字列候補表示領域１４をクリアする。
【００４１】
図６の例が示すように、携帯電話端末１は、利用者の指がタッチパネル２に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。また、携帯電話端末１は、利用者が入力を省略した母音を補完して、入力文字列の候補を提示する。このため、利用者は、携帯電話端末１に対して文字を高速に入力することができる。
【００４２】
なお、図６に示した例では、Ｓ１の場面から「和歌山」が入力文字列の候補として表示されているため、利用者は、「ｗ」の文字を入力した段階で、「和歌山」を選択して入力を確定させることもできる。ただし、必ずしも１文字目を入力した段階で目的の単語が候補として表示されるわけではなく、目的の単語を構成する最後の文字を入力して初めて目的の単語が候補として表示されることもある。したがって、子音だけを入力することは、最後の文字を入力するまでに入力が必要な字数を減少させ、目的の単語が入力文字列の候補として表示される機会を早めるために有効である。
【００４３】
次に、携帯電話端末１の機能と制御部との関係を説明する。図７は、図１に示す携帯電話端末１の機能の概略構成を示すブロック図である。図７に示すように携帯電話端末１は、タッチパネル２と、入力部３と、電源部５と、通信部６と、スピーカ７と、マイク８と、記憶部９と、主制御部１０と、ＲＡＭ（Random  Access  Memory）１１とを有する。
【００４４】
タッチパネル２は、表示部２Ｂと、表示部２Ｂに重畳されたタッチセンサ２Ａとを有する。タッチセンサ２Ａは、指を用いてタッチパネル２に対して行われた各種動作を、動作が行われた場所のタッチパネル２上での位置とともに検出する。タッチセンサ２Ａによって検出される動作には、指をタッチパネル２の表面に接触させる動作や、指をタッチパネル２の表面に接触させたまま移動させる動作や、指をタッチパネル２の表面から離す動作が含まれる。なお、タッチセンサ２Ａは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部２Ｂは、例えば、液晶ディスプレイ（ＬＣＤ、Liquid  Crystal  Display）や、有機ＥＬ（Organic  Electro−Luminescence）パネルなどで構成され、文字、図形、画像等を表示する。
【００４５】
入力部３は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部１０へ送信する。電源部５は、蓄電池または外部電源から得られる電力を、主制御部１０を含む携帯電話端末１の各機能部へ供給する。通信部６は、基地局によって割り当てられるチャネルを介し、基地局との間でＣＤＭＡ方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ７は、電話通信における相手側の音声や着信音等を出力する。マイク８は、利用者等の音声を電気的な信号へ変換する。
【００４６】
記憶部９は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部１０での処理に利用されるプログラムやデータを保存する。具体的には、記憶部９は、メールの送受信や閲覧のためのメールプログラム９Ａや、ＷＥＢページの閲覧のためのブラウザプログラム９Ｂや、上述した連続方式での文字入力を受け付けるための文字入力プログラム９Ｃや、文字入力時にタッチパネル２に表示される仮想キーボードに関する定義を含む仮想キーボードデータ９Ｄや、正当な文字列が登録された辞書データ９Ｅを記憶する。記憶部９には、携帯電話端末１の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
【００４７】
主制御部１０は、例えば、ＣＰＵ（Central  Processing  Unit）であり、携帯電話端末１の動作を統括的に制御する。具体的には、主制御部１０は、記憶部９に記憶されているデータを必要に応じて参照しつつ、記憶部９に記憶されているプログラムを実行して、タッチパネル２、通信部６等を制御することによって各種処理を実行する。主制御部１０は、記憶部９に記憶されているプログラムや、処理を実行することによって取得／生成／加工されたデータを、一時的な記憶領域を提供するＲＡＭ１１に必要に応じて展開する。なお、主制御部１０が実行するプログラムや参照するデータは、通信部６による無線通信でサーバ装置からダウンロードすることとしてもよい。
【００４８】
ここで、記憶部９が記憶する仮想キーボードデータ９Ｄの一例を図８に示す。図８の例に示すように、仮想キーボードデータ９Ｄには、仮想キーボードに含まれるボタン毎に、ボタンに対応する文字、ボタンの位置（例えば、左上座標）、幅、高さ等が登録される。図８に示す例では、あるボタンに対応する文字が「Ｑ」であり、そのボタンの左上座標がＸ＝１０、Ｙ＝１０であり、そのボタンの幅と高さが２０と４０であること等が登録されている。
【００４９】
次に、携帯電話端末１が文字の入力を受け付ける場合の動作について説明する。図９は、携帯電話端末１による文字入力処理の処理手順を示すフロー図である。図９に示す文字入力処理は、主制御部１０が記憶部９から文字入力プログラム９Ｃを読み出して実行することにより実現され、仮想キーボード４がタッチパネル２上に表示されている間、繰り返し実行される。なお、仮想キーボード４は、主制御部１０が文字入力プログラム９Ｃまたは他のプログラムを実行することにより、タッチパネル２上に表示される。
【００５０】
まず、主制御部１０は、ステップＳ１０として、入力文字バッファをクリアする。入力文字バッファは、指がタッチパネル２に接触したまま移動した軌跡上の各ボタンに対応する文字が格納される記憶領域であり、ＲＡＭ１１に設けられる。
【００５１】
続いて、主制御部１０は、ステップＳ１１として、ＲＡＭ１１に設けた入力完了フラグを０に設定する。入力完了フラグは、１回分の文字入力が完了したか否かを判定するために用いられる。ここでいう１回分の文字入力とは、指をタッチパネル２に接触させてから離すまでの間に行われる文字入力を意味する。
【００５２】
続いて、主制御部１０は、ステップＳ１２として、タッチパネル２の最新の検出結果を取得し、ステップＳ１３として、文字入力判定処理を実行する。文字入力判定処理において、主制御部１０は、指がタッチパネル２に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファに格納していく。なお、文字入力判定処理の詳細については後述する。
【００５３】
文字入力判定処理の実行後、主制御部１０は、ステップＳ１４として、入力完了フラグが０のままであるかを判定する。ここで、入力完了フラグが０のままである場合、すなわち、１回分の文字入力がまだ完了していない場合（ステップＳ１４，Ｙｅｓ）、主制御部１０は、ステップＳ１５として、文字列検索処理を実行して入力文字バッファに格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。検索に際して、主制御部１０は、連結後の文字列において子音が連続している部分や末尾の子音の後に母音を補完する。なお、文字列検索処理の詳細については後述する。
【００５４】
続いて、主制御部１０は、ステップＳ１６として、文字列検索処理によって得られた１ないし複数の文字列を入力文字列候補表示領域１４に表示する。そして、主制御部１０は、入力完了フラグが０でない、すなわち、１回分の文字入力が完了したとステップＳ１４で判定されるまで、ステップＳ１２〜ステップＳ１６を繰り返して実行する。
【００５５】
ステップＳ１４で入力完了フラグが０でなくなっていた場合（ステップＳ１４，Ｎｏ）、主制御部１０は、ステップＳ１７として、文字列検索処理を実行して入力文字バッファに格納されている文字を連結した文字列とマッチする文字列を辞書データ９Ｅから検索する。ここでも、主制御部１０は、検索に際して、連結後の文字列において子音が連続している部分や末尾の子音の後に母音を補完する。文字列検索処理の処理結果として得られた文字列が１つだけであった場合（ステップＳ１８，Ｙｅｓ）、主制御部１０は、ステップＳ１９として、文字列検索処理の処理結果として得られた文字列を入力した文字列を入力された文字列として受け付ける。
【００５６】
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合（ステップＳ１８，Ｎｏ）、主制御部１０は、ステップＳ２０として、文字列検索処理の処理結果として得られた複数の文字列を入力文字列候補表示領域１４に表示する。そして、主制御部１０は、ステップＳ２１として、タッチパネル２の最新の検出結果を取得し、ステップＳ２２として、入力文字列候補表示領域１４に表示した文字列のいずれかが選択されたかを判定する。
【００５７】
ここで、いずれの文字列も選択されていなければ（ステップＳ２２，Ｎｏ）、主制御部１０は、いずれかの文字列が選択されるまで、ステップＳ２１〜ステップＳ２２を繰り返して実行する。なお、ステップＳ２１において利用者の指が入力文字列候補表示領域１４以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部１０が、文字入力処理を終了させることとしてもよい。
【００５８】
ステップＳ２２で入力文字列候補表示領域１４に表示した文字列のいずれかが選択されていた場合（ステップＳ２２，Ｙｅｓ）、主制御部１０は、ステップＳ２３として、選択された文字列を入力した文字列を入力された文字列として受け付ける。
【００５９】
次に、図１０に示したフロー図を参照しながら、図９のステップＳ１３で実行される文字入力判定処理について説明する。主制御部１０は、ステップＳ３０として、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作、すなわち、指をタッチパネル２の表面に接触させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００６０】
検出された動作がタッチパネル２への接触を開始する動作であった場合（ステップＳ３０，Ｙｅｓ）、主制御部１０は、ステップＳ３１として、接触が開始された位置を仮想キーボードデータ９Ｄと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合（ステップＳ３１，Ｙｅｓ）、ボタンは意図して触れられたと考えられるので、主制御部１０は、ステップＳ３２として、そのボタンに対応する文字を入力文字バッファに追加する。ボタンに対応する文字は、仮想キーボードデータ９Ｄから取得される。
【００６１】
そして、主制御部１０は、ステップＳ３３として、出力フラグを「１」に設定して文字入力判定処理を終了させる。出力フラグは、ＲＡＭ１１に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファに出力済みであるか否かを判定するために用いられる。出力フラグの値が「０」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「１」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
【００６２】
ステップＳ３１において、接触が開始された位置がボタン領域内でなかった場合（ステップＳ３１，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００６３】
ステップＳ３０において、タッチパネル２で検出された動作がタッチパネル２への接触を開始する動作でなかった場合（ステップＳ３０，Ｎｏ）、主制御部１０は、ステップＳ３４として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【００６４】
検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作であった場合（ステップＳ３４，Ｙｅｓ）、主制御部１０は、ステップＳ３５として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、ＲＡＭ１１に記憶される。
【００６５】
続いて、主制御部１０は、ステップＳ３６として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ３７として、出力フラグを「０」に設定して文字入力判定処理を終了させる。
【００６６】
なお、タッチパネル２の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル２の検出結果から取得される。タッチパネル２の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
【００６７】
ステップＳ３４において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合（ステップＳ３４，Ｎｏ）、主制御部１０は、ステップＳ３８として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル２の検出結果に基づいて判定する。検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル２の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ９Ｄと照合することによって判定される。
【００６８】
検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作であった場合（ステップＳ３８，Ｙｅｓ）、主制御部１０は、ステップＳ３９として、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合（ステップＳ３９，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００６９】
一方、出力フラグが「０」であった場合（ステップＳ３９，Ｙｅｓ）、主制御部１０は、ステップＳ４０として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
【００７０】
算出された角度差が所定の閾値以下の場合（ステップＳ４１，Ｎｏ）、指は単にボタンを通過したに過ぎないと考えられるため、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００７１】
一方、算出された角度差が所定の閾値より大きい場合（ステップＳ４１，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、ステップＳ４２として、ボタンに対応する文字を入力文字バッファに追加する。そして、主制御部１０は、文字入力判定処理を終了させる。
【００７２】
ステップＳ３８において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったまま指をボタンの外へ出す動作でなかった場合（ステップＳ３８，Ｎｏ）、主制御部１０は、ステップＳ４３として、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作、すなわち、指をタッチパネル２から離す動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００７３】
検出された動作がタッチパネル２への接触を終了させる動作であった場合（ステップＳ４３，Ｙｅｓ）、主制御部１０は、ステップＳ４４として、接触が終了された位置を仮想キーボードデータ９Ｄと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合（ステップＳ４４，Ｙｅｓ）、ボタンは意図して触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファに格納されるように、ステップＳ４５以降の処理手順を実行する。
【００７４】
ステップＳ４５として、主制御部１０は、出力フラグが「０」であるかを判定する。ここで、出力フラグが「０」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合（ステップＳ４５，Ｙｅｓ）、主制御部１０は、ステップＳ４６として、ボタンに対応する文字を入力文字バッファに追加する。
【００７５】
そして、タッチパネル２への接触を終了させる動作が行われたということは、１回分の文字入力が完了したことを意味するので、主制御部１０は、ステップＳ４７として、入力完了フラグを「１」に設定して文字入力判定処理を終了させる。
【００７６】
接触が終了された位置がボタン領域内でなかった場合（ステップＳ４４，Ｎｏ）、または、出力フラグが「０」でなかった場合（ステップＳ４５，Ｎｏ）、主制御部１０は、ステップＳ４７として、入力完了フラグを「１」に設定する処理のみを行って文字入力判定処理を終了させる。
【００７７】
ステップＳ４３において、タッチパネル２で検出された動作がタッチパネル２への接触を終了させる動作でなかった場合（ステップＳ４３，Ｎｏ）、主制御部１０は、ステップＳ４８として、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル２の検出結果に基づいて判定する。
【００７８】
検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作であった場合（ステップＳ４８，Ｙｅｓ）、主制御部１０は、ステップＳ４９として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部１０は、ステップＳ５０として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
【００７９】
ここで、指がタッチパネル２に触れたままボタン領域内で回転する軌跡を描いて移動していた場合（ステップＳ５０，Ｙｅｓ）、ボタンは意図的に触れられたと考えられるため、主制御部１０は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファに格納されるように、ステップＳ５１以降の処理手順を実行する。
【００８０】
ステップＳ５１として、主制御部１０は、ボタンに対応する文字を入力文字バッファに追加する。そして、主制御部１０は、ステップＳ５２として、出力フラグを「１」に設定し、ステップＳ５３として、移動方向履歴をクリアして文字入力判定処理を終了させる。
【００８１】
ステップＳ４８において、タッチパネル２で検出された動作がタッチパネル２への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード４上のボタン外を移動していた場合（ステップＳ４８，Ｎｏ）、主制御部１０は、特に処理を行わずに文字入力判定処理を終了させる。
【００８２】
なお、タッチパネル２への接触を保ったまま指を仮想キーボード４の外へ出す動作が検出された場合に、タッチパネル２への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル２への接触を保ったまま指を仮想キーボード４の中へ移動させる動作が検出された場合に、タッチパネル２への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、１回分の入力を終えた後に、指を上げ下げすることなくタッチパネル２への接触を保ったまま、迅速に次の入力に移ることが可能になる。
【００８３】
次に、図１１に示したフロー図を参照しながら、図９のステップＳ１５およびステップＳ１７で実行される文字列検索処理について説明する。主制御部１０は、ステップＳ６０として、入力文字バッファ内の文字を時系列に連結して文字列を作成する。そして、作成した文字列に子音が連続している部分がある場合（ステップＳ６１，Ｙｅｓ）、主制御部１０は、ステップＳ６２として、子音が連続している部分に母音を補完して文字列を再作成する。
【００８４】
ここで、例えば、ステップＳ６０で連結された文字列が「ＳＳＳ」の場合、ステップＳ６２では、「ＳＡＳＡＳ」、「ＳＡＳＩＳ」、「ＳＡＳＵＳ」、「ＳＡＳＥＳ」、「ＳＡＳＯＳ」、「ＳＩＳＡＳ」、「ＳＩＳＩＳ」、「ＳＩＳＵＳ」、「ＳＩＳＥＳ」、「ＳＩＳＯＳ」、・・・、「ＳＯＳＯＳ」のように、子音が連続している部分に母音を補完して作成可能な文字列を網羅的に作成することとしてもよい。
【００８５】
また、ステップＳ６２では、正規表現のように、複数の文字列とマッチする所定の書式の文字列を作成することとしてもよい。例えば、ステップＳ６０で連結された文字列が「ＳＳＳ」の場合、「Ｓ［ＡＩＵＥＯ］＊Ｓ［ＡＩＵＥＯ］＊Ｓ」のような文字列が作成される。この検索文字列は、正規表現に従っており、子音の間に、Ａ、Ｉ、Ｕ、ＥまたはＯが０個以上挿入されている文字列とマッチングする。
【００８６】
なお、ステップＳ６０で連結された文字列の末尾が子音の場合に、ステップＳ６２において、末尾の子音の後にも母音を補完することとしてもよい。このように末尾の子音の後に母音を補完することにより、ステップＳ６３で文字列の照合を先頭一致ではなく完全一致で行うことが可能になり、照合処理が高速化される。
【００８７】
また、ステップＳ６２では、拗音文字の入力に用いられる文字について考慮することとしてもよい。例えば、「象徴（ＳＨＯＵＣＨＯＵ）」のように子音が連続する部分や母音が連続する部分を含む文字列ともマッチするように、子音の間に母音を０個から複数個含む文字列を生成することとしてもよい。ここで、子音の間に含める母音を０個とするのは、例えば、「ＳＨ」や「ＣＨ」のように、連続することが通常でもありうる子音の組み合わせの場合のみとしてもよい。
【００８８】
また、ステップＳ６２では、例えば、「ＴＳ」の後には「Ｕ」しか補完しない、「Ｙ」の後には「Ａ」、「Ｕ」または「Ｏ」しか補完しないというように、通常ありうる子音と母音の組み合わせに従って、補完する母音を制限してもよい。
【００８９】
続いて、主制御部１０は、ステップＳ６３として、生成した文字列を辞書データ９Ｅに登録されている単語と照合する。ここで照合される文字列は、ステップＳ６１で子音が連続している部分があった場合は、ステップＳ６２で作成された文字列であり、さもなければ、ステップＳ６０で作成された文字列である。そして、主制御部１０は、ステップＳ６４として、検索された文字列を検索結果として、文字列検索処理を終了させる。
【００９０】
なお、ステップＳ６３での照合は、完全一致で行ってもよいし、先頭一致等の部分一致で行ってもよい。また、入力途中であるステップＳ１５の場面では先頭一致とし、１回分の入力が完了した後であるステップＳ１７の場面では完全一致とすることとしてもよい。このように場面によって照合の仕方を変えることにより、入力途中には、これから入力される可能性のある文字を含むより多くの文字列を入力文字列の候補として利用者に提示し、入力完了後には、入力済みの文字に基づいて利用者に提示する入力文字列の候補を絞り込むことができる。
【００９１】
上述してきたように、携帯電話端末１は、指をタッチパネル２から離さずに仮想キーボード４上を移動させて文字を入力することを可能にするため、高速な文字入力が実現される。また、携帯電話端末１は、子音が連続して入力された場合に子音の間に母音を補完するため、利用者は母音の入力を省略することができ、高速な文字入力が実現される。
【００９２】
（実施形態２）
実施形態１では、子音が連続して入力された場合に子音の間に任意の母音を補完することとしたが、子音が連続して入力された場合に子音の間に特定の母音を補完することとしてもよい。そこで、実施形態２では、子音が連続して入力された場合に子音の間にその直前に入力された母音を補完する例について説明する。なお、以下では、説明を簡単にするため、実施形態１と同様の部分については説明を省略する。
【００９３】
図１２は、利用者が携帯電話端末１に文字を入力する場合の操作例を示す図である。なお、ここでは、利用者は、文字入力欄１５に「和歌山（ＷＡＫＡＹＡＭＡ）」と入力したいものとする。また、ここでは、末尾の文字が子音の場合には、その直前に入力された母音を末尾の子音の後に補完するものとする。
【００９４】
Ｓ７０では、「Ｗ」のボタン領域内に指が置かれた後に、指がタッチパネル２に触れたまま「Ａ」のボタン領域内まで移動し、「Ｋ」のボタンの方向へ移動方向を変更している。この場合、携帯電話端末１は、指が置かれた「Ｗ」のボタンと「Ａ」のボタンとが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｗ」に対応する「ｗ」の文字と、ボタン「Ａ」に対応する「ａ」の文字とを入力途中の未確定の文字として文字入力欄１５に表示する。また、携帯電話端末１は、「ｗ」と「ａ」を連結した文字列「ｗａ」を辞書データと照合し、「ワールド」、「和歌山」、「早稲田」、「若山」、「惑星」および「脇役」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。
【００９５】
Ｓ７１では、指がタッチパネル２に触れたまま「Ｋ」のボタン領域内まで移動した後に、「Ｙ」のボタンの方向へ移動方向を変更している。この場合、携帯電話端末１は、指の移動方向が変化した「Ｋ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｋ」に対応する「ｋ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」、「ａ」および「ｋ」を連結した「ｗａｋ」の末尾に、その部分よりも前方で最も近い位置に連結されている母音である「ａ」を補完した文字列を辞書データと照合し、「和歌山」、「若山」および「若者」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。具体的には、ここでは、「ｋ」の後に「ａ」が補完される。「ｋ」が入力されたことにより、Ｓ７１の場面では、Ｓ７０の場面よりも入力文字列の候補が絞り込まれている。
【００９６】
Ｓ７２では、指がタッチパネル２に触れたまま「Ｙ」のボタン領域内まで移動した後に、「Ｍ」のボタンの方向へ移動方向を変更している。この場合、携帯電話端末１は、指の移動方向が変化した「Ｙ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｙ」に対応する「ｙ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」、「ａ」、「ｋ」および「ｙ」を連結した「ｗａｋｙ」の子音が連続している部分と末尾とに、その部分よりも前方で最も近い位置に連結されている母音である「ａ」を補完した文字列を辞書データと照合し、「和歌山」および「若山」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。「ｙ」が入力されたことにより、Ｓ７２の場面では、入力文字列の候補がさらに絞り込まれている。
【００９７】
Ｓ７３では、指がタッチパネル２に触れたまま「Ｍ」のボタン領域内まで移動した後に、指がタッチパネル２から離れている。この場合、携帯電話端末１は、指が離れた位置にある「Ｍ」のボタンが意図的に触れられたと判断する。そして、携帯電話端末１は、ボタン「Ｍ」に対応する「ｍ」の文字を入力途中の未確定の文字として文字入力欄１５に追加表示する。また、携帯電話端末１は、「ｗ」、「ａ」、「ｋ」、「ｙ」および「ｍ」を連結した「ｗａｋｙｍ」の子音が連続している部分と末尾とに、その部分よりも前方で最も近い位置に連結されている母音である「ａ」を補完した文字列を辞書データと照合し、「和歌山」および「若山」の入力文字列の候補を得て、入力文字列候補表示領域１４に表示する。
【００９８】
Ｓ７４では、指が入力文字列候補表示領域１４に表示された「和歌山」の表示領域内でタッチパネル２に接触している。この場合、携帯電話端末１は、「和歌山」が選択されたと判断し、Ｓ７５として、「和歌山」を確定した入力文字列として文字入力欄１５に表示し、入力文字列候補表示領域１４をクリアする。
【００９９】
図６の例と図１２の例を比較すると、図６の例では、「ｙ」が入力された段階で入力文字列の候補が３つ表示されているのに対して、図１２の例では、「ｙ」が入力された段階で入力文字列の候補が２つしか表示されていない。このように、子音が連続する部分にその直前に入力された母音を補完することにより、子音が連続する部分に任意の母音を補完する場合よりも早く、入力文字列の候補を絞り込むことができる。
【０１００】
また、子音が連続する部分にその直前に入力された母音を補完することにより、利用者は、例えば、ア行以外のイ段の文字を連続して入力する場合は、最初の文字の入力時だけ母音として「ｉ」を入力すれば、その後は母音の入力を省略しても自分の意図通りの文字が入力される。このように、子音が連続する部分にその直前に入力された母音を補完することにより、利用者の意図に従いながら、迅速な文字入力を実現することができる。
【０１０１】
図１３は、実施形態２における文字列検索処理の処理手順を示すフロー図である。主制御部１０は、ステップＳ８０として、入力文字バッファ内の文字を時系列に連結して文字列を作成する。そして、作成した文字列に子音が連続している部分がある場合（ステップＳ８１，Ｙｅｓ）、主制御部１０は、ステップＳ８２として、子音が連続している部分に、その部分よりも前方で最も近い位置に連結されている母音を補完して文字列を再作成する。
【０１０２】
例えば、ステップＳ８０で連結された文字列が「ＭＯＮＳＩＲＨＡＫＳＥ」の場合、ステップＳ８２では、「ＭＯＮＯＳＩＲＩＨＡＫＡＳＥ」のように、子音が連続している部分に、その部分よりも前方で最も近い位置に連結されている母音を補完した文字列が作成される。
【０１０３】
なお、ステップＳ８０で連結された文字列の末尾が子音の場合に、ステップＳ８２において、末尾の子音の後にも、その部分よりも前方で最も近い位置に連結されている母音を補完することとしてもよい。このように末尾の子音の後に母音を補完することにより、ステップＳ８３で文字列の照合を先頭一致ではなく完全一致で行うことが可能になり、照合処理が高速化される。
【０１０４】
続いて、主制御部１０は、ステップＳ８３として、生成した文字列を辞書データ９Ｅに登録されている単語と照合する。ここで照合される文字列は、ステップＳ８１で子音が連続している部分があった場合は、ステップＳ８２で作成された文字列であり、さもなければ、ステップＳ８０で作成された文字列である。そして、主制御部１０は、ステップＳ８４として、検索された文字列を検索結果として、文字列検索処理を終了させる。
【０１０５】
なお、ステップＳ８３での照合は、完全一致で行ってもよいし、先頭一致等の部分一致で行ってもよい。また、入力途中であるステップＳ１５の場面では先頭一致とし、１回分の入力が完了した後であるステップＳ１７の場面では完全一致とすることとしてもよい。このように場面によって照合の仕方を変えることにより、入力途中には、これから入力される可能性のある文字を含むより多くの文字列を入力文字列の候補として利用者に提示し、入力完了後には、入力済みの文字に基づいて利用者に提示する入力文字列の候補を絞り込むことができる。
【０１０６】
上述してきたように、実施形態２では、子音が連続している部分に、その部分よりも前方で最も近い位置に連結されている母音を補完することとしたので、利用者の意図に従いながら、迅速な文字入力を実現することができる。
【０１０７】
なお、上記の各実施形態で示した本発明の態様は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、実施形態２では、子音が連続している部分に、その部分よりも前方で最も近い位置に連結されている母音を補完することとしたが、子音が連続している部分に、その部分よりも後方で最も近い位置に連結されている母音を補完することとしてもよい。この場合、子音が連続して入力された場合は、後続の母音が入力されるまで辞書データとの照合を抑制することとしてよい。
【０１０８】
また、実施形態１で示した本発明の態様と、実施形態２で示した本発明の態様とを組み合わせることとしてもよい。この場合、子音が連続して入力された場合に子音の間に母音を補完した文字列に対応する入力文字列の候補のうち、子音が連続している部分に、その部分よりも前方で最も近い位置に連結されている母音を補完した文字列に対応する入力文字列の候補を優先的に利用者に提示することとすればよい。
【０１０９】
また、図６および１２を参照しながら説明した文字入力処理では、主制御部１０がタッチパネル２から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域１４に表示することとしているが、１回分の文字入力が完了するまではこのような表示は行わずに、１回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域１４に表示することとしてもよい。
【０１１０】
また、図１１および１３を参照しながら説明した文字列検索処理における辞書データとのマッチング処理において、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
【０１１１】
また、上記の実施形態では、特定の動作として、ボタン領域内でタッチパネル２に接触する動作や、ボタン領域内でタッチパネル２から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
【０１１２】
また、上記の実施形態では、利用者が入力文字列候補表示領域１４に表示された候補をタップする動作を行った場合に、タップされた候補を入力文字列として確定することとしたが、他の方式で利用者が入力文字列の候補を選択することとしてもよい。例えば、図１４に示すように、入力文字列候補表示領域１４に表示された各候補に相当する文字列を入力するために次に選択するボタンを利用者に提示し、提示したボタンが選択された場合に、対応する候補を入力文字列として確定することとしてもよい。
【０１１３】
図１４に示す例は、利用者が「ｋ」、「ａ」および「ｎ」を入力した段階を示している。この段階で、携帯電話端末１は、「神奈川」および「金沢」を入力文字列の候補として入力文字列候補表示領域１４に表示するとともに、現在指が置かれているボタン「Ｎ」を起点としてラインＬ１とラインＬ２とを描画している。ラインＬ１は、「神奈川」と対応しており、「神奈川」を入力する場合に次に選択すべきボタン「Ｇ」まで伸びている。ラインＬ２は、「金沢」と対応しており、「金沢」を入力する場合に次に選択すべきボタン「Ｚ」まで伸びている。ここで、利用者がボタン「Ｇ」上で特定の動作を行うかボタン「Ｇ」をタップすれば、「神奈川」が入力文字列として確定する。また、利用者がボタン「Ｚ」上で特定の動作を行うかボタン「Ｚ」をタップすれば、「金沢」が入力文字列として確定する。
【０１１４】
このように、仮想キーボード４上のボタンを選択することで入力文字列の候補を選択することを可能にすることにより、入力文字列の候補を選択するために利用者が指を入力文字列候補表示領域１４まで移動させる必要がなくなり、文字の入力が高速化される。
【０１１５】
なお、入力文字列候補表示領域１４に表示された各候補に対応するボタンの提示は、図１４に示したようにラインを表示する方式以外に、ボタンを点滅させる方式等を用いてもよい。また、図１４に示した例において、「神奈川」とボタン「Ｇ」を赤で表示し、「金沢」とボタン「Ｚ」を青で表示するというように、色分けによって、入力文字列候補表示領域１４に表示された候補とボタンとの対応を明示することとしてもよい。
【産業上の利用可能性】
【０１１６】
以上のように、本発明に係る文字入力装置、文字入力方法および文字入力プログラムは、文字の入力に有効であり、タッチパネルを用いて文字を高速に入力することが必要な場合に特に適している。
【符号の説明】
【０１１７】
１  携帯電話端末
２  タッチパネル
２Ａ  タッチセンサ
２Ｂ  表示部
３  入力部
３Ａ、３Ｂ、３Ｃ  ボタン
４  仮想キーボード
５  電源部
６  通信部
７  スピーカ
８  マイク
９  記憶部
９Ａ  メールプログラム
９Ｂ  ブラウザプログラム
９Ｃ  文字入力プログラム
９Ｄ  仮想キーボードデータ
９Ｅ  辞書データ
１０  主制御部
１１  ＲＡＭ
１４  入力文字列候補表示領域
１５  文字入力欄
【図１】
2012048588.tif 000003
【図２】
2012048588.tif 000004
【図３】
2012048588.tif 000005
【図４】
2012048588.tif 000006
【図５】
2012048588.tif 000007
【図６】
2012048588.tif 000008
【図７】
2012048588.tif 000009
【図８】
2012048588.tif 000010
【図９】
2012048588.tif 000011
【図１０】
2012048588.tif 000012
【図１１】
2012048588.tif 000013
【図１２】
2012048588.tif 000014
【図１３】
2012048588.tif 000015
【図１４】
2012048588.tif 000016