端末装置、文字入力方法および文字入力プログラム
【課題】タッチパネル上で高速に文字を入力することを可能にする端末装置、文字入力方法および文字入力プログラムを提供する。
【解決手段】携帯電話端末(端末装置)1は、表面に対して行われた動作を検出するタッチパネル2と、タッチパネル2上に複数のボタンを表示させる主制御部10とを有する。主制御部10は、タッチパネル2の表面の第1の位置で接触が開始され、タッチパネル2の表面の第2の位置で接触が終了する動作がタッチパネル2によって検出された場合に、第1の位置で接触が開始されてから第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける。
【解決手段】携帯電話端末(端末装置)1は、表面に対して行われた動作を検出するタッチパネル2と、タッチパネル2上に複数のボタンを表示させる主制御部10とを有する。主制御部10は、タッチパネル2の表面の第1の位置で接触が開始され、タッチパネル2の表面の第2の位置で接触が終了する動作がタッチパネル2によって検出された場合に、第1の位置で接触が開始されてから第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、端末装置、文字入力方法および文字入力プログラムに関する。
【背景技術】
【0002】
近年、直感的な操作を可能にするとともに、キーボードのように物理的に大きな面積を必要とするデバイスを具備しない小型の端末装置を実現するために、タッチパネルが広く利用されるようになっている。タッチパネルを用いて文字を入力するための技術として、タッチパネル上で文字を手書き入力する技術(例えば、特許文献1)と、タッチパネル上に表示された仮想的なキーボード(以下、「仮想キーボード」という)を用いて文字を入力する技術(例えば、特許文献2)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−141448号公報
【特許文献2】特開2008−108233号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、タッチパネル上で文字を手書き入力する従来技術には、入力と文字認識処理に時間がかかるため高速な文字入力が困難であるという問題があった。また、仮想キーボードを用いて文字を入力する従来技術でも、入力したい文字に対応するキーごとに指をタッチパネルに対して上げ下げする動作を繰り返す必要があったため、高速な文字入力が困難であった。
【0005】
本発明は、上記に鑑みてなされたものであって、タッチパネル上で高速に文字を入力することを可能にする端末装置、文字入力方法および文字入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、制御システムであって、表面に対して行われた動作を検出するタッチパネルと、前記タッチパネル上に複数のボタンを表示させ、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける制御部と、を有することを特徴とする。
【0007】
ここで、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0008】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の開始が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0009】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の終了が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0010】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、移動方向の変化が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0011】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の形状の軌跡を描く移動が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0012】
また、前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列が正当な文字列でない場合に、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置以外の位置に表示されているボタンに対応する文字を補完した前記文字列を入力として受け付けることが好ましい。
【0013】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対して行われた動作を検出するタッチパネルを有する端末装置によって実行される文字入力方法であって、前記端末装置の制御部が、前記タッチパネル上に複数のボタンを表示させるステップと、前記タッチパネルが、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作を検出するステップと、前記端末装置の制御部が、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップとを含むことを特徴とする。
【0014】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対して行われた動作を検出するタッチパネルを有する端末装置に、前記タッチパネル上に複数のボタンを表示させるステップと、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップとを実行させることを特徴とする。
【発明の効果】
【0015】
本発明に係る端末装置、文字入力方法および文字入力プログラムは、タッチパネル上で高速に文字を入力することを可能にするという効果を奏する。
【図面の簡単な説明】
【0016】
【図1】図1は、携帯電話端末の外観を示す正面図である。
【図2】図2は、タッチパネル上に表示される仮想キーボードを示す図である。
【図3】図3は、ボタン領域内を指が通過した例を示す図である。
【図4】図4は、ボタン領域内で指の移動方向が変化した例を示す図である。
【図5】図5は、ボタン領域内で指が回転する軌跡を描いた例を示す図である。
【図6】図6は、文字入力の操作例を示す図である。
【図7】図7は、携帯電話端末の機能の概略構成を示すブロック図である。
【図8】図8は、仮想キーボードデータの一例を示す図である。
【図9】図9は、携帯電話端末による文字入力処理の処理手順を示すフロー図である。
【図10】図10は、入力文字バッファの一例を示す図である。
【図11】図11は、一時バッファの一例を示す図である。
【図12】図12は、タッチパネル上に表示される入力文字列候補表示領域を示す図である。
【図13】図13は、文字入力判定処理の処理手順を示すフロー図である。
【図14】図14は、文字列検索処理の処理手順を示すフロー図である。
【図15】図15は、優先度を細分化した場合の一時バッファの一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、端末装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機等に対しても本発明は適用できる。
【実施例】
【0018】
図1は、本発明の端末装置の一実施形態である携帯電話端末1の外観を示す正面図である。携帯電話端末1は、タッチパネル2と、ボタン3A、ボタン3Bおよびボタン3Cからなる入力部3を備える。タッチパネル2は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等(以下、単に「指」という)を用いてタッチパネル2に対して行われる各種動作を検出する。入力部3は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
【0019】
携帯電話端末1は、利用者から文字の入力を受け付けるために、図2に示すように、タッチパネル2上に仮想キーボード4を表示させる。仮想キーボード4は、物理的なキーボードのキーを模した複数の仮想的なボタンを含む。例えば、利用者が仮想キーボード4内の「Q」のボタンに指を置いて(接触して)離す動作をすると、その動作がタッチパネル2によって検出され、携帯電話端末1は、「Q」という文字を入力として受け付ける。
【0020】
携帯電話端末1は、さらに、仮想キーボード4上での連続方式による文字の入力を受け付ける。連続方式とは、利用者が指をタッチパネル2に接触させたまま仮想キーボード4上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル2に接触させたままで、「W」のボタン、「E」のボタン、「T」のボタンの順に滑るように移動させることで「WET」という文字列を入力することができる。
【0021】
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル2上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
【0022】
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード4の配列がQWERTY配列であり、利用者が上記の「WET」という単語を入力したいものとする。この場合、利用者の指は「E」のボタンから「T」のボタンへ移動する際に、それらのボタンの間にある「R」のボタン上を通過することになる。このため、「R」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「WERT」という文字列が入力として受け付けられてしまう。
【0023】
そこで、携帯電話端末1は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル2によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末1は、指の接触を開始する動作がタッチパネル2によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末1は、指の移動が終了しタッチパネル2から離れる動作がタッチパネル2によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
【0024】
また、携帯電話端末1は、指がタッチパネル2に触れたまま移動方向を変更する動作がタッチパネル2によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末1は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
【0025】
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図3に示すように進入時の移動方向(ベクトル)を示すV1と脱出時の移動方向を示すV2の角度差は小さくなると考えられるためである。また、図4に示すように進入時の移動方向を示すV3と脱出時の移動方向を示すV4の角度差の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
【0026】
また、携帯電話端末1は、図5に示すように、指がタッチパネル2に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル2によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
【0027】
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「W」という文字を3回連続して入力したい場合、利用者は「W」のボタン領域内で円を3回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が360度を超える度に1回転とカウントすることにより、回転数をカウントすることができる。
【0028】
利用者が携帯電話端末1に「エレクトロニクス(EREKUTORONIKUSU)」と入力する場合の操作例を図6に示す。s1では、「E」のボタン領域内に指が置かれた後、指がタッチパネル2に触れたまま、「R」、「E」、「H」、「J」、「K」の順にボタンの上を通過している。この場合、携帯電話端末1は、指が置かれた「E」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「R」、「E」、「K」のボタンが意図的に触れられたと判断する。
【0029】
s2では、指がタッチパネル2に触れたまま、「U」、「Y」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「U」、「T」のボタンが意図的に触れられたと判断する。s3では、指がタッチパネル2に触れたまま、「O」、「I」、「U」、「Y」、「T」、「R」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「R」のボタンが意図的に触れられたと判断する。
【0030】
s4では、指がタッチパネル2に触れたまま、「O」、「K」、「N」、「J」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「N」のボタンが意図的に触れられたと判断する。s5では、指がタッチパネル2に触れたまま、「I」、「K」、「U」、「G」、「F」、「D」、「S」、「R」、「T」、「Y」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「I」、「K」、「U」、「S」のボタンが意図的に触れられたと判断する。
【0031】
s6では、タッチパネル2に触れたまま「U」のボタンへ移動した指が、「U」のボタン領域内でタッチパネル2から離れている。この場合、携帯電話端末1は、指がタッチパネル2から離れた位置にある「U」のボタンが意図的に触れられたと判断する。
【0032】
以上の操作により、携帯電話端末1は、「E」、「R」、「E」、「K」、「U」、「T」、「O」、「R」、「O」、「N」、「I」、「K」、「U」、「S」、「U」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス(EREKUTORONIKUSU)」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【0033】
図6の例が示すように、携帯電話端末1は、利用者の指がタッチパネル2に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末1に対して文字を高速かつ正確に入力することができる。
【0034】
なお、携帯電話端末1は、単に指が通過したに過ぎないと判定したボタンに対応する文字を無視するのではなく、入力精度を向上させるためにそれらの文字を利用する。具体的には、携帯電話端末1は、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列を辞書と照合し、該当する単語が見つからない場合は、単に指が通過したに過ぎないと判定したボタンに対応する文字を補完して辞書との照合をやり直して正当な単語を見つけ出す。
【0035】
例えば、利用者が携帯電話端末1に対して「WET」という単語を入力したい場合、利用者は、「W」のボタン領域内に指を置いた後、タッチパネル2に触れたまま指を「T」のボタンの方向へ移動させ、「T」のボタン領域内で指をタッチパネル2から離す。この場合、指が置かれた「W」のボタンと指が離れた「T」のボタンは意図的に触れられたと判定されるが、指が移動する軌道上にある「E」と「R」のボタンは、進入方向と脱出方向の角度差が小さいため、単に通過したに過ぎないと判定される。
【0036】
しかしながら、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列である「WT」は辞書に存在しない。そこで、携帯電話端末1は、単に通過したに過ぎないと判定したボタンに対応する文字を時系列に補完して、「WET」、「WRT」、「WERT」という候補を作成し、各候補を辞書と照合する。この場合、「WET」という単語が辞書に含まれるため、携帯電話端末1は、「WET」を入力された文字として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【0037】
ところで、「WET」という単語を入力する場合、利用者は、タッチパネル2に触れたまま指を「W」のボタンから「T」のボタンの方向へ移動させる最中に、「E」のボタンの中で回転する軌道を描いてもよい。このような操作をすることにより、利用者は、「E」のボタンに意図的に触れたことを携帯電話端末1に明示的に示して、入力した文字列の識別精度を向上させることができる。
【0038】
次に、携帯電話端末1の機能と制御部との関係を説明する。図7は、図1に示す携帯電話端末1の機能の概略構成を示すブロック図である。図7に示すように携帯電話端末1は、タッチパネル2と、入力部3と、電源部5と、通信部6と、スピーカ7と、マイク8と、記憶部9と、主制御部10と、RAM(Random Access Memory)11とを有する。
【0039】
タッチパネル2は、表示部2Bと、表示部2Bに重畳されたタッチセンサ2Aとを有する。タッチセンサ2Aは、指を用いてタッチパネル2に対して行われた各種動作を、動作が行われた場所のタッチパネル2上での位置とともに検出する。タッチセンサ2Aによって検出される動作には、指をタッチパネル2の表面に接触させる動作や、指をタッチパネル2の表面に接触させたまま移動させる動作や、指をタッチパネル2の表面から離す動作が含まれる。なお、タッチセンサ2Aは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部2Bは、例えば、液晶ディスプレイ(LCD、Liquid Crystal Display)や、有機EL(Organic Electro−Luminescence)パネルなどで構成され、文字、図形、画像等を表示する。
【0040】
入力部3は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部10へ送信する。電源部5は、蓄電池または外部電源から得られる電力を、主制御部10を含む携帯電話端末1の各機能部へ供給する。通信部6は、基地局によって割り当てられるチャネルを介し、基地局との間でCDMA方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ7は、電話通信における相手側の音声や着信音等を出力する。マイク8は、利用者等の音声を電気的な信号へ変換する。
【0041】
記憶部9は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部10での処理に利用されるプログラムやデータを保存する。具体的には、記憶部9は、メールの送受信や閲覧のためのメールプログラム9Aや、WEBページの閲覧のためのブラウザプログラム9Bや、上述した連続方式での文字入力を受け付けるための文字入力プログラム9Cや、文字入力時にタッチパネル2に表示される仮想キーボードに関する定義を含む仮想キーボードデータ9Dや、正当な文字列が登録された辞書データ9Eを記憶する。記憶部9には、携帯電話端末1の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
【0042】
主制御部10は、例えば、CPU(Central Processing Unit)であり、携帯電話端末1の動作を統括的に制御する。具体的には、主制御部10は、記憶部9に記憶されているデータを必要に応じて参照しつつ、記憶部9に記憶されているプログラムを実行して、タッチパネル2、通信部6等を制御することによって各種処理を実行する。主制御部10は、記憶部9に記憶されているプログラムや、処理を実行することによって取得/生成/加工されたデータを、一時的な記憶領域を提供するRAM11に必要に応じて展開する。なお、主制御部10が実行するプログラムや参照するデータは、通信部6による無線通信でサーバ装置からダウンロードすることとしてもよい。
【0043】
ここで、記憶部9が記憶する仮想キーボードデータ9Dの一例を図8に示す。図8の例に示すように、仮想キーボードデータ9Dには、仮想キーボードに含まれるボタン毎に、ボタンに対応する文字、ボタンの位置(例えば、左上座標)、幅、高さ等が登録される。図8に示す例では、あるボタンに対応する文字が「Q」であり、そのボタンの左上座標がX=10、Y=10であり、そのボタンの幅と高さが20と40であること等が登録されている。
【0044】
次に、携帯電話端末1が文字の入力を受け付ける場合の動作について説明する。図9は、携帯電話端末1による文字入力処理の処理手順を示すフロー図である。図9に示す文字入力処理は、主制御部10が記憶部9から文字入力プログラム9Cを読み出して実行することにより実現され、仮想キーボード4がタッチパネル2上に表示されている間、繰り返し実行される。なお、仮想キーボード4は、主制御部10が文字入力プログラム9Cまたは他のプログラムを実行することにより、タッチパネル2上に表示される。
【0045】
まず、主制御部10は、ステップS10として、入力文字バッファ12をクリアし、ステップS11として、一時バッファ13をクリアする。入力文字バッファ12は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が優先度と対応づけて格納される記憶領域であり、RAM11に設けられる。一時バッファ13は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンのうち、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が一時的に格納される記憶領域であり、RAM11に設けられる。
【0046】
入力文字バッファ12の一例を図10に示す。図10は、タッチパネル2に対して図6に示した操作が行われた場合の入力文字バッファ12を示している。図10の例において、入力文字バッファ12の上段には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が格納され、下段には、上段の文字に対応づけられた優先度が格納されている。図10の例が示すように、入力文字バッファ12には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が時系列に格納される。
【0047】
優先度は、入力文字バッファ12に含まれる文字を連結して文字列を構成する際に、対応付けられた文字を採用するか否かを決定するために用いられる。本実施例では、優先度の値が小さいほど、対応付けられた文字が優先的に採用されることとする。具体的には、指が意図的に触れたと判断されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判断されたボタンに対応する文字には優先度として「2」を対応付ける。
【0048】
一時バッファ13の一例を図11に示す。図11は、図6のs1において指が「J」のボタンから出た時点での一時バッファ13を示している。図11の例が示すように、一時バッファ13には、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が、指がいずれかのボタンに意図的に触れたと判定されるまで、時系列に格納される。
【0049】
入力文字バッファ12と一時バッファ13のクリアを終えると、主制御部10は、ステップS12として、RAM11に設けた入力完了フラグを0に設定する。入力完了フラグは、1回分の文字入力が完了したか否かを判定するために用いられる。ここでいう1回分の文字入力とは、指をタッチパネル2に接触させてから離すまでの間に行われる文字入力を意味する。
【0050】
続いて、主制御部10は、ステップS13として、タッチパネル2の最新の検出結果を取得し、ステップS14として、文字入力判定処理を実行する。文字入力判定処理において、主制御部10は、指がタッチパネル2に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファ12や一時バッファ13に格納していく。なお、文字入力判定処理の詳細については後述する。
【0051】
文字入力判定処理の実行後、主制御部10は、ステップS15として、入力完了フラグが0のままであるかを判定する。ここで、入力完了フラグが0のままである場合、すなわち、1回分の文字入力がまだ完了していない場合(ステップS15,Yes)、主制御部10は、ステップS16として、文字列検索処理を実行して入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。なお、文字列検索処理の詳細については後述する。
【0052】
続いて、主制御部10は、ステップS17として、文字列検索処理によって得られた1ないし複数の文字列を図12に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、入力完了フラグが0でない、すなわち、1回分の文字入力が完了したとステップS15で判定されるまで、ステップS13〜ステップS17を繰り返して実行する。
【0053】
ステップS15で入力完了フラグが0でなくなっていた場合(ステップS15,No)、主制御部10は、ステップS18として、文字列検索処理を実行して入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。ここで、文字列検索処理の処理結果として得られた文字列が1つだけであった場合(ステップS19,Yes)、主制御部10は、ステップS20として、文字列検索処理の処理結果として得られた文字列を入力した文字列を入力された文字列として受け付ける。
【0054】
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合(ステップS19,No)、主制御部10は、ステップS21として、文字列検索処理の処理結果として得られた複数の文字列を図12に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、ステップS22として、タッチパネル2の最新の検出結果を取得し、ステップS23として、入力文字列候補表示領域14に表示した文字列のいずれかが選択されたかを判定する。
【0055】
ここで、いずれの文字列も選択されていなければ(ステップS23,No)、主制御部10は、いずれかの文字列が選択されるまで、ステップS22〜ステップS23を繰り返して実行する。なお、ステップS22において利用者の指が入力文字列候補表示領域14以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部10が、文字入力処理を終了させることとしてもよい。
【0056】
ステップS23で入力文字列候補表示領域14に表示した文字列のいずれかが選択されていた場合(ステップS23,Yes)、主制御部10は、ステップS24として、選択された文字列を入力した文字列を入力された文字列として受け付ける。
【0057】
次に、図13に示したフロー図を参照しながら、図9のステップS14で実行される文字入力判定処理について説明する。主制御部10は、ステップS30として、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作、すなわち、指をタッチパネル2の表面に接触させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0058】
検出された動作がタッチパネル2への接触を開始する動作であった場合(ステップS30,Yes)、主制御部10は、ステップS31として、接触が開始された位置を仮想キーボードデータ9Dと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合(ステップS31,Yes)、ボタンは意図して触れられたと考えられるので、主制御部10は、ステップS32として、そのボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。ボタンに対応する文字は、仮想キーボードデータ9Dから取得される。
【0059】
そして、主制御部10は、ステップS33として、出力フラグを「1」に設定して文字入力判定処理を終了させる。出力フラグは、RAM11に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ12または一時バッファ13に出力済みであるか否かを判定するために用いられる。出力フラグの値が「0」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「1」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
【0060】
ステップS31において、接触が開始された位置がボタン領域内でなかった場合(ステップS31,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0061】
ステップS30において、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作でなかった場合(ステップS30,No)、主制御部10は、ステップS34として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
【0062】
検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であった場合(ステップS34,Yes)、主制御部10は、ステップS35として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、RAM11に記憶される。
【0063】
続いて、主制御部10は、ステップS36として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS37として、出力フラグを「0」に設定して文字入力判定処理を終了させる。
【0064】
なお、タッチパネル2の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル2の検出結果から取得される。タッチパネル2の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
【0065】
ステップS34において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合(ステップS34,No)、主制御部10は、ステップS38として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
【0066】
検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であった場合(ステップS38,Yes)、主制御部10は、ステップS39として、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合(ステップS39,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0067】
一方、出力フラグが「0」であった場合(ステップS39,Yes)、主制御部10は、ステップS40として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
【0068】
算出された角度差が所定の閾値以下の場合(ステップS41,No)、指は単にボタンを通過したに過ぎないと考えられるため、主制御部10は、ステップS42として、そのボタンに対応する文字を一時バッファ13に追加して文字入力判定処理を終了させる。
【0069】
一方、算出された角度差が所定の閾値より大きい場合(ステップS41,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS43以降の処理手順を実行する。
【0070】
ステップS43として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS44として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS45として、一時バッファ13をクリアして文字入力判定処理を終了させる。
【0071】
ステップS38において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作でなかった場合(ステップS38,No)、主制御部10は、ステップS46として、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作、すなわち、指をタッチパネル2から離す動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0072】
検出された動作がタッチパネル2への接触を終了させる動作であった場合(ステップS46,Yes)、主制御部10は、ステップS47として、接触が終了された位置を仮想キーボードデータ9Dと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合(ステップS47,Yes)、ボタンは意図して触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS48以降の処理手順を実行する。
【0073】
ステップS48として、主制御部10は、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合(ステップS48,Yes)、主制御部10は、ステップS49として、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加する。そして、主制御部10は、ステップS50として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。
【0074】
そして、タッチパネル2への接触が終了させる動作が行われたということは、一回分の文字入力が完了したことを意味するので、主制御部10は、ステップS51として、入力完了フラグを「1」に設定して文字入力判定処理を終了させる。
【0075】
接触が終了された位置がボタン領域内でなかった場合(ステップS47,No)、または、出力フラグが「0」でなかった場合(ステップS48,No)、主制御部10は、ステップS51として、入力完了フラグを「1」に設定する処理のみを行って文字入力判定処理を終了させる。
【0076】
なお、接触が終了された位置がボタン領域内でなかった場合、または、出力フラグが「0」でなかった場合に、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加することとしてもよい。
【0077】
ステップS46において、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作でなかった場合(ステップS46,No)、主制御部10は、ステップS52として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0078】
検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であった場合(ステップS52,Yes)、主制御部10は、ステップS53として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS54として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
【0079】
ここで、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していた場合(ステップS54,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS55以降の処理手順を実行する。
【0080】
ステップS55として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS56として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS57として、出力フラグを「1」に設定し、ステップS58として、移動方向履歴をクリアして文字入力判定処理を終了させる。
【0081】
ステップS52において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード4上のボタン外を移動していた場合(ステップS52,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0082】
なお、タッチパネル2への接触を保ったまま指を仮想キーボード4の外へ出す動作が検出された場合に、タッチパネル2への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル2への接触を保ったまま指を仮想キーボード4の中へ移動させる動作が検出された場合に、タッチパネル2への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、一回分の入力を終えた後に、指を上げ下げすることなくタッチパネル2への接触を保ったまま、迅速に次の入力に移ることが可能になる。
【0083】
次に、図14に示したフロー図を参照しながら、図9のステップS16およびステップS18で実行される文字列検索処理について説明する。主制御部10は、ステップS70として、入力文字バッファ12から優先度が「1」である文字を取得し、取得した文字を組み合わせて第1候補文字列を生成する。
【0084】
例えば、「A」、「B」、「C」、「D」という4つの文字列がこの順序で入力文字バッファ12に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、優先度が「1」の文字を格納順に連結して「AB」という第1候補文字列を生成する。
【0085】
続いて、主制御部10は、ステップS71として、第1候補文字列にマッチする文字列を辞書データ9Eから検索する。
【0086】
本実施例では、例えば第1候補文字列が「ABC」の場合、「A*B*C*」というパターンにマッチする文字列が辞書データ9Eから検索されるものとする。ここで、「*」は、任意の文字にマッチするワイルドカードである。すなわち、本実施例では、第1候補文字列と先頭の文字が一致し、第1候補文字列の2番目以降の各文字が、0個以上の文字を介在させて第1候補文字列と同じ順序で出現する文字列が、第1候補文字列とマッチすると文字列として検索される。
【0087】
このようにマッチングさせることにより、指によって意図的に触れられたことを判別できないボタンがあった場合でも、入力された文字列を正しく識別することができる可能性を高めることができる。
【0088】
検索結果として複数の文字列が得られた場合(ステップS72,Yes)、主制御部10は、検索結果を絞り込むために、ステップS73として、入力文字バッファ12から優先度が「2」である文字を取得し、取得した文字を第1候補文字列に補完して、1ないし複数の第2候補文字列を生成する。
【0089】
例えば、上記と同様に、「A」、「B」、「C」、「D」という4つの文字列がこの順序で入力文字バッファ12に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、格納順序を守りつつ、第1候補文字列である「AB」に優先度が「2」の文字を少なくとも1つ補完して、「ABD」、「ACD」、「ACDB」という3つの第2候補文字列を生成する。
【0090】
続いて、主制御部10は、ステップS74として、第2候補文字列のいずれかにマッチする文字列を辞書データ9Eから検索する。マッチングの方式は、第1候補文字列の場合と同様である。
【0091】
そして、ステップS74において、いずれかの文字列が検索された場合(ステップS75,Yes)、主制御部10は、ステップS76として、検索された文字列を検索結果として文字列検索処理を終了させる。一方、ステップS74において、いずれの文字列も検索されなかった場合(ステップS75,No)、主制御部10は、ステップS77として、ステップS71において第1候補文字列とマッチした文字列を検索結果として文字列検索処理を終了させる。
【0092】
ステップS71において検索結果として1つの文字列のみが得られた場合(ステップS72,No、かつ、ステップS78,Yes)、主制御部10は、ステップS76として、検索された文字列を検索結果として文字列検索処理を終了させる。ステップS71において検索結果として1つの文字列も得られなかった場合(ステップS78,No)、主制御部10は、ステップS79として、第1候補文字列、すなわち、優先度が「1」の文字を格納順に連結した文字列を検索結果として文字列検索処理を終了させる。
【0093】
上述してきたように、携帯電話端末1は、指をタッチパネル2から離さずに仮想キーボード上を移動させて文字を入力することを可能にするため、高速な文字入力を実現することができる。
【0094】
なお、携帯電話端末1の構成は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、本実施例では、指をタッチパネル2から離れずに移動した軌跡上の各ボタンに対応する文字に優先度として「1」または「2」を対応付けることとしたが、文字に対応付ける優先度をさらに細分化してもよい。
【0095】
例えば、意図的に触れられたと判定されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判定されたボタンに対応する文字については優先度として「2」〜「5」のいずれかの値を対応付けることとしてもよい。優先度を細分化する場合、図13に示した文字入力判定処理では、図15の例のように一時バッファ13に格納される各文字に優先度が対応付けられる。
【0096】
この場合、例えば、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指がボタンに進入したときの移動方向と指がボタンから出たときの移動方向の角度差が大きいほど高い優先度を対応付けることとしてもよい。角度差が大きいほど、意図的に触れられたボタンである可能性が高いためである。
【0097】
また、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指が通過した軌跡がボタンの中心に近いほど高い優先度を対応付けることとしてもよい。通過した軌跡がボタンの中心に近いほど、意図的に触れられたボタンである可能性が高いためである。
【0098】
そして、このように優先度を細分化した場合、文字列検索処理においては、優先度の高い文字ほど第2候補文字列の作成時に優先的に使用される。具体的には、優先度が「1」の文字を組み合わせた第1候補文字列に複数の文字列がマッチした場合、まず、優先度が「2」の文字を第1候補文字列に補完して検索結果の絞込みが試みられる。そして、優先度が「2」の文字を補完しても複数の文字列がマッチした場合、優先度が「3」の文字を第1候補文字列にさらに補完して検索結果の絞込みが試みられる。
【0099】
以下同様に、検索結果が1つに絞り込まれるまで、優先度が高い順に補完に文字が利用される。このように、優先度を細分化することにより、意図的に触れられた可能性が高い順に文字を組み合わせて検証対象の文字列を生成することができるため、入力された文字列の識別精度を向上させることができる。
【0100】
また、図9を参照しながら説明した文字入力処理では、主制御部10がタッチパネル2から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域14に表示することとしているが、一回分の文字入力が完了するまではこのような表示は行わずに、一回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域14に表示することとしてもよい。
【0101】
また、図14を参照しながら説明した文字列検索処理における辞書データとのマッチング処理は、完全一致や前方一致等の他のマッチング方式を用いることとしてもよい。また、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
【0102】
また、上記の実施例では、指がタッチパネル2に接触したまま移動した軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を優先して入力された文字列を識別することとしているが、本発明これに限定されるものではなく、指がタッチパネル2に接触したまま移動した軌跡上またはその近隣に表示されているボタンに対応する文字を含む文字列を入力された文字列として受け付けるものであればよい。
【0103】
また、上記の実施例では、特定の動作として、ボタン領域内でタッチパネル2に接触する動作や、ボタン領域内でタッチパネル2から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
【産業上の利用可能性】
【0104】
以上のように、本発明に係る端末装置、文字入力方法および文字入力プログラムは、文字の入力に有効であり、タッチパネルを用いて文字を高速に入力することが必要な場合に特に適している。
【符号の説明】
【0105】
1 携帯電話端末
2 タッチパネル
2A タッチセンサ
2B 表示部
3 入力部
3A、3B、3C ボタン
4 仮想キーボード
5 電源部
6 通信部
7 スピーカ
8 マイク
9 記憶部
9A メールプログラム
9B ブラウザプログラム
9C 文字入力プログラム
9D 仮想キーボードデータ
9E 辞書データ
10 主制御部
11 RAM
12 入力文字バッファ
13 一時バッファ
14 入力文字列候補表示領域
【技術分野】
【0001】
本発明は、端末装置、文字入力方法および文字入力プログラムに関する。
【背景技術】
【0002】
近年、直感的な操作を可能にするとともに、キーボードのように物理的に大きな面積を必要とするデバイスを具備しない小型の端末装置を実現するために、タッチパネルが広く利用されるようになっている。タッチパネルを用いて文字を入力するための技術として、タッチパネル上で文字を手書き入力する技術(例えば、特許文献1)と、タッチパネル上に表示された仮想的なキーボード(以下、「仮想キーボード」という)を用いて文字を入力する技術(例えば、特許文献2)が知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−141448号公報
【特許文献2】特開2008−108233号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、タッチパネル上で文字を手書き入力する従来技術には、入力と文字認識処理に時間がかかるため高速な文字入力が困難であるという問題があった。また、仮想キーボードを用いて文字を入力する従来技術でも、入力したい文字に対応するキーごとに指をタッチパネルに対して上げ下げする動作を繰り返す必要があったため、高速な文字入力が困難であった。
【0005】
本発明は、上記に鑑みてなされたものであって、タッチパネル上で高速に文字を入力することを可能にする端末装置、文字入力方法および文字入力プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本発明は、制御システムであって、表面に対して行われた動作を検出するタッチパネルと、前記タッチパネル上に複数のボタンを表示させ、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける制御部と、を有することを特徴とする。
【0007】
ここで、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0008】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の開始が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0009】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の終了が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0010】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、移動方向の変化が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0011】
また、前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の形状の軌跡を描く移動が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることが好ましい。
【0012】
また、前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列が正当な文字列でない場合に、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置以外の位置に表示されているボタンに対応する文字を補完した前記文字列を入力として受け付けることが好ましい。
【0013】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対して行われた動作を検出するタッチパネルを有する端末装置によって実行される文字入力方法であって、前記端末装置の制御部が、前記タッチパネル上に複数のボタンを表示させるステップと、前記タッチパネルが、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作を検出するステップと、前記端末装置の制御部が、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップとを含むことを特徴とする。
【0014】
また、上述した課題を解決し、目的を達成するために、本発明は、表面に対して行われた動作を検出するタッチパネルを有する端末装置に、前記タッチパネル上に複数のボタンを表示させるステップと、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップとを実行させることを特徴とする。
【発明の効果】
【0015】
本発明に係る端末装置、文字入力方法および文字入力プログラムは、タッチパネル上で高速に文字を入力することを可能にするという効果を奏する。
【図面の簡単な説明】
【0016】
【図1】図1は、携帯電話端末の外観を示す正面図である。
【図2】図2は、タッチパネル上に表示される仮想キーボードを示す図である。
【図3】図3は、ボタン領域内を指が通過した例を示す図である。
【図4】図4は、ボタン領域内で指の移動方向が変化した例を示す図である。
【図5】図5は、ボタン領域内で指が回転する軌跡を描いた例を示す図である。
【図6】図6は、文字入力の操作例を示す図である。
【図7】図7は、携帯電話端末の機能の概略構成を示すブロック図である。
【図8】図8は、仮想キーボードデータの一例を示す図である。
【図9】図9は、携帯電話端末による文字入力処理の処理手順を示すフロー図である。
【図10】図10は、入力文字バッファの一例を示す図である。
【図11】図11は、一時バッファの一例を示す図である。
【図12】図12は、タッチパネル上に表示される入力文字列候補表示領域を示す図である。
【図13】図13は、文字入力判定処理の処理手順を示すフロー図である。
【図14】図14は、文字列検索処理の処理手順を示すフロー図である。
【図15】図15は、優先度を細分化した場合の一時バッファの一例を示す図である。
【発明を実施するための形態】
【0017】
以下、本発明につき図面を参照しつつ詳細に説明する。なお、以下の説明により本発明が限定されるものではない。また、以下の説明における構成要素には、当業者が容易に想定できるもの、実質的に同一のもの、いわゆる均等の範囲のものが含まれる。以下においては、端末装置として携帯電話端末を例として説明するが、本発明の適用対象は携帯電話端末に限定されるものではなく、タッチパネルを備える各種装置、例えば、PHS(Personal Handyphone System)、PDA、ポータブルナビゲーション装置、パーソナルコンピュータ、ゲーム機等に対しても本発明は適用できる。
【実施例】
【0018】
図1は、本発明の端末装置の一実施形態である携帯電話端末1の外観を示す正面図である。携帯電話端末1は、タッチパネル2と、ボタン3A、ボタン3Bおよびボタン3Cからなる入力部3を備える。タッチパネル2は、文字、図形、画像等を表示するとともに、指、スタイラス、ペン等(以下、単に「指」という)を用いてタッチパネル2に対して行われる各種動作を検出する。入力部3は、いずれかのボタンが押下された場合に、押下されたボタンに対応する機能を起動させる。
【0019】
携帯電話端末1は、利用者から文字の入力を受け付けるために、図2に示すように、タッチパネル2上に仮想キーボード4を表示させる。仮想キーボード4は、物理的なキーボードのキーを模した複数の仮想的なボタンを含む。例えば、利用者が仮想キーボード4内の「Q」のボタンに指を置いて(接触して)離す動作をすると、その動作がタッチパネル2によって検出され、携帯電話端末1は、「Q」という文字を入力として受け付ける。
【0020】
携帯電話端末1は、さらに、仮想キーボード4上での連続方式による文字の入力を受け付ける。連続方式とは、利用者が指をタッチパネル2に接触させたまま仮想キーボード4上を移動させることによって複数の文字を連続して入力することを可能にする方式である。連続方式では、利用者は、例えば、指をタッチパネル2に接触させたままで、「W」のボタン、「E」のボタン、「T」のボタンの順に滑るように移動させることで「WET」という文字列を入力することができる。
【0021】
このように、連続方式では、ボタン毎に指を上げ下げする動作を行わずに、タッチパネル2上で指を滑るように移動させるだけで複数の文字を入力することができるため、非常に高速に文字を入力することができる。
【0022】
ただし、連続方式では、利用者が指を移動させた軌跡上にある各ボタンについて、利用者がそのボタンに対応する文字を入力するために意図的に触れたのか、あるいは、利用者が他のボタン上へ指を移動させるために単にその上を通過させたに過ぎないのかを判定する必要がある。例えば、仮想キーボード4の配列がQWERTY配列であり、利用者が上記の「WET」という単語を入力したいものとする。この場合、利用者の指は「E」のボタンから「T」のボタンへ移動する際に、それらのボタンの間にある「R」のボタン上を通過することになる。このため、「R」のボタンについては意図的に触れたわけではないと判定できなかった場合には、利用者の意図に反して「WERT」という文字列が入力として受け付けられてしまう。
【0023】
そこで、携帯電話端末1は、利用者が指を移動させた軌跡上にあるボタンのうち、特定の動作がタッチパネル2によって検出された位置に表示されているボタンを、利用者が文字を入力するために意図的に触れたものであると判定する。具体的には、携帯電話端末1は、指の接触を開始する動作がタッチパネル2によって検出された場合、接触の開始が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。また、携帯電話端末1は、指の移動が終了しタッチパネル2から離れる動作がタッチパネル2によって検出された場合、接触の終了が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。
【0024】
また、携帯電話端末1は、指がタッチパネル2に触れたまま移動方向を変更する動作がタッチパネル2によって検出された場合、移動方向の変更が検出された位置にボタンがあれば、そのボタンは意図的に触れられたと判定する。具体的には、携帯電話端末1は、指がボタンに進入したときの移動方向と指がボタンから出るときの移動方向とを比較し、移動方向の角度差が閾値よりも大きければ、利用者が意図的にそのボタンに触れたと判定する。
【0025】
これは、他のボタンへの移動中において、単に通過するに過ぎない場合、指はボタン上を一定方向へ移動し、図3に示すように進入時の移動方向(ベクトル)を示すV1と脱出時の移動方向を示すV2の角度差は小さくなると考えられるためである。また、図4に示すように進入時の移動方向を示すV3と脱出時の移動方向を示すV4の角度差の角度差が大きい場合、利用者が意図的にそのボタンに触れた後に他のボタンに触れるために移動方向を変更した可能性が高いためである。つまり、このボタンが目的ボタンの一つであったと判定できる。
【0026】
また、携帯電話端末1は、図5に示すように、指がタッチパネル2に触れたままあるボタン領域内で回転する軌跡を描いて移動する動作がタッチパネル2によって検出された場合に、利用者が意図的にそのボタンに触れたと判定する。単に通過するに過ぎない場合に指がこのような軌跡を描いて移動することはないと考えられるためである。なお、回転する軌跡に限らずに、山型や波状等の特徴的な形状の軌跡が指によってボタン領域内で描かれた場合に、利用者が意図的にそのボタンに触れたと判定することとしてもよい。
【0027】
このようにボタン領域内で特徴的な形状の軌跡を描く指の移動が検出された場合にそのボタンが意図的に触れられたと判定することにより、利用者は同じ文字を容易に連続して入力することが可能になる。例えば、「W」という文字を3回連続して入力したい場合、利用者は「W」のボタン領域内で円を3回描くように指を移動させればよい。ここで、例えば、ボタン領域内での指の移動ベクトルの角度の総計が360度を超える度に1回転とカウントすることにより、回転数をカウントすることができる。
【0028】
利用者が携帯電話端末1に「エレクトロニクス(EREKUTORONIKUSU)」と入力する場合の操作例を図6に示す。s1では、「E」のボタン領域内に指が置かれた後、指がタッチパネル2に触れたまま、「R」、「E」、「H」、「J」、「K」の順にボタンの上を通過している。この場合、携帯電話端末1は、指が置かれた「E」のボタンと、進入方向と脱出方向の角度差が閾値よりも大きい「R」、「E」、「K」のボタンが意図的に触れられたと判断する。
【0029】
s2では、指がタッチパネル2に触れたまま、「U」、「Y」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「U」、「T」のボタンが意図的に触れられたと判断する。s3では、指がタッチパネル2に触れたまま、「O」、「I」、「U」、「Y」、「T」、「R」、「T」、「Y」、「U」、「I」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「R」のボタンが意図的に触れられたと判断する。
【0030】
s4では、指がタッチパネル2に触れたまま、「O」、「K」、「N」、「J」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「O」、「N」のボタンが意図的に触れられたと判断する。s5では、指がタッチパネル2に触れたまま、「I」、「K」、「U」、「G」、「F」、「D」、「S」、「R」、「T」、「Y」の順にボタンの上を通過している。この場合、携帯電話端末1は、進入方向と脱出方向の角度差が閾値よりも大きい「I」、「K」、「U」、「S」のボタンが意図的に触れられたと判断する。
【0031】
s6では、タッチパネル2に触れたまま「U」のボタンへ移動した指が、「U」のボタン領域内でタッチパネル2から離れている。この場合、携帯電話端末1は、指がタッチパネル2から離れた位置にある「U」のボタンが意図的に触れられたと判断する。
【0032】
以上の操作により、携帯電話端末1は、「E」、「R」、「E」、「K」、「U」、「T」、「O」、「R」、「O」、「N」、「I」、「K」、「U」、「S」、「U」の順にボタンが意図的に触れられたと判定し、これらのボタンに対応する文字を時系列に連結した「エレクトロニクス(EREKUTORONIKUSU)」を入力された文字列として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【0033】
図6の例が示すように、携帯電話端末1は、利用者の指がタッチパネル2に触れたまま移動した軌跡上の各ボタンについて、意図して触れられたのか、単にその上を通過したに過ぎないのかを、利用者が自然に行う動作に基づいて精度よく判定して文字の入力を受け付ける。このため、利用者は、携帯電話端末1に対して文字を高速かつ正確に入力することができる。
【0034】
なお、携帯電話端末1は、単に指が通過したに過ぎないと判定したボタンに対応する文字を無視するのではなく、入力精度を向上させるためにそれらの文字を利用する。具体的には、携帯電話端末1は、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列を辞書と照合し、該当する単語が見つからない場合は、単に指が通過したに過ぎないと判定したボタンに対応する文字を補完して辞書との照合をやり直して正当な単語を見つけ出す。
【0035】
例えば、利用者が携帯電話端末1に対して「WET」という単語を入力したい場合、利用者は、「W」のボタン領域内に指を置いた後、タッチパネル2に触れたまま指を「T」のボタンの方向へ移動させ、「T」のボタン領域内で指をタッチパネル2から離す。この場合、指が置かれた「W」のボタンと指が離れた「T」のボタンは意図的に触れられたと判定されるが、指が移動する軌道上にある「E」と「R」のボタンは、進入方向と脱出方向の角度差が小さいため、単に通過したに過ぎないと判定される。
【0036】
しかしながら、利用者が意図的に触れたと判定したボタンに対応する文字を時系列に連結した文字列である「WT」は辞書に存在しない。そこで、携帯電話端末1は、単に通過したに過ぎないと判定したボタンに対応する文字を時系列に補完して、「WET」、「WRT」、「WERT」という候補を作成し、各候補を辞書と照合する。この場合、「WET」という単語が辞書に含まれるため、携帯電話端末1は、「WET」を入力された文字として受け付ける。この文字列は、利用者が入力しようとした文字列と一致する。
【0037】
ところで、「WET」という単語を入力する場合、利用者は、タッチパネル2に触れたまま指を「W」のボタンから「T」のボタンの方向へ移動させる最中に、「E」のボタンの中で回転する軌道を描いてもよい。このような操作をすることにより、利用者は、「E」のボタンに意図的に触れたことを携帯電話端末1に明示的に示して、入力した文字列の識別精度を向上させることができる。
【0038】
次に、携帯電話端末1の機能と制御部との関係を説明する。図7は、図1に示す携帯電話端末1の機能の概略構成を示すブロック図である。図7に示すように携帯電話端末1は、タッチパネル2と、入力部3と、電源部5と、通信部6と、スピーカ7と、マイク8と、記憶部9と、主制御部10と、RAM(Random Access Memory)11とを有する。
【0039】
タッチパネル2は、表示部2Bと、表示部2Bに重畳されたタッチセンサ2Aとを有する。タッチセンサ2Aは、指を用いてタッチパネル2に対して行われた各種動作を、動作が行われた場所のタッチパネル2上での位置とともに検出する。タッチセンサ2Aによって検出される動作には、指をタッチパネル2の表面に接触させる動作や、指をタッチパネル2の表面に接触させたまま移動させる動作や、指をタッチパネル2の表面から離す動作が含まれる。なお、タッチセンサ2Aは、感圧式、静電式等のいずれの検出方式を採用していてもよい。表示部2Bは、例えば、液晶ディスプレイ(LCD、Liquid Crystal Display)や、有機EL(Organic Electro−Luminescence)パネルなどで構成され、文字、図形、画像等を表示する。
【0040】
入力部3は、物理的なボタン等を通じて利用者の操作を受け付け、受け付けた操作に対応する信号を主制御部10へ送信する。電源部5は、蓄電池または外部電源から得られる電力を、主制御部10を含む携帯電話端末1の各機能部へ供給する。通信部6は、基地局によって割り当てられるチャネルを介し、基地局との間でCDMA方式などによる無線信号回線を確立し、基地局との間で電話通信及び情報通信を行う。スピーカ7は、電話通信における相手側の音声や着信音等を出力する。マイク8は、利用者等の音声を電気的な信号へ変換する。
【0041】
記憶部9は、例えば、不揮発性メモリや磁気記憶装置であり、主制御部10での処理に利用されるプログラムやデータを保存する。具体的には、記憶部9は、メールの送受信や閲覧のためのメールプログラム9Aや、WEBページの閲覧のためのブラウザプログラム9Bや、上述した連続方式での文字入力を受け付けるための文字入力プログラム9Cや、文字入力時にタッチパネル2に表示される仮想キーボードに関する定義を含む仮想キーボードデータ9Dや、正当な文字列が登録された辞書データ9Eを記憶する。記憶部9には、携帯電話端末1の基本的な機能を実現するオペレーティングシステムプログラムや、氏名、電話番号、メールアドレス等が登録されたアドレス帳データ等の他のプログラムやデータも記憶される。
【0042】
主制御部10は、例えば、CPU(Central Processing Unit)であり、携帯電話端末1の動作を統括的に制御する。具体的には、主制御部10は、記憶部9に記憶されているデータを必要に応じて参照しつつ、記憶部9に記憶されているプログラムを実行して、タッチパネル2、通信部6等を制御することによって各種処理を実行する。主制御部10は、記憶部9に記憶されているプログラムや、処理を実行することによって取得/生成/加工されたデータを、一時的な記憶領域を提供するRAM11に必要に応じて展開する。なお、主制御部10が実行するプログラムや参照するデータは、通信部6による無線通信でサーバ装置からダウンロードすることとしてもよい。
【0043】
ここで、記憶部9が記憶する仮想キーボードデータ9Dの一例を図8に示す。図8の例に示すように、仮想キーボードデータ9Dには、仮想キーボードに含まれるボタン毎に、ボタンに対応する文字、ボタンの位置(例えば、左上座標)、幅、高さ等が登録される。図8に示す例では、あるボタンに対応する文字が「Q」であり、そのボタンの左上座標がX=10、Y=10であり、そのボタンの幅と高さが20と40であること等が登録されている。
【0044】
次に、携帯電話端末1が文字の入力を受け付ける場合の動作について説明する。図9は、携帯電話端末1による文字入力処理の処理手順を示すフロー図である。図9に示す文字入力処理は、主制御部10が記憶部9から文字入力プログラム9Cを読み出して実行することにより実現され、仮想キーボード4がタッチパネル2上に表示されている間、繰り返し実行される。なお、仮想キーボード4は、主制御部10が文字入力プログラム9Cまたは他のプログラムを実行することにより、タッチパネル2上に表示される。
【0045】
まず、主制御部10は、ステップS10として、入力文字バッファ12をクリアし、ステップS11として、一時バッファ13をクリアする。入力文字バッファ12は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が優先度と対応づけて格納される記憶領域であり、RAM11に設けられる。一時バッファ13は、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンのうち、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が一時的に格納される記憶領域であり、RAM11に設けられる。
【0046】
入力文字バッファ12の一例を図10に示す。図10は、タッチパネル2に対して図6に示した操作が行われた場合の入力文字バッファ12を示している。図10の例において、入力文字バッファ12の上段には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が格納され、下段には、上段の文字に対応づけられた優先度が格納されている。図10の例が示すように、入力文字バッファ12には、指がタッチパネル2に接触したまま移動した軌跡上の各ボタンに対応する文字が時系列に格納される。
【0047】
優先度は、入力文字バッファ12に含まれる文字を連結して文字列を構成する際に、対応付けられた文字を採用するか否かを決定するために用いられる。本実施例では、優先度の値が小さいほど、対応付けられた文字が優先的に採用されることとする。具体的には、指が意図的に触れたと判断されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判断されたボタンに対応する文字には優先度として「2」を対応付ける。
【0048】
一時バッファ13の一例を図11に示す。図11は、図6のs1において指が「J」のボタンから出た時点での一時バッファ13を示している。図11の例が示すように、一時バッファ13には、指が単にその上を通過したに過ぎないと判定されたボタンに対応する文字が、指がいずれかのボタンに意図的に触れたと判定されるまで、時系列に格納される。
【0049】
入力文字バッファ12と一時バッファ13のクリアを終えると、主制御部10は、ステップS12として、RAM11に設けた入力完了フラグを0に設定する。入力完了フラグは、1回分の文字入力が完了したか否かを判定するために用いられる。ここでいう1回分の文字入力とは、指をタッチパネル2に接触させてから離すまでの間に行われる文字入力を意味する。
【0050】
続いて、主制御部10は、ステップS13として、タッチパネル2の最新の検出結果を取得し、ステップS14として、文字入力判定処理を実行する。文字入力判定処理において、主制御部10は、指がタッチパネル2に接触したまま移動した軌跡上に表示されている各ボタンに対応する文字を入力文字バッファ12や一時バッファ13に格納していく。なお、文字入力判定処理の詳細については後述する。
【0051】
文字入力判定処理の実行後、主制御部10は、ステップS15として、入力完了フラグが0のままであるかを判定する。ここで、入力完了フラグが0のままである場合、すなわち、1回分の文字入力がまだ完了していない場合(ステップS15,Yes)、主制御部10は、ステップS16として、文字列検索処理を実行して入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。なお、文字列検索処理の詳細については後述する。
【0052】
続いて、主制御部10は、ステップS17として、文字列検索処理によって得られた1ないし複数の文字列を図12に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、入力完了フラグが0でない、すなわち、1回分の文字入力が完了したとステップS15で判定されるまで、ステップS13〜ステップS17を繰り返して実行する。
【0053】
ステップS15で入力完了フラグが0でなくなっていた場合(ステップS15,No)、主制御部10は、ステップS18として、文字列検索処理を実行して入力文字バッファ12に格納されている文字を連結した文字列とマッチする文字列を辞書データ9Eから検索する。ここで、文字列検索処理の処理結果として得られた文字列が1つだけであった場合(ステップS19,Yes)、主制御部10は、ステップS20として、文字列検索処理の処理結果として得られた文字列を入力した文字列を入力された文字列として受け付ける。
【0054】
一方、文字列検索処理の処理結果として得られた文字列が複数あった場合(ステップS19,No)、主制御部10は、ステップS21として、文字列検索処理の処理結果として得られた複数の文字列を図12に示すように入力文字列候補表示領域14に表示する。そして、主制御部10は、ステップS22として、タッチパネル2の最新の検出結果を取得し、ステップS23として、入力文字列候補表示領域14に表示した文字列のいずれかが選択されたかを判定する。
【0055】
ここで、いずれの文字列も選択されていなければ(ステップS23,No)、主制御部10は、いずれかの文字列が選択されるまで、ステップS22〜ステップS23を繰り返して実行する。なお、ステップS22において利用者の指が入力文字列候補表示領域14以外の領域に触れるといった入力のキャンセルを示す動作が検出された場合に、主制御部10が、文字入力処理を終了させることとしてもよい。
【0056】
ステップS23で入力文字列候補表示領域14に表示した文字列のいずれかが選択されていた場合(ステップS23,Yes)、主制御部10は、ステップS24として、選択された文字列を入力した文字列を入力された文字列として受け付ける。
【0057】
次に、図13に示したフロー図を参照しながら、図9のステップS14で実行される文字入力判定処理について説明する。主制御部10は、ステップS30として、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作、すなわち、指をタッチパネル2の表面に接触させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0058】
検出された動作がタッチパネル2への接触を開始する動作であった場合(ステップS30,Yes)、主制御部10は、ステップS31として、接触が開始された位置を仮想キーボードデータ9Dと照合して、接触が開始された位置がいずれかのボタン領域内であったかを判定する。接触が開始された位置がいずれかのボタン領域内であった場合(ステップS31,Yes)、ボタンは意図して触れられたと考えられるので、主制御部10は、ステップS32として、そのボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。ボタンに対応する文字は、仮想キーボードデータ9Dから取得される。
【0059】
そして、主制御部10は、ステップS33として、出力フラグを「1」に設定して文字入力判定処理を終了させる。出力フラグは、RAM11に設けられ、指が現在接触している位置に表示されているボタンに対応する文字を入力文字バッファ12または一時バッファ13に出力済みであるか否かを判定するために用いられる。出力フラグの値が「0」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれのバッファにもまだ出力していないことを示す。出力フラグの値が「1」であることは、指が現在接触している位置に表示されているボタンに対応する文字をいずれかのバッファに出力済みであることを示す。
【0060】
ステップS31において、接触が開始された位置がボタン領域内でなかった場合(ステップS31,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0061】
ステップS30において、タッチパネル2で検出された動作がタッチパネル2への接触を開始する動作でなかった場合(ステップS30,No)、主制御部10は、ステップS34として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
【0062】
検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作であった場合(ステップS34,Yes)、主制御部10は、ステップS35として、移動方向履歴をクリアする。移動方向履歴は、ボタン領域内で指がどの方向へ移動したかを示す方向ベクトルが時系列に記録されるデータであり、RAM11に記憶される。
【0063】
続いて、主制御部10は、ステップS36として、指がボタン領域内に進入した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS37として、出力フラグを「0」に設定して文字入力判定処理を終了させる。
【0064】
なお、タッチパネル2の検出結果に指の移動方向を示す情報が含まれている場合、方向ベクトルは、タッチパネル2の検出結果から取得される。タッチパネル2の検出結果に指の移動方向を示す情報が含まれていない場合、方向ベクトルは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とから算出される。
【0065】
ステップS34において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタン領域内に進入させる動作でなかった場合(ステップS34,No)、主制御部10は、ステップS38として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったかを、タッチパネル2の検出結果に基づいて判定する。検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であったか否かは、タッチパネル2の最新の検出結果が示す接触位置とその直前の検出結果が示す接触位置とを仮想キーボードデータ9Dと照合することによって判定される。
【0066】
検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作であった場合(ステップS38,Yes)、主制御部10は、ステップS39として、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」でなかった場合、すなわち、指がそれまで内部に位置していたボタンに対応する文字をいずれかのバッファに出力済みの場合(ステップS39,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0067】
一方、出力フラグが「0」であった場合(ステップS39,Yes)、主制御部10は、ステップS40として、最新の移動ベクトル、すなわち、指がボタンの外へ出た方向を示す方向ベクトルを取得し、移動方向履歴の先頭の方向ベクトルとの角度差を算出する。ここで算出された角度差は、指がボタンに進入したときの方向と指がボタンから脱出したときの方向の相違の大きさを表す。
【0068】
算出された角度差が所定の閾値以下の場合(ステップS41,No)、指は単にボタンを通過したに過ぎないと考えられるため、主制御部10は、ステップS42として、そのボタンに対応する文字を一時バッファ13に追加して文字入力判定処理を終了させる。
【0069】
一方、算出された角度差が所定の閾値より大きい場合(ステップS41,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS43以降の処理手順を実行する。
【0070】
ステップS43として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS44として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS45として、一時バッファ13をクリアして文字入力判定処理を終了させる。
【0071】
ステップS38において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったまま指をボタンの外へ出す動作でなかった場合(ステップS38,No)、主制御部10は、ステップS46として、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作、すなわち、指をタッチパネル2から離す動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0072】
検出された動作がタッチパネル2への接触を終了させる動作であった場合(ステップS46,Yes)、主制御部10は、ステップS47として、接触が終了された位置を仮想キーボードデータ9Dと照合して、接触が終了された位置がいずれかのボタン領域内であったかを判定する。接触が終了された位置がいずれかのボタン領域内であった場合(ステップS47,Yes)、ボタンは意図して触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS48以降の処理手順を実行する。
【0073】
ステップS48として、主制御部10は、出力フラグが「0」であるかを判定する。ここで、出力フラグが「0」である場合、すなわち、意図して触れられたと考えられるボタンに対応する文字がまだいずれのバッファにも出力されていない場合(ステップS48,Yes)、主制御部10は、ステップS49として、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加する。そして、主制御部10は、ステップS50として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。
【0074】
そして、タッチパネル2への接触が終了させる動作が行われたということは、一回分の文字入力が完了したことを意味するので、主制御部10は、ステップS51として、入力完了フラグを「1」に設定して文字入力判定処理を終了させる。
【0075】
接触が終了された位置がボタン領域内でなかった場合(ステップS47,No)、または、出力フラグが「0」でなかった場合(ステップS48,No)、主制御部10は、ステップS51として、入力完了フラグを「1」に設定する処理のみを行って文字入力判定処理を終了させる。
【0076】
なお、接触が終了された位置がボタン領域内でなかった場合、または、出力フラグが「0」でなかった場合に、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加することとしてもよい。
【0077】
ステップS46において、タッチパネル2で検出された動作がタッチパネル2への接触を終了させる動作でなかった場合(ステップS46,No)、主制御部10は、ステップS52として、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であったかを、タッチパネル2の検出結果に基づいて判定する。
【0078】
検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作であった場合(ステップS52,Yes)、主制御部10は、ステップS53として、指がボタン領域内で移動した方向を示す方向ベクトルを取得して、取得した方向ベクトルを移動方向履歴に追加する。そして、主制御部10は、ステップS54として、移動方向履歴に記録されている各方向ベクトルを参照して、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動したかを判定する。
【0079】
ここで、指がタッチパネル2に触れたままボタン領域内で回転する軌跡を描いて移動していた場合(ステップS54,Yes)、ボタンは意図的に触れられたと考えられるため、主制御部10は、そのボタンに対応する文字が、指が通過した軌道上の他のボタンに対応する文字とともに時系列に入力文字バッファ12に格納されるように、ステップS55以降の処理手順を実行する。
【0080】
ステップS55として、主制御部10は、一時バッファ13に格納されている文字を優先度「2」と対応付けて入力文字バッファ12へ追加し、続いて、ステップS56として、ボタンに対応する文字を優先度「1」と対応付けて入力文字バッファ12に追加する。そして、主制御部10は、ステップS57として、出力フラグを「1」に設定し、ステップS58として、移動方向履歴をクリアして文字入力判定処理を終了させる。
【0081】
ステップS52において、タッチパネル2で検出された動作がタッチパネル2への接触を保ったままボタン領域内で指を移動させる動作でなかった場合、すなわち、指が仮想キーボード4上のボタン外を移動していた場合(ステップS52,No)、主制御部10は、特に処理を行わずに文字入力判定処理を終了させる。
【0082】
なお、タッチパネル2への接触を保ったまま指を仮想キーボード4の外へ出す動作が検出された場合に、タッチパネル2への接触を終了させる動作が検出された場合と同様の処理手順を実行し、タッチパネル2への接触を保ったまま指を仮想キーボード4の中へ移動させる動作が検出された場合に、タッチパネル2への接触を開始する動作が検出された場合と同様の処理手順を実行することとしてもよい。このようにすることにより、利用者は、一回分の入力を終えた後に、指を上げ下げすることなくタッチパネル2への接触を保ったまま、迅速に次の入力に移ることが可能になる。
【0083】
次に、図14に示したフロー図を参照しながら、図9のステップS16およびステップS18で実行される文字列検索処理について説明する。主制御部10は、ステップS70として、入力文字バッファ12から優先度が「1」である文字を取得し、取得した文字を組み合わせて第1候補文字列を生成する。
【0084】
例えば、「A」、「B」、「C」、「D」という4つの文字列がこの順序で入力文字バッファ12に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、優先度が「1」の文字を格納順に連結して「AB」という第1候補文字列を生成する。
【0085】
続いて、主制御部10は、ステップS71として、第1候補文字列にマッチする文字列を辞書データ9Eから検索する。
【0086】
本実施例では、例えば第1候補文字列が「ABC」の場合、「A*B*C*」というパターンにマッチする文字列が辞書データ9Eから検索されるものとする。ここで、「*」は、任意の文字にマッチするワイルドカードである。すなわち、本実施例では、第1候補文字列と先頭の文字が一致し、第1候補文字列の2番目以降の各文字が、0個以上の文字を介在させて第1候補文字列と同じ順序で出現する文字列が、第1候補文字列とマッチすると文字列として検索される。
【0087】
このようにマッチングさせることにより、指によって意図的に触れられたことを判別できないボタンがあった場合でも、入力された文字列を正しく識別することができる可能性を高めることができる。
【0088】
検索結果として複数の文字列が得られた場合(ステップS72,Yes)、主制御部10は、検索結果を絞り込むために、ステップS73として、入力文字バッファ12から優先度が「2」である文字を取得し、取得した文字を第1候補文字列に補完して、1ないし複数の第2候補文字列を生成する。
【0089】
例えば、上記と同様に、「A」、「B」、「C」、「D」という4つの文字列がこの順序で入力文字バッファ12に格納され、「A」と「D」の優先度が「1」で、「B」と「C」の優先度が「2」であったものとする。この場合、主制御部10は、格納順序を守りつつ、第1候補文字列である「AB」に優先度が「2」の文字を少なくとも1つ補完して、「ABD」、「ACD」、「ACDB」という3つの第2候補文字列を生成する。
【0090】
続いて、主制御部10は、ステップS74として、第2候補文字列のいずれかにマッチする文字列を辞書データ9Eから検索する。マッチングの方式は、第1候補文字列の場合と同様である。
【0091】
そして、ステップS74において、いずれかの文字列が検索された場合(ステップS75,Yes)、主制御部10は、ステップS76として、検索された文字列を検索結果として文字列検索処理を終了させる。一方、ステップS74において、いずれの文字列も検索されなかった場合(ステップS75,No)、主制御部10は、ステップS77として、ステップS71において第1候補文字列とマッチした文字列を検索結果として文字列検索処理を終了させる。
【0092】
ステップS71において検索結果として1つの文字列のみが得られた場合(ステップS72,No、かつ、ステップS78,Yes)、主制御部10は、ステップS76として、検索された文字列を検索結果として文字列検索処理を終了させる。ステップS71において検索結果として1つの文字列も得られなかった場合(ステップS78,No)、主制御部10は、ステップS79として、第1候補文字列、すなわち、優先度が「1」の文字を格納順に連結した文字列を検索結果として文字列検索処理を終了させる。
【0093】
上述してきたように、携帯電話端末1は、指をタッチパネル2から離さずに仮想キーボード上を移動させて文字を入力することを可能にするため、高速な文字入力を実現することができる。
【0094】
なお、携帯電話端末1の構成は、本発明の要旨を逸脱しない範囲で任意に変更することができる。例えば、本実施例では、指をタッチパネル2から離れずに移動した軌跡上の各ボタンに対応する文字に優先度として「1」または「2」を対応付けることとしたが、文字に対応付ける優先度をさらに細分化してもよい。
【0095】
例えば、意図的に触れられたと判定されたボタンに対応する文字には優先度として「1」を対応付け、指が単に通過したに過ぎないと判定されたボタンに対応する文字については優先度として「2」〜「5」のいずれかの値を対応付けることとしてもよい。優先度を細分化する場合、図13に示した文字入力判定処理では、図15の例のように一時バッファ13に格納される各文字に優先度が対応付けられる。
【0096】
この場合、例えば、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指がボタンに進入したときの移動方向と指がボタンから出たときの移動方向の角度差が大きいほど高い優先度を対応付けることとしてもよい。角度差が大きいほど、意図的に触れられたボタンである可能性が高いためである。
【0097】
また、指が単に通過したに過ぎないと判定されたボタンに対応する文字について、指が通過した軌跡がボタンの中心に近いほど高い優先度を対応付けることとしてもよい。通過した軌跡がボタンの中心に近いほど、意図的に触れられたボタンである可能性が高いためである。
【0098】
そして、このように優先度を細分化した場合、文字列検索処理においては、優先度の高い文字ほど第2候補文字列の作成時に優先的に使用される。具体的には、優先度が「1」の文字を組み合わせた第1候補文字列に複数の文字列がマッチした場合、まず、優先度が「2」の文字を第1候補文字列に補完して検索結果の絞込みが試みられる。そして、優先度が「2」の文字を補完しても複数の文字列がマッチした場合、優先度が「3」の文字を第1候補文字列にさらに補完して検索結果の絞込みが試みられる。
【0099】
以下同様に、検索結果が1つに絞り込まれるまで、優先度が高い順に補完に文字が利用される。このように、優先度を細分化することにより、意図的に触れられた可能性が高い順に文字を組み合わせて検証対象の文字列を生成することができるため、入力された文字列の識別精度を向上させることができる。
【0100】
また、図9を参照しながら説明した文字入力処理では、主制御部10がタッチパネル2から新たに検出結果を取得するたびに検索された文字列を入力文字列候補表示領域14に表示することとしているが、一回分の文字入力が完了するまではこのような表示は行わずに、一回分の文字入力が完了した後に文字列検索処理で複数の文字列が検索された場合にのみ検索された文字列を入力文字列候補表示領域14に表示することとしてもよい。
【0101】
また、図14を参照しながら説明した文字列検索処理における辞書データとのマッチング処理は、完全一致や前方一致等の他のマッチング方式を用いることとしてもよい。また、入力予測技術を用いて、利用者が入力しようとしている文字列を予測し、予測された文字列を検索結果として扱うこととしてもよい。入力予測技術とは、文字列の結びつきの強さや使用頻度等に基づいて、既に入力された文字列と入力途中の文字列から、利用者が入力しようとしている文字列を予測する技術である。
【0102】
また、上記の実施例では、指がタッチパネル2に接触したまま移動した軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を優先して入力された文字列を識別することとしているが、本発明これに限定されるものではなく、指がタッチパネル2に接触したまま移動した軌跡上またはその近隣に表示されているボタンに対応する文字を含む文字列を入力された文字列として受け付けるものであればよい。
【0103】
また、上記の実施例では、特定の動作として、ボタン領域内でタッチパネル2に接触する動作や、ボタン領域内でタッチパネル2から指を離す動作等について説明したが、これらの動作は特定の動作の例であり、他の動作を特定の動作として扱ってもよい。
【産業上の利用可能性】
【0104】
以上のように、本発明に係る端末装置、文字入力方法および文字入力プログラムは、文字の入力に有効であり、タッチパネルを用いて文字を高速に入力することが必要な場合に特に適している。
【符号の説明】
【0105】
1 携帯電話端末
2 タッチパネル
2A タッチセンサ
2B 表示部
3 入力部
3A、3B、3C ボタン
4 仮想キーボード
5 電源部
6 通信部
7 スピーカ
8 マイク
9 記憶部
9A メールプログラム
9B ブラウザプログラム
9C 文字入力プログラム
9D 仮想キーボードデータ
9E 辞書データ
10 主制御部
11 RAM
12 入力文字バッファ
13 一時バッファ
14 入力文字列候補表示領域
【特許請求の範囲】
【請求項1】
表面に対して行われた動作を検出するタッチパネルと、
前記タッチパネル上に複数のボタンを表示させ、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける制御部と、
を有することを特徴とする端末装置。
【請求項2】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項1に記載の端末装置。
【請求項3】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の開始が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2に記載の端末装置。
【請求項4】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の終了が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2または3に記載の端末装置。
【請求項5】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、移動方向の変化が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2から4のいずれか1項に記載の端末装置。
【請求項6】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の形状の軌跡を描く移動が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2から5のいずれか1項に記載の端末装置。
【請求項7】
前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列が正当な文字列でない場合に、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置以外の位置に表示されているボタンに対応する文字を補完した前記文字列を入力として受け付けることを特徴とする請求項2から6のいずれか1項に記載の端末装置。
【請求項8】
前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列を辞書とマッチングし、マッチする文字列が検索された場合に検索された文字列を入力として受け付けることを特徴とする請求項2から7のいずれか1項に記載の端末装置。
【請求項9】
表面に対して行われた動作を検出するタッチパネルを有する端末装置によって実行される文字入力方法であって、
前記端末装置の制御部が、前記タッチパネル上に複数のボタンを表示させるステップと、
前記タッチパネルが、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作を検出するステップと、
前記端末装置の制御部が、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップと、
を含むことを特徴とする文字入力方法。
【請求項10】
表面に対して行われた動作を検出するタッチパネルを有する端末装置に、
前記タッチパネル上に複数のボタンを表示させるステップと、
前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップと、
を実行させることを特徴とする文字入力プログラム。
【請求項1】
表面に対して行われた動作を検出するタッチパネルと、
前記タッチパネル上に複数のボタンを表示させ、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付ける制御部と、
を有することを特徴とする端末装置。
【請求項2】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項1に記載の端末装置。
【請求項3】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の開始が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2に記載の端末装置。
【請求項4】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、接触の終了が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2または3に記載の端末装置。
【請求項5】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、移動方向の変化が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2から4のいずれか1項に記載の端末装置。
【請求項6】
前記制御部は、前記軌跡上に表示されているボタンに対応する文字のうち、特定の形状の軌跡を描く移動が検出された位置に表示されているボタンに対応する文字を含む文字列を入力として受け付けることを特徴とする請求項2から5のいずれか1項に記載の端末装置。
【請求項7】
前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列が正当な文字列でない場合に、前記軌跡上に表示されているボタンに対応する文字のうち、特定の動作が検出された位置以外の位置に表示されているボタンに対応する文字を補完した前記文字列を入力として受け付けることを特徴とする請求項2から6のいずれか1項に記載の端末装置。
【請求項8】
前記制御部は、特定の動作が検出された位置に表示されているボタンに対応する文字を組み合わせた文字列を辞書とマッチングし、マッチする文字列が検索された場合に検索された文字列を入力として受け付けることを特徴とする請求項2から7のいずれか1項に記載の端末装置。
【請求項9】
表面に対して行われた動作を検出するタッチパネルを有する端末装置によって実行される文字入力方法であって、
前記端末装置の制御部が、前記タッチパネル上に複数のボタンを表示させるステップと、
前記タッチパネルが、前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作を検出するステップと、
前記端末装置の制御部が、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップと、
を含むことを特徴とする文字入力方法。
【請求項10】
表面に対して行われた動作を検出するタッチパネルを有する端末装置に、
前記タッチパネル上に複数のボタンを表示させるステップと、
前記タッチパネルの表面の第1の位置で接触が開始され、前記タッチパネルの表面の第2の位置で接触が終了する動作が前記タッチパネルによって検出された場合に、前記第1の位置で接触が開始されてから前記第2の位置で接触が終了するまでに前記タッチパネルによって接触が検出された各位置を結ぶ軌跡上に表示されているボタンに対応する文字を含む文字列を入力として受け付けるステップと、
を実行させることを特徴とする文字入力プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2011−209964(P2011−209964A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−76293(P2010−76293)
【出願日】平成22年3月29日(2010.3.29)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願日】平成22年3月29日(2010.3.29)
【出願人】(000006633)京セラ株式会社 (13,660)
【Fターム(参考)】
[ Back to top ]