JP2012523611A - 学習能力を有する仮想キーパッドジェネレータ - Google Patents

学習能力を有する仮想キーパッドジェネレータ Download PDF

Info

Publication number
JP2012523611A
JP2012523611A JP2012504663A JP2012504663A JP2012523611A JP 2012523611 A JP2012523611 A JP 2012523611A JP 2012504663 A JP2012504663 A JP 2012504663A JP 2012504663 A JP2012504663 A JP 2012504663A JP 2012523611 A JP2012523611 A JP 2012523611A
Authority
JP
Japan
Prior art keywords
keypad
touch
user
keys
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012504663A
Other languages
English (en)
Other versions
JP5377752B2 (ja
Inventor
ババク・フォルタンプール
カート・ダブリュー・アブラハムソン
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2012523611A publication Critical patent/JP2012523611A/ja
Application granted granted Critical
Publication of JP5377752B2 publication Critical patent/JP5377752B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/36User authentication by graphic or iconic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0216Arrangements for ergonomically adjusting the disposition of keys of a keyboard
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0236Character input methods using selection techniques to select from displayed items
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0238Programmable keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Input From Keyboards Or The Like (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Abstract

方法およびシステムが、タッチスクリーンなどのタッチセンシティブ表面上にカスタマイズされた仮想キーボードを規定することを可能にする。学習アルゴリズムを使用して、コンピューティングデバイスが、ユーザのタイピングパターンを学習し、仮想キーボードのキーを、ユーザに快適であり、さらにタイピング誤りを減らすことが可能な位置、サイズ、および向きに「変形させる」ことができる。ユーザが、タッチセンシティブ表面上で一連のキーストロークを実行することによって、カスタムキーパッドレイアウトを作成することが可能である。コンピューティングデバイスは、それらのタッチ位置を特定のキーと互いに関係付け、さらに仮想キーボードを表示し、タッチセンシティブ表面上のタッチを解釈するのに使用され得るキーパッドレイアウトデータを生成することが可能である。コンピューティングデバイスは、ユーザタイピング活動を監視して、検出された、または訂正されたタイピング誤りに基づいて、キーパッドレイアウトデータを改良することが可能である。キーパッドレイアウトデータは、ユーザがユーザの仮想キーボードを持ち運ぶことを可能にするように他のデバイスにエクスポートされることが可能である。

Description

本発明は、一般に、コンピュータユーザ入力デバイスに関し、より詳細には、学習データエントリデバイスに関する。
高性能であるが、携帯可能であり、コンパクトであるが、十分な機能を備えたコンピューティングデバイスの需要がますます高まっている。この傾向は、現在では、電話機、ビデオ-オーディオキャプチャデバイス、ビデオ-オーディオプレーヤ、ウェブアクセス端末装置、およびコンピュータとして機能する、セルラ電話機などの移動電子デバイス(移動デバイス)の進化において特に明白である。
移動デバイスが高度化するにつれ、アプリケーションソフトウェアの多様性および高度化も進んでおり、それにより移動デバイスを多目的生産性ツールにしている。それでも、移動デバイス、および移動デバイスのアプリケーションの有用性は、ユーザインタフェースに利用可能である小さい面積によって限定される。例えば、従来のセルラ電話機は、固定された構成の単純なキーパッドを含む。最近は、小型のQWERTYキーボード、タッチセンシティブスクリーンインタフェース、および再構成可能なキーを備えた移動デバイスが発売されてきている。
従来、キーパッドは、キーの押下げを、移動デバイス、および移動デバイスのアプリケーションソフトウェアによって解釈され得る電気信号に変換することによって機能する。図1は、キー押下げイベントがアプリケーションソフトウェアに通信され得る1つの仕方を示す通常の移動デバイスのハードウェア/ソフトウェアアーキテクチャを示す。従来の固定型キーパッド5上でキーを押し下げることは、回路を閉じ、または静電容量もしくは抵抗を変化させて、このことが、ハードウェアドライバ4によって処理され得る電気信号をもたらす。ハードウェアドライバ4は、特定の移動デバイスに依存して、回路、ソフトウェア、またはハードウェアとソフトウェアの混合であることが可能である。ハードウェアドライバ4は、キーパッド5から受け取られた電気信号を、移動デバイス上で実行されるソフトウェアアプリケーションによって解釈され得るフォーマットに変換する。この信号は、割込み、あるいはアプリケーションソフトウェアによってアクセス可能であるメモリテーブルの中の格納された値の形態であることが可能である。そのような割込み、またはメモリの中のそのような格納された値が、ランタイム環境ソフトウェア層3によって受け取られることが可能である。ランタイム環境ソフトウェア層3の目的は、アプリケーションソフトウェアと移動デバイスの間で共通のインタフェースを提供することである。このため、キー押下げイベント信号は、キー押下げイベントメッセージの形態でアプリケーション層2に転送される。アプリケーションソフトウェアは、キー押下げイベントの意味を理解することができなければならず、したがって、基礎をなすハードウェアドライバ4およびキーパッドハードウェア5に対応するように書かれなければならない。また、キー押下げイベントは、特定のキーに関連付けられた値を表示するようになど、ユーザインタフェース層1に通信されることも可能である。
ほとんどのキーパッドのレイアウトは、「フリーサイズ」アプローチを使用して確立される。つまり、キーパッドは、物理的構造によって規定される、またはディスプレイのサイズに合うように制約される。標準化されたキーパッドは、すべてのユーザ、またはすべてのコンピューティングデバイスに理想的ではない可能性がある。
米国特許出願第12/139,823号
様々な態様のシステムおよび方法が、ユーザの入力からユーザのタイピングパターンを学習することによって、特定のユーザに合わせてキーパッドを自動的に調整するタッチセンシティブ表面上の仮想キーパッドを提供する。
1つの態様において、タッチセンシティブ表面上のキーパッドを規定するための方法が、タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取ること、複数のキーをその一連の受け取られた座標と互いに関係付けること、その複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出すること、その複数のキーのそれぞれに関する算出された平均座標をキーパッドレイアウトデータの中に保存すること、およびそのキーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することを含む。この方法は、一連のキーストロークを入力するようにユーザを促すことをさらに含むことが可能であり、複数のキーをその一連の受け取られた座標と互いに関係付けることは、その促された一連のキーストロークを、その受け取られた座標と互いに関係付けることを含む。この方法は、その複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出すること、およびその複数のキーのそれぞれに関する統計エンベロープをキーパッドレイアウトデータの中に保存することをさらに含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することは、キーパッドレイアウトデータの中に格納された複数のキーの各キーの平均座標に基づく位置に、仮想キーパッドにおけるキーの画像を生成することを含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することは、各キー画像のサイズがキーパッドレイアウトデータの中の複数のキーパッドのそれぞれに関する統計エンベロープに基づく、仮想キーパッドにおける複数のキーの画像を生成することをさらに含むことが可能である。この方法は、タッチセンシティブ表面上の仮想キーパッド上のタイピングを監視すること、隣接キータイピング誤りを識別すること、隣接キータイピング誤りに関連する正しいキーを特定すること、タイプされたキーストロークに関する受け取られた座標に基づいて、正しいキーに関する平均座標を更新すること、およびその更新された平均座標を正しいキーと一緒にキーパッドレイアウトデータの中に保存することをさらに含むことが可能である。隣接キータイピング誤りを識別することは、スペルの誤った語を認識すること、およびそのスペルの誤りが、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定することを含むことが可能である。隣接キータイピング誤りを識別することは、キーに関連付けられた文字のユーザ訂正を認識すること、およびそのユーザ訂正が、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定することを含むことが可能である。キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存されることが可能であり、さらにこの方法は、ネットワークを介してコンピューティングデバイスにキーパッドレイアウトデータを伝送することをさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することは、コンピューティングデバイスに結合されたタッチセンシティブ表面上で仮想キーパッドの画像を生成することを含む。この方法は、コンピューティングデバイスに結合されたタッチセンシティブ表面上でユーザタッチを受け取ること、およびタッチセンシティブ表面上のその受け取られたユーザタッチに基づいて、タッチセンシティブ表面上で仮想キーパッドの表示のための位置を決定することをさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することは、表示のためにタッチセンシティブ表面上の決定された位置に画像を生成することを含む。
他の態様において、コンピューティングデバイスが、プロセッサと、そのプロセッサに結合されたメモリと、そのプロセッサに結合されたタッチセンシティブ表面とを含み、プロセッサは、タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取ること、複数のキーをその一連の受け取られた座標と互いに関係付けること、その複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出すること、その複数のキーのそれぞれに関する算出された平均座標をキーパッドレイアウトデータの中に保存すること、およびそのキーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することを含むプロセスを実行するプロセッサ実行可能命令を有して構成される。コンピューティングデバイスプロセッサは、一連のキーストロークを入力するようにユーザを促すことをさらに含むプロセスを実行するように構成されることが可能であり、さらに複数のキーを、その一連の受け取られた座標と互いに関係付けることは、その促された一連のキーストロークを、その受け取られた座標と互いに関係付けることを含むことが可能である。コンピューティングデバイスプロセッサは、その複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出すること、およびその複数のキーのそれぞれに関する統計エンベロープをキーパッドレイアウトデータの中に保存することをさらに含むプロセスを実行するように構成されることが可能である。
コンピューティングデバイスプロセッサは、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することが、キーパッドレイアウトデータの中に格納された複数のキーの各キーの平均座標に基づく位置に、仮想キーパッドにおけるキーの画像を生成することを含むように、プロセッサ実行可能命令を有して構成されることが可能である。コンピューティングデバイスプロセッサは、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することが、各キー画像のサイズがキーパッドレイアウトデータの中の複数のキーパッドのそれぞれに関する統計エンベロープに基づく、仮想キーパッドにおける複数のキーの画像を生成することをさらに含むように、プロセッサ実行可能命令を有して構成されることが可能である。コンピューティングデバイスプロセッサは、タッチセンシティブ表面上の仮想キーパッド上のタイピングを監視すること、隣接キータイピング誤りを識別すること、隣接キータイピング誤りに関連する正しいキーを特定すること、タイプされたキーストロークに関する受け取られた座標に基づいて、正しいキーに関する平均座標を更新すること、およびその更新された平均座標を正しいキーと一緒にキーパッドレイアウトデータの中に保存することをさらに含むプロセスを実行するように構成されることが可能である。コンピューティングデバイスプロセッサは、隣接キータイピング誤りを識別することが、スペルの誤った語を認識すること、およびそのスペルの誤りが、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定することを含むように、プロセッサ実行可能命令を有して構成されることが可能である。コンピューティングデバイスプロセッサは、隣接キータイピング誤りを識別することが、キーに関連付けられた文字のユーザ訂正を認識すること、およびそのユーザ訂正が、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定することを含むように、プロセッサ実行可能命令を有して構成されることが可能である。キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存されることが可能であり、さらにコンピューティングデバイスプロセッサは、ネットワークを介してネットワークアクセス可能なデータベースからキーパッドレイアウトデータを受信することを含むさらなるプロセスを実行するプロセッサ実行可能命令を有して構成されることが可能である。コンピューティングデバイスプロセッサは、コンピューティングデバイスに結合されたタッチセンシティブ表面上でユーザタッチを受け取ること、タッチセンシティブ表面上のその受け取られたユーザタッチに基づいて、タッチセンシティブ表面上で仮想キーパッドの表示のための位置を決定すること、および表示のためにタッチセンシティブ表面上の決定された位置に、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成することを含むさらなるプロセスを実行するプロセッサ実行可能命令を有して構成されることが可能である。
他の態様において、タッチセンシティブ表面に結合されたコンピューティングデバイスが、タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るための手段と、複数のキーをその一連の受け取られた座標と互いに関係付けるための手段と、その複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するための手段と、その複数のキーのそれぞれに関する算出された平均座標をキーパッドレイアウトデータの中に保存するための手段と、そのキーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段とを含むことが可能である。
コンピューティングデバイスは、一連のキーストロークを入力するようにユーザを促すための手段をさらに含むことが可能であり、複数のキーをその一連の受け取られた座標と互いに関係付けるための手段は、その促された一連のキーストロークを、その受け取られた座標と互いに関係付けるための手段を含む。コンピューティングデバイスは、その複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出するための手段と、その複数のキーのそれぞれに関する統計エンベロープをキーパッドレイアウトデータの中に保存するための手段とをさらに含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、キーパッドレイアウトデータの中に格納された複数のキーの各キーの平均座標に基づく位置に、仮想キーパッドにおけるキーの画像を生成するための手段を含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、各キー画像のサイズがキーパッドレイアウトデータの中の複数のキーパッドのそれぞれに関する統計エンベロープに基づく、仮想キーパッドにおける複数のキーの画像を生成するための手段をさらに含むことが可能である。コンピューティングデバイスは、タッチセンシティブ表面上の仮想キーパッド上のタイピングを監視するための手段と、隣接キータイピング誤りを識別するための手段と、隣接キータイピング誤りに関連する正しいキーを特定するための手段と、タイプされたキーストロークに関する受け取られた座標に基づいて、正しいキーに関する平均座標を更新するための手段と、その更新された平均座標を正しいキーと一緒にキーパッドレイアウトデータの中に保存するための手段とをさらに含むことが可能である。隣接キータイピング誤りを識別するための手段は、スペルの誤った語を認識するための手段と、そのスペルの誤りが、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための手段とを含むことが可能である。隣接キータイピング誤りを識別するための手段は、キーに関連付けられた文字のユーザ訂正を認識するための手段と、そのユーザ訂正が、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための手段とを含むことが可能である。キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存されることが可能であり、さらにコンピューティングデバイスは、ネットワークを介してコンピューティングデバイスにキーパッドレイアウトデータを伝送するための手段をさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、コンピューティングデバイスに結合されたタッチセンシティブ表面上で仮想キーパッドの画像を生成するための手段を含むことが可能である。コンピューティングデバイスは、コンピューティングデバイスに結合されたタッチセンシティブ表面上でユーザタッチを受け取るための手段と、タッチセンシティブ表面上のその受け取られたユーザタッチに基づいて、タッチセンシティブ表面上で仮想キーパッドの表示のための位置を決定するための手段とをさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、表示のためにタッチセンシティブ表面上の決定された位置に画像を生成するための手段を含むことが可能である。
他の態様において、コンピュータプログラム製品が、タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るための少なくとも1つの命令と、複数のキーをその一連の受け取られた座標と互いに関係付けるための少なくとも1つの命令と、その複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するための少なくとも1つの命令と、その複数のキーのそれぞれに関する算出された平均座標をキーパッドレイアウトデータの中に保存するための少なくとも1つの命令と、そのキーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令とを含むコンピュータ可読媒体を含むことが可能である。コンピュータ可読媒体は、一連のキーストロークを入力するようにユーザを促すための少なくとも1つの命令をさらに含むことが可能であり、複数のキーをその一連の受け取られた座標と互いに関係付けるための少なくとも1つの命令は、その促された一連のキーストロークを、その受け取られた座標と互いに関係付けるための少なくとも1つの命令を含む。コンピュータ可読媒体は、その複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出するための少なくとも1つの命令と、その複数のキーのそれぞれに関する統計エンベロープをキーパッドレイアウトデータの中に保存するための少なくとも1つの命令とをさらに含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令は、キーパッドレイアウトデータの中に格納された複数のキーの各キーの平均座標に基づく位置に、仮想キーパッドにおけるキーの画像を生成するための少なくとも1つの命令を含むことが可能である。キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令は、各キー画像のサイズがキーパッドレイアウトデータの中の複数のキーのそれぞれに関する統計エンベロープに基づく、仮想キーパッドにおける複数のキーの画像を生成するための少なくとも1つの命令をさらに含むことが可能である。コンピュータ可読媒体は、タッチセンシティブ表面上の仮想キーパッド上のタイピングを監視するための少なくとも1つの命令と、隣接キータイピング誤りを識別するための少なくとも1つの命令と、隣接キータイピング誤りに関連する正しいキーを特定するための少なくとも1つの命令と、タイプされたキーストロークに関する受け取られた座標に基づいて、正しいキーに関する平均座標を更新するための少なくとも1つの命令と、その更新された平均座標を正しいキーと一緒にキーパッドレイアウトデータの中に保存するための少なくとも1つの命令とをさらに含むことが可能である。隣接キータイピング誤りを識別するための少なくとも1つの命令は、スペルの誤った語を認識するための少なくとも1つの命令と、そのスペルの誤りが、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための少なくとも1つの命令とを含むことが可能である。隣接キータイピング誤りを識別するための少なくとも1つの命令は、キーに関連付けられた文字のユーザ訂正を認識するための少なくとも1つの命令と、そのユーザ訂正が、仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための少なくとも1つの命令とを含むことが可能である。キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存されることが可能であり、さらにコンピュータ可読媒体は、ネットワークを介してコンピューティングデバイスにキーパッドレイアウトデータを伝送するための少なくとも1つの命令をさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令は、コンピューティングデバイスに結合されたタッチセンシティブ表面上で仮想キーパッドの画像を生成するための少なくとも1つの命令を含む。コンピュータ可読媒体は、コンピューティングデバイスに結合されたタッチセンシティブ表面上でユーザタッチを受け取るための少なくとも1つの命令と、タッチセンシティブ表面上のその受け取られたユーザタッチに基づいて、タッチセンシティブ表面上で仮想キーパッドの表示のための位置を決定するための少なくとも1つの命令とをさらに含むことが可能であり、キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令は、表示のためにタッチセンシティブ表面上の決定された位置に画像を生成するための少なくとも1つの命令を含む。
さらなる1つの態様において、デフォルトのキーパッドをユーザの手に合わせてカスタマイズするための方法が、タッチセンシティブ表面上でユーザタッチの複数の座標を受け取ること、ユーザタッチのその受け取られた複数の座標の少なくとも一部分に基づいて、ユーザの手の寸法を測定すること、ユーザの手のその測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整すること、およびデフォルトのキーパッドレイアウトのそれらの調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成することを含むことが可能である。
さらなる1つの態様において、コンピューティングデバイスは、プロセッサと、そのプロセッサに結合されたメモリと、そのプロセッサに結合されたタッチセンシティブ表面とを含み、プロセッサは、タッチセンシティブ表面上でユーザタッチの複数の座標を受け取ること、ユーザタッチのその受け取られた複数の座標の少なくとも一部分に基づいて、ユーザの手の寸法を測定すること、ユーザの手のその測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整すること、およびデフォルトのキーパッドレイアウトのそれらの調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成することを含むプロセスを実行するプロセッサ実行可能命令を有して構成される。
さらなる1つの態様において、コンピューティングデバイスは、タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るための手段と、ユーザタッチのその受け取られた複数の座標の少なくとも一部分に基づいて、ユーザの手の寸法を測定するための手段と、ユーザの手のその測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するための手段と、デフォルトのキーパッドレイアウトのそれらの調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するための手段とを含む。
さらなる1つの態様において、コンピュータプログラム製品が、タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るための少なくとも1つの命令と、ユーザタッチのその受け取られた複数の座標の少なくとも一部分に基づいて、ユーザの手の寸法を測定するための少なくとも1つの命令と、ユーザの手のその測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するための少なくとも1つの命令と、デフォルトのキーパッドレイアウトのそれらの調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するための少なくとも1つの命令とを含む、コンピュータ可読媒体を含む。
本明細書に組み込まれ、本明細書の一部を成す添付の図面は、本発明の例示的な態様を示し、前段で与えられる全体的な説明、および後段で与えられる詳細な説明と一緒になって、本発明の特徴を説明する役割をする。
従来技術の移動デバイスのハードウェア/ソフトウェアアーキテクチャ図である。 様々な態様によって可能にされる移動デバイスのシステムコンポーネント図である。 様々な態様によって可能にされる学習モジュールのシステムコンポーネント図である。 タッチセンシティブスクリーン上で仮想キーパッドを生成するための教示ルーチンを示すプロセス流れ図である。 1つの態様において使用するのに適した命令テーブルのデータ構造を示す図である。 知られているテキストのユーザのタイピングを分析することによって仮想キーパッドレイアウトを最適化するための例示的な学習ルーチンを示すプロセス流れ図である。 知られていないテキストのユーザのタイピングを分析することによって仮想キーパッドレイアウトを最適化するための例示的な学習ルーチンを示すプロセス流れ図である。 ユーザによって行われたタイピング訂正に基づいて仮想キーパッドレイアウトを最適化するための例示的な学習ルーチンを示すプロセス流れ図である。 1つの態様において使用するのに適したデフォルトの仮想キーボードレイアウトを示す図である。 様々な態様によるカスタマイズ後の例示的な仮想キーボードレイアウトを示す図である。 キー中心点を囲む統計エンベロープを示す仮想キーボードのキーを示す図である。 1つの態様によるネットワークアーキテクチャを示す通信ネットワークブロック図である。 ユーザによるタッチに応答して選択されたカスタム仮想キーボードをタッチセンシティブ表面上に位置付けるための例示的な方法を示すプロセス流れ図である。 ユーザの手の寸法を測定したことに応答してサイズ変更されたデフォルトの仮想キーボードをタッチセンシティブ表面上に位置付けるための例示的な方法を示すプロセス流れ図である。 様々な態様において使用するのに適した移動デバイスの例示的な構成要素を示すコンポーネントブロック図である。 様々な態様において使用するのに適したコンピュータの例示的な構成要素を示すコンポーネントブロック図である。 様々な態様において使用するのに適したサーバの例示的な構成要素を示すコンポーネントブロック図である。
様々な態様は、添付の図面を参照して詳細に説明される。可能な場合はいつでも、すべての図面で同一の参照符号が、同一の、または同様の部分を指すのに使用される。特定の実施例または実施形態について述べることは、例示目的であり、本発明の範囲、または特許請求の範囲を限定することは意図していない。
本明細書で使用される「移動ハンドセット」および「移動デバイス」という用語は、互換的に使用され、様々なセルラ電話機、PDA(携帯情報端末)、パームトップコンピュータ、ラップトップコンピュータ、無線電子メール受信機(例えば、Blackberry(登録商標)デバイスおよびTreo(登録商標)デバイス)、およびマルチメディアインターネット対応のセルラ電話機(例えば、Blackberry Storm(登録商標))、ならびに類似したパーソナル電子デバイスのいずれか1つを指す。移動デバイスは、図13を参照して後段でより詳細に説明されるプログラマブルプロセッサおよびメモリを含むことが可能である。「コンピューティングデバイス」という用語は、本明細書では、移動デバイス、デスクトップコンピュータ、ワークステーション、メインフレームコンピュータ、および組み込み型コンピュータシステムを含め、プログラマブルプロセッサおよびメモリを含む任意のデバイスを指すように使用される。
本明細書で使用される「キーパッド」および「キーボード」という用語は、互換的に使用され、QWERTY(または他の)キーボード、数字キーパッド、ゲームコントローラ、および音楽キーボードなどのコンピューティングデバイスに入力データを伝えるのに使用されるユーザ入力デバイスの様々な構成のいずれか1つを一般に指すのに使用される。様々な態様は、「キー」が表示される、投影される、または目に見えないことが可能である「仮想」ユーザ入力デバイスを含むので、「キーパッド」および「キーボード」という用語は、押し下げられ得る物理的キーを要求することは意図しておらず、むしろ、ユーザの指によるタッチ(または押圧)を感知し、そのタッチをコンピューティングデバイスに対する入力として解釈することができる任意のユーザ入力デバイスを指す。
本明細書で使用される、「タッチセンシティブ表面」という用語は、ユーザの指によるタッチ(または押圧)を検出し、または感知し、そのタッチをコンピューティングデバイスに対する入力として解釈するように構成された任意の表面を包含する。特に、タッチセンシティブ表面は、ユーザの指先のタッチの位置を特定することができる。表面上の指先のタッチおよび位置を感知することは、様々な知られている技術のいずれかを使用して達せられることが可能である。例えば、タッチセンシティブ表面は、ユーザタッチを直接に検出する感圧表面、静電容量感知表面、および静電誘導感知サービスを含むことが可能である。さらなる例として、タッチセンシティブ表面は、指先が表面と接触していると、そのことを認識することができる光センサによって、ユーザタッチを検出することが可能である。光センサの例には、ユーザの指が投影された画像と対話すると、そのことを検出することができる(例えば、カメラまたはフォトセンサによって)投影システム、ならびにユーザの指先を撮像し、ユーザの指先の位置を特定することができる赤外線-カメラセンサが含まれる。カバーガラスを伝わる超音波の効果に基づいてタッチを検出することができる超音波センサ、またはカバーガラス上のタッチからの受け取られた振動または音の三角測量に基づいて、タッチの位置を特定することができる音センサまたは振動センサなどの、第3の例示的なタッチセンサは、音測定または振動測定を使用して、ユーザタッチを検出し、ユーザタッチ位置を特定することが可能である。
タッチセンシティブ表面は、様々な表面のいずれの上で使用されることも可能であり、このため、特定のタイプのデバイスまたは形態に限定されることは意図されない。例えば、壁、テーブル、鏡、自動車の窓、あるいは平面であれ、曲面であれ、任意の表面が、タッチセンシティブ表面として構成されることが可能である。本明細書で使用される「タッチセンシティブスクリーン」または「タッチスクリーン」は、ディスプレイと組み合わさったタッチセンシティブ表面である。ディスプレイは、液晶ディスプレイ(Blackberry Storm(登録商標)の場合のように)などの物理的ディスプレイであることが可能である。本明細書で使用される「投影されるキーボードディスプレイ」とは、表面上にキーボードの画像を投影することができるプロジェクタを指す。投影されたキーボードディスプレイは、タッチセンシティブ表面上にキーボード画像を投影することによって、または光センサなどの他の技術によって指のタッチを感知することによって、タッチを感知することが可能である。
本明細書で使用される「仮想キーパッド」および「仮想キーボード」とは、タッチスクリーンなどのタッチセンシティブ表面上に表示された、または投影された、あるいは光センサなどの別のタッチセンサ技術と連携して表面上に投影されたキーパッド画像を指す。いくつかの態様において、仮想キーパッドの「キー」は、ディスプレイスクリーン上、または投影上に表示されることが可能であるが、いくつかの態様は、全く画像を提供しない可能性がある。このため、「仮想キーパッド」は、目に見えないキーパッドであることも可能である。仮想キーパッドは、数字または文字に必ずしも限定されず、本明細書で使用される場合、キーまたはボタンのユーザによる活性化が関与する任意のユーザインタフェースを包含する。非数字または非文字の仮想キーパッドの例には、タッチセンシティブ表面を含むゲームコントローラ、デバイスコントローラ(例えば、TVリモート)、アプリケーションインタフェース、およびジョイスティックが含まれる。例えば、仮想キーパッドは、MP3アプリケーションまたはビデオプレーヤアプリケーションのためのユーザインタフェースとして実施されることが可能である。
本明細書で使用される「キーパッドレイアウトデータ」という用語は、仮想キーパッドにおけるキーの位置、サイズ、形状、および向きに関する情報、特に、仮想キーパッドの画像を生成するのに使用され得る情報の総称である。
本明細書で使用される「エンベロープ」とは、タッチセンシティブ表面上のユーザによるキーの打ち方の本来的なばらつきを見込む仮想キー寸法の許容可能な範囲を指す。パラメータは、例えば、相対X軸位置、相対Y軸位置、およびディスプレイピクセルマトリックス位置範囲であることが可能である。
コンピューティングデバイスキーパッドの例示的なハードウェア/ソフトウェアインタフェースが、図1に示される。キーパッド5上のキーを押すことは、ハードウェアドライバ4によって処理され得る電気信号をもたらす。ハードウェアドライバ4は、特定のコンピューティングデバイス(例えば、移動デバイス)に依存して、回路、ソフトウェア、またはハードウェアとソフトウェアの混合であることが可能である。ハードウェアドライバ4は、キーパッド5から受け取られた電気信号を、コンピューティングデバイス上で実行されるソフトウェアアプリケーション2によって解釈され得るフォーマットに変換する。この信号は、割込み、あるいはアプリケーション2によってアクセス可能であるメモリテーブルの中の格納された値の形態であることが可能である。そのような割込み、またはメモリの中のそのような格納された値が、ランタイム環境またはオペレーティングシステムの一部であることが可能なキーパッドインタフェース3によって受け取られることが可能である。キーパッドインタフェース3の目的は、アプリケーションソフトウェア2とコンピューティングデバイスキーパッド5の間で共通のインタフェースを提供することである。このため、キー押下げイベント信号は、アプリケーション2が解釈することができるキー押下げイベント信号またはキー押下げイベントメッセージ(例えば、ASCI文字値)の形態でアプリケーション層2に転送されることが可能である。
図1に示されるような従来から知られているシステム/ハードウェアアーキテクチャを使用して、アプリケーション開発者は、「標準の」キーパッドレイアウト(例えば、QWERTYキーボードまたは数字キーパッド)で、またはアプリケーションがロードされる可能性がある各タイプの移動デバイスに固有のキーパッドレイアウトで機能するように開発者のソフトウェアを適応させなければならなかった。特定のキーセットを要求するアプリケーション(例えば、ゲームまたはデバイスリモコン)は、固定型キーパッドレイアウトを有するデバイス上で機能できない可能性があり、あるいは限られた仕方、またはユーザフレンドリでない仕方でしか機能できない可能性がある。アプリケーションソフトウェアとキーパッドの間の標準インタフェース、および他のユーザインタフェースとしてキーパッドプロトコルを提供するためのシステムおよび方法が、2008年6月16日に出願した「Standardized Method and Systems for Providing Configurable Keypads」という名称の、本出願人が所有する米国特許出願第12/139,823号において最近、開示された。米国特許出願第12/139,823号の内容全体が、すべての目的のために参照により本明細書に組み込まれている。
本発明の様々な態様は、特定のユーザに合わせてカスタマイズされたキーパッドレイアウトを規定するための方法およびシステムを提供する。学習アルゴリズムを使用して、様々な態様を実施するコンピューティングデバイスが、ユーザのキーサイズ、キー間隔、およびタイピングパターンを学習し、仮想キーボードのキーを、ユーザに快適であり、さらにユーザタイピング誤りを減らす位置、サイズ、および向きに「変形させる」ことができる。1つの態様によれば、ユーザは、コンピューティングデバイスによって提供される教示ルーチンに従うことによってカスタムキーパッドレイアウトを作成することができる。例えば、コンピューティングデバイスが、ディスプレイ上でデフォルトのキーパッドレイアウトを提示し、一連のキーストロークを実行するようにユーザを促すことが可能である。ユーザが、そのような命令に従い、各キーを押すにつれ、コンピューティングデバイスは、各キーに対応するタッチ位置を特定することができ、さらにその情報を使用して、ユーザの手に合うキーの位置、サイズ、形状、および向きとともにキーパッドレイアウトの適切なエンベロープを発見することができる。この教示ルーチンの結果は、コンピューティングデバイスが、仮想キーパッドにおけるキーの表示を生成する(例えば、タッチスクリーン上、または投影されたキーボード上で)のに使用するキーパッドレイアウトデータとして格納されることが可能である。
キーパッドレイアウトデータ(したがって、さらに仮想キーボードのレイアウト)は、ユーザが、コンピューティングデバイスに知られているテキストをタイプ入力し(例えば、コンピューティングデバイスのディスプレイ上に提示されたパラグラフをタイプ入力し)、入力されたキーストロークが、ユーザの指によるキー打ちのばらつきを記録するように処理される訓練シーケンスによってさらに最適化されることが可能である。ユーザのタイピングのばらつきの分析は、キーをさらに成形する、位置付ける、または規定するのに使用され得る各キーに関するエンベロープを規定するのに、さらに自動訂正アルゴリズムを適用する際に使用されることが可能である。
学習アルゴリズムが、キーパッドレイアウトデータの中に記録されたキーエンベロープおよびキー位置を改良するために、時とともにユーザのタイピングを監視して、指のタッチを仮想キー位置と互いに関係付け、さらにタイプ入力誤りを認識するようにさらに実施されることが可能である。ユーザのタイピングパターンを分析することによって仮想キーパッドレイアウトを改良することで、コンピューティングデバイスが、ユーザタイピング誤りを減らすことを助ける仮想キーボードを提供することを可能にする。ユーザキーストローク誤りは、タイプ入力された文字または数字のユーザ訂正を記録にとることによって、さらにスペルチェック技術または予測テキスト技術を介して誤ったキーストロークを認識することによって認識されることが可能である。そのような学習アルゴリズムの出力は、メモリの中に格納され、ユーザに関連付けられることが可能な改良されたキーパッドレイアウトデータであることが可能である。
キーパッドレイアウトデータは、コンピューティングデバイスのメモリ内に格納されること、実体のある媒体上に格納されること、および通信リンクを介して伝送されることが可能な1つまたは複数のデータテーブルの形態であることが可能である。キーパッドレイアウトデータを別のコンピューティングデバイスに伝送することは、ユーザのカスタマイズされたキーボードが他のコンピューティングデバイス上で実施されることを可能にすることができる。ユーザの手のサイズ、リーチ、器用さ、およびタイピングパターンに合わせてカスタマイズされたポータブル仮想キーボードをユーザが作成することを可能にすることにより、様々な態様は、ユーザの生理機能の変化とデータエントリのために使用される技術の変化の両方に適応することができる仕方で、データの効率的な入力を円滑にする。
図2を参照して後段でさらに詳細に説明されるとおり、様々な態様に関連する学習アルゴリズムは、コンピューティングデバイスのプロセッサ上で動作するプロセッサ実行可能命令のモジュールであることが可能な、学習モジュールにおいてコンピューティングデバイス内で実施されることが可能である。例として、限定としてではなく、学習モジュールは、訓練ルーチンを使用し、時とともにユーザタイピングを追跡して、特定のユーザに合わせてカスタマイズされたQWERTYキーボードのキーパッドレイアウトを規定することが可能である。
タッチセンシティブ表面、タッチスクリーン、および投影されたキーボードディスプレイなどの様々な仮想キーボードのいずれかを使用する様々な態様が、コンピューティングデバイス上で実施されることが可能である。
学習モジュールおよび訓練ルーチンは、QWERTYキーボードレイアウトの文脈において後段で説明されるが、様々な態様は、異なるキーレイアウトを有する数字キーパッドや英数字キーパッドなどの、他のタイプのキーパッドを規定するように適用されることが可能である。また、例えば、様々な態様は、カナダマルチリンガル標準、カナダフランス語、チェコ語、デンマーク語、オランダ語、フェロー語、アイルランド語、イタリア語、ノルウェー語、ポーランド語、ポルトガル語(ポルトガル)、ポルトガル語(ブラジル)、ルーマニア語(ルーマニア国内、およびモルドバ国内)、スロバキア語、スペイン語(スペイン)、スペイン語(ラテンアメリカ)、スウェーデン語/フィンランド語、英国、英国拡張、および米国-国際に関して規定されたキーボードレイアウトを含め、QWERTYキーボードレイアウトの変種形態に適用されることも可能である。様々な態様は、例えば、QWERTZ(チェコ語、ハンガリー語、ドイツ語、およびオーストリア、スロバキア語、ボスニア語、クロアチア語、セルビア語(ラテン文字)、およびスロベニア語、セルビア語(キリル文字)、スイスドイツ語、スイスフランス語、スイスイタリア語、リヒテンシュタイン、およびルクセンブルクに関して規定されたキーボードレイアウトを含む)、AZERTY(フランス語およびベルギーに関して規定されたキーボードレイアウトを含む)、QZERTY、ドボラック(Dvorak)キーボード、コールマック(Colemak)キーボード、トルコ語、およびコーデッド(chorded)キーボードを含む他のタイプのキーボードレイアウトにも同様に適用される。さらに、様々な態様は、例えば、アラビア語、アルメニア語、ギリシャ語、ヘブライ語、ロシア語、ウクライナ語、ブルガリア語、デバナーガリ文字、タイ語、クメール語、チベット文字、チベット語(中国)、ゾンカ語(ブータン)、中国語、日本語、ハングル(韓国用)、ドゥボル式(Dubeolshik)、セボル式(Sebeolshik)390、セボル式ファイナル、およびセボル式ノーシフトを含む非ラテンアルファベットおよび非アルファベット文字に合わせて最適化されたキーボードに適用されることも可能である。さらに、様々な態様は、ピアノキーボードなどの音楽キーボードに適用されることも可能である。
ユーザが、カスタマイズされた仮想キーボードを生成するようにコンピューティングデバイスを訓練する前、コンピューティングデバイスは、タッチセンシティブ表面(例えば、タッチスクリーン)の寸法に適合する標準サイズのQWERTYキーボードなどの、デフォルトのレイアウトに基づくキーボードを表示することが可能である。ユーザが、後段で説明されるとおり、このデフォルトのキーボードと対話するにつれ、学習モジュールが、そのような訓練の終了時にユーザの仮想キーボードレイアウトがデフォルトのレイアウトとは異なるように、キーを再配置することが可能である。
代替として、コンピューティングデバイスは、ユーザが、ユーザの気に入るように仮想キーボードを位置付け、方向付けることを可能にするように構成されることが可能である。ユーザの手の生理機能について学習するために、コンピューティングデバイスは、スピーカ、または表示されたテキストなどを介して、タッチセンシティブ表面上でキーボードが位置付けられることをユーザが選好する場所にユーザの手を位置付けるよう、ユーザに命令を発行することが可能である。例えば、ユーザは、「ASDF」キーが配置されることをユーザが選好する場所に左手の指がタッチし、「JKL;」キーが配置されることをユーザが選好する場所に右手の指がタッチし、さらにスペースキーが配置されることをユーザが選好する場所に親指がタッチするように、タッチセンシティブ表面上でユーザの手を置くよう、命令されることが可能である。コンピューティングデバイスは、各指のタッチ位置を特定し、このタッチ情報を使用して、ユーザの指のタッチに合うようにサイズ変更され、方向付けされた仮想キーボードを生成し、表示する。
ユーザが仮想キーパッドの位置およびサイズを規定することを可能にすることの一環として、コンピューティングデバイスは、指が、キーボード上でより近くに位置付けられるほど、より速くタイプすることができることを研究が示していることをユーザに思い起こさせることが可能である。さらに、ユーザは、表面上に手のひらを置くことがより快適である場合、そうしても構わないことを指示されることが可能である。
指の位置は、タッチセンシティブ表面によってキャプチャされて、座標系に応じてコンピューティングデバイスによって記録されることが可能である。例えば、「A」キーおよび「;」キーの位置が、ディスプレイマトリックス、または「X-Y」座標系を基準として決定されて、それらの座標がキーパッドレイアウトデータの中に保存されることが可能である。指先位置データは、コンピューティングデバイスにおいて実施された学習モジュールによって処理されることが可能である。キーは、ユーザの指のタッチの中心点、ならびにキーのサイズおよび形状を規定するエンベロープの点で規定されることが可能である。後段でより詳細に説明されるとおり、エンベロープは、ユーザがタイプする間の特定のキータッチの位置の統計分析に基づいてサイズ変更されることが可能であり、したがって、エンベロープは、ユーザタッチの大半を包含することが可能である。エンベロープは、画像を生成するのに使用されることが可能であり、画像は、中心点座標を中心とする。また、エンベロープ情報は、キー画像の合間に該当するキーストロークの曖昧さを除くのにコンピューティングデバイス(またはキーパッドドライバ)が使用することが可能な情報をもたらすように、キー画像を超えて拡張されてもよい。
教示プロセスにおいて、コンピューティングデバイスは、その特定の仮想キーボードのその他のキーの適切な位置を学習することが可能である。適切なキー位置は、X座標とY座標などのタッチセンシティブ表面の座標構造に応じて、または各キーがそれぞれの隣接するキーから決まった距離、および決まった角度で離れて位置付けられる相対オフセットに応じて規定されることが可能である。座標系において、キーは、ユーザタッチの重心に対応する中心点に配置されることが可能であり、さらにユーザタッチ位置のばらつきによって規定されることが可能なエンベロープに基づいて、サイズ変更されることが可能である。相対位置システムにおいて、すべてのキーは、2つ以上のアンカキーの規定された位置に基づいて、位置付けられることが可能である。座標系仮想キーボードのキーの座標およびサイズ、ならびに相対システムのキーの互いに対する相対オフセットは、キーパッドレイアウトデータとして格納されることが可能である。
他の態様において、訓練ルーチンは、ユーザのキー打ち精度を向上させ続けることが可能である。ユーザは、数サイクルにわたって指定された句またはパラグラフをタイプするように求められることが可能である。例えば、ユーザは、タイプすべきパラグラフ、あるいはユーザがタイプすべき現在の語、およびその先の2語を示すプロンプトを与えられることが可能である。第1のサイクルにおいて、コンピューティングデバイスが、各文字を打つようにユーザを促すと、そのキーが、ユーザの指がタッチする場所に移動することが可能である。学習モジュールは、正しいキーの中心の位置から或るしきい距離のキー打ちとして定義されたタイピング誤りを無視するように構成されることが可能である。第2のサイクルにおいて、中心点(すなわち、キーの中心の位置)が、ユーザのキー打ちの位置の平均として算出されることが可能である。後続のサイクルにおいて、ユーザがキーパッドレイアウトにより慣れてくるにつれ、以前の中心点の出現は、その度により小さく評価されることが可能である。ユーザのキー打ち速度および誤り率が水平状態になると、訓練ルーチンは、終了することが可能である。
図2は、様々な態様を可能にするコンピューティングデバイスのシステムコンポーネント図である。コンピューティングデバイスは、仮想キーボード12が表示されるタッチセンシティブ表面14を含むことが可能である。タッチセンシティブ表面14は、その表面に対するタッチに関連する信号を受け取り、それらの信号を、キーパッドインタフェース3のようなコンピューティングデバイスオペレーティングシステムによって解釈され得るタッチイベントおよび座標信号に変換するハードウェアドライバ4に結合されることが可能である。説明を簡単にするため、キーパッドインタフェース3は、プロセスモジュールとして示されるが、キーパッドインタフェース3は、コンピューティングデバイスオペレーティングシステムの機能の一部分、またはコンピューティングデバイスのファームウェア構成要素もしくはハードウェア構成要素であってもよい。例示的な実施形態において、キーパッドインタフェース3機能は、タッチイベント信号を、オペレーティングシステムのコンテキスト内で動作しているアプリケーション2に、そのアプリケーションによって解釈され得るフォーマットで中継する。ハードウェアおよびコンピューティングデバイス実施形態に依存して、タッチセンシティブ表面14に関するハードウェアドライバ4が、キーパッドインタフェース3と一緒になって、仮想キーボード12表示を生成することが可能である。さらに、ハードウェアドライバ4および/またはキーパッドインタフェース3は、タッチセンシティブ表面14上のタッチを、それらのタッチの位置座標に基づいて、特定のキー上のタッチとして解釈することが可能である。次に、キーパッドインタフェース3が、キー押下げイベントをアプリケーション2に伝えることが可能であり、アプリケーション2が、物理的キーボードからであるかのように、その押されたキーを識別する。
1つの態様において、キーパッドインタフェース3は、ユーザのキーストロークから適切なキー位置を学習するように構成された学習モジュール10と協働することが可能である。前述したとおり、学習モジュール10は、タッチセンシティブ表面14上の指のタッチの位置に関する情報をキーパッドインタフェース3またはハードウェアドライバ4から受け取り、この座標情報を予期されるキーストロークと互いに関係付けて、メモリの中に格納されたキーパッドレイアウトデータ8を生成する、または改良することが可能である。次に、学習モジュール10によって生成されたキーパッドレイアウトデータ8が、ハードウェアドライバ4(またはいくつかの実施形態においてキーパッドインタフェース3)によってアクセスされて、タッチセンシティブデバイス14上に表示される仮想キーパッド12を生成するのに使用されることが可能である。また、キーパッドインタフェース3またはハードウェアドライバ4は、キーパッドレイアウトデータ8を使用して、タッチセンシティブ表面14から受け取られたタッチ座標を、アプリケーション2に伝えられ得るキータッチイベントに変換することも可能である。このように構成されて、学習モジュール10は、コンピューティングデバイス上で実行されているアプリケーション2へのキータッチイベントの通信を妨げる、または遅くすることなしに、キーパッドレイアウトデータ8を継続的に改良することが可能である。
1つの態様において、学習モジュール10は、タイピング誤りを減らし、ユーザのタイピング習熟を高めるために仮想キーパッド12上のユーザキーストロークを解釈し、仮想キーの配置、向き、およびサイズを指定するキーパッドレイアウトデータ8を改良するプロセッサ実行可能プロセスであることが可能である。学習モジュール10プロセスは、アプリケーション2として、コンピューティングデバイスオペレーティングシステムの一部分として、またはハードウェアドライバ4の一部として実施されることが可能である。また、学習モジュール10は、意図されたキーストローク、または予測されるキーストロークについて学習モジュール10に知らせることができる訓練アプリケーション、スペルチェックアプリケーション(ワードプロセッシングアプリケーション内に実施されることが可能であるような)、および自動訂正アプリケーションなどの、他のアプリケーションから情報を受け取ることも可能である。学習アルゴリズム、人工知能、または他の推測プロセスを使用して、学習モジュール10は、タッチセンシティブ表面14の形状を特定のキーに結び付けるために、各キーストロークを所望されるキー、または適切なキーと互いに関係付けることが可能である。タッチセンシティブ表面14の形状を仮想キーパッド12のキーにそのように結び付けることには、ユーザのキーストローク位置付けの不可避なばらつきを見込む統計分析が関わることが可能である。学習モジュール10のキーパッドレイアウトデータ8出力は、コンピューティングデバイスオペレーティングシステムのキーパッドドライバ4、キーパッドインタフェース3、または他の要素が、仮想キーパッド上のタッチイベントを適切な文字(例えば、ASCII文字値)に変換するのに使用することができる、メモリの中に格納された相互関係マトリックスの形態であることが可能である。学習モジュール10が、ユーザキーストロークを処理し、キーパッドレイアウトデータ8の相互関係マトリックスを更新するにつれ、仮想キーボードの各キーのサイズ、位置、形状、および向きが、学習モジュール10によって認識されるパターンと一致するように変化することが可能である。
図3は、学習モジュール10の中に含められることが可能である例示的な機能のシステムコンポーネント図である。学習モジュール10は、推測エンジン100、デフォルトのキーパッドデータテーブル102、および命令データベース106を含むことが可能である。推測エンジン100は、コンピューティングデバイスプロセッサ上で実行されるプロセスおよび規則の形態であることが可能である。コンピューティングデバイスのメモリの中に格納されることが可能なデフォルトのキーパッドデータテーブル102は、学習ルーチンがキーパッドレイアウトデータ8を生成するように完了される前に、デフォルトの仮想キーボードを表示し、キーストロークを解釈するのに使用されることが可能な前もってプログラミングされたキーパッドレイアウトデータであることが可能である。学習モジュール10は、初期訓練ルーチン中にユーザに提示されることが可能な訓練コマンドおよび訓練テキストサンプルを含む、メモリの中に格納されることが可能な命令データベース106を含むことも可能である。
図4は、1つの態様によるタッチセンシティブ表面上で仮想キーパッドを生成するための例示的な教示プロセス200を示すプロセス流れ図である。図4を参照すると、プロセス200においてブロック202で、学習モジュールが、キー位置データについてデフォルトのキーパッドレイアウトテーブルにクエリを行い、ブロック204で受け取られたデータを使用してデフォルトのキーパッドデータを生成することが可能である。1つの態様において、デフォルトのキーパッドデータは、タッチセンシティブ表面と互いに関係付けられた「X-Y」座標系におけるキー位置データを含むことが可能である。他の態様において、デフォルトのキーパッドデータは、コンピューティングデバイスに接続されたタッチスクリーンのピクセル位置を規定する行-列マトリックスフォーマットにおけるキー位置データを含むことが可能である。他の態様において、デフォルトのキーパッドデータは、デフォルトのキーパッドレイアウトの各キーの中心点の間の平均距離を含むことが可能である。
プロセス200においてブロック212で、コンピューティングデバイス内の学習モジュール10が、デフォルトのキーパッドレイアウトデータを、仮想キーボードの画像を生成するためにタッチセンシティブ表面ハードウェアドライバ4、キーパッドインタフェース3、およびオプションとして、ディスプレイドライバに利用できるようにすることが可能である。例えば、学習モジュールは、デフォルトのキーパッドレイアウト情報をキーパッドレイアウトデータ8にロードして、タッチセンシティブ表面デバイスドライバ4(またはコンピューティングデバイスもしくはオペレーティングシステムの他の構成要素)が、ブロック214でレイアウトデータにアクセスし、ブロック216でそのデータを使用して仮想キーパッドの表示を生成することができるようにすることが可能である。
プロセス200においてブロック208で、学習モジュールは、訓練ルーチンの一環としてユーザに与えるべき次の命令を獲得するように命令データベースにアクセスすることも可能である。図5を参照して後段でより詳細に説明されるとおり、学習モジュールが順次にアクセスして、ユーザに提示することができる一連の訓練命令がデータベースの中に格納されることが可能である。ブロック218で、選択された命令がユーザに表示される、または聴覚的に提示されることが可能である。ブロック220で、ユーザが、表示されたパラグラフまたは文をタイプすることなどによって、それらの命令に従うと、タッチセンシティブ表面デバイスドライバが、ユーザのタッチの座標をキャプチャする。ブロック222で、学習モジュール10が、タッチセンシティブ表面からキーストローク位置を受け取る。ブロック223で、学習モジュールが、それらのタッチ座標を、ユーザに対する命令に基づいて予期されていた特定のキーと互いに関係付けることが可能である。例えば、ユーザにタイプすべき或る文が提示されていた場合、予期されるキーは、タイプされるべき文中の次の文字である。タッチ位置を予期されるキーと互いに関係付ける際、学習モジュールは、特定のタッチセンシティブ表面座標を特定のキーに関連付ける。1つの態様において、学習モジュールは、受け取られたタッチ位置をデフォルトのキーパッドレイアウトデータと比較して、タイプされたキーを推測することも可能である。さらなる態様において、予期されるキーとデフォルトのキーパッドレイアウトの両方が、特定のキーストローク座標に関連付けられるべきキーを特定するのに使用されることが可能である。ブロック224で、タッチ座標-キー関連付けが、メモリの中に格納されたキーパッドレイアウトデータを更新する、または生成するのに使用されることが可能である。ブロック226で、学習モジュールが、更新されたキーパッドレイアウトデータをタッチセンシティブ表面デバイスドライバ(またはコンピューティングデバイスの他の構成要素)に利用できるようにして、ブロック214に関連して前述したとおり、更新されたキーパッドがユーザに表示され得るようにすることが可能である。
プロセス200における判定ブロック228で、学習モジュールは、或る特定のステップが行われたことをユーザが合図したかどうかを判定することが可能である。すべてではないものの、一部の訓練命令は、或る特定のステップが達せられると、スペースバーを2回、打つことなどによって、そのことを合図するようにユーザに求めることが可能である。その命令が行われていない(すなわち、判定ブロック228=「いいえ」)場合、学習モジュールは、ブロック222に戻り、次のユーザキーストローク座標を受け取り、さらに次のキーに関するキーパッドレイアウトデータを更新する。特定の命令が行われている(すなわち、判定ブロック228=「はい」)場合、学習モジュールは、判定ブロック230で、最後の訓練命令に達しているかどうかを判定することが可能である。最後の命令に達していない(すなわち、判定ブロック230=「いいえ」)場合、学習モジュールは、ブロック208に戻り、命令データベースからの次の命令にアクセスすることが可能である。次に、ユーザの訓練が、ブロック218から230に関連して前述したプロセスを繰り返すことによって進められることが可能である。最後の訓練命令に達している(すなわち、判定ブロック230=「はい」)場合、第3の学習モジュールは、訓練が完了したことをユーザに知らせることが可能であり、訓練プロセスは、ブロック232で終了されることが可能である。
図4は、命令がタッチセンシティブスクリーン上に表示されることが可能であることを示すが、これらの命令は、他の手段を介してユーザに与えられてもよい。例えば、これらの命令は、コンピューティングデバイスのオーディオ構成要素を介して聴覚的に提示されてもよい。
代替の態様において、コンピューティングデバイスは、ユーザが好ましい位置を選択し、そのような位置にキーを移動することを可能にするように構成されることが可能である。そのような実施形態において、仮想キーボードがタッチセンシティブ表面上で表示されることが可能であり、ユーザが、キーにタッチして保持し、次に、そのキーを新たな位置にスライドさせてから、タッチセンシティブ表面から指を上げるように促されることが可能である。学習モジュールは、このタッチとスライドの動きを認識することが可能であり、さらにその特定のキーに関する新たな位置を記録するようにキーボードレイアウトデータを更新することが可能である。同様に、ユーザは、表示された仮想キーボード上のいくつかのキーにタッチし、次に、仮想キーボードを引き伸ばすように、サイズ変更するように、さらに仮想キーボードの向きを変えるようにすべての指を動かすことによって、キーボード全体のサイズ変更することを許されることが可能である。例えば、ユーザは、QWERTYキーボード上のA、S、D、F、J、K、L、および;のキーにタッチし、次に、仮想キーボードを広げるように指をスライドさせて広げる、または仮想キーボードを縮めるように指をスライドさせて近づけるように促されることが可能である。ユーザは、或る特定のキーシーケンス(例えば、スペースキーを2回)を打って、このキー再配置プロセスの完了を合図するように促されることが可能である。
前述したとおり、学習モジュール10によって使用される訓練命令は、図5に示されるようなデータテーブルの形態であることが可能な、命令データベース106の中に格納されることが可能である。そのような命令データベースデータテーブル300は、インデックス302を介して学習モジュール10によって参照され、さらにユーザに対して表示を生成する、または聴覚命令を流すのに使用されることが可能である様々な命令306を含むことが可能である。また、命令データベースデータテーブル300は、推測エンジン100がキータッチ位置を特定のキーと互いに関係付けることができるように、ユーザが押すことが予期されるキーストローク308を含むことも可能である。例えば、命令データベースデータテーブル300は、タッチセンシティブ表面上でキーボードを位置付けるため(インデックス0)、およびデフォルトのキーボードをサイズ変更するため(インデックス1)の初期命令に続いて、推測エンジン100がユーザのタイピングパターンを学習することを可能にするようにユーザがタイプすることが可能な訓練テキスト(インデックス2および3)を含むことが可能である。命令データベース106の中の訓練ルーチンを編成することによって、推測マシン100および訓練ルーチンの更新が、学習モジュール10全体を置き換えることなしに達せられることが可能である。
学習モジュール10の動作は、学習モジュール10が、ユーザの指の位置について学習し、ユーザが様々なキーを再配置することを許し、さらに仮想キーボードレイアウトをさらに最適化するように一連のタイピングセッションを実施する例によって示されることが可能である。例えば、ユーザは、タッチセンシティブスクリーン上で「ASDF」キーが配置されることをユーザが選好する領域にユーザの左手を位置付け、タッチセンシティブスクリーン上で「JKL;」キーが配置されることをユーザが選好する領域にユーザの右手を位置付け、さらにスペースキーが配置されることをユーザが選好する場所に各親指を位置付けるように命令される(スピーカまたは表示されたテキストを介して)ことが可能である。代替として、ユーザは、キーボードのデフォルトのレイアウトを提示されて、特定のキーの上にユーザの指を置くように求められてもよい。例えば、図8は、両側にタッチスクリーン表面を有して、開かれると、ほぼフルサイズの仮想QWERTYキーボードがユーザに提示されるようになる移動デバイスのタッチスクリーン上で、ユーザに提示されることが可能なデフォルトのキーパッドレイアウト320の図である。
初期仮想キーボードレイアウトが確立されると、学習モジュール10が、ユーザの特定のタイピングパターンと一致するキー認識を向上させるようにキーボードレイアウトを改良するために、訓練ルーチンに参加するようにユーザを促すことが可能である。例えば、ユーザは、様々な決まった句を1回、または複数回、タイプするように促されることが可能である。例えば、ユーザは、「The quick brown fox jumped over the lazy dog's back」のような句をタイプするよう、ディスプレイ上で指示を与えられることが可能である。ユーザが各文字を打つにつれ、学習モジュール10が、タッチセンシティブ表面から受け取られたタッチ位置情報を、予期されるキーと比較する。次に、このタッチ位置情報が、キーパッドレイアウトデータ8の中の予期されるキーと互いに関係付けられることが可能である。1つの態様において、表示される仮想キーボード画像は、ユーザがタイプした場所にキー画像が移動することが可能であるように、各キーストロークで調整されることが可能である。学習モジュール10は、予期されるキーの予期される位置からしきい距離のキー打ちなどのタイピング誤りを無視するように構成されることが可能である。
ユーザがより多くタイプするほど、学習モジュールは、ユーザの固有のタイピングパターンによりよく合うように仮想キーパッドをカスタマイズすることができる。ユーザが、表示された句をタイプすることにとりかかると、各キーの中心点位置が、ユーザによる各キーに関する典型的なキー打ち位置を反映するように平均されることが可能である。そのような訓練ルーチンが進み、キー打ち位置の数が増えるにつれ、平均タッチ中心点は、変化がますます少なくなることが可能である一方で、特定のキー上のユーザのキー打ちのばらつきに関する情報が獲得されることが可能である。通常のキー打ち位置のばらつきに対処するために、学習モジュールは、平均中心点などの標準偏差などのキー打ち位置のばらつきを反映する統計パラメータを計算し、さらに仮想キー画像を、このばらつきを反映するサイズにすることが可能である。このため、ユーザが一貫した位置で打つキー(例えば、QWERTYキーボード上の「F」キーおよび「J」キー)が、相対的に小さいサイズで、対称的な形状(例えば、楕円形または正方形)で表示されることが可能である一方で、一貫性がなく打たれるキーは、比較的大きいサイズで、非対称的な形状(例えば、ばらつきの軸に沿って、より長く)表示されることが可能である。次に、ユーザのタイピングパターンについてのそのような学習の結果が、カスタマイズされた仮想キーパッドの表示を生成するのに使用されるキーパッドレイアウトデータの中に格納される。このようにしてキー位置およびキー形状が最適化された後のカスタマイズされた仮想キーボードレイアウトの例が、図9に示される。
図6Aは、訓練ルーチンにおいてユーザのキーストロークを学習するように学習モジュール10内で実施されることが可能である例示的なプロセス240を示す。プロセス240においてブロック242で、コンピューティングデバイス内の学習モジュール10が、一連のキーストロークを入力するように、または何らかの定義されたテキストをタイプするようにユーザを促すことが可能である。このことは、コンピューティングデバイスディスプレイ上でユーザがタイプすべきテキストを表示することによって、またはコンピューティングデバイスオーディオ回路を介してオーディオファイルを再生することによって達せられることが可能である。ユーザが、仮想キーボード(例えば、図8および図9に示される)上でタイプすると、コンピューティングデバイスが、ブロック242でタッチセンシティブ表面から各キーストロークの座標を受け取る。ブロック244で、学習モジュール10が、タイプされることが予期されるキーに基づいて、各キーストロークでタッチされた特定のキーを特定することが可能である。例えば、学習モジュール10は、ユーザが、促されたキーストロークまたはテキストをタイプするにつれ、その後を追っていくことが可能である。ブロック258で、学習モジュール10が、ブロック244で特定されたキーに関連する新たな平均キーストローク座標を計算することが可能である。例えば、学習モジュール10は、受け取られたタッチ座標を、その特定のキーに関するそれまでに受け取られたタッチ座標に足して、新たな平均座標を計算することが可能である。また、ブロック260で、学習モジュールが、ユーザのキーストロークのばらつきに対応する統計パラメータを更新することなどによって、新たなキーエンベロープを計算することも可能である。計算された平均キーストローク座標、および新たなキーエンベロープ統計を使用して、ブロック262で、学習モジュール10が、キーパッドレイアウトデータ8を更新することが可能である。判定ブロック264で、学習モジュールが、入力されたテキストに基づいて、ユーザによってタイプされるべきさらなる文字が存在するかどうかを判定することが可能である。入力されるべきさらなるテキストが存在する(すなわち、判定ブロック264=「はい」)場合、学習モジュールは、ブロック242に戻って、次のキース
トロークの座標を引き続き受け取ることが可能である。しかし、ユーザが、提示されるテキストのすべてをタイプ入力しており、したがって、その特定の学習セッションが終わりになっている(すなわち、判定ブロック264=「いいえ」)場合、学習モジュールは、ブロック242でメモリの中に更新されたキーパッドレイアウトデータ8を格納することが可能である。次に、この更新されたキーパッドレイアウトデータが、仮想キーボードジェネレータ(すなわち、タッチスクリーン、投影キーボードデバイスなど)に利用可能であることが可能である。
また、図6Aは、各キーが位置付けられるべき場所でタッチセンシティブ表面にタッチすることによって、仮想キーパッドにおける各キーの配置をユーザが指定することを可能にする単純な訓練モードも示す。このようにして、デフォルトのキーボードレイアウトの必要性は全くなく、ユーザは、タッチセンシティブ表面の境界内で任意の向きのキーボードを作成することができる。プロセス240においてブロック242で、学習モジュール10が、AからZまでの順序で各キーを順次にタイプするようにユーザを促す(例えば、視覚的に、または聴覚的に)ことが可能である。次に、ユーザが、表面に順次にタッチして、各文字キーに関する所望される位置を示すことが可能である。ブロック242で、学習モジュール10が、各タッチの座標を受け取る。ユーザは、各キー位置につき1回、表面にタッチするものと予期されるので、ブロック244で、学習モジュール10は、シーケンスにおける次のキーに基づいて、タッチされたキーを特定する。ブロック258で、学習モジュールが、タッチされたキーに関するキーストローク座標を計算する(すなわち、キーストローク座標の単一のセットの平均は、それらの座標自体である)。ブロック260は、ユーザが、各キーにつき1回だけしか表面にタッチしていないので、ユーザがキーボードレイアウトを初めて規定する際、不必要である可能性がある。ブロック252で、学習モジュールが、特定されたキーをタッチされた位置に結び付けるキーパッドレイアウトデータを初めて更新する、または作成する。このプロセスは、各キーに関するタッチが受け取られる(すなわち、判定ブロック264=「いいえ」)まで続き、受け取られた時点で、ブロック242でメモリの中にキーパッドレイアウトデータが格納される。
練習するいくつかの異なるテキストサンプルをユーザに提供することによって、学習モジュール10は、ユーザのタイピング誤りを減らすように仮想キーボードをユーザがカスタマイズすることを可能にすることができる。このため、学習モジュール10を訓練するプロセスは、ユーザが音声認識システムを訓練した仕方と同様であることが可能である。
1つの態様において、学習モジュール10は、キーボードレイアウトデータ8を改良するためにユーザのタイピングを追跡することを続け、その結果、より最適化されたキーボードレイアウトをもたらすことが可能である。図6Bは、よくあるタイプ入力誤りを認識することによって、仮想キーボードを継続的に改良するように学習モジュールにおいて実施されることが可能である例示的なプロセス260を示す。プロセス260においてブロック242で、学習モジュールが、仮想キーパッド上のユーザタイピングを監視して、各キーストロークの座標を受け取ることが可能である。ブロック244で、学習モジュールが、メモリの中に格納されたキーパッドレイアウトデータ8を使用して、タッチされたキーを特定することが可能である。このようにして、タッチされたキーの識別が、図3に示されるデバイスドライバ4および/またはキーパッドインタフェース3によって使用されるのと同一のデータを使用して学習モジュール10によって達せられることが可能である。代替として、学習モジュール10は、デバイスドライバ4またはキーパッドインタフェース3からキー識別を受け取ってもよい。スペルチェックルーチンまたは予測エントリルーチンを使用して、学習モジュール10は、判定ブロック246で、タイプされる語が完成したかどうかを判定することが可能である。また、完成した語は、スペース、カンマ、またはピリオドの入力によって認識されることも可能である。語が完成していない場合、学習モジュール10は、キーストロークを引き続き監視して、対応するキー打ちを特定することが可能である(ブロック242および244を繰り返して)。学習モジュールが、語が完成したと判定すると(すなわち、判定ブロック246=「はい」)、学習モジュールは、ブロック248で、入力された語をスペルチェック辞書と比較することが可能である。このようにして、学習モジュール10は、タイプされた語の文字が正しく認識されているかどうかを判定することができる。判定ブロック250で、学習モジュール10が、入力された語のスペルが正しいかどうかを判定することが可能である。入力された語のスペルが正しいと判定された(すなわち、判定ブロック250=「はい」)場合、学習モジュール10は、ブロック256から266を実行することによって、受け取られたキース
トロークデータを使用してキーパッドレイアウトデータを更新することにとりかかることが可能である。具体的には、ブロック256で、学習モジュールが、タイプされた語の第1の文字を選択し、ブロック258で、そのキーに関するキーストロークの受け取られたタッチ座標を使用して、その選択されたキーに関する新たな平均キーストローク座標を計算することが可能である。ブロック262で、学習モジュールが、その選択されたキーの平均中心点座標の周辺のキーストロークの新たなエンベロープを計算することが可能である。図10を参照して後段でより詳細に説明されるとおり、キーエンベロープパラメータのそのような更新には、各キーに関連付けられたタッチ位置確率プロファイルを生成する様々な統計分析が関わることが可能である。ブロック264で、更新されたキーパッドレイアウトデータが、更新されて、メモリの中に格納されることが可能である。判定ブロック266で、学習モジュールが、入力された語中に分析されるべきさらなる文字が存在するかどうかを判定することが可能であり、存在する場合、ブロック256に戻って、語中の次の文字を選択することが可能である。入力された語中のすべての文字が分析されている(すなわち、判定ブロック266=「いいえ」)場合、学習モジュール10は、ブロック242に戻って、ユーザによってタイプされた次の語のキーストローク座標を分析することが可能である。
プロセス260の判定ブロック250に戻ると、学習モジュール10が、入力された語にスペルの誤りがあると判定した(すなわち、判定ブロック250=「いいえ」)場合、判定ブロック252で、学習モジュールは、そのスペルの誤りが仮想キーボード上の隣接する文字の交代によるかどうかを判定することが可能である。この判定は、タイプされた語をスペルの正しい語と比較して、キーボード上で隣接する文字を入れ替えることがそのスペルの誤りを訂正するかどうかを判定することを含むことが可能である。スペルの誤りが、仮想キーボード上の互いに隣接する文字の混同による場合、このことは、その特定のキーのユーザのタイピングのばらつき、または最適化されていないキーパッドレイアウトに起因する可能性がある、ユーザのタイピングの誤った解釈を示すことが可能である。したがって、タイプ入力誤りが隣接するキーの交代による(すなわち、判定ブロック252=「はい」)場合、ブロック254で、学習モジュール10は、識別されたタイプ入力誤りを訂正するために、受け取られたタッチ座標に関連付けられたキー指定を変更することが可能である。また、学習モジュールは、前述したとおりブロック256から266を実行して、訂正されたキー指定に関してキーパッドレイアウトデータを分析し、更新することも可能である。そのようなよくあるタイピング誤りを認識し、訂正すること、および訂正されたキー指定を受け取られたタッチ座標と一緒に使用して、キーパッドレイアウトデータを改良することは、学習モジュール10が、ユーザがタイプしている間に、ユーザのキーストロークのばらつきを認識し、対処することを可能にする。そうすることにより、学習モジュールは、ユーザのタイピングパターンと一致する仮想キーボード上の各キーに関して規定された統計キーストロークエンベロープを改良することができる。
スペルの誤りが、隣接する2つの文字の交代によるのではない(すなわち、判定ブロック252=「いいえ」)場合、このことは、そのスペルの誤りが、真のスペルミスであり、キーパッドレイアウトデータを改良することによって回避され得るタイプ入力誤りに起因するものではなかったことを示す可能性がある。したがって、ユーザのキーストロークの分析は、ブロック256から266を参照して前述したプロセスを実行することに進むことなどによって、認識されたキーに基づいて進められることが可能である。
他の態様において、学習モジュールは、ユーザがタイピングに訂正を行った際に、そのようなユーザ訂正から学習するために、そのことを認識するように構成されることが可能である。図7は、ユーザタイピング訂正から学習するように学習モジュール10において実施されることが可能である例示的なプロセス270を示す。プロセス270においてブロック272で、学習モジュール10が、ユーザが、「バックスペース」キーまたは「削除」キーを押した際にそのことを示すコンピューティングデバイスからの割込みまたは信号を受け取ることが可能である。これらのキーが押されることは、ユーザがタイピング訂正を行っている可能性があることを示すので、ブロック274で、学習モジュール10が、削除された特定のキーを記録することが可能である。ユーザが、バックスペースキーを使用して多くのキーを連続して削除している場合、学習モジュール10は、削除された最後のキーだけを記録することが可能である。また、このプロセスの一環として、学習モジュール10は、この態様において、スタックメモリの中などの、メモリの中に一時的に格納されることが可能な削除されたキーに関するキーストローク座標にアクセスすることも可能である。一時的メモリの中に限られた数のキーストローク座標値を格納することによって、学習モジュール10は、ユーザがキーボード上でテキストを入力している間に通常、行われるユーザタイピング訂正から学習することができる。ブロック276で、学習モジュール10が、削除されたキーに置き換わったキーストロークのタッチ座標を受け取ることが可能であり、さらにブロック278で、それらの受け取られた座標をキーパッドレイアウトデータと比較することなどによって、削除されたキーに置き換わったキーを特定することが可能である。この時点で、学習モジュール10は、そのキーストローク座標データを削除されたキーに関連付けており、さらにその特定のキーストロークによって意図されていた置き換わりのキーを特定している。ユーザは、タイプ入力誤りを訂正するためだけでなく、多くの理由でタイピングを訂正するので、判定ブロック280で、学習モジュール10は、削除されたキーを置き換わりのキーと比較して、それら2つのキーが仮想キーボード上で互いに隣接しているかどうかを判定することが可能である。削除されたキーと置き換わりのキーが仮想キーボード上で互いに隣接してはいない(すなわち、判定ブロック280=「いいえ」)場合、このことは、その訂正が、単純な隣接するキーのタイプ入力誤りを訂正する以外の理由で行われていることを示し、したがって、ブロック272でバックスペースキーストロークを認識することによって始められた学習モジュールプロセスが、ブロック288で終了されることが可能である。
学習モジュールが、削除されたキーと置き換わりのキーが仮想キーボード上で隣接していると判定した(すなわち、判定ブロック280=「はい」)場合、ブロック282で、学習モジュール10は、元のキーストローク座標データを使用して置き換わりのキーに関する新たな平均キーストローク座標を計算することが可能である。ブロック284で、学習モジュール10は、置き換わりのキーに関する新たな統計エンベロープを計算することも可能である。つまり、学習モジュール10は、特定のキーのユーザ訂正に基づいて、行われたキーストローク誤りを認識し、入力されたキーストローク座標を使用して、キーパッドレイアウトデータをさらに最適化する。ブロック286で、更新されたキーパッドレイアウトデータがメモリの中に格納されることが可能であり、その後、ブロック272でバックスペースキー押下げまたは削除キー押下げを認識することによって始められた学習モジュールプロセスが、ブロック288で終了されることが可能である。
前述したとおり、学習モジュール10が、ユーザからの訓練入力を受け取ること、およびユーザのタイピングを監視することの結果は、ユーザの特定のタイピングパターンを反映するように仮想キーボード上のキーのサイズ、形状、位置、および向きを変換するキーパッドレイアウトデータであることが可能である。例えば、このプロセスは、図8に示されるようなデフォルトのキーボードフォーマットを表示することによって始まることが可能であり、このフォーマットを、学習モジュール10が、図9に示されるようなユーザ固有のカスタマイズされた仮想キーボードレイアウトに変換する。図8および図9に示される例は、ヒンジ322で開くデバイスの2つの外部表面にわたる移動デバイスのタッチスクリーンディスプレイ320上のQWERTYキーボードのものである。移動デバイスのこの設計は、ほぼフルサイズのキーボードをユーザに提供する一方で、様々な態様は、仮想キーボードが、移動デバイス上のユーザのタイピングに適応することを可能にする。
仮想キーパッドレイアウト上の個々のキー位置は、図10に示されるとおり、統計エンベロープ、または仮想キー中心点の周囲のエンベロープを計算することなどの、様々な統計分析方法を使用して改良されることが可能である。図10には、仮想キーパッド440の一部分だけが示される。キー位置は、「A」キー中心点402、「Q」キー中心点412、および「S」キー中心点420などの中心点に基づいて、仮想キーボード上で指定されることが可能である。そのような中心点は、「X-Y」座標または相対座標(例えば、キー間の角度オフセットおよび距離オフセット)を使用してタッチセンシティブ表面の形状内で配置されることが可能である。ユーザがタイピするキー打ち位置のばらつきは、キー中心点の周囲の統計的に規定されたエンベロープ406〜410、414〜418、および422〜426によって反映されることが可能である。例えば、最も内側のエンベロープ406、414、422が、1つの標準偏差相当量のキー打ちを包含するように各キー中心点の周囲に規定されることが可能である。そのような内側エンベロープは、特定のキーに関するキー打ち位置の大半を包含して規定されることが可能である。このため、この最も内側のエンベロープの範囲に入るキー打ちは、対応する中心点を有するキーとして確実に解釈されることが可能である。さらなる例として、第2のエンベロープ408、416、424が、中心点の2つの標準偏差量の範囲内のキー打ち位置などの、より多くのパーセンテージのキー打ち位置を包含して規定されることが可能である。そのようなエンベロープは、中心点の中間に当たるキー打ちの曖昧さを除くのに使用されることが可能である。例えば、或るキー打ちが、中心点402と中心点412の中間に当たるが、中心点402の第2の標準偏差エンベロープ408内に入る場合、コンピューティングデバイスは、そのキー打ちを、中心点402における「A」キーに対応するものとして確実に解釈することが可能である。また、第3の(またはさらなる)エンベロープ410、418、426が、キー中心点の周囲に規定されて、中心点の中間に当たるキー打ちの曖昧さを除くのをさらに助けることも可能である。例えば、或るキー打ちが、中心点402と中心点412の中間に当たり、さらに中心点402の第3の標準偏差エンベロープ410内、お
よび中心点412の第3の標準偏差エンベロープ418内に入る場合、コンピューティングデバイスは、当技術分野でよく知られている予測テキストアルゴリズムまたはスペルチェックアルゴリズムを使用することによるなど、別の技術が、これら2つのキー(ただし、他のキーではなく)を区別するのに使用されるべきであると判定することが可能である。例えば、不確かなキー打ちの前、および/または後に打たれたキーが、知られている作品のデータベースに照らして評価されて、曖昧なキー打ちに関して意図されていると思われる文字が特定されることが可能である。
図6A〜図7を参照して前述したとおり、エンベロープ406〜410、414〜418、および422〜426は、訓練セッション中、および通常のタイピング動作中のキー打ち位置を統計的に分析することによって計算されることが可能である。このプロセスは、標準偏差計算に関連して前段で説明されるが、他の統計測定が、キー中心点の周囲の適切なエンベロープを規定するのに使用されてもよい。
計算されたキーエンベロープは、仮想キーのサイズ、形状、および向きを規定するのにさらに使用されることが可能である。例えば、「Q」キー中心点412の周囲の統計エンベロープ414〜418は、1つの軸に沿ったばらつきが、別の軸に沿ったばらつきより大きいことを反映して、円形ではない。さらに、これらのエンベロープの対称性の軸は、仮想キーボード400の「Y」軸に対して或る角度にある。「Q」キーに関するユーザのキー打ちの、このサイズ、形状、および向きを反映して、この仮想キーは、「A」キーおよび「S」キーと比べて、より長いが、より細い形状を有するサイズにされており、このキーの長軸は、「Y」軸に対して或る角度にある。図10は、長方形のキー形状を示すが、キー形状は、円形、楕円形、三角形、非対称形、あるいはユーザがタイプするキー打ちパターンによって規定される他の形状であってもよい。
前述したとおり、仮想キーパッドレイアウトは、タッチスクリーンまたは投影キーボードなどのタッチセンシティブ表面で使用するためにユーザによって取り出されることが可能であるように、メモリの中に格納されて、ユーザに関連付けられることが可能である。この実施形態は、図11に示されるとおり、ネットワークなどを介して、格納されたキーパッドレイアウトデータにアクセスを有する任意のタッチセンシティブ表面上で、ユーザがユーザの仮想キーボードを使用することを許す。図11を参照すると、ユーザの仮想キーパッドレイアウトデータ506を格納するユーザレコード504を含む中央データストア500が、提供されることが可能である。例えば、インターネットアクセス可能なサーバが、多くのユーザがユーザの仮想キーパッドレイアウトデータ506を格納することができるカスタム仮想キーボードレイアウトデータの中央サーバデータベースリポジトリ(本明細書で中央データストア500と呼ばれる)の役割をすることが可能である。ユーザレコード504は、様々なタイプのユーザインタフェースおよびコンピューティングデバイスに関してなど、複数の仮想キーパッドレイアウトデータを含むことが可能である。例えば、ユーザが、或る特定の移動デバイス512に対応する仮想キーパッドレイアウトデータ506を有することが可能である。ユーザレコード504は、インターネットなどのネットワーク510を介して移動デバイス512に利用可能であり得る。タッチスクリーンディスプレイ520を有する移動デバイス512を使用するのに、ユーザは、インターネット510に接続して、中央データストア500にアクセスし、ユーザを認証するのに十分な情報を中央データストア500に入力することが可能である。中央データストア500に対して認証されると、ユーザは、ユーザのレコード504からの特定の仮想キーパッドレイアウトデータ506のダウンロードを要求することが可能である。要求された仮想キーパッドレイアウトデータ506は、インターネット510を介して移動デバイス512に伝送されて、仮想キーパッドデータストア514の中に格納されることが可能である。次に、移動デバイス512が、この受け取られた仮想キーパッドレイアウトデータを使用してタッチスクリーン520上に仮想キーボードを生成することが可能である。この
ようにして、ユーザの仮想キーパッド構成が、ポータブルで、遠隔アクセス可能にされることが可能である。
図11は、ユーザの仮想キーボードが移動デバイス512に移植される例示的な実施形態を示すが、仮想キーボードは、ユーザの仮想キーパッドレイアウトデータ506にアクセスを有する任意のコンピューティングデバイス上で実施されることが可能である。様々な態様は、仮想キーを、特定のユーザに合わせてカスタマイズされた位置に配置したので、そのような仮想キーボードを実施するシステムは、ユーザによって選択されたタッチセンシティブ表面上の任意の位置にキーボードを位置付けることが可能である。例えば、机、壁、大型スクリーンディスプレイ、およびホワイトボードなどの大きい表面が、接続されたコンピューティングデバイスのためにそのような表面のいくつかの部分が入力デバイスの役割をすることを可能にするタッチ検出センサを備えて構成されることも可能である。このため、大きいタッチセンシティブ表面に結合された様々な態様のいずれかを実施するコンピューティングデバイスは、ユーザが、ユーザのカスタマイズされた仮想キーボードを、ユーザが所望する任意の場所に配置することを許すことが可能である。例えば、コンピューティングデバイスに結合された、ユーザのタッチを感知するように構成された大型スクリーンディスプレイが、その表面上で、ユーザのカスタム仮想キーボードが提示されることをユーザが所望する位置に、ユーザが両方の手を置くことを許すことが可能である。コンピューティングデバイスは、ネットワーク510を介して中央データストア500にアクセスすることなどによって、メモリからユーザのカスタムキーボードに関するキーパッドレイアウトデータを呼び戻すことができ、さらにそのレイアウトデータをユーザの指のタッチと組み合わせて使用して、所望される場所に仮想キーボードを表示することができる。このようにして、ユーザの仮想キーボードは、ユーザがタッチセンシティブ表面にタッチした際に、それをコンピューティングデバイスが感知することができる任意の場所に提示されることが可能である。
図12Aは、コンピューティングデバイスが、ユーザタッチに応答してタッチセンシティブ表面上に仮想キーボードを生成することが可能である例示的なプロセス600を示す。プロセス600におけるブロック602で、タッチセンシティブ表面が、仮想キーパッド生成プロセスを開始することが可能なユーザのタッチを認識することが可能である。ブロック604で、タッチセンシティブ表面に結合されたコンピューティングデバイスが、その特定のユーザの身元を特定することが可能である。このことは、指紋認識、声紋認識、および手跡認識もしくは手のひら跡認識などのバイオメトリック法を含め、コンピューティングデバイスに個人を識別するための様々な知られている方法のいずれかを使用して達せられることが可能である。また、ユーザは、提示されたデフォルトのキーボードに識別子(例えば、ユーザ名およびパスワード)を入力することによって、コンピューティングデバイスにユーザを識別することも可能である。ブロック606で、コンピューティングデバイスが、ユーザのIDを使用して、仮想キーパッドレイアウトデータが格納された中央データベースにアクセスすることが可能である。ユーザのIDを使用して、コンピューティングデバイスは、仮想キーパッドレイアウトデータを呼び戻すことが可能である。ブロック608で、コンピューティングデバイスが、タッチセンシティブ表面上のユーザの指のタッチ位置を認識することも可能である。ユーザは、表面上でキーボードに関する所望される位置を示すために、或る特定の仕方でタッチセンシティブ表面にタッチすることを要求されることが可能である。例えば、ユーザは、左手および右手のそれぞれのスペースキーおよび4つの基本キーをユーザが見ることを所望する位置でタッチセンシティブ表面上に10本の指を置くことを要求されることが可能である。代替として、ユーザは、ユーザのリーチの寸法を示すために両方の手で、指を真っ直ぐに広げて、表面にタッチするように求められてもよい。ブロック610で、コンピューティングデバイスが、認識された指のタッチの位置をユーザの仮想キーパッドレイアウトデータと組み合わせて使用して、タッチセンシティブ表面上の適切な仮想キーボード位置を計算することが可能である。この計算は、利用可能な表面領域内に収まるように仮想キーボードを位置付けることなどの、タッチセンシティブ表面の寸法上の限度を考慮に入れることが可能である。ブロック612で、コンピューティングデバイスが、仮想キーパッドレイアウトデータを使用して、所望される位置にユーザの仮想キーボードの表示を生成する。この時点で、ユーザは、タッチセンシティブ表面上の所望される位置にユーザのカスタマイズされた仮想キーボードを提示され、その後、ユーザは、入力をタイプすることを始めることができ、それらの入力を、ブロック614で、コンピューティングデバイスが受け取り、処理することを始めることが可能である。
1つの態様において、タッチセンシティブ表面上のユーザの手の測定が、デフォルトの仮想キーボードをカスタマイズするのに使用されることが可能である。このプロセスは、カスタマイズされたキーパッドレイアウトが生成される前に、ユーザが初めてシステムと対話を始める際に役立つ可能性がある。また、このプロセスは、ユーザが、デフォルトのキーパッドを使用すること、ただし、ユーザの手に合うようなサイズにされたキーパッドを使用することを選好する場合に役立つ可能性がある。また、この態様は、ユーザが、完全にカスタマイズされた仮想キーボードをあえて作成する、またはダウンロードするほど長く、特定のコンピューティングデバイスを使用することにはならない場合に役立つ可能性がある。
図12Bは、この態様においてユーザの手の寸法に合わせてデフォルトのキーボードをカスタマイズするのに実施されることが可能である例示的なプロセス700を示す。プロセス700におけるブロック702で、コンピューティングデバイス上で動作する学習モジュール10が、このプロセスを開始するタッチセンシティブ表面上のユーザによるタッチを認識することが可能である。この認識が、コンピューティングデバイスとのユーザの対話の開始である場合、ブロック704で、学習モジュール10が、測定のために適切な位置のユーザの手を置くようにユーザを促すことが可能である。例えば、学習モジュールは、指が広げられて、親指がタッチした状態でタッチセンシティブ表面上に両方の手を置くようにユーザを促すことが可能である。この手の位置は、タッチセンシティブ表面が、ユーザの指の及ぶ全長を測定することを可能にする。別の例として、学習モジュール10は、タイプ中にユーザが使うことを意図する格好でタッチセンシティブ表面上にユーザの手を位置付けるようにユーザを促すことが可能である。ブロック706で、学習モジュール10が、タッチセンシティブ表面からタッチ位置情報を受け取り、その情報を使用して、ユーザの手の寸法を測定することが可能である。そのような測定は、小指-親指距離測定や手のひら-人差し指指先距離測定などの代表的な寸法に的を絞ることが可能である。ブロック708で、学習モジュール10が、手寸法測定を使用して、デフォルトのキーボードに関する適切なレイアウト寸法を計算することが可能である。このプロセスは、平均的な個人の人間工学的な研究に基づくアルゴリズムに従って、デフォルトのキーボードを拡大縮小することを含むことが可能である。代替として、このプロセスは、デフォルトのキーボードレイアウトを規定するのに使用される平均手寸法に対する測定された手寸法の比に基づいて、拡大縮小率を計算し、次に、その拡大縮小率をデフォルトのキーボードレイアウトの寸法に適用することを含んでもよい。ブロック710で、学習モジュール10が、計算された寸法をデフォルトのキーボードに適用することが可能であり、さらにブロック712で、適切なサイズにされたデフォルトのキーボードの表示を生成することが可能である。この時点で、ユーザは、ユーザがコンピューティングデバイスに入力を与えることを始めることができるカスタマイズされた仮想キーボードを有し、それらの入力がブロック714で受け取られる。
様々なコンピューティングデバイス上で表示され、使用されることが可能なポータブル仮想キーボードを可能にする態様は、様々な構造およびマシンが画像投影能力およびタッチ感知能力を組み込む場合に、非常に役立つ可能性がある。例えば、ユーザは、将来いつか、画像プロジェクタおよび光(または他の)タッチセンサシステムを含むフロントガラス(または他の表面)にタッチすることによって、ユーザの自動車内のコンピュータと対話することができることが可能である。この例において、ユーザが自動車フロントガラスにタッチすると、自動車のコンピュータは、そのタッチを感知し、メモリからユーザの仮想キーボードを呼び戻し、ユーザのタッチによって示された位置でフロントガラス上に仮想キーボードを投影する。
そのようなポータブル仮想キーボードの用途は、特に、図11に示されるとおり、インターネット510によってアクセス可能な中央データストア500の中に仮想キーボードを格納する能力と組み合わされる場合、多種多様である。そのような態様において、ユーザは、インターネットにアクセスを有するコンピューティングデバイスに結合された任意のタッチセンシティブ表面上でユーザのパーソナル仮想キーボードにアクセスすることが可能であり、インターネットを介してカスタム仮想キーボードデータベースがアクセスされることが可能である。
前述したとおり、ユーザは、移動デバイスを含め、様々なコンピューティングデバイスを使用してタッチセンシティブ表面上の仮想キーパッドと対話することが可能である。様々な態様で使用するのに適した典型的な移動デバイスは、図13に示される構成要素を共通で有する。例えば、例示的な移動デバイス1300が、内部メモリ1302に結合されたプロセッサ1301と、タッチスクリーンディスプレイ1303とを含むことが可能である。さらに、移動デバイス1300が、プロセッサ1301に結合された無線データリンクトランシーバおよび/またはセルラ電話トランシーバ1305に接続された、電磁放射を送受信するためのアンテナ1304を有することが可能である。いくつかの実施形態において、セルラ電話通信のために使用されるトランシーバ1305、ならびにプロセッサ1301およびメモリ1302のいくつかの部分は、無線データリンクを介してデータインタフェースを提供するので、ひとまとめにして無線インタフェースと呼ばれる。また、移動デバイス1300は、ユーザ入力を受け取るための物理的キーパッド1306、または小型キーボードおよびメニュー選択ボタンまたはロッカスイッチ1307を含むことも可能である。
移動プロセッサ1301は、本明細書で説明される様々な態様の機能を含め、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、またはマルチプルプロセッサチップもしくは複数のマルチプルプロセッサチップであることが可能である。一部の移動デバイスにおいて、無線通信機能に専用の1つのプロセッサ、および他のアプリケーションを実行することに専用の1つのプロセッサなどの、複数のプロセッサ1301が提供されることが可能である。通常、ソフトウェアアプリケーションは、アクセスされて、プロセッサ1301にロードされる前、内部メモリ1302の中に格納されることが可能である。一部の移動デバイスにおいて、さらなるメモリチップ(例えば、SD(セキュアデータ)カード)がデバイス1300に差し込まれて、プロセッサ1301に結合されることが可能である。多くの移動デバイスにおいて、内部メモリ1302は、揮発性メモリ、またはフラッシュメモリなどの不揮発性メモリ、あるいは揮発性メモリと不揮発性メモリの両方であることが可能である。この説明に関して、メモリと一般的に呼ぶことは、内部メモリ1302、移動デバイスに差し込まれるリムーバブルメモリ、およびプロセッサ1301自体の内部のメモリを含め、プロセッサ1301によってアクセス可能なすべてのメモリを指す。
また、前述した態様は、図14に示されるパーソナルコンピュータ1460などの、様々なコンピューティングデバイスの任意のデバイス上で実施されることも可能である。そのようなパーソナルコンピュータ1460は、通常、揮発性メモリ1462、およびディスクドライブ1463などの大容量不揮発性メモリに結合されたプロセッサ1461を含む。また、コンピュータ1460は、プロセッサ1461に結合されたフロッピー(登録商標)ディスクドライブ1464およびCD(コンパクトディスク)ドライブ1465を含むことも可能である。通常、コンピュータデバイス1460は、マウス1467などのポインティングデバイス、およびタッチスクリーン1468もしくは他のタッチセンシティブ表面などのユーザ入力デバイスを含むことが可能なディスプレイ1469も含む。また、コンピュータデバイス1460は、USBコネクタソケットまたはFireWire(登録商標)コネクタソケットなどの、データ接続を確立する、または外部メモリデバイスを受けるための、プロセッサ1461に結合された、いくつかのコネクタポート、あるいはプロセッサ1461をネットワークに結合するための他のネットワーク接続回路1466を含むことも可能である。ノートブック構成において、コンピュータ筐体は、コンピュータ技術分野でよく知られているとおり、ポインティングデバイス1467、タッチスクリーン1468、およびディスプレイ1469を含む。
また、前述した態様のいくつかが、図15に示されるサーバ1500などの、様々な遠隔サーバデバイスのいずれかを使用して実施されることも可能である。そのようなサーバ1500は、通常、揮発性メモリ1502、およびディスクドライブ1503などの大容量不揮発性メモリに結合されたプロセッサ1501を含む。また、サーバ1500は、プロセッサ1501に結合されたフロッピー(登録商標)ディスクドライブおよび/またはCD(コンパクトディスク)ドライブ1506を含むことも可能である。また、サーバ1500は、ネットワーク回路1505を相手にデータ接続を確立するための、プロセッサ1500に結合された、いくつかのコネクタポート1504を含むことも可能である。
以上の例示的な説明は、単一のタッチセンシティブ表面で動作する単一のコンピューティングデバイスを含むが、態様および特許請求の範囲は、マルチプロセッサおよび複数コンピュータの実施形態、ならびに複数のタッチセンシティブ表面に結合されたコンピューティングデバイスにも同様に適用される。また、態様および特許請求の範囲は、1つまたは複数のタッチセンシティブ表面上で複数の仮想キーパッドを生成する実施形態にも同様に適用される。さらに、態様および特許請求の範囲は、2プレーヤビデオゲームにおいてなど、2名のユーザがコンピューティングデバイスと同時に対話することができるように、1つまたは2つのタッチセンシティブ表面上で生成される実施形態を包含する。例えば、コンピューティングデバイスが、タッチセンシティブウインドウ(例えば、店頭ウインドウ)に結合されることが可能であり、このタッチセンシティブウインドウ上にプロジェクタが2つのカスタマイズされた仮想キーパッド(例えば、この例では、ゲームコントローラまたはジョイスティック)およびゲーム表示を生じさせて、2名のユーザが、そのウインドウにタッチすることによって互いにビデオゲームで対戦することができるようにする。この例において、ユーザは、中央データベースまたはコンピューティング「クラウド」からアクセスされる、カスタマイズされた仮想キーパッドを介してコンピューティングデバイスと対話することが可能である。このため、ユーザは、ユーザが選好するアクションボタンを、ユーザが位置付けられるべきことを示す場所に含む、カスタマイズされたジョイスティックまたはゲームコントローラパッドを利用することが可能である。
以上の方法の説明およびプロセス流れ図は、単に説明的な例として与えられるに過ぎず、これらの様々な態様のステップが、提示された順序で実行されなければならないことを要求すること、または暗示することを意図するものではない。当業者には認識されるとおり、以上の態様におけるステップの順序は、任意の順序で実行されることが可能である。さらに、ステップ識別子の参照、ならびに「その後」、「次いで」、「次に」などの語は、それらのステップの順序を限定することは意図しておらず、そのような識別子および語は、単に、これらの方法の説明において読者を案内するのに使用される。
本明細書で開示される態様に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または電子ハードウェアとコンピュータソフトウェアの組合せとして実施されることが可能である。ハードウェアとソフトウェアの、この互換性を明確に示すのに、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップは、概ね、機能に関して前段で説明されてきた。そのような機能がハードウェアとして実施されるか、ソフトウェアとして実施されるかは、全体的なシステムに課せられる特定の応用上、および設計上の制約に依存する。当業者は、説明される機能を、それぞれの特定の用途のために様々な仕方で実施することができるが、そのような実施上の決定が、本発明の範囲からの逸脱を生じさせると解釈されるべきではない。
本明細書で開示される態様に関連して説明される様々な例示的なロジック、論理ブロック、モジュール、および回路を実施するのに使用されるハードウェアは、汎用プロセッサ、DSP(デジタルシグナルプロセッサ)、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)または他のプログラマブル論理デバイス、ディスクリートのゲートまたはトランジスタロジック、ディスクリートのハードウェア構成要素、あるいは本明細書で説明される機能を実行するように設計された以上の任意の組合せを使用して実施される、または実行されることが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。また、プロセッサは、コンピューティングデバイスの組合せとして、例えば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは他の任意のそのような構成として実施されることも可能である。代替として、一部のステップまたは方法は、所与の機能に専用の回路によって実行されてもよい。
1つまたは複数の例示的な態様において、説明される機能は、ハードウェアで、ソフトウェアで、ファームウェアで、あるいは以上の任意の組合せで実施されることが可能である。ソフトウェアで実施される場合、それらの機能は、コンピュータ可読媒体上に格納される、またはコンピュータ可読媒体上の1つまたは複数の命令もしくはコードとして伝送されることが可能である。本明細書で開示される方法またはアルゴリズムのステップは、実行される、コンピュータ可読媒体上に存在することが可能なプロセッサ実行可能ソフトウェアモジュールの中で実現されることが可能である。コンピュータ可読媒体には、1つの場所から別の場所へのコンピュータプログラムの転送を円滑にする任意の媒体を含め、コンピュータ記憶媒体と通信媒体がともに含まれる。記憶媒体は、コンピュータによってアクセスされることが可能な任意の利用可能な媒体であることが可能である。例として、限定としてではなく、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、あるいは命令もしくはデータ構造の形態で所望されるプログラムコードを伝送する、または格納するのに使用されることが可能であり、さらにコンピュータによってアクセスされることが可能である他の任意の媒体を備えることが可能である。また、任意の接続が、コンピュータ可読媒体と適切に呼ばれる。例えば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、より対線、DSL(ディジタル加入者線)、あるいは赤外線、無線、およびマイクロ波などの無線技術を使用してウェブサイト、サーバ、または他の遠隔ソースから伝送される場合、その同軸ケーブル、光ファイバケーブル、より対線、DSL、あるいは赤外線、無線、およびマイクロ波などの無線技術が、媒体の定義に含められる。本明細書で使用されるディスク(disk)およびディスク(disc)には、CD(コンパクトディスク)、レーザディスク、光ディスク、DVD(ディジタルバーサタイルディスク)、フロッピー(登録商標)ディスク、およびブルーレイディスクが含まれ、ただし、ディスク(disk)は、通常、データを磁気的に再現するのに対して、ディスク(disc)は、レーザーを使用してデータを光学的に再現する。
また、以上の媒体の組合せも、コンピュータ可読媒体の範囲内に含められるべきである。さらに、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれることが可能な、マシン可読媒体および/またはコンピュータ可読媒体の上のコードおよび/または命令の1つ、または任意の組合せもしくはセットとして存在することも可能である。
開示される態様の以上の説明は、任意の当業者が本発明を作成する、または使用することを可能にするように与えられる。これらの態様の様々な変形が、当業者には直ちに明白となり、本明細書において規定される一般的な原理は、本発明の範囲を逸脱することなく、他の態様に適用されることが可能である。このため、本発明は、本明細書で示される態様に限定されることを意図しておらず、本明細書で開示される原理および新奇な特徴と合致する最も広い範囲を与えられるべきものとする。
2 アプリケーション
3 キーパッドインタフェース
4 ハードウェアドライバ
8 キーパッドレイアウトデータ
10 学習モジュール
12 仮想キーパッド
14 タッチセンシティブ表面
100 推測エンジン
102 デフォルトのキーパッドデータテーブル
106 命令データベース

Claims (44)

  1. タッチセンシティブ表面上でキーパッドを規定するための方法であって、
    前記タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るステップと、
    複数のキーを前記受け取られた一連の座標と互いに関係付けるステップと、
    前記複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するステップと、
    前記複数のキーのそれぞれに関する前記算出された平均座標をキーパッドレイアウトデータの中に保存するステップと、
    前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するステップとを備える方法。
  2. 一連のキーストロークを入力するように前記ユーザを促すステップをさらに備える方法であって、
    複数のキーを前記受け取られた一連の座標と互いに関係付けるステップは、前記促された一連のキーストロークを前記受け取られた座標と互いに関係付けるステップを備える請求項1に記載の方法。
  3. 前記複数のキーのそれぞれに関する受け取られた座標に基づいて統計エンベロープを特定するステップと、
    前記複数のキーのそれぞれに関する前記統計エンベロープを前記キーパッドレイアウトデータの中に保存するステップとをさらに備える請求項1に記載の方法。
  4. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するステップは、前記キーパッドレイアウトデータの中に格納された前記複数のキーの各キーの前記平均座標に基づく位置に、前記仮想キーパッドにおけるキーの画像を生成するステップを備える請求項1に記載の方法。
  5. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するステップは、各キー画像のサイズが前記キーパッドレイアウトデータの中の前記複数のキーのそれぞれに関する前記統計エンベロープに基づく、前記仮想キーパッドにおける前記複数のキーの画像を生成するステップをさらに備える請求項1に記載の方法。
  6. 前記タッチセンシティブ表面上の前記仮想キーパッド上のタイピングを監視するステップと、
    隣接キータイピング誤りを識別するステップと、
    前記隣接キータイピング誤りに関連する正しいキーを特定するステップと、
    前記タイプされたキーストロークに関する受け取られた座標に基づいて、前記正しいキーに関する平均座標を更新するステップと、
    前記更新された平均座標を前記正しいキーと一緒に前記キーパッドレイアウトデータの中に保存するステップとをさらに備える請求項1に記載の方法。
  7. 隣接キータイピング誤りを識別するステップは、
    スペルの誤った語を認識するステップと、
    前記スペルの誤りが、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するステップとを備える請求項6に記載の方法。
  8. 隣接キータイピング誤りを識別するステップは、
    キーに関連付けられた文字のユーザ訂正を認識するステップと、
    前記ユーザ訂正が、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するステップとを備える請求項6に記載の方法。
  9. 前記キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存される方法であって、
    前記ネットワークを介してコンピューティングデバイスに前記キーパッドレイアウトデータを伝送するステップをさらに備え、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するステップは、前記コンピューティングデバイスに結合されたタッチセンシティブ表面上で前記仮想キーパッドの前記画像を生成するステップを備える請求項1に記載の方法。
  10. 前記コンピューティングデバイスに結合された前記タッチセンシティブ表面上でユーザタッチを受け取るステップと、
    前記タッチセンシティブ表面上の前記受け取られたユーザタッチに基づいて、前記タッチセンシティブ表面上で前記仮想キーパッドの表示のための位置を決定するステップとをさらに備える方法であって、
    前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するステップは、表示のために前記タッチセンシティブ表面上の前記決定された位置に前記画像を生成するステップを備える請求項9に記載の方法。
  11. プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記プロセッサに結合されたタッチセンシティブ表面とを備えるコンピューティングデバイスであって、
    前記プロセッサは、前記タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るステップと、複数のキーを前記一連の受け取られた座標と互いに関係付けるステップと、前記複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するステップと、前記複数のキーのそれぞれに関する前記算出された平均座標をキーパッドレイアウトデータの中に保存するステップと、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するステップとを備えるプロセスを実行するプロセッサ実行可能命令を有して構成されるコンピューティングデバイス。
  12. 前記プロセッサは、一連のキーストロークを入力するように前記ユーザを促すステップを備えるさらなるプロセスを実行するプロセッサ実行可能命令を有して構成されるコンピューティングデバイスであって、
    複数のキーを前記一連の受け取られた座標と互いに関係付けるステップは、前記促された一連のキーストロークを前記受け取られた座標と互いに関係付けるステップを備える請求項11に記載のコンピューティングデバイス。
  13. 前記プロセッサは、前記複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出するステップと、前記複数のキーのそれぞれに関する前記統計エンベロープを前記キーパッドレイアウトデータの中に保存するステップとを備えるさらなるプロセスを実行するプロセッサ実行可能命令を有して構成される請求項11に記載のコンピューティングデバイス。
  14. 前記プロセッサは、前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するステップが、前記キーパッドレイアウトデータの中に格納された前記複数のキーの各キーの前記平均座標に基づく位置に、前記仮想キーパッドにおけるキーの画像を生成するステップを備えるように、プロセッサ実行可能命令を有して構成される請求項11に記載のコンピューティングデバイス。
  15. 前記プロセッサは、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するステップが、各キー画像のサイズが前記キーパッドレイアウトデータの中の前記複数のキーのそれぞれに関する前記統計エンベロープに基づく、前記仮想キーパッドにおける前記複数のキーの画像を生成するステップをさらに備えるように、プロセッサ実行可能命令を有して構成される請求項11に記載のコンピューティングデバイス。
  16. 前記プロセッサは、前記タッチセンシティブ表面上の仮想キーパッド上のタイピングを監視するステップと、隣接キータイピング誤りを識別するステップと、隣接キータイピング誤りに関連する正しいキーを特定するステップと、前記タイプされたキーストロークに関する受け取られた座標に基づいて、前記正しいキーに関する平均座標を更新するステップと、前記更新された平均座標を前記正しいキーと一緒に前記キーパッドレイアウトデータの中に保存するステップとを備えるさらなるプロセスを実行するプロセッサ実行可能命令を有して構成される請求項11に記載のコンピューティングデバイス。
  17. 前記プロセッサは、隣接キータイピング誤りを識別するステップが、スペルの誤った語を認識するステップと、前記スペルの誤りが、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するステップとを備えるように、プロセッサ実行可能命令を有して構成される請求項16に記載のコンピューティングデバイス。
  18. 前記プロセッサは、隣接キータイピング誤りを識別するステップが、キーに関連付けられた文字のユーザ訂正を認識するステップと、前記ユーザ訂正が、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するステップとを備えるように、プロセッサ実行可能命令を有して構成される請求項16に記載のコンピューティングデバイス。
  19. 前記キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存され、前記プロセッサは、前記ネットワークを介して前記ネットワークアクセス可能なデータベースから前記キーパッドレイアウトデータを受信するステップを備えるさらなるプロセスを実行するプロセッサ実行可能命令を有して構成される請求項11に記載のコンピューティングデバイス。
  20. 前記プロセッサは、前記コンピューティングデバイスに結合された前記タッチセンシティブ表面上でユーザタッチを受け取るステップと、前記タッチセンシティブ表面上の前記受け取られたユーザタッチに基づいて、前記タッチセンシティブ表面上で前記仮想キーパッドの表示のための位置を決定するステップと、表示のために前記タッチセンシティブ表面上の前記決定された位置に、前記キーパッドレイアウトデータを使用して前記仮想キーパッドの前記画像を生成するステップとを備えるさらなるプロセスを実行するプロセッサ実行可能命令を有して構成される請求項19に記載のコンピューティングデバイス。
  21. タッチセンシティブ表面に結合されたコンピューティングデバイスであって、
    前記タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るための手段と、
    複数のキーを前記一連の受け取られた座標と互いに関係付けるための手段と、
    前記複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するための手段と、
    前記複数のキーのそれぞれに関する前記算出された平均座標をキーパッドレイアウトデータの中に保存するための手段と、
    前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段とを備えるコンピューティングデバイス。
  22. 一連のキーストロークを入力するように前記ユーザを促すための手段をさらに備えるコンピューティングデバイスであって、
    複数のキーを前記一連の受け取られた座標と互いに関係付けるための手段は、前記促された一連のキーストロークを前記受け取られた座標と互いに関係付けるための手段を備える請求項21に記載のコンピューティングデバイス。
  23. 前記複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出するための手段と、
    前記複数のキーのそれぞれに関する前記統計エンベロープを前記キーパッドレイアウトデータの中に保存するための手段とをさらに備える請求項21に記載のコンピューティングデバイス。
  24. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するための手段は、前記キーパッドレイアウトデータの中に格納された前記複数のキーの各キーの前記平均座標に基づく位置に、前記仮想キーパッドにおけるキーの画像を生成するための手段を備える請求項21に記載のコンピューティングデバイス。
  25. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するための手段は、各キー画像のサイズが前記キーパッドレイアウトデータの中の前記複数のキーのそれぞれに関する前記統計エンベロープに基づく、前記仮想キーパッドにおける前記複数のキーの画像を生成するための手段をさらに備える請求項21に記載のコンピューティングデバイス。
  26. 前記タッチセンシティブ表面上の前記仮想キーパッド上のタイピングを監視するための手段と、
    隣接キータイピング誤りを識別するための手段と、
    前記隣接キータイピング誤りに関連する正しいキーを特定するための手段と、
    前記タイプされたキーストロークに関する受け取られた座標に基づいて、前記正しいキーに関する平均座標を更新するための手段と、
    前記更新された平均座標を前記正しいキーと一緒に前記キーパッドレイアウトデータの中に保存するための手段とをさらに備える請求項21に記載のコンピューティングデバイス。
  27. 隣接キータイピング誤りを識別するための手段は、
    スペルの誤った語を認識するための手段と、
    前記スペルの誤りが、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための手段とを備える請求項26に記載のコンピューティングデバイス。
  28. 隣接キータイピング誤りを識別するための手段は、
    キーに関連付けられた文字のユーザ訂正を認識するための手段と、
    前記ユーザ訂正が、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための手段とを備える請求項26に記載のコンピューティングデバイス。
  29. 前記キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存されるコンピューティングデバイスであって、
    前記ネットワークを介してコンピューティングデバイスに前記キーパッドレイアウトデータを伝送するための手段をさらに備え、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、前記コンピューティングデバイスに結合されたタッチセンシティブ表面上で前記仮想キーパッドの前記画像を生成するための手段を備える請求項21に記載のコンピューティングデバイス。
  30. 前記コンピューティングデバイスに結合された前記タッチセンシティブ表面上でユーザタッチを受け取るための手段と、
    前記タッチセンシティブ表面上の前記受け取られたユーザタッチに基づいて、前記タッチセンシティブ表面上で前記仮想キーパッドの表示のための位置を決定するための手段とをさらに備えるコンピューティングデバイスであって、
    前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための手段は、表示のために前記タッチセンシティブ表面上の前記決定された位置に前記画像を生成するための手段を備える請求項29に記載のコンピューティングデバイス。
  31. タッチセンシティブ表面上の一連のユーザタッチの一連の座標を受け取るための少なくとも1つの命令と、
    複数のキーを前記一連の受け取られた座標と互いに関係付けるための少なくとも1つの命令と、
    前記複数のキーのそれぞれと互いに関係付けられた、受け取られた座標の平均を算出するための少なくとも1つの命令と、
    前記複数のキーのそれぞれに関する前記算出された平均座標をキーパッドレイアウトデータの中に保存するための少なくとも1つの命令と、
    前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための少なくとも1つの命令とを備えるコンピュータ可読媒体を備えるコンピュータプログラム製品。
  32. 前記コンピュータ可読媒体は、一連のキーストロークを入力するようにユーザを促すための少なくとも1つの命令をさらに備え、複数のキーを前記一連の受け取られた座標と互いに関係付けるための前記少なくとも1つの命令は、前記促された一連のキーストロークを前記受け取られた座標と互いに関係付けるための少なくとも1つの命令を備える請求項31に記載のコンピュータプログラム製品。
  33. 前記コンピュータ可読媒体は、
    前記複数のキーのそれぞれに関する受け取られた座標に基づいて、統計エンベロープを算出するための少なくとも1つの命令と、
    前記複数のキーのそれぞれに関する前記統計エンベロープを前記キーパッドレイアウトデータの中に保存するための少なくとも1つの命令とをさらに備える請求項31に記載のコンピュータプログラム製品。
  34. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するための前記少なくとも1つの命令は、前記キーパッドレイアウトデータの中に格納された前記複数のキーの各キーの前記平均座標に基づく位置に、前記仮想キーパッドにおけるキーの画像を生成するための少なくとも1つの命令を備える請求項31に記載のコンピュータプログラム製品。
  35. 前記キーパッドレイアウトデータを使用して前記仮想キーパッドの画像を生成するための前記少なくとも1つの命令は、各キー画像のサイズが前記キーパッドレイアウトデータの中の前記複数のキーのそれぞれに関する前記統計エンベロープに基づく、前記仮想キーパッドにおける前記複数のキーの画像を生成するための少なくとも1つの命令をさらに備える請求項31に記載のコンピュータプログラム製品。
  36. 前記コンピュータ可読媒体は、
    前記タッチセンシティブ表面上の前記仮想キーパッド上のタイピングを監視するための少なくとも1つの命令と、
    隣接キータイピング誤りを識別するための少なくとも1つの命令と、
    前記隣接キータイピング誤りに関連する正しいキーを特定するための少なくとも1つの命令と、
    前記タイプされたキーストロークに関する受け取られた座標に基づいて、前記正しいキーに関する平均座標を更新するための少なくとも1つの命令と、
    前記更新された平均座標を前記正しいキーと一緒に前記キーパッドレイアウトデータの中に保存するための少なくとも1つの命令とをさらに備える請求項31に記載のコンピュータプログラム製品。
  37. 隣接キータイピング誤りを識別するための前記少なくとも1つの命令は、
    スペルの誤った語を認識するための少なくとも1つの命令と、
    前記スペルの誤りが、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための少なくとも1つの命令とを備える請求項36に記載のコンピュータプログラム製品。
  38. 隣接キータイピング誤りを識別するための前記少なくとも1つの命令は、
    キーに関連付けられた文字のユーザ訂正を認識するための少なくとも1つの命令と、
    前記ユーザ訂正が、前記仮想キーボードにおいて互いに隣接する2つのキーの交代を含むかどうかを判定するための少なくとも1つの命令とを備える請求項36に記載のコンピュータプログラム製品。
  39. 前記キーパッドレイアウトデータは、ネットワークアクセス可能なデータベースの中に保存され、さらに前記コンピュータ可読媒体は、前記ネットワークを介してコンピューティングデバイスに前記キーパッドレイアウトデータを伝送するための少なくとも1つの命令をさらに備え、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための前記少なくとも1つの命令は、コンピューティングデバイスに結合されたタッチセンシティブ表面上で前記仮想キーパッドの画像を生成するための少なくとも1つの命令を備える請求項31に記載のコンピュータプログラム製品。
  40. 前記コンピュータ可読媒体は、前記コンピューティングデバイスに結合された前記タッチセンシティブ表面上でユーザタッチを受け取るための少なくとも1つの命令と、前記タッチセンシティブ表面上の前記受け取られたユーザタッチに基づいて、前記タッチセンシティブ表面上で前記仮想キーパッドの表示のための位置を決定するための少なくとも1つの命令とをさらに備え、前記キーパッドレイアウトデータを使用して仮想キーパッドの画像を生成するための前記少なくとも1つの命令は、表示のために前記タッチセンシティブ表面上の前記決定された位置に前記画像を生成するための少なくとも1つの命令を備える請求項39に記載のコンピュータプログラム製品。
  41. デフォルトのキーパッドをユーザの手に合わせてカスタマイズするための方法であって、
    タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るステップと、
    ユーザタッチの前記受け取られた複数の座標の少なくとも一部分に基づいて、前記ユーザの手の寸法を測定するステップと、
    前記ユーザの手の前記測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するステップと、
    前記デフォルトのキーパッドレイアウトの前記調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するステップとを備える方法。
  42. プロセッサと、
    前記プロセッサに結合されたメモリと、
    前記プロセッサに結合されたタッチセンシティブ表面とを備えるコンピューティングデバイスであって、
    前記プロセッサは、前記タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るステップと、ユーザタッチの前記受け取られた複数の座標の少なくとも一部分に基づいて、前記ユーザの手の寸法を測定するステップと、前記ユーザの手の前記測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するステップと、前記デフォルトのキーパッドレイアウトの前記調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するステップとを備えるプロセスを実行するプロセッサ実行可能命令を有して構成されるコンピューティングデバイス。
  43. タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るための手段と、
    ユーザタッチの前記受け取られた複数の座標の少なくとも一部分に基づいて、前記ユーザの手の寸法を測定するための手段と、
    前記ユーザの手の前記測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するための手段と、
    前記デフォルトのキーパッドレイアウトの前記調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するための手段とを備えるコンピューティングデバイス。
  44. タッチセンシティブ表面上でユーザタッチの複数の座標を受け取るための少なくとも1つの命令と、
    ユーザタッチの前記受け取られた複数の座標の少なくとも一部分に基づいて、前記ユーザの手の寸法を測定するための少なくとも1つの命令と、
    前記ユーザの手の前記測定された寸法に基づいて、デフォルトのキーパッドレイアウトのレイアウト寸法を調整するための少なくとも1つの命令と、
    前記デフォルトのキーパッドレイアウトの前記調整されたレイアウト寸法を使用して仮想キーパッドの画像を生成するための少なくとも1つの命令とを備えるコンピュータ可読媒体を備えるコンピュータプログラム製品。
JP2012504663A 2009-04-10 2009-05-11 学習能力を有する仮想キーパッドジェネレータ Expired - Fee Related JP5377752B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/422,077 2009-04-10
US12/422,077 US8300023B2 (en) 2009-04-10 2009-04-10 Virtual keypad generator with learning capabilities
PCT/US2009/043433 WO2010117374A1 (en) 2009-04-10 2009-05-11 A virtual keypad generator with learning capabilities

Publications (2)

Publication Number Publication Date
JP2012523611A true JP2012523611A (ja) 2012-10-04
JP5377752B2 JP5377752B2 (ja) 2013-12-25

Family

ID=41172324

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012504663A Expired - Fee Related JP5377752B2 (ja) 2009-04-10 2009-05-11 学習能力を有する仮想キーパッドジェネレータ

Country Status (6)

Country Link
US (1) US8300023B2 (ja)
EP (1) EP2417509A1 (ja)
JP (1) JP5377752B2 (ja)
KR (1) KR101359090B1 (ja)
CN (1) CN102378950B (ja)
WO (1) WO2010117374A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058081A (ja) * 2011-09-08 2013-03-28 Nippon Telegr & Teleph Corp <Ntt> タッチ操作式ソフトウェアキーボードの表示システム、表示方法及びプログラム
JP2013518314A (ja) * 2010-11-03 2013-05-20 ファーウェイ デバイス カンパニー リミテッド ソフトキーボードレイアウトを調節する方法、及びモバイル端末
JP2013211703A (ja) * 2012-03-30 2013-10-10 Mizuho Information & Research Institute Inc 入力支援プログラム及び入力支援装置
JP2016527643A (ja) * 2013-08-05 2016-09-08 ゼットティーイー コーポレーションZte Corporation タッチ入力パネルのレイアウトを適応的に調整する装置、方法及びモバイル端末
JP2017117002A (ja) * 2015-12-21 2017-06-29 レノボ・シンガポール・プライベート・リミテッド 情報処理装置及びセンシングレイアウト更新方法並びにプログラム
JP2017519295A (ja) * 2014-06-27 2017-07-13 マイクロソフト テクノロジー ライセンシング,エルエルシー 確率的なタッチ感知
KR101815889B1 (ko) 2017-02-08 2018-01-08 계명대학교 산학협력단 사용자의 키 입력 특성을 학습하는 가상 키패드를 이용한 사용자의 키 입력 방법 추정 방법 및 시스템

Families Citing this family (174)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1629624B1 (en) 2003-05-30 2013-03-20 Privaris, Inc. An in-curcuit security system and methods for controlling access to and use of sensitive data
US8532745B2 (en) 2006-02-15 2013-09-10 Hologic, Inc. Breast biopsy and needle localization using tomosynthesis systems
US10048860B2 (en) 2006-04-06 2018-08-14 Google Technology Holdings LLC Method and apparatus for user interface adaptation
KR101961052B1 (ko) 2007-09-24 2019-03-21 애플 인크. 전자 장치 내의 내장형 인증 시스템들
KR101513019B1 (ko) * 2008-10-27 2015-04-17 엘지전자 주식회사 휴대 단말기 및 그 동작방법
GB201108200D0 (en) * 2011-05-16 2011-06-29 Touchtype Ltd User input prediction
US20100275126A1 (en) * 2009-04-27 2010-10-28 Scott David Lincke Automatic On-Screen Keyboard
US20100271315A1 (en) * 2009-04-28 2010-10-28 Microsoft Corporation Encoding and decoding adaptive input device inputs
JP2011034476A (ja) * 2009-08-05 2011-02-17 Seiko Epson Corp 情報入力装置および情報入力方法
US9454514B2 (en) * 2009-09-02 2016-09-27 Red Hat, Inc. Local language numeral conversion in numeric computing
US8516367B2 (en) * 2009-09-29 2013-08-20 Verizon Patent And Licensing Inc. Proximity weighted predictive key entry
US8810516B2 (en) 2009-09-30 2014-08-19 At&T Mobility Ii Llc Angular sensitized keypad
US8812972B2 (en) * 2009-09-30 2014-08-19 At&T Intellectual Property I, L.P. Dynamic generation of soft keyboards for mobile devices
KR101043944B1 (ko) * 2009-09-30 2011-06-24 주식회사 팬택 가상 키보드 제공 방법 및 장치
US8816965B2 (en) * 2009-09-30 2014-08-26 At&T Mobility Ii Llc Predictive force sensitive keypad
US20110074692A1 (en) * 2009-09-30 2011-03-31 At&T Mobility Ii Llc Devices and Methods for Conforming a Virtual Keyboard
US9128610B2 (en) * 2009-09-30 2015-09-08 At&T Mobility Ii Llc Virtual predictive keypad
US9122393B2 (en) * 2009-09-30 2015-09-01 At&T Mobility Ii Llc Predictive sensitized keypad
CN102481146B (zh) 2009-10-08 2016-08-17 霍罗吉克公司 乳房的穿刺活检系统及其使用方法
US8627224B2 (en) * 2009-10-27 2014-01-07 Qualcomm Incorporated Touch screen keypad layout
US8621380B2 (en) 2010-01-06 2013-12-31 Apple Inc. Apparatus and method for conditionally enabling or disabling soft buttons
US8423897B2 (en) * 2010-01-28 2013-04-16 Randy Allan Rendahl Onscreen keyboard assistance method and system
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9891821B2 (en) * 2010-04-23 2018-02-13 Handscape Inc. Method for controlling a control region of a computerized device from a touchpad
US20110260977A1 (en) * 2010-04-23 2011-10-27 Psion Teklogix Inc. Keyboard and computing device for providing a software input panel
US9740364B2 (en) * 2010-05-03 2017-08-22 Microsoft Technology Licensing, Llc Computer with graphical user interface for interaction
US8648809B2 (en) * 2010-06-16 2014-02-11 International Business Machines Corporation Reconfiguration of virtual keyboard
US8266528B1 (en) * 2010-06-24 2012-09-11 Google Inc. Spelling suggestions based on an input sequence including accidental “delete”
US20110316785A1 (en) * 2010-06-25 2011-12-29 Murray Hidary Keypad for hand-held devices with touch screens
US20120017161A1 (en) * 2010-07-19 2012-01-19 David Hirshberg System and method for user interface
KR20130129914A (ko) * 2010-08-12 2013-11-29 구글 인코포레이티드 터치스크린 상에서의 손가락 인식
JP5614173B2 (ja) * 2010-08-25 2014-10-29 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
KR101044320B1 (ko) * 2010-10-14 2011-06-29 주식회사 네오패드 가상 키입력수단의 배경화면 컨텐츠 제공 방법 및 시스템
WO2012048380A1 (en) * 2010-10-14 2012-04-19 University Of Technology, Sydney Virtual keyboard
US8587547B2 (en) 2010-11-05 2013-11-19 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
US9146673B2 (en) 2010-11-05 2015-09-29 Apple Inc. Device, method, and graphical user interface for manipulating soft keyboards
US20120119999A1 (en) * 2010-11-11 2012-05-17 Harris Scott C Adaptive Keyboard for portable device
WO2012071429A1 (en) 2010-11-26 2012-05-31 Hologic, Inc. User interface for medical image review workstation
US8555355B2 (en) * 2010-12-07 2013-10-08 Verizon Patent And Licensing Inc. Mobile pin pad
KR101821160B1 (ko) * 2010-12-10 2018-03-08 삼성전자 주식회사 휴대단말에서 사용자 키패드 제공 방법 및 장치
US20120169611A1 (en) * 2010-12-30 2012-07-05 Hanxiang Chen Smart touch screen keyboard
US9891818B2 (en) * 2010-12-30 2018-02-13 International Business Machines Corporation Adaptive touch-sensitive displays and methods
CN102541420A (zh) * 2010-12-31 2012-07-04 上海优熠电子科技有限公司 一种自适应虚拟键盘系统
US9250798B2 (en) 2011-01-24 2016-02-02 Apple Inc. Device, method, and graphical user interface with a dynamic gesture disambiguation threshold
US9436381B2 (en) 2011-01-24 2016-09-06 Apple Inc. Device, method, and graphical user interface for navigating and annotating an electronic document
US9020579B2 (en) 2011-03-08 2015-04-28 Hologic, Inc. System and method for dual energy and/or contrast enhanced breast imaging for screening, diagnosis and biopsy
CN102231095A (zh) * 2011-03-17 2011-11-02 罗蒙明 用于触摸屏手机判断虚拟键盘手指按键的方法
US20140101595A1 (en) * 2011-03-31 2014-04-10 Infosys Limited System and method for utilizing a dynamic virtual keyboard
US20120249596A1 (en) * 2011-03-31 2012-10-04 Nokia Corporation Methods and apparatuses for dynamically scaling a touch display user interface
CN102736829A (zh) * 2011-04-03 2012-10-17 苏州达方电子有限公司 具有虚拟键盘的触控装置及其形成虚拟键盘的方法
US20120256860A1 (en) * 2011-04-05 2012-10-11 James Robert Justice Directional Finger Recognition Authoring
US9636582B2 (en) * 2011-04-18 2017-05-02 Microsoft Technology Licensing, Llc Text entry by training touch models
CN102750021A (zh) * 2011-04-19 2012-10-24 国际商业机器公司 用于修正用户输入位置的方法及系统
US9576122B2 (en) * 2011-04-25 2017-02-21 Softlayer Technologies, Inc. System and method for secure data entry
US20120311476A1 (en) * 2011-06-02 2012-12-06 Alan Stirling Campbell System and method for providing an adaptive touch screen keyboard
US20130044063A1 (en) * 2011-08-19 2013-02-21 Apple Inc. Touch correcting keypad
WO2013053060A1 (en) * 2011-10-14 2013-04-18 1Line Incorporated System and method for input device layout
US8490008B2 (en) 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
EP2777780B1 (en) * 2011-11-08 2021-08-25 Sony Group Corporation Sensor device, analyzer, and storage medium
US9715489B2 (en) 2011-11-10 2017-07-25 Blackberry Limited Displaying a prediction candidate after a typing mistake
US9652448B2 (en) 2011-11-10 2017-05-16 Blackberry Limited Methods and systems for removing or replacing on-keyboard prediction candidates
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
JP5647968B2 (ja) * 2011-11-22 2015-01-07 株式会社ソニー・コンピュータエンタテインメント 情報処理装置および情報処理方法
JP2014534042A (ja) 2011-11-27 2014-12-18 ホロジック, インコーポレイテッドHologic, Inc. マンモグラフィーおよび/またはトモシンセシス画像データを使用して2d画像を生成するためのシステムおよび方法
CN102523324A (zh) * 2011-12-04 2012-06-27 东华大学 一种具有智能侧键的手持式智能设备
US9104528B2 (en) 2011-12-08 2015-08-11 Microsoft Technology Licensing, Llc Controlling the release of private information using static flow analysis
CH705918A2 (de) * 2011-12-19 2013-06-28 Ralf Trachte Feld-Analysen für flexible Computer-Eingabe.
KR20130071253A (ko) * 2011-12-20 2013-06-28 한국전자통신연구원 맞춤형 키보드 ui 제공 장치 및 방법
TWI453628B (zh) * 2012-01-12 2014-09-21 Amtran Technology Co Ltd 適應性調整虛擬按鍵尺寸的方法及其顯示裝置
US9557913B2 (en) 2012-01-19 2017-01-31 Blackberry Limited Virtual keyboard display having a ticker proximate to the virtual keyboard
US9152323B2 (en) 2012-01-19 2015-10-06 Blackberry Limited Virtual keyboard providing an indication of received input
EP2807902B1 (en) * 2012-01-23 2020-08-19 CONNORS, Robert W. Compact microwave oven
US8909565B2 (en) 2012-01-30 2014-12-09 Microsoft Corporation Clustering crowdsourced data to create and apply data input models
EP3315072B1 (en) 2012-02-13 2020-04-29 Hologic, Inc. System and method for navigating a tomosynthesis stack using synthesized image data
WO2013123572A1 (en) 2012-02-24 2013-08-29 Research In Motion Limited Touchscreen keyboard providing word predictions in partitions of the touchscreen keyboard in proximate association with candidate letters
CA2865272C (en) 2012-02-24 2019-11-05 Blackberry Limited Virtual keyboard with dynamically reconfigurable layout
US20130239041A1 (en) * 2012-03-06 2013-09-12 Sony Corporation Gesture control techniques for use with displayed virtual keyboards
KR101328556B1 (ko) * 2012-03-19 2013-11-13 김진수 문자 입력장치
KR20130111809A (ko) * 2012-04-02 2013-10-11 삼성전자주식회사 터치스크린 단말기에서 그래픽 키패드 제공 방법 및 장치
US8850349B2 (en) * 2012-04-06 2014-09-30 Google Inc. Smart user-customized graphical keyboard
CN103365548B (zh) * 2012-04-06 2016-01-06 腾讯科技(深圳)有限公司 触屏移动终端菜单按钮的显示方法和装置
US9201510B2 (en) 2012-04-16 2015-12-01 Blackberry Limited Method and device having touchscreen keyboard with visual cues
US9633186B2 (en) * 2012-04-23 2017-04-25 Apple Inc. Systems and methods for controlling output of content based on human recognition data detection
US9354805B2 (en) 2012-04-30 2016-05-31 Blackberry Limited Method and apparatus for text selection
CA2832392A1 (en) * 2012-04-30 2013-11-07 Jerome Pasquero Touchscreen keyboard with correction of previously input text
US9292192B2 (en) 2012-04-30 2016-03-22 Blackberry Limited Method and apparatus for text selection
CN102707891B (zh) * 2012-05-16 2015-08-19 华为终端有限公司 一种校准触屏输入的方法和移动终端
CN106133748B (zh) 2012-05-18 2020-01-31 苹果公司 用于基于指纹传感器输入来操纵用户界面的设备、方法和图形用户界面
US9207860B2 (en) 2012-05-25 2015-12-08 Blackberry Limited Method and apparatus for detecting a gesture
TW201349046A (zh) * 2012-05-30 2013-12-01 Cross Multimedia Inc 觸控感應輸入系統
CN103455263B (zh) * 2012-05-31 2017-04-05 百度在线网络技术(北京)有限公司 一种用于提供虚拟输入键盘的方法与设备
JP5910345B2 (ja) * 2012-06-21 2016-04-27 富士通株式会社 文字入力プログラム、情報処理装置および文字入力方法
US8762876B2 (en) 2012-06-21 2014-06-24 Google Inc. Secure data entry via a virtual keyboard
US9116552B2 (en) 2012-06-27 2015-08-25 Blackberry Limited Touchscreen keyboard providing selection of word predictions in partitions of the touchscreen keyboard
US9041654B2 (en) * 2012-07-18 2015-05-26 Sap Se Virtual touchscreen keyboards
GB201212878D0 (en) 2012-07-20 2012-09-05 Pike Justin Authentication method and system
US9305229B2 (en) 2012-07-30 2016-04-05 Bruno Delean Method and system for vision based interfacing with a computer
US8977553B2 (en) * 2012-07-30 2015-03-10 Google Inc. Dynamic adjustment of text input system components
CN103577033B (zh) * 2012-08-07 2017-03-01 百度在线网络技术(北京)有限公司 一种输入法面板的设置方法和系统
US9548012B1 (en) * 2012-08-29 2017-01-17 Amazon Technologies, Inc. Adaptive ergonomic keyboard
US9524290B2 (en) 2012-08-31 2016-12-20 Blackberry Limited Scoring predictions based on prediction length and typing speed
US9063653B2 (en) 2012-08-31 2015-06-23 Blackberry Limited Ranking predictions based on typing speed and typing confidence
US20140062889A1 (en) * 2012-09-06 2014-03-06 Samsung Electronics Co., Ltd. Method of processing touch input for mobile device
US9600167B2 (en) * 2012-09-28 2017-03-21 Facebook, Inc. Systems and methods for a user-adaptive keyboard
US20140098141A1 (en) * 2012-10-10 2014-04-10 At&T Intellectual Property I, L.P. Method and Apparatus for Securing Input of Information via Software Keyboards
DE102012219129B4 (de) 2012-10-19 2019-07-11 Eberhard Karls Universität Tübingen Verfahren zum Betreiben einer Vorrichtung, die eine Benutzerschnittstelle mit einem Berührungssensor aufweist, sowie entsprechende Vorrichtung
EP2920678A1 (en) * 2012-11-15 2015-09-23 Schönleben, Oliver Method and device for typing on mobile computing devices
US20140139556A1 (en) * 2012-11-22 2014-05-22 Shanghai Powermo Information Tech. Co. Ltd. Apparatus and method for displaying software keyboards thereof
WO2014083370A1 (en) * 2012-11-27 2014-06-05 Thomson Licensing Adaptive virtual keyboard
EP2926236A1 (en) 2012-11-27 2015-10-07 Thomson Licensing Adaptive virtual keyboard
EP2926220A1 (en) * 2012-11-27 2015-10-07 Thomson Licensing Adaptive virtual keyboard
US9411510B2 (en) * 2012-12-07 2016-08-09 Apple Inc. Techniques for preventing typographical errors on soft keyboards
CN103870201A (zh) * 2012-12-18 2014-06-18 联想(北京)有限公司 一种虚拟键盘显示方法和设备
KR101984180B1 (ko) * 2013-01-07 2019-05-30 엘지전자 주식회사 전자 기기 및 전자 기기의 제어 방법
US20140198047A1 (en) * 2013-01-14 2014-07-17 Nuance Communications, Inc. Reducing error rates for touch based keyboards
CN104049933B (zh) * 2013-03-11 2019-07-26 联想(北京)有限公司 一种信息处理的方法及电子设备
US9535603B2 (en) 2013-03-14 2017-01-03 Carl F. Andersen Columnar fitted virtual keyboard
US10599328B2 (en) * 2013-03-14 2020-03-24 Valve Corporation Variable user tactile input device with display feedback system
WO2014151646A1 (en) 2013-03-15 2014-09-25 Hologic Inc. Tomosynthesis-guided biopsy in prone
FR3004548B1 (fr) * 2013-04-11 2016-08-19 Bigben Interactive Sa Telecommande avec interface reconfigurable
CN104123072B (zh) * 2013-04-28 2019-03-19 百度在线网络技术(北京)有限公司 一种用于提供移动设备中的虚拟键盘的方法和设备
JP2014235612A (ja) 2013-06-03 2014-12-15 富士通株式会社 端末装置、補正方法および補正プログラム
KR101411569B1 (ko) * 2013-06-05 2014-06-27 고려대학교 산학협력단 가상 키보드를 이용한 정보 처리 장치 및 방법
US9785257B2 (en) 2013-10-10 2017-10-10 Empire Technology Development Llc Shape changing device
CN103699882A (zh) * 2013-12-17 2014-04-02 百度在线网络技术(北京)有限公司 一种用于生成个性化输入面板的方法和装置
CN103885632B (zh) * 2014-02-22 2018-07-06 小米科技有限责任公司 输入方法和装置
ES2943561T3 (es) 2014-02-28 2023-06-14 Hologic Inc Sistema y método para generar y visualizar bloques de imagen de tomosíntesis
US10073493B2 (en) * 2014-03-19 2018-09-11 Sony Corporation Device and method for controlling a display panel
US20150277686A1 (en) * 2014-03-25 2015-10-01 ScStan, LLC Systems and Methods for the Real-Time Modification of Videos and Images Within a Social Network Format
WO2015156824A1 (en) * 2014-04-11 2015-10-15 Empire Technology Development Llc Shape-changing keyboard
US10303295B2 (en) 2014-05-30 2019-05-28 Apple Inc. Modifying an on-screen keyboard based on asymmetric touch drift
CN105224069B (zh) * 2014-07-03 2019-03-19 王登高 一种增强现实虚拟键盘输入方法及使用该方法的装置
WO2016010524A1 (en) 2014-07-15 2016-01-21 Hewlett-Packard Development Company, L.P. Virtual keyboard
JP6330565B2 (ja) * 2014-08-08 2018-05-30 富士通株式会社 情報処理装置、情報処理方法及び情報処理プログラム
US10620826B2 (en) * 2014-08-28 2020-04-14 Qualcomm Incorporated Object selection based on region of interest fusion
US10671275B2 (en) * 2014-09-04 2020-06-02 Apple Inc. User interfaces for improving single-handed operation of devices
US20160085440A1 (en) * 2014-09-19 2016-03-24 Qualcomm Incorporated Systems and methods for providing an anatomically adaptable keyboard
US10585584B2 (en) * 2014-09-29 2020-03-10 Hewlett-Packard Development Company, L.P. Virtual keyboard
TWI551132B (zh) * 2014-10-21 2016-09-21 Chunghwa Telecom Co Ltd IPTV virtual screen keyboard password input method and system
WO2016081011A1 (en) * 2014-11-21 2016-05-26 Hewlett Packard Enterprise Development Lp Keyboard offset coordinates
US9746938B2 (en) 2014-12-15 2017-08-29 At&T Intellectual Property I, L.P. Exclusive view keyboard system and method
GB201520760D0 (en) 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Encoding methods and systems
CN104835471B (zh) * 2015-05-28 2019-04-05 南京中电熊猫液晶显示科技有限公司 一种液晶面板的源极驱动器
KR101653167B1 (ko) * 2015-06-22 2016-09-09 주식회사 노타 키 입력을 인터페이스하는 장치 및 방법
KR102471913B1 (ko) * 2015-09-08 2022-11-29 엘지전자 주식회사 디지털 디바이스 및 상기 디지털 디바이스에서 데이터 처리 방법
US10963159B2 (en) * 2016-01-26 2021-03-30 Lenovo (Singapore) Pte. Ltd. Virtual interface offset
US11054984B2 (en) * 2016-07-08 2021-07-06 Mehdi BLANCHARD Gesture-based input command interface, method and system
EP3485414B1 (en) * 2016-10-25 2024-07-17 Hewlett-Packard Development Company, L.P. Controlling user interfaces for electronic devices
CN108008902B (zh) * 2016-10-31 2022-05-31 北京搜狗科技发展有限公司 一种虚拟键盘的调整方法、装置和一种播放方法、装置
US11445993B2 (en) 2017-03-30 2022-09-20 Hologic, Inc. System and method for targeted object enhancement to generate synthetic breast tissue images
US11399790B2 (en) 2017-03-30 2022-08-02 Hologic, Inc. System and method for hierarchical multi-level feature image synthesis and representation
EP3600051B1 (en) 2017-03-30 2024-05-01 Hologic, Inc. Method for synthesizing low-dimensional image data from high-dimensional image data using an object grid enhancement
WO2018236565A1 (en) 2017-06-20 2018-12-27 Hologic, Inc. METHOD AND SYSTEM FOR MEDICAL IMAGING WITH DYNAMIC SELF-LEARNING
CN108037890B (zh) * 2017-12-13 2020-10-23 北京易诚高科科技发展有限公司 触控设备单手持机app操作手指舒适度度量方法
RU2726009C1 (ru) 2017-12-27 2020-07-08 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для исправления неверного набора слова вследствие ошибки ввода с клавиатуры и/или неправильной раскладки клавиатуры
CN108196695A (zh) * 2017-12-28 2018-06-22 深圳Tcl新技术有限公司 实现泰语输入的方法、装置和计算机可读存储介质
TWI689846B (zh) * 2018-02-14 2020-04-01 元太科技工業股份有限公司 輸入裝置及其顯示符號之方法
KR102148566B1 (ko) * 2018-08-21 2020-08-26 김동현 압력센서를 이용한 자판 배열 커스터마이징 키보드장치 및 그 자판 생성 방법
WO2020040355A1 (ko) * 2018-08-23 2020-02-27 유승민 키패드 표시기능을 구비한 이동 단말기
CN110858120B (zh) * 2018-08-24 2023-02-17 北京搜狗科技发展有限公司 输入键盘推荐方法及装置
US11188719B1 (en) * 2018-10-22 2021-11-30 Wells Fargo Bank, N.A. Predictive text system
US10937244B2 (en) 2018-10-23 2021-03-02 Microsoft Technology Licensing, Llc Efficiency enhancements to construction of virtual reality environments
US20200125235A1 (en) * 2018-10-23 2020-04-23 Microsoft Technology Licensing, Llc Adjustable Virtual User Input Devices To Accommodate User Physical Limitations
US10852901B2 (en) * 2019-01-21 2020-12-01 Promethean Limited Systems and methods for user interface adjustment, customization, and placement
CN109714645B (zh) * 2019-01-25 2020-12-11 山东云缦智能科技有限公司 一种基于Android机顶盒软键盘快捷操作的方法
KR102231511B1 (ko) * 2019-05-29 2021-03-23 엘지전자 주식회사 가상 키보드 제어방법 및 제어장치
WO2021054589A1 (en) 2019-09-18 2021-03-25 Samsung Electronics Co., Ltd. Electronic apparatus and controlling method thereof
US11216182B2 (en) 2020-03-03 2022-01-04 Intel Corporation Dynamic configuration of a virtual keyboard
US20220113807A1 (en) * 2020-10-14 2022-04-14 Aksor Interactive Contactless Ordering Terminal
EP4177728A4 (en) * 2020-10-15 2023-12-13 Samsung Electronics Co., Ltd. ELECTRONIC DEVICE AND METHOD FOR OPERATING THE KEYBOARD OF AN ELECTRONIC DEVICE
KR20220062778A (ko) * 2020-11-09 2022-05-17 박지훈 터치스크린이 구비된 휴대 단말기의 키보드 설정 방법
KR102447469B1 (ko) * 2021-02-26 2022-09-23 한국과학기술원 소프트 키보드를 분석 및 제공하기 위한 장치 및 그에 과한 방법
CN115079834A (zh) * 2021-03-11 2022-09-20 京东方科技集团股份有限公司 键盘

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319739A (ja) * 1996-05-28 1997-12-12 Hitachi Ltd 文字入力装置
JP2002328771A (ja) * 2001-04-12 2002-11-15 Internatl Business Mach Corp <Ibm> タッチスクリーン・ユーザ・インターフェース
JP2003099200A (ja) * 2001-09-26 2003-04-04 Clarion Co Ltd 情報機器装置
JP2005084764A (ja) * 2003-09-05 2005-03-31 Fuji Photo Film Co Ltd 通信端末装置
JP2007286964A (ja) * 2006-04-18 2007-11-01 Matsushita Electric Ind Co Ltd 入力装置、キーのレイアウトを制御するためのプログラム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914481A (en) 1986-08-08 1999-06-22 Norand Corporation Portable data collection terminal with handwritten input area
US4821030A (en) 1986-12-19 1989-04-11 Tektronix, Inc. Touchscreen feedback system
DE3926460A1 (de) 1989-08-10 1991-02-14 Busch Dieter & Co Prueftech Elektronischer rechner
US5128672A (en) 1990-10-30 1992-07-07 Apple Computer, Inc. Dynamic predictive keyboard
EP0498082B1 (en) 1991-02-01 1998-05-06 Koninklijke Philips Electronics N.V. Apparatus for the interactive handling of objects
JP2813728B2 (ja) 1993-11-01 1998-10-22 インターナショナル・ビジネス・マシーンズ・コーポレイション ズーム/パン機能付パーソナル通信機
US5581484A (en) * 1994-06-27 1996-12-03 Prince; Kevin R. Finger mounted computer input device
US5996080A (en) 1995-10-04 1999-11-30 Norand Corporation Safe, virtual trigger for a portable data capture terminal
FI104928B (fi) 1997-11-27 2000-04-28 Nokia Mobile Phones Ltd Langaton viestin ja menetelmä langattoman viestimen valmistuksessa
US7844914B2 (en) * 2004-07-30 2010-11-30 Apple Inc. Activating virtual keys of a touch-screen virtual keyboard
US6011542A (en) 1998-02-13 2000-01-04 Sony Corporation Graphical text entry wheel
JP2000066817A (ja) 1998-08-20 2000-03-03 Nec Corp キーボード装置
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US6335725B1 (en) 1999-07-14 2002-01-01 Hewlett-Packard Company Method of partitioning a touch screen for data input
US6580442B1 (en) 1999-12-01 2003-06-17 Ericsson Inc. Touch-based information processing device and method
JP2001306233A (ja) * 2000-04-26 2001-11-02 Nec Corp キーカスタマイズ方法及び携帯端末装置
US7042442B1 (en) * 2000-06-27 2006-05-09 International Business Machines Corporation Virtual invisible keyboard
AU2002226886A1 (en) 2000-11-09 2002-05-21 Change Tools, Inc. A user definable interface system, method and computer program product
GB2375278B (en) 2001-05-04 2003-09-10 Motorola Inc Adapting data in a communication system
US20040248621A1 (en) 2001-09-06 2004-12-09 Lennart Schon Electronic device comprising a touch screen with special input functionality
GB2380583A (en) 2001-10-04 2003-04-09 Ilam Samson Touch pad/screen for electronic equipment
AU2002360079A1 (en) * 2001-12-21 2003-07-09 Ralf Trachte Flexible computer input
JP4828826B2 (ja) 2002-07-04 2011-11-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 自動的に適応可能な仮想キーボード
US20050162402A1 (en) 2004-01-27 2005-07-28 Watanachote Susornpol J. Methods of interacting with a computer using a finger(s) touch sensing input device with visual feedback
JP2005267424A (ja) 2004-03-19 2005-09-29 Fujitsu Ltd データ入力装置、情報処理装置、データ入力方法、データ入力プログラム
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060077179A1 (en) 2004-10-08 2006-04-13 Inventec Corporation Keyboard having automatic adjusting key intervals and a method thereof
US7484173B2 (en) * 2005-10-18 2009-01-27 International Business Machines Corporation Alternative key pad layout for enhanced security
JP4803089B2 (ja) 2007-03-28 2011-10-26 Kddi株式会社 タッチパネルによる入力装置およびその方法
CN101382851A (zh) * 2007-09-06 2009-03-11 鸿富锦精密工业(深圳)有限公司 计算机系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09319739A (ja) * 1996-05-28 1997-12-12 Hitachi Ltd 文字入力装置
JP2002328771A (ja) * 2001-04-12 2002-11-15 Internatl Business Mach Corp <Ibm> タッチスクリーン・ユーザ・インターフェース
JP2003099200A (ja) * 2001-09-26 2003-04-04 Clarion Co Ltd 情報機器装置
JP2005084764A (ja) * 2003-09-05 2005-03-31 Fuji Photo Film Co Ltd 通信端末装置
JP2007286964A (ja) * 2006-04-18 2007-11-01 Matsushita Electric Ind Co Ltd 入力装置、キーのレイアウトを制御するためのプログラム

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013518314A (ja) * 2010-11-03 2013-05-20 ファーウェイ デバイス カンパニー リミテッド ソフトキーボードレイアウトを調節する方法、及びモバイル端末
JP2013058081A (ja) * 2011-09-08 2013-03-28 Nippon Telegr & Teleph Corp <Ntt> タッチ操作式ソフトウェアキーボードの表示システム、表示方法及びプログラム
JP2013211703A (ja) * 2012-03-30 2013-10-10 Mizuho Information & Research Institute Inc 入力支援プログラム及び入力支援装置
JP2016527643A (ja) * 2013-08-05 2016-09-08 ゼットティーイー コーポレーションZte Corporation タッチ入力パネルのレイアウトを適応的に調整する装置、方法及びモバイル端末
US10209886B2 (en) 2013-08-05 2019-02-19 Zte Corporation Method for adaptively adjusting directionally decreasing columnar layout of virtual keys for single handed use based on a difference between left and right error input counters
JP2017519295A (ja) * 2014-06-27 2017-07-13 マイクロソフト テクノロジー ライセンシング,エルエルシー 確率的なタッチ感知
JP2017117002A (ja) * 2015-12-21 2017-06-29 レノボ・シンガポール・プライベート・リミテッド 情報処理装置及びセンシングレイアウト更新方法並びにプログラム
KR101815889B1 (ko) 2017-02-08 2018-01-08 계명대학교 산학협력단 사용자의 키 입력 특성을 학습하는 가상 키패드를 이용한 사용자의 키 입력 방법 추정 방법 및 시스템

Also Published As

Publication number Publication date
KR101359090B1 (ko) 2014-02-06
JP5377752B2 (ja) 2013-12-25
KR20120007042A (ko) 2012-01-19
CN102378950B (zh) 2014-09-17
WO2010117374A1 (en) 2010-10-14
US8300023B2 (en) 2012-10-30
CN102378950A (zh) 2012-03-14
EP2417509A1 (en) 2012-02-15
US20100259561A1 (en) 2010-10-14

Similar Documents

Publication Publication Date Title
JP5377752B2 (ja) 学習能力を有する仮想キーパッドジェネレータ
US10908815B2 (en) Systems and methods for distinguishing between a gesture tracing out a word and a wiping motion on a touch-sensitive keyboard
US8390583B2 (en) Pressure sensitive user interface for mobile devices
JP6208718B2 (ja) 動的配置オンスクリーンキーボード
US8749531B2 (en) Method for receiving input on an electronic device and outputting characters based on sound stroke patterns
CN103038728B (zh) 例如在移动电话上使用触摸屏的多模式文本输入系统
US9110590B2 (en) Dynamically located onscreen keyboard
CN103314343B (zh) 使用手势控制键盘应用,例如移动设备上的键盘应用
US8436829B1 (en) Touchscreen keyboard simulation for performance evaluation
TW201222397A (en) Translation of directional input to gesture
CN107436691A (zh) 一种输入法进行纠错的方法、客户端、服务器及装置
KR20140136066A (ko) 스마트 사용자 커스터마이징된 가상 키보드
US20140317496A1 (en) Keyboard gestures for character string replacement
US20140105664A1 (en) Keyboard Modification to Increase Typing Speed by Gesturing Next Character
Arif Predicting and reducing the impact of errors in character-based text entry
JP2012118840A (ja) キー入力装置およびキー入力プログラム
CA2735871C (en) Method for receiving input on an electronic device and outputting characters based on sound stroke patterns
Laitinen Two one-handed tilting-based writing techniques on a smartphone
Proschowsky Adaptive Text Entry for Mobile Devices

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130806

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130924

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees