(57)【要約】【課題】従来とは異なるアプローチで、快適な入力環境を実現する。【解決手段】キーボード修正部９０は、ユーザの打鍵に応じて得られるコードＳ３を監視することにより、ソフトウェアキーボード１３を修正する。再入力検出部９１は、コードＳ３を監視し、元の文字列の入力と、それに続く元の文字列の一部または全部の削除と、それに続く文字列に近似した新たな文字列の再入力と、を含むシーケンスを検出する。誤入力文字推定部９２は、元の文字列ｓｔｒ１と新たな文字列ｓｔｒ２の対比から、互いに対応する元の文字列に含まれる誤入力文字ＬＩと新たな文字列に含まれる正入力文字ＬＣの少なくとも一方を取得。修正実行部９３は、誤入力文字ＬＩおよび正入力文字ＬＣの少なくとも一方に応じて、ソフトウェアキーボードを修正する。【選択図】図１
2015023513.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアキーボードを用いた入力方法であって、
タッチパネルを有するディスプレイ装置に、ソフトウェアキーボードを表示するステップと、
ユーザの入力を監視し、元の文字列の入力と、それに続く前記元の文字列の一部または全部の削除と、それに続く前記文字列に近似した新たな文字列の再入力と、を含むシーケンスを検出する誤入力検出ステップと、
前記元の文字列と前記新たな文字列の対比から、互いに対応する前記元の文字列に含まれる誤入力文字および前記新たな文字列に含まれる正入力文字の少なくとも一方を取得するステップと、
前記誤入力文字と前記正入力文字の少なくとも一方に応じて、前記ソフトウェアキーボードを修正する修正ステップと、
を備えることを特徴とする入力方法。
【請求項２】
前記修正ステップは、少なくともひとつのキーのサイズを修正するサイズ修正ステップを含むことを特徴とする請求項１に記載の入力方法。
【請求項３】
前記サイズ修正ステップは、前記正入力文字に対応するキーを拡大するステップを含むことを特徴とする請求項２に記載の入力方法。
【請求項４】
前記サイズ修正ステップは、前記誤入力文字に対応するキーを縮小するステップを含むことを特徴とする請求項２または３に記載の入力方法。
【請求項５】
前記サイズ修正ステップは、前記誤入力文字がヌルであり、前記正入力文字が非ヌルであるとき、前記正入力文字に対応するキーを拡大するステップを含むことを特徴とする請求項２に記載の入力方法。
【請求項６】
前記サイズ修正ステップは、前記誤入力文字が非ヌルであり、前記正入力文字がヌルであるとき、前記誤入力文字に対応するキーを縮小するステップを含むことを特徴とする請求項２に記載の入力方法。
【請求項７】
前記サイズ修正ステップは、前記元の文字列中の前記誤入力文字の前後いずれかの文字に対応するキーが、キーボード上において前記誤入力文字に対応するキーと隣接するとき、前記誤入力文字に対応するキーを縮小することを特徴とする請求項６に記載の入力方法。
【請求項８】
前記修正ステップは、前記誤入力文字に対応するキーと前記正入力文字に対応するキーがいずれも非ヌルであり、キーボード上で隣接するとき、前記ソフトウェアキーボードを修正することを特徴とする請求項１から７のいずれかに記載の入力方法。
【請求項９】
前記修正ステップは、前記誤入力文字に対応するキーを縮小し、前記正入力文字に対応するキーを拡大することを特徴とする請求項８に記載の入力方法。
【請求項１０】
前記修正するステップは、少なくともひとつのキーの位置を修正する位置修正ステップを含むことを特徴とする請求項１から９のいずれかに記載の入力方法。
【請求項１１】
前記位置修正ステップは、正入力文字に対応するキーを、誤入力文字に対応するキー側にシフトさせるステップを含むことを特徴とする請求項１０に記載の入力方法。
【請求項１２】
タイピングの成功率を算出するステップと、
前記修正ステップの結果、成功率が低下したときは、修正前のソフトウェアキーボードに戻すステップと、
をさらに備えることを特徴とする請求項１から１１のいずれかに記載の入力方法。
【請求項１３】
ユーザ入力にもとづき、左右それぞれの手について、キーボードの初期設定に使用する複数の指と複数の指に対応する複数のキーを登録するステップと、
前記ディスプレイ装置のソフトウェアキーボードを表示すべき領域に指認識用フレームを表示するステップと、
前記ユーザに対して、ユーザ自身のホームポジションに手を位置合わせした状態で前記複数の指を前記指認識用フレームに触れるように促し、ユーザが触れた前記複数の指の座標を検出するステップと、
ユーザが触れた前記複数の指の座標にもとづいて、前記ソフトウェアキーボードの初期配置を決定するステップと、
をさらに備えることを特徴とする請求項１から１２のいずれかに記載の入力方法。
【請求項１４】
ユーザが指定した任意の２つのキーを入れ替えるカスタマイズステップをさらに備えることを特徴とする請求項１から１３のいずれかに記載の入力方法。
【請求項１５】
ユーザが指定した任意の文字列を、任意のキーに割り当てるマクロステップをさらに備えることを特徴とする請求項１から１４のいずれかに記載の入力方法。
【請求項１６】
ソフトウェアキーボードを用いた入力装置であって、
タッチパネルを有するディスプレイ装置と、
ユーザが接触した前記タッチパネル上の座標を示す座標データを生成する座標検出部と、
前記ディスプレイ装置にソフトウェアキーボードを表示するキーボード表示部と、
現在、ディスプレイ装置に表示されているソフトウェアキーボードのレイアウト情報と前記座標データにもとづいて、ユーザが接触したキーに応じたコードを生成する入力判定部と、
前記コードを監視することにより、前記ソフトウェアキーボードを修正するキーボード修正部と、
を備え、
前記キーボード修正部は、
コードを監視し、元の文字列の入力と、それに続く前記元の文字列の一部または全部の削除と、それに続く前記文字列に近似した新たな文字列の再入力と、を含むシーケンスを検出する再入力検出部と、
前記元の文字列と前記新たな文字列の対比から、互いに対応する前記元の文字列に含まれる誤入力文字と前記新たな文字列に含まれる正入力文字の少なくとも一方を取得する誤入力文字推定部と、
前記誤入力文字および前記正入力文字の少なくとも一方に応じて、前記ソフトウェアキーボードを修正する修正実行部と、
を備えることを特徴とする入力装置。
【請求項１７】
前記修正実行部は、少なくともひとつのキーのサイズを修正する修正実行部を含むことを特徴とする請求項１６に記載の入力装置。
【請求項１８】
前記修正実行部は、正入力文字に対応するキーを拡大することを特徴とする請求項１７に記載の入力装置。
【請求項１９】
前記修正実行部は、誤入力された誤った文字に対応するキーを縮小することを特徴とする請求項１７または１８に記載の入力装置。
【請求項２０】
前記修正実行部は、前記誤入力文字がヌルであり、前記正入力文字が非ヌルであるとき、前記正入力文字に対応するキーを拡大することを特徴とする請求項１７に記載の入力装置。
【請求項２１】
前記修正実行部は、前記誤入力文字が非ヌルであり、前記正入力文字がヌルであるとき、前記誤入力文字に対応するキーを縮小することを特徴とする請求項１７に記載の入力装置。
【請求項２２】
前記修正実行部は、前記元の文字列中の前記誤入力文字の前後いずれかの文字に対応するキーが、前記誤入力文字に対応するキーとキーボード上で隣接するとき、前記誤入力文字に対応するキーを縮小することを特徴とする請求項２１に記載の入力装置。
【請求項２３】
前記キーボード修正部は、前記誤入力文字に対応するキーと前記正入力文字に対応するキーがいずれも非ヌルであり、キーボード上で隣接するとき、前記ソフトウェアキーボードを修正することを特徴とする請求項１６から２２のいずれかに記載の入力装置。
【請求項２４】
前記キーボード修正部は、前記誤入力文字に対応するキーを縮小し、前記正入力文字に対応するキーを拡大することを特徴とする請求項２３に記載の入力装置。
【請求項２５】
前記修正実行部は、少なくともひとつのキーの位置を修正する修正実行部を含むことを特徴とする請求項１６から２４のいずれかに記載の入力装置。
【請求項２６】
前記修正実行部は、正入力文字に対応するキーを、誤入力文字に対応するキー側にシフトさせることを特徴とする請求項２５に記載の入力装置。
【請求項２７】
前記キーボード修正部は、タイピングの成功率を算出する成功率算出部をさらに含み、
前記修正実行部は、ソフトウェアキーボードの修正の結果、成功率が低下したときは、修正前のソフトウェアキーボードに戻すことを特徴とする請求項１６から２６のいずれかに記載の入力装置。
【請求項２８】
キーボードの初期設定を実行する初期設定部をさらに備え、
前記初期設定部は、
ユーザ入力にもとづき、左右それぞれの手について、キーボードの初期設定に使用する複数の指と、複数の指に対応する複数のキーを登録し、
ディスプレイ装置のソフトウェアキーボードを表示すべき領域に指認識用フレームを表示し、
ユーザに対して、ユーザ自身のホームポジションに手を位置合わせした状態で登録した複数の指を指認識用フレームに触れるように促し、
ユーザが触れた複数の指の座標にもとづいて、ソフトウェアキーボードの初期配置を決定する
ことを特徴とする請求項１６から２７のいずれかに記載の入力装置。
【請求項２９】
ユーザが指定した任意の２つのキーを入れ替えるカスタマイズ部をさらに備えることを特徴とする請求項１６から２８のいずれかに記載の入力装置。
【請求項３０】
ユーザが指定した任意の文字列を、任意のキーに割り当てるマクロ部をさらに備えることを特徴とする請求項１６から２９のいずれかに記載の入力装置。
【請求項３１】
請求項１６から３０のいずれかに記載の入力装置を備えることを特徴とする電子機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアキーボードに関する。
【背景技術】
【０００２】
タブレット端末、スマートホンなどの電子デバイスは、ハードウェアキーボードを持たないものが多く存在する。こうした電子デバイスは、タッチパネル上にソフトウェアキーボードを表示し、ユーザの操作入力を受け付けるようになっている。
【０００３】
ＱＷＥＲＴＹ型のハードウェアキーボードでは、左右の人差し指に対応するキー、つまりＦとＫのキー、あるいは、左右の中指に対応するキー、つまりＤとＫのキーに、突起が設けられており、ユーザがホームポジションを確認しやすくなっている。一方でソフトウェアキーボードでは、液晶パネル上に突起を設けることはできないため、キーボードを目視せずにホームポジションを定めることが難しい。また、このような電子デバイスは、液晶パネルのサイズによってソフトウェアキーボードの領域が制約を受けるため、ハードウェアキーボードよりも小型なものが多くなる。かかる事情から、ソフトウェアキーボードを備える電子デバイスでは、ハードウェアキーボードと比べて遜色のない快適な入力環境が提供されているとは言い難い。
【０００４】
ソフトウェアキーボードを備える電子デバイスにおいて、より快適な入力環境を実現するために、いくつかの技術が提案されている（特許文献１，２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−８４１４４号公報
【特許文献２】特開２０１３−５８０８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明はかかる状況においてなされたものであり、そのある態様の例示的な目的のひとつは、従来とは異なるアプローチで、快適な入力環境を実現可能な入力装置、入力方法の提供にある。
【課題を解決するための手段】
【０００７】
本発明のある態様は、ソフトウェアキーボードを用いた入力装置に関する。入力装置は、タッチパネルを有するディスプレイ装置と、ユーザが接触したタッチパネル上の座標を示す座標データを生成する座標検出部と、ディスプレイ装置にソフトウェアキーボードを表示するキーボード表示部と、現在、ディスプレイ装置に表示されているソフトウェアキーボードのレイアウト情報と、座標データと、にもとづいて、ユーザが接触したキーに応じたコードを生成する入力判定部と、コードを監視することにより、ソフトウェアキーボードを修正するキーボード修正部と、を備える。キーボード修正部は、コードを監視し、元の文字列の入力と、それに続く元の文字列の一部または全部の削除と、それに続く元の文字列に近似した新たな文字列の再入力と、を含むシーケンスを検出する再入力検出部と、元の文字列と新たな文字列の対比から、互いに対応する元の文字列に含まれる誤入力文字と新たな文字列に含まれる正入力文字の少なくとも一方を取得する誤入力文字推定部と、誤入力文字と正入力文字の少なくとも一方に応じて、ソフトウェアキーボードを修正する修正実行部と、を備える。
【０００８】
この態様によると、ユーザの誤入力を検出し、正誤の文字列に応じてソフトウェアキーボードを修正することで、ユーザの手のサイズや指の長さ、あるいはユーザのくせなどを学習し、適応的にキーボードの配置を最適化することができ、快適な入力環境を実現できる。
【０００９】
修正実行部は、少なくともひとつのキーのサイズを修正してもよい。
【００１０】
修正実行部は、正入力文字に対応するキーを拡大してもよい。
押しにくいキーのサイズを大きくすることで、修正後にはそのキーを押しやすくできる。
【００１１】
修正実行部は、誤入力された誤った文字に対応するキーを縮小してもよい。
間違って押されやすいキーのサイズを小さくすることで、修正後にはそのキーが誤って押されにくくできる。
【００１２】
修正実行部は、誤入力文字がヌル（Null）であり、正入力文字が非ヌルであるとき、正入力文字に対応するキーを拡大してもよい。
【００１３】
修正実行部は、誤入力文字が非ヌルであり、正入力文字がヌルであるとき、誤入力文字に対応するキーを縮小してもよい。
特に修正実行部は、元の文字列中の誤入力文字の前後いずれかの文字に対応するキーが、誤入力文字に対応するキーとキーボード上で隣接するとき、誤入力文字に対応するキーを縮小してもよい。
【００１４】
キーボード修正部は、誤入力文字に対応するキーと正入力文字に対応するキーがいずれも非ヌルであり、キーボード上で隣接するとき、ソフトウェアキーボードを修正してもよい。
キーボード修正部は、誤入力文字に対応するキーを縮小し、正入力文字に対応するキーを拡大してもよい。
【００１５】
修正実行部は、少なくともひとつのキーの位置を修正してもよい。
【００１６】
修正実行部は、正入力文字に対応するキーを、誤入力文字に対応するキー側にシフトさせてもよい。
【００１７】
キーボード修正部は、タイピングの成功率を算出する成功率算出部をさらに含んでもよい。修正実行部は、ソフトウェアキーボードの修正の結果、成功率が低下したときは、修正前のソフトウェアキーボードに戻してもよい。
修正により、必ずしもソフトウェアキーボードが改善されるとは限らない。この態様によれば、過剰なあるいは不適切な修正により成功率が低下することを防止できる。
【００１８】
ある態様の入力装置は、キーボードの初期設定を実行する初期設定部をさらに備えてもよい。初期設定部は、ユーザ入力にもとづき、左右それぞれの手について、キーボードの初期設定に使用する複数の指と、複数の指に対応する複数のキーを登録し、ディスプレイ装置のソフトウェアキーボードを表示すべき領域に指認識用フレームを表示し、ユーザに対して、ユーザ自身のホームポジションに手を位置合わせした状態で登録した複数の指を指認識用フレームに触れるように促し、ユーザが触れた複数の指の座標にもとづいて、ソフトウェアキーボードの初期配置を決定する。
【００１９】
ある態様の入力装置は、ユーザが指定した任意の２つのキーを入れ替えるカスタマイズ部をさらに備えてもよい。
【００２０】
ある態様の入力装置は、ユーザが指定した任意の文字列を、任意のキーに割り当てるマクロ部をさらに備えてもよい。
【００２１】
本発明の別の態様は電子機器に関する。電子機器は、上述のいずれかの入力装置を備えてもよい。
【００２２】
なお、以上の構成要素を任意に組み合わせたもの、あるいは本発明の表現を、方法、装置などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００２３】
本発明のある態様によれば、快適な入力環境を実現できる。
【図面の簡単な説明】
【００２４】
【図１】実施の形態に係る入力装置のブロック図である。
【図２】図１の入力装置の再入力検出部および誤入力文字推定部の処理を示すフローチャートである。
【図３】修正実行部の処理を示すフローチャートである。
【図４】図４（ａ）〜（ｃ）は、それぞれ、図３のステップＳ２０４、Ｓ２１０、Ｓ２１４において、キーが修正される様子を示す図である。
【図５】ソフトウェアキーボードの初期化シーケンスを示すフローチャートである。
【図６】図６（ａ）は、指認識用フレームを示す図であり、図６（ｂ）は、ユーザが指認識用フレームをタッチした状態を示す図であり、図６（ｃ）は、指の座標から計算されたソフトウェアキーボードを示す図である。
【発明を実施するための形態】
【００２５】
以下、本発明を好適な実施の形態をもとに図面を参照しながら説明する。各図面に示される同一または同等の構成要素、部材、処理には、同一の符号を付するものとし、適宜重複した説明は省略する。また、実施の形態は、発明を限定するものではなく例示であって、実施の形態に記述されるすべての特徴やその組み合わせは、必ずしも発明の本質的なものであるとは限らない。
【００２６】
本明細書において、「部材Ａが、部材Ｂと接続された状態」とは、部材Ａと部材Ｂが物理的に直接的に接続される場合のほか、部材Ａと部材Ｂが、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
同様に、「部材Ｃが、部材Ａと部材Ｂの間に設けられた状態」とは、部材Ａと部材Ｃ、あるいは部材Ｂと部材Ｃが直接的に接続される場合のほか、電気的な接続状態に影響を及ぼさない他の部材を介して間接的に接続される場合も含む。
【００２７】
図１は、実施の形態に係る入力装置２のブロック図である。入力装置２は、ディスプレイ装置１０、座標検出部３０、キーボード表示部５０、入力判定部７０、キーボード修正部９０を備える。
【００２８】
ディスプレイ装置１０は、タッチパネル１１と表示パネル１２を有する。座標検出部３０は、タッチパネル１１と接続されており、ユーザが接触したタッチパネル１１上の座標を示す座標データＳ１を生成する。
【００２９】
キーボード表示部５０は、表示パネル１２と接続されている。メモリ５２には、ソフトウェアキーボード１３を構成する各キーのレイアウトを示すレイアウトデータＳ２が格納される。レイアウトデータＳ２のデータ構造は特に限定されないが、たとえば各キーごとに、（i）矩形の４頂点の座標を含んでも良いし、（ii）キーの１つの頂点の座標、縦の長さ、横の長さを含んでもよい。キーボード表示部５０は、レイアウトデータＳ２にもとづいて、ディスプレイ装置１０の表示パネル１２に、ソフトウェアキーボード１３を表示する。
【００３０】
入力判定部７０は、現在、ディスプレイ装置１０の表示パネル１２に表示されているソフトウェアキーボード１３の配列であるレイアウトデータＳ２と、座標データＳ１にもとづいて、ユーザが接触したキーに応じたコードＳ３を生成する。
【００３１】
キーボード修正部９０は、コードＳ３を監視し、監視結果にもとづいて、メモリ５２に格納されたソフトウェアキーボード１３のレイアウトデータＳ２を修正する。このコードＳ３は、各キーに割り当てられたキーコードであってもよいし、そのキーに割り当てられた文字コードであってもよい。以下では、説明の簡素化と理解の容易化のため、コードＳ３は文字コードであるとする。
【００３２】
キーボード修正部９０は、再入力検出部９１、誤入力文字推定部９２、修正実行部９３、を備える。
【００３３】
再入力検出部９１は、コードＳ３を監視し、元の文字列ｓｔｒ１の入力と、それに続く元の文字列ｓｔｒ１の一部または全部の削除と、それに続く元の文字列ｓｔｒ１に近似した新たな文字列ｓｔｒ２の再入力と、を含む一連のシーケンスを検出する。誤入力文字推定部９２は、元の文字列ｓｔｒ１と新たな文字列ｓｔｒ２の対比から、誤入力文字ＬＩと正入力文字ＬＣを推定する。
【００３４】
図２は、図１の入力装置２の再入力検出部９１および誤入力文字推定部９２の処理を示すフローチャートである。
【００３５】
再入力検出部９１は、バッファに、コードＳ３のシーケンスである文字列ｓｔｒを格納する（Ｓ１００）。そして文字列ｓｔｒ１の消去、すなわち、「Deleteキー」もしくは「Backspaceキー」の押下が検出されない間は（Ｓ１０２のＮ）、文字列ｓｔｒを更新していく。そして文字列ｓｔｒ１の一部、あるいは全部の消去が検出されると（Ｓ１０２のＹ）、消去した元の文字列ｓｔｒ１と、消去した文字数Ｎ１を記憶する（Ｓ１０４）。
【００３６】
続いて、消去後に入力された文字数Ｎ２までを、新しい文字列ｓｔｒ２として記憶する（Ｓ１０６）。
【００３７】
そして、元の文字列ｓｔｒ１と新しい文字列ｓｔｒ２を比較し、最初に入力された誤入力された可能性のある文字（誤入力文字）ＬＩと、再入力後の正しく入力された可能性のある文字（正入力文字）ＬＣを取得する（Ｓ１０８）。なお、誤入力文字ＬＩ、正入力文字ＬＣはそれぞれ、「ヌル(Null)」つまり無入力もありえる。たとえば、"Hello"と入力すべきところ、"Hllo"と入力された場合、誤入力文字ＬＩは「ヌル」であり、正入力文字ＬＣは「ｅ」となる。あるいは、"Hello"と入力すべきところ、"Helljo"と入力された場合、誤入力文字ＬＩは「ｊ」であり、正入力文字ＬＣは「ヌル」となる。
【００３８】
また文字列ｓｔｒ１およびｓｔｒ２の中には、誤って入力された文字が複数含まれる場合もありえる。そこで、誤入力文字ＬＩを格納する配列（誤入力配列）ＬＩと、正入力文字ＬＣを格納する配列（正入力配列）ＬＩと、を用意してもよい。この場合、あわせて誤入力文字ＬＩの文字数Ｎ３も取得される（Ｓ１０９）。
【００３９】
たとえば誤入力文字ＬＩの文字数Ｎ３が２である場合、誤入力配列ＬＩの１、２番目の要素ＬＩ［０］、ＬＩ［１］に、２つの誤入力文字が格納され、正入力配列ＬＣの１、２番目の要素ＬＣ［０］、ＬＣ［１］に、２つの正入力文字が格納される。
【００４０】
誤入力文字ＬＩの文字数Ｎ３が、しきい値Ｎ４より多い場合（Ｓ１１０のＮ）は、タイプミスではなく、文章を変更したものと推定し、ソフトウェアキーボード１３の修正を行わずにステップＳ１００に戻る。
【００４１】
反対に、誤入力文字ＬＩの文字数Ｎ３がしきい値Ｎ４より少ない場合（Ｓ１１０のＹ）、タイプミスである可能性が高いため、ソフトウェアキーボード１３の修正を行う（Ｓ１１２）。
【００４２】
ここでしきい値Ｎ４は、元の文字列ｓｔｒ１の文字数Ｎ１に、所定の係数ｋを乗じた値としてもよい。
Ｎ４＝Ｎ１×ｋ
たとえばｋ＝０．５である。パラメータｋを最適化することで、ソフトウェアキーボード１３の修正の感度を調節できる。
【００４３】
図１に戻る。修正実行部９３は、誤入力文字ＬＩおよび正入力文字ＬＣの少なくとも一方に応じて、ソフトウェアキーボード１３を修正する。
【００４４】
修正実行部９３は、少なくともひとつのキーのサイズを修正する。より具体的には、修正実行部９３は、再入力された正入力文字ＬＣに対応するキーＫＣを拡大し、および／または、誤入力文字ＬＩに対応するキーＫＩを縮小する。
【００４５】
図３は、修正実行部９３の処理を示すフローチャートである。
修正実行部９３は、配列ＬＣ、ＬＩに含まれるＮ３個のすべての誤入力文字ＬＩおよび正入力文字ＬＣについて、変数ｉをインクリメントしながら順に処理を行う（Ｓ２００）。
【００４６】
修正実行部９３は、配列ＬＩのｉ番目の要素ＬＩ［ｉ］がヌルであるとき（Ｓ２０２のＹ）、それに対応するＬＣ［ｉ］のキーＫＣを拡大する（Ｓ２０４）。
【００４７】
このとき、ＬＣ［ｉ］に隣接するキーＫＡは縮小してもよい。たとえばキーＫＣにＭ個のキーＫＡが隣接する場合、それらＭ個のキーＫＡのサイズを縮小してもよい。これにより、ソフトウェアキーボード１３全体のサイズを維持できる。
【００４８】
修正実行部９３は、誤入力文字ＬＩ［ｉ］が非ヌルであり（Ｓ２０２のＮ）、正入力文字ＬＣ［ｉ］がヌルであるとき（Ｓ２０６のＹ）、誤入力文字ＬＩ［ｉ］に対応するキーＫＩを縮小する（Ｓ２１０）。より好ましくは、元の文字列ｓｔｒ１中の誤入力文字ＬＩ［ｉ］の前後いずれかの文字に対応するキーＫＬが、キーボード上において誤入力文字ＬＩ［ｉ］に対応するキーＫＩと隣接するとき（Ｓ２０８のＹ）、誤入力文字ＬＩ［ｉ］に対応するキーＫＩを縮小する。このとき、このキーＫＩ隣接する、誤入力文字ＬＩ［ｉ］の前または後ろの文字に対応するキーＫＬを拡大してもよい。
【００４９】
ステップＳ２０８において、元の文字列ｓｔｒ１中の誤入力文字ＬＩ［ｉ］の前後いずれかの文字に対応するキーＫＬが、キーボード上において誤入力文字ＬＩ［ｉ］に対応するキーＬＩと隣接しない場合（Ｓ２０８のＮ）、ソフトウェアキーボード１３は修正されない。
【００５０】
誤入力文字ＬＩ［ｉ］および正入力文字ＬＣ［ｉ］がいずれも非ヌルであり、誤入力文字ＬＩ［ｉ］に対応するキーＫＩと、正入力文字ＬＣ［ｉ］に対応するキーＫＣがキーボード上で隣接する場合（Ｓ２１２のＹ）、ソフトウェアキーボード１３が修正される（Ｓ２１４）。より具体的には、誤入力文字ＬＩ［ｉ］に対応するキーＫＩを縮小し、正入力文字ＬＣ［ｉ］に対応するキーＫＣを拡大する。
【００５１】
以上が修正実行部９３の処理である。
【００５２】
以上が入力装置２の構成である。続いて、その動作を、いくつかのケースをもとに説明する。以下の例では、ユーザが文字列「hello」の入力を意図しているものとする。
【００５３】
（第１のケース）
ユーザが文字列「hello」を入力しようとして、誤って「helo」と入力した場合
この場合、ｓｔｒ１＝"helo"、ｓｔｒ２＝"hello"であり、Ｎ１＝４、Ｎ２＝５となる。また、ＬＩ［０］＝"Null"、ＬＣ［０］＝"l"となり、誤入力文字数Ｎ３は１である。図２のステップＳ１１０により、ソフトウェアキーボード１３の修正の対象とされる。
【００５４】
ＬＩ［０］がヌルであるから、図３のステップＳ２０２において、ステップＳ２０４に進み、ＬＣ［０］＝"ｌ"に対応するキーＫＣが拡大される。このとき、併せてその周囲のキーＫＡ、たとえば"k"、";"、"o"、","が縮小される。周囲は、縦、横方向に隣接するものであってもよいし、縦横斜めに隣接するものであってもよい。
【００５５】
つまり、このケースでは、ＬＣ［０］に対応するキーＫＣ＝"l"が小さいことにより、打ち損じが発生した可能性が高いと推定される。そこでキーＫＣ＝"l"を拡大することにより、以降の打ち損じの発生確率を低下させることができる。
【００５６】
（第２のケース）
ユーザが文字列「hello」を入力しようとして、誤って「hjello」と入力した場合
この場合、ｓｔｒ１＝"hjello"、ｓｔｒ２＝"hello"であり、Ｎ１＝６、Ｎ２＝５となる。また、ＬＩ［０］＝"j"、ＬＣ［０］＝"Null"となり、誤入力文字数Ｎ３は１である。この場合も、図２のステップＳ１１０により、ソフトウェアキーボード１３の修正の対象とされる。
【００５７】
ＬＩ［０］が非ヌル、ＬＣ［０］がヌルであるから、図３のステップＳ２０６において、ステップＳ２０８に進む。ここで、元の文字列ｓｔｒ１の、誤入力文字ＬＩ［ｉ］＝"j"の前の文字"h"に対応するキーＫＩは、キーボード上において誤入力文字ＬＩ［ｉ］に対応するキーＫＬと隣接する（Ｓ２０８のＹ）。したがって、誤入力文字ＬＩ［ｉ］＝"j"に対応するキーＫＣを縮小する。このとき、このキーＫＣと隣接する、誤入力文字ＬＩ［ｉ］の前の文字"h"に対応するキーＫＬを拡大してもよい。
【００５８】
つまり、このケースでは、キー"h"を押したつもりが、それと隣接する"j"を誤って同時に入力した可能性が高い。つまりキーＫＣ＝"j"の感度が高すぎると判定される。そこで、キーＫＣ＝"j"を縮小することにより、以降の打ち損じの発生確率を低下させることができる。
【００５９】
（第３のケース）
ユーザが文字列「hello」を入力しようとして、誤って「hrllo」と入力した場合
この場合、ｓｔｒ１＝"hrllo"、ｓｔｒ２＝"hello"であり、Ｎ１＝５、Ｎ２＝５となる。また、ＬＩ［０］＝"r"、ＬＣ［０］＝"e"となり、誤入力文字数Ｎ３は１である。この場合も、図２のステップＳ１１０により、ソフトウェアキーボード１３の修正の対象とされる。
【００６０】
この場合、誤入力文字ＬＩ［ｉ］および正入力文字ＬＣ［ｉ］がいずれも非ヌルであるから（Ｓ２０６のＮ）、ステップ２１２に進む。そして、誤入力文字ＬＩ［ｉ］＝"r"に対応するキーＫＩと、正入力文字ＬＣ［ｉ］＝"e"に対応するキーＫＣは、キーボード上で隣接する（Ｓ２１２のＹ）。その結果、誤入力文字ＬＩ［ｉ］に対応するキーＫＩが縮小され、正入力文字ＬＣ［ｉ］に対応するキーＫＣが拡大される（Ｓ２１４）。
【００６１】
つまりこのケースは、ユーザがキーＫＣ＝"e"を打鍵しようとして、キーＫＩ＝"r"を打鍵してしまった可能性が高い。そこでキーＫＣのサイズを大きくしてその感度を高め、キーＫＩのサイズを小さくしてその感度を低下させることで、それ以降の"e"と"r"の誤入力を抑制できる。
【００６２】
（第４のケース）
ユーザが文字列「hello」を入力しようとして、誤って「hella」と入力した場合
この場合、ｓｔｒ１＝"hella"、ｓｔｒ２＝"hello"であり、Ｎ１＝５、Ｎ２＝５となる。また、ＬＩ［０］＝"a"、ＬＣ［０］＝"o"となり、誤入力文字数Ｎ３は１である。この場合も、図２のステップＳ１１０により、ソフトウェアキーボード１３の修正の対象とされる。
【００６３】
この場合、誤入力文字ＬＩ［ｉ］および正入力文字ＬＣ［ｉ］がいずれも非ヌルであるから（Ｓ２０６のＮ）、ステップ２１２に進む。そして、誤入力文字ＬＩ［ｉ］＝"r"に対応するキーＫＩと、正入力文字ＬＣ［ｉ］＝"e"に対応するキーＫＣは、キーボード上で隣接しない（Ｓ２１２のＮ）。その結果、キーボードは修正されない。
【００６４】
つまりこのケースでは、ユーザがキーＫＣ＝"e"を打鍵しようとして、キーＫＩ＝"a"を打鍵してしまったのであるが、これはキーボートのレイアウトとは無関係なヒューマンエラーである可能性が高い。したがって、ステップＳ２１２の処理により、ヒューマンエラーにもとづくソフトウェアキーボード１３の修正を防止できる。
【００６５】
続いて、ソフトウェアキーボード１３のキーのサイズの具体的な修正例を説明する。
図４（ａ）〜（ｃ）は、それぞれ、図３のステップＳ２０４、Ｓ２１０、Ｓ２１４において、キーが修正される様子を示す図である。
【００６６】
図４（ａ）を参照する。ステップＳ２０４において、キーＫＣ＝"ｋ"を拡大し、その周囲のキーＫＡ、たとえば"j"、"l"、"m"、"i"を縮小するとする。このときキーＫＣは、縦方向および横方向に拡大される。一方、キーＫｃと縦方向に隣接するキーＫＡ１は、縦方向に縮小され、キーＫｃと横方向に隣接するキーＫＡ２は、横方向に縮小される。たとえば、ＫＣをα％拡大した場合、ＫＡをα％縮小してもよい。
【００６７】
図４（ｂ）を参照する。ステップＳ２１０において、正入力文字ＬＣ＝"j"に対応するキーＫＣを拡大し、それと隣接するキーＫＬ＝"h"を縮小するとする。このときキーＫＣは、キーＫＬと隣接する方向、つまり横方向に拡大され、キーＫＬは、キーＫＣと隣接する方向、つまり横方向に縮小される。たとえば、ＫＣをα％拡大した場合、ＫＬをα％縮小してもよい。
【００６８】
図４（ｃ）を参照する。ステップＳ２１４において、正入力文字ＬＣに対応するキーＫＣ＝"e"を拡大し、誤入力文字ＬＩに対応するキーＫＬ＝"r"を縮小するとする。このときキーＫＣは、キーＫＩと隣接する方向、つまり横方向に拡大され、キーＫＩは、キーＫＣと隣接する方向、つまり横方向に縮小される。たとえばＫＣをα％拡大した場合、ＫＬをα％縮小してもよい。
【００６９】
このように実施の形態に係る入力装置２によれば誤入力を検出し、正誤の文字列に応じてソフトウェアキーボードを修正することで、ユーザの手のサイズや指の長さ、あるいはユーザのくせなどを学習し、適応的にキーボードの配置を最適化することができ、快適な入力環境を実現できる。
【００７０】
図１に戻る。実施の形態に係る入力装置２のキーボード修正部９０は、成功率算出部９４をさらに含む。
成功率算出部９４は、タイピングの成功率を算出する。たとえば成功率算出部９４は、文字の総入力数Ｎ１（もしくはＮ２）と、誤入力された文字数Ｎ３を所定期間累積し、それらの累積値の比にもとづいて、成功率Ｓ５を算出してもよい。
【００７１】
修正実行部９３は、ソフトウェアキーボード１３の修正の前後の成功率Ｓ５を比較し、ソフトウェアキーボード１３の修正により成功率Ｓ５が低下したときは、修正前のソフトウェアキーボード１３に戻す。ソフトウェアキーボード１３の修正前の成功率Ｓ５は過去に取得された成功率の平均値としてもよい。
【００７２】
入力装置２は、上述のソフトウェアキーボード１３の修正機能に加えて、初期設定機能、カスタマイズ機能およびマクロ機能を備える。以下、順に説明する。
【００７３】
（初期設定機能）
図１に示すように、入力装置２は初期設定部１００を備える。初期設定部１００は、入力装置２の起動後と、あるいは任意のときに、図５に示す初期化シーケンスを実行し、ソフトウェアキーボード１３の初期レイアウトを決定する。
【００７４】
図５は、ソフトウェアキーボードの初期化シーケンスを示すフローチャートである。
【００７５】
はじめに、ユーザ入力にもとづき、左右それぞれの手について、キーボードの初期設定に使用する複数の指と、複数の指に対応する複数のキーを登録する（Ｓ３００）。
たとえば、左手に関して、ユーザは、親指、人差し指、中指の３本を設定し、またそれぞれに"Ｆ"、"Ｅ"、"Ｗ"のキーを割り当てる。右手に関してユーザは、親指、人差し指、中指、の３本を設定し、またそれぞれに"Ｊ"、"Ｉ"、"Ｏ"のキーを割り当てる。指の本数、割り当てるキーは任意である。
【００７６】
つづいて初期設定部１００は、ディスプレイ装置１０の表示パネル１２のソフトウェアキーボードを表示すべき領域に指認識用フレーム１０２を表示する（Ｓ３０２）。
【００７７】
そしてユーザに対して、ユーザ自身のホームポジションに手を位置合わせした状態で複数の指を指認識用フレーム１０２に触れるように促す（Ｓ３０４）。初期設定部１００は、左右それぞれの手について、ユーザが触れた複数の指の座標を取得する（Ｓ３０６）。そして、取得された複数の指の座標と、各指に割り当てられたキーの関係にもとづいて、各キーの間隔、サイズを計算し、ソフトウェアキーボードの初期配置を決定する（Ｓ３０８）。
【００７８】
図６（ａ）は、指認識用フレーム１０２を示す図であり、図６（ｂ）は、ユーザが指認識用フレーム１０２をタッチした状態を示す図であり、図６（ｃ）は、指の座標から計算されたソフトウェアキーボード１３を示す図である。
【００７９】
図６（ｃ）に示すように、ステップＳ３０８において、左右それぞれの手について、親指、人差し指、中指の座標が検出され、それらの値にもとづいて、キー"Ｆ"、"Ｅ"、"Ｗ"および"Ｊ"、"Ｉ"、"Ｏ"の位置およびサイズが計算される。それに加えて、これらの座標から、親指と人差し指の横方向の間隔ｄ１、人差し指と中指の横方向の間隔ｄ２、および親指と人差し指の縦方向の間隔ｄ３を取得できる。左右それぞれの間隔ｄ１、ｄ２にもとづいて、各キーの横方向の長さおよび横方向に隣接するキーの間隔が計算される。また左右それぞれの間隔ｄ３にもとづいて、各キーの縦方向の長さおよび縦方向に隣接するキーの間隔が計算される。これにより、ソフトウェアキーボード１３を構成する全てのキーのサイズおよび配置が決定される。
【００８０】
この初期設定機能により、学習によるキーボードの修正に先立ち、ユーザごとに最適なソフトウェアキーボード１３のレイアウトを決定することができる。キーボードをタイプするときに、何指をホームポジションの基準とすべきか、また何指でどのキーを打鍵するか等は、ユーザごとに好みが異なる。この初期設定機能では、ユーザが任意の指に任意のキーを割り当てることができ、そこから得られる情報にもとづいてソフトウェアキーボード１３のレイアウトを決定するため、ユーザが特定のポジションに拘束されることない、快適な入力環境を提供できる。
【００８１】
（カスタマイズ機能）
図１に示すように、入力装置２はカスタマイズ部１１０を備える。カスタマイズ部１１０は、ユーザから任意の２つのキーの指定を受け、それらを入れ替える。具体的には、ある文字Ｌ１に割り当てられたキーＫ１と、別の文字Ｌ２に割り当てられたキーＫ２が指定されたとき、キーＫ１のコードＣ１を、文字Ｌ２に割り当て、キーＫ２のコードＣ２を、文字Ｌ１に割り当てる。
【００８２】
２つのキーの指定方法は特に限定されない。たとえば、ユーザによって、２つのキーＫ１、Ｋ２を順に打鍵させてもよいし、あるいは、ユーザによって、ひとつのキーＫ１を、別のキーＫ２の位置にドラッグさせてもよい。
【００８３】
キーＫ１とＫ２の入れ替えに関する情報により、メモリ５２のレイアウトデータＳ２が更新される。キーボード表示部５０は、更新されたレイアウトデータＳ２にもとづいて表示パネル１２にソフトウェアキーボード１３を表示する。たとえばユーザが、"Shift"に割り当てられたキーＫ１と、"Function"に割り当てられたキーを入れ替えた場合、表示パネル１２に表示されるソフトウェアキーボード１３は、キーＫ１に"Func"と表示し、キーＫ２に"Shift"と表示する。
【００８４】
２つのキーを入れ替える際には、"Shift"キーや"Numlock"が押されたときに入力される文字のみを対象としてもよい。
【００８５】
このカスタマイズ機能により、ユーザごとに好みのキーボードにカスタマイズできる。
【００８６】
（マクロ機能）
図１に示すように、入力装置２はマクロ部１２０を備える。マクロ部１２０は、ユーザから、指定した任意の文字列ｓｔｒ３と、それに対応する任意のキーＫ１の組み合わせを含むマクロ情報を受け付ける。マクロ情報の入力方法も特に限定されない。そして、キーＫ１が打鍵されると、文字列ｓｔｒ３が入力されたものとする。マクロ情報は、入力判定部７０に与えられる。
【００８７】
キーＫ１は、好ましくは、ユーザの使用頻度が低いキー、たとえばファンクションキー"F1"〜"F10"や、その他のキー"/"、"-"、"="であることが想定されるが特に限定されない。たとえばキーＫ１"/"に文字列ｓｔｒ３"000"が割り当てられた場合、ユーザがキー"/"を打鍵すると、入力判定部７０は、"000"が入力されたものと判定する。
【００８８】
マクロ機能により、使用頻度が低いキーを有効活用できる。
【００８９】
以上、本発明について、実施の形態をもとに説明した。この実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。以下、こうした変形例について説明する。
【００９０】
（変形例１）
実施の形態では、図３のフローチャートに示される３つの修正処理Ｓ２０４、Ｓ２１０、Ｓ２１４を例示したが、本発明はそれには限定されない。たとえば、３つの修正処理のうち、ひとつ、またはふたつのみを採用してもよい。あるいは、例示した３つの修正処理Ｓ２０４、Ｓ２１０、Ｓ２１４以外の修正処理を行ってもよい。
【００９１】
（変形例２）
修正実行部９３は、上述のキーのサイズの修正に加えて、あるいはそれに代えて、キーの位置を修正してもよい。
より具体的には、修正実行部９３は、正入力文字に対応するキーと誤入力文字に対応するキーが隣接するとき、正入力文字に対応するキーを誤入力文字に対応するキー側にシフトさせてもよい。
【００９２】
この変形例によっても、実施の形態と同様の効果を得ることができる。
【００９３】
実施の形態にもとづき、具体的な語句を用いて本発明を説明したが、実施の形態は、本発明の原理、応用を示しているにすぎず、実施の形態には、請求の範囲に規定された本発明の思想を逸脱しない範囲において、多くの変形例や配置の変更が認められる。
【符号の説明】
【００９４】
２…入力装置、１０…ディスプレイ装置、１１…タッチパネル、１２…表示パネル、１３…ソフトウェアキーボード、３０…座標検出部、５０…キーボード表示部、５２…メモリ、７０…入力判定部、９０…キーボード修正部、９１…再入力検出部、９２…誤入力文字推定部、９３…修正実行部、９４…成功率算出部、１００…初期設定部、１０２…指認識用フレーム、１０４…指、１１０…カスタマイズ部、１２０…マクロ部、Ｓ１…座標データ、Ｓ２…レイアウトデータ、Ｓ３…コード。
【図１】
2015023513.tif 000003
【図２】
2015023513.tif 000004
【図３】
2015023513.tif 000005
【図４】
2015023513.tif 000006
【図５】
2015023513.tif 000007
【図６】
2015023513.tif 000008