(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
本発明の発明者らは、ソフトキーボードの性能が不十分であることは、ユーザにコンピューティングデバイスの性能を不十分だと知覚させる一因になりうることを認識し、理解している。ソフトキーボードは、従来のキーボードにおけるキーの機械的な動きから生じうる触覚的フィードバックを欠き、ユーザの意図するキーボードタップのターゲットと、コンピュータシステムがキーボード上の検出されたタップのターゲットとして選択するキーとの不一致のリスクを増大させる。そのような不一致は、ユーザ入力に対する明らかに誤った応答をもたらす可能性があり、ユーザの不満の原因ともなりうる。
【0014】
キーボードのアクティブ化に対するコンピュータの応答と、意図されるユーザ入力とをより良くに整合させるために、キーボード入力を処理するコンピューティングデバイス内のコンポーネントは、キーボードの検出されたアクティブ化に対して、1つ又は複数のキーがアクティブ化のターゲットであった確率を指示してよい。これらの確率は、ユーザ入力に応答して、コンテキスト上、ユーザによってターゲットとされた可能性の最も高いキーを選択するコンピューティングデバイスの他のコンポーネントによって使用されてよい。選択は、例えば特定のキーストロークが単語又は他の文字列を完成させる確率と組み合わせて行われてもよい。しかし、確率情報は任意の適切なやり方で使用されてよい。
【0015】
キーボード上で検出される「タップ」などのアクティブ化がキーストロークに対応する確率は、動的要因に基づくものとすることができる。これらの要因は、ユーザに関連するものとしてよく、及び/又はコンピューティングデバイスに関連するものとしてもよい。コンピューティングデバイスに関連する要因の例には、キーボードのスタイル、キーのサイズ及びキー間の間隔、あるいはコンピューティングデバイスの位置、向き又は動きを含む、キーボードのレイアウトが含まれることがある。
【0016】
ユーザに関連する要因は、コンピュータとのユーザ対話に基づいて決定されることがある。例えば、ユーザのタイピング速度を、ユーザがキーボード上のタップで特定のキーをターゲットとした確率を決定する際に感知して使用することができる。
【0017】
タイピング速度は、確率の決定に際して任意の適切なやり方で考慮に入れられてよい。平均タイピング速度が増加するにつれて、例えば、すべてのキーの確率分布関数はより大きい分散を有するようになりうる。しかし、タイピング速度は、様々なキーと関連付けられる確率分布関数に異なる影響を及ぼすことがある。例えば、この影響はキーボード上のキーの位置に依存しうることがあり、キーボードの中央により近いキーと関連付けられた分散は中央からより遠いキーの分散よりも増加が少ない。
【0018】
同様に、タイピング速度などの動的に決定される要因の値が使用の際に変化すると、各キーの確率分布関数の平均も変化することがある。各確率分布関数の平均の変化も同様に、キーボード上のキーの位置に依存しうる。
【0019】
さらに、要因の間には相互関係が存在する可能性がある。例えば同じキーに関連付けられた確率分布関数は、異なるスタイル又は異なるキーサイズ及びキー間隔を有するキーボードに対して異なって変化しうる。したがって、一部の実施形態では、コンピューティングデバイスのオペレーティングシステム内のキーボードインタフェースコンポーネントは、タッチスクリーン上にレンダリングされるキーボードに関連した要因及び/又は動的に感知される要因に基づいて、キーボード上のキーの確率分布関数を決定し、継続的に更新することがある。
【0020】
一部の実施形態では、キーの確率分布関数は、確率分布関数のモデルのパラメータの値を供給することによって生成されることがある。具体例として、各確率分布がガウス分布としてモデル化されることがある。キーの確率分布関数を、ガウス分布モデルのオフセット及び分散を定義するパラメータの値から決定することができる。キーボード入力が処理されるとき、キーボードインタフェースコンポーネントは、動的に決定される情報に基づいて確率分布関数を特徴付けるモデルパラメータの値を選択してもよい。しかし、任意の適切な技術を使用してキーの確率分布をモデル化してもよいことを理解すべきであり、ガウス分布が使用されることも、同じモデルがすべてのキーに使用されることも必要条件ではない。キーごとの確率分布関数がどのようにモデル化されるかにかかわらず、タイピング速度及び/又は他の要因を使用して、任意の所与のときに、各キーについてモデルのための適切なパラメータの値を選択してもよい。一部の実施形態では、キーのパラメータの値はキーボード上のキーの位置に依存することがある。例えば分散は、キーボードの周辺にあるキーについて、より大きくなる可能性がある。別の例として、分散は、タイピング速度に応じて増加し、中央付近よりも周辺にあるキーについてより大きな量が増加することがある。
【0021】
あるいはまた、確率分布関数の平均は、タイピング速度及びキー位置に応じて変化する可能性もある。従来のQWERTY配列キーボードでは、キーの確率分布関数の平均は、キーボードの中央に対するオフセットとすることができる。しかし、そのオフセットの量はタイピング速度に依存してもよい。
【0022】
加えて、コンピューティングデバイスに関連した要因も分布関数に影響を及ぼしうる。これらの要因は、ソフトウェアキーボード自体のパラメータに関連することがある。例えば、コンピューティングデバイスのディスプレイ上にレンダリングされるキー又はキー間のガターのサイズなどの要因は、確率分布関数の平均とオフセットの双方に影響を及ぼすことがある。あるいはまた、キーボードスタイルが確率分布関数に影響を及ぼすこともある。具体例として、分割キーボードのキーと関連付けられた確率分布関数は、タイピング速度に応じて、他のスタイルのキーボードに関連付けられた確率分布関数とは異なることがあり、あるいは異なるように変化することがある。これらの相違を、モデルから確率分布関数を算出するのに使用されるパラメータの異なる値に、又は任意の他の適切なやり方で反映することができる。
【0023】
あるいはまた、他の要因を、モデルから確率分布関数を定義する際に考慮してもよい。例えば、モデルから確率分布関数を算出することと併せて制限を適用してもよい。具体例として、キーは、本明細書で「アンカ」と呼ばれる、そのキーと関連付けられた領域を有することができる。アンカは一般に、アンカ領域で入力が検出される場合に、ユーザがそのキーをターゲットとすることを意図したことに高い確率が割り当てられるよう、キーの中央に対応しうる。一部の実施形態では、キーボード入力を処理するコンポーネントは、アンカ領域で検出されたユーザ入力に1の確率を割り当ててよい。
【0024】
あるいはまた、キーの確率分布関数に対する制限を、キーの中央から離れすぎている、検出されたユーザ入力に0の確率が割り当てられるようなものとしてもよい。そのような制限を、複数の適切なやり方のうちの任意のやり方で課すことができる。例えば、キーボード入力を処理するコンポーネントは、キーボード上のキーのサブセットについてのみ非ゼロの確率を返すことがある。このサブセットは、検出された入力のエリア(接触形状)の下又は隣接するキーについてのみ、あるいは打鍵されているキーの下/隣接するキーについてのみ提供されるように選択されてよい。
【0025】
確率分布関数がどのように定義されるかにかかわらず、確率分布関数を使用してキーボード入力を処理することができる。キーボード入力は、コンピュータシステム内の任意の適切なコンポーネントにおいて任意の適切なやり方で処理されてよい。一部の実施形態において、本明細書で説明される処理が、コンピュータシステムのオペレーティングシステムのカーネルモードコンポーネント内で行われることがある。しかし、具体的な実装は本発明の必要条件ではない。例えば、本明細書で説明される処理は、代替又は追加として、タッチセンサー式ディスプレイ用のコントローラとして働く半導体チップにおいて実装されてもよい。
【0026】
図1に、本明細書で記載されるこれらの技術の一部又は全部を使用して改善されたユーザ体験を提供するコンピューティングデバイスの一例を提供する。
図1は、ユーザインタフェースとしてタッチスクリーン112を有するコンピューティングデバイス110の略図である。コンピューティングデバイス110は、ここでは、スレートフォームファクタを有するものとして図示されている。スレートフォームファクタでは、タッチスクリーン112は、コンピューティングデバイス110の上面のほぼ全体を占める。しかし、コンピューティングデバイスの特定のフォームファクタは本発明に対する限定事項ではない。
【0027】
コンピューティングデバイス110は、当分野で公知のハードウェアコンポーネントを使用して構築されてよい。それらのコンポーネントは、タッチスクリーン112、及びタッチスクリーンコントローラ(図示せず)を含むことがある。それらのコンポーネントは、タッチスクリーン112とのユーザ対話を検出するように対話することがある。それらのコンポーネントは、当分野で公知の技術を使用して、タッチスクリーン112を介した入力として意図されるユーザジェスチャを検出するように動作することがある。それらのコンポーネントは、例えば、タッチスクリーン112の表面に対するユーザの指からの圧力を検出することがある。あるいは、それらのコンポーネントは、接触形状のようなユーザの指と、又はタッチスクリーン112に隣接する他のポインティングデバイスと関連付けられた静電容量又は他の測定可能な影響を検出することがある。しかし、任意の適切な技術を使用して、タッチスクリーンを介した入力のユーザ表現によるジェスチャを検出してもよい。
【0028】
タッチスクリーンを介して入力を示すユーザジェスチャを検出するのに使用される機構にかかわらず、タッチスクリーンコンポーネントは、そのような入力が検出されたことを示す情報を出力してよい。タッチスクリーンコントローラの出力は、コンピューティングデバイス110を実行する他のコンポーネント、おそらくはソフトウェアコンポーネントによって解釈されてよい。例えば、コンピューティングデバイス110のオペレーティングシステム(図示せず)は、タッチスクリーンインタフェースコンポーネントを含んでいてもよい。タッチスクリーンインタフェースコンポーネントは、タッチスクリーン112上に表示された情報に対する入力の位置に基づいて、検出された入力を解釈することができる。
【0029】
図1の例では、コンピューティングデバイス110は、チャット型の信をサポートするアプリケーションをアクティブに実行している。アプリケーションは、表示エリア130にレンダリングされるコンテンツを供給している。表示エリア130内のタッチスクリーン112とのユーザ対話は、そのアプリケーションへのコマンドとして解釈されうる。例えば表示エリア130は、テキストを入力することができるフィールドを表す、フィールド132を含む。フィールド132内のユーザタッチはアプリケーションによって、後に受信される入力が、送信すべきメッセージ用のテキストとして解釈されるべきであることを表すコマンドとして解釈されることがある。
【0030】
図1に図示される状態では、タッチスクリーン112は、ソフトキーボード120がレンダリングされる部分も含む。ソフトキーボードは、一部の実施形態において、表示エリア130のためのコンテンツを供給するアプリケーションによってレンダリングされることも可能である。しかし、図示される実施形態では、タッチスクリーン112は、コンピューティングデバイス110のオペレーティングシステム内のタッチスクリーンインタフェースコンポーネントによってレンダリングされる。タッチスクリーンインタフェースコントローラは、表示エリア130を制御しているアプリケーションからのコマンドに基づいて、ソフトキーボード120をいつどこに表示すべきか決定することができる。しかし、ソフトキーボード120の表示を生じさせる具体的なトリガは本発明にとって不可欠ではない。ソフトキーボード120がタッチスクリーン112上でいつどこに表示されるかにかかわらず、ソフトキーボード120が表示されるタッチスクリーン112の領域内の検出された入力を、キーボード入力として解釈し、処理のためにソフトキーボードインタフェースコンポーネントに渡すことができる。
【0031】
図1の例では、ソフトキーボード120が占める領域内の入力の処理は、ソフトキーボード120のキーのうちのどれが、ユーザ入力の意図されたターゲットであったか判定する処理を伴うことがある。例えば、ソフトキーボード120は複数のキーを含み、そのうちのキー122に番号が振られている。ソフトキーボードインタフェースコンポーネントの出力は、エリア130内のコンテンツを提供するチャットアプリケーションに対し、キー122、又は任意の他のキーが、ユーザ入力のターゲットであった可能性が高いことを指示することがある。
【0032】
一部の実施形態において、タッチスクリーン112とのユーザ対話の指示を、ソフトキーボードインタフェースコンポーネント内での処理の前に前処理してもよく、特定のユーザ入力が受け取られたチャット型アプリケーションに指示を提供するのに先行して後処理してもよい。前処理は当分野で公知の技術を使用して行われてよい。例えば、ソフトキーボード120上のキーの意図された選択ではなく、タッチスクリーン112との意図しない接触の特性を表すタッチスクリーン112の表面にわたる動きが除外されてもよい。前処理の別の例として、一部のタッチスクリーンインタフェースでは、タッチスクリーンコントローラがタッチスクリーンとの接触を検出する位置と、ユーザが知覚した接触が提供されるべき位置との間に差が生じうる。一部の実施形態では、これらの差をタッチスクリーンの較正によって修正し、較正時に決定された要因を使用した補正が、ソフトキーボードインタフェースコンポーネントによる処理の前にタッチ入力に適用されることがある。
【0033】
そのような前処理は、ソフトキーボード制御コンポーネントで受け取られるタッチ入力が、ユーザがキーをアクティブ化することを意図したという指示をより良く表すことを保証することによって、ソフトキーボード制御コンポーネントの動作を改善しうる。本明細書で使用されるとき、ソフトキーボード上のキーをアクティブ化するユーザ意図を指示すると判断される入力は、ソフトキーボード上の「タップ」とみなされてよい。したがって、ソフトキーボード制御コンポーネントは、キーボード上の「タップ」を受け取り、これに応答してよい。
【0034】
「タップ」は、任意の適切なやり方で定義され、識別されてよい。一部の実施形態では、「タップ」は、ソフトキーボード120が占める領域内のタッチスクリーン112との短期間の接触によって識別されてよい。しかし、「タップ」が、ソフトキーボード120とのそのような短期間の接触によってのみ特徴付けられることは必要条件ではない。可能な代替の一例として、コンピューティングデバイスは、ユーザがタッチスクリーン112の表面にわたって指又は他のポインティングデバイスをスライドさせる対話のモードをサポートしてもよい。タッチスクリーン112の表面を横切る動きの方向若しくは速度の変化、又はその動きの他の特性が、ソフトキーボード120上のキーをアクティブ化するユーザ意図と同等とみなされてもよい。したがって、本発明は、ソフトキーボード120上の「タップ」を識別するのに使用される機構によって限定されないことを理解すべきである。
【0035】
タッチスクリーンを介して受け取られる入力の前処理に加えて、ソフトキーボード制御コンポーネントの出力の後処理をも行われてよい。ユーザがソフトキーボード上のキーをターゲットとすることを意図したという判断の後処理は、当分野で公知の技術を使用して行われてよい。しかし、ソフトキーボード120の特定のキーがタップされたことを指示することによってユーザ入力を指定する従来のソフトキーボードインタフェースコンポーネントとは対照的に、本明細書で説明されるソフトキーボードインタフェースコンポーネントは、ソフトキーボード120の1つ又は複数のキーと関連付けられた確率を出力することがある。確率の各々は、ユーザが、関連付けられたキーをターゲットとした確率を指示してもよい。これらの確率は、例えば、コンピューティングデバイスの動作を、キーボード上のキーをターゲットとするユーザの意図とより良く一致させるのに使用されてよい。
【0036】
しかし、本明細書に記載する技術は任意の適切なタイプの後処理とともに用いられてよく、一部の実施形態では、1つ又は複数のキーに関連付けられた確率がテキスト予測エンジンに提供されることがある。テキスト予測エンジンは、報告されたキー及びそれらのキーと関連付けられた確率をトラックし、コンテキストに基づいて最も可能性の高いユーザ入力を決定してよい。具体例として、テキスト予測エンジンは、一連のタップを処理して、ユーザによって意図された可能性の最も高い単語を選択することができる。テキスト予測エンジンは、予測の根拠をソフトキーボードインタフェースコンポーネントによって報告される確率、並びにコンテキスト情報に置くことがある。コンテキスト情報を使用して、キーシーケンスが、意図されるユーザ入力に対応する全体の確率を算出してもよい。
【0037】
例えば、ソフトキーボード120が、英単語が予期されることをコンテキストが示すアプリケーションコンポーネントにテキスト入力を提供しているコンテキストにおいて、最初のタップが同じ確率をキー「q」、「w」、「a」及び「s」に関連付ける、一連のタップが受け取られることがある。このタップの後に続いて、キー「u」に関連付けられた高い確率、並びにキー「i」、「j」及び「k」に関連付けられたより低い確率があるタップが受け取られることがある。後処理を通じて、この入力のシーケンスはキーシーケンス「qu」にマップされてよい。キーシーケンス「qu」を含む英単語である確率は高い確率であるため、このキーシーケンスは、英単語におけるこのシーケンスの発生確率がターゲット確率と一緒に考慮されるときに、キーシーケンス内のタップの各々に対応する可能なキーから形成することが可能な任意のキーシーケンスについて最高の全体的な確率を有する。しかし、タップの各々と関連付けられた確率の特定の後処理は本発明にとって不可欠ではなく、情報を任意の適切なやり方で使用してよいことを理解されたい。
【0038】
図2を見ると、コンピューティングデバイス110が代替の動作状態で図示されている。
図2に例示される状態では、ソフトキーボード220がタッチスクリーン112上にレンダリングされている。ソフトキーボード220はソフトキーボード120(
図1)と同様である。どちらの場合も、タッチスクリーン112の領域を使用してソフトキーボードのキーを表示する。しかし、
図2では、ソフトキーボード220はキーボード120より多くのキーを含む。
【0039】
キーボード220のスタイルは、より複雑な入力、又はより形式的な入力を受け取るように意図されたアプリケーションとともに使用するのに適したものとすることができる。具体例として、ソフトキーボード220は番号を表すキーを含み、そのうちのキー222に番号が振られている。ソフトキーボード220は、例えば従来の物理キーボードに似ていることがある。ソフトキーボード120は、簡略化されたスタイルを有するキーボードに対応することがある。キーボード120は、チャット型の通信又は他の非公式な対応を容易にするアプリケーションとともに使用するのに適していることがある。これに対し、キーボード220(
図2)は、ワードプロセッサ、スプレッドシート又はビジネスで使用される他のアプリケーションとともに使用するのにより適したスタイルを有する。領域230は、例えばワードプロセッシングアプリケーションのためにインタフェースエリアを表すことがある。したがって、コンピューティングデバイス上に表れるキーボードのスタイルは、ソフトキーボード上において検出されるタップを入力として受け取るアプリケーションからの要求に基づいて、設定されることがある。しかし、ユーザの好み又はコンピューティングデバイスの検出された向きを含め、他の要因を使用して、コンピューティングデバイス上にレンダリングされるソフトキーボードのスタイルを決定してもよく、その結果スタイルが動的に変化することがある。
【0040】
キーボードスタイルがどのように決定されるかにかかわらず、コンピューティングデバイス110内のソフトキーボードインタフェースコンポーネントによって生成される出力は、概念的には同様に作成されてよい。しかし、スタイルは、ユーザがターゲットとするキーを打鍵する正確さに影響を及ぼす可能性がある。したがって、検出されるタップが特定のキーをターゲットとするユーザ意図を示す確率を算出する際に、キーボードスタイルに関する情報を使用してもよい。
【0041】
図3は、コンピューティングデバイス110がサポートしうるさらに別のキーボードスタイルを図示している。
図3の例では、キーボードは分割スタイルである。図示のように、ソフトキーボードは、タッチスクリーン112上において、キーボード部分320A及びキーボード部分320Bにレンダリングされる。ソフトキーボード120及び220が、キーが全体として連続した配列として配置される
図1及び
図2とは対照的に、
図3の例におけるソフトキーボードのキーは、タッチスクリーン112の両側に沿って集められている。この構成は、コンピューティングデバイス110のユーザが、親指だけを使用してキーボード部分320A及び320B上でタッチスクリーン112にタッチすることを可能にする。そのようなタイピングスタイルは、例えば、コンピューティングデバイス110を手で保持しているユーザにとって好都合なことがある。これに対し、ソフトキーボード120及び220のスタイルは、コンピューティングデバイス110をテーブルの上に置き、あたかもそれが物理キーボードであるかのようにソフトキーボードと対話するユーザにとって、より適していることがある。
図1及び
図2に図示されるスタイルは、1本指でタイプするユーザにも好まれうる。スタイルの違いにかかわらず、ソフトキーボード部分320A及び320Bは、ソフトキーボードインタフェースコンポーネントがソフトキーボード部分320A及び320Bが占める領域と関連付けられたタップを処理して、タップごとに、ユーザがキーをターゲットとすることを意図した1つ又は複数のキーの確率を決定するように処理しうるという点で、キーボード120及び220と概念的には同様に動作しうる。
【0042】
キーボードの各スタイルと関連付けられたタッチ入力を同じやり方で処理することができるが、キーボードのスタイル及び他の特性は、ソフトキーボード上のタップを表す検出された入力に割り当てられる、特定の確率に影響を及ぼすことがある。キーボードスタイルに関する情報は任意の適切なやり方で確率を求めるのに使用されてよいが、一部の実施形態では、キーボードスタイルは、確率分布関数を定義するのに使用されるモデルのパラメータの値を選択する際に使用される1つの要因である。このようにして確率分布関数を定義する例示的手法が、
図4A、
図4B、
図5A、
図5B、
図6A及び
図6Bに示されている。
【0043】
図4Aはソフトキーボード420を図示している。この例では、ユーザは位置440でキーボード420を押すものとする。この例において、位置440は、文字「W」のキーに対応するキー422
Wの上にある。しかし、
図4Bからわかるように、位置440はキー422
Wの中央領域ではない。反対に位置440は、キー422
Wの境界内ではあるが、キー422
E及びキー422
Sと隣接している。位置440は、キー422
A及びキー422
Dなどの他のキーにも近い。さらに離れているが、小型キーボード上では、位置440はキー422
Rといったより遠くのキーにも近い可能性がある。よって、ソフトキーボード420上のキーのうちのいずれのキーが、位置440で検出されたタップによってターゲットとされたのかに関して曖昧さがある。どのキーがターゲットとされたかの曖昧さは、位置440で入力を提供するのに使用されたユーザの指のサイズを考慮するときにさらに増大する。領域442は、タッチ入力と関連して圧力が検出された位置の境界となる長方形を表している。よって、単一の点で発生するのではなく、位置440は、その上でタッチが検出された領域442の重心又は他の平均値を表している。この例では、領域442は、3つのキー、すなわちキー422
W、キー422
E及びキー422
Sに重なる。
【0044】
位置440内のタップは、キー422
Wが位置440に最も近いため、従来のキーボードの場合と同様に、キー422
Wのユーザ選択として報告されることも可能である。しかし、位置440内の検出された入力は、422
Eや422
Sなどの隣接キーをターゲットとするユーザ意図を示す可能性もある。しかし、位置440内のタップを単一のキー、この例ではキー422Wと関連付けることによって、ユーザが、キー422
Eやキー422
Sなどの別のキーをターゲットとした可能性を指示する情報は、コンテキストにおいて最も可能性の高いテキスト入力を選択するのに利用可能でない。したがって、ソフトキーボードインタフェースコンポーネントは、ソフトキーボード上のタップを表す入力ごとに、1つ又は複数のキーについて、検出された入力がそのキーをターゲットとするユーザの意図を示す確率を表す値を算出してよい。これらの確率は次いで、後処理のために他のコンポーネントに提供されてよい。
【0045】
ユーザが、検出されたタップによりキーをターゲットとすることを意図した確率は、任意の適切なやり方で算出されうる。一部の実施形態において、確率は、複数のキーのうちの各々と関連付けられた空間的確率分布関数に基づいて算出されてよい。各空間的確率分布関数はそれに対応するキーの中央に対して表されてよい。キーの中央に対する検出されたタップの位置に基づいて、キーの空間的確率分布関数は、タップがそのキーをターゲットするユーザ意図を指示する確率を指示してもよい。
【0046】
例えば位置440は、キー422
1の中央から、第1の方向に距離D
1だけ、及び第2の直交する方向に距離D
2だけオフセットされる。D
1及びD
2に対応する座標においてキー422
Wと関連付けられた2次元の確率分布関数の値は、位置440における入力がキー422
Wをターゲットとするユーザ意図を表す確率を示すことがある。
【0047】
位置440は、422
E、422
S、422
A、422
D及び422
Rなどの他のキーの中央から異なる量によってオフセットされる。それらのキーの中央と位置440との間のオフセットも同様に、それらのキーと関連付けられた確率分布関数から、位置440における入力がそれらのキーの各々をターゲットとするユーザ意図を示す確率を求めるのに使用されてよい。
【0048】
理論上は、タッチスクリーンの任意の位置で検出されるタップが、ソフトキーボード上の任意のキーをターゲットとするユーザ意図を表す確率は、非ゼロでない可能性がある。しかし、一部の実施形態では、キーの各々と関連付けられる確率分布関数の空間的範囲に制限を課すことによって処理が簡略化されてよい。例えば一部の実施形態において、本明細書で「アンカ」と呼ばれるキーの中央部分は、ユーザがそのキーをターゲットとした高い確率を指示する確率と関連付けられてよい。例えばアンカ424
W、424
E、424
R、424
A、424
S及び424
Dは、
図4Bに示す各キーの中央部分に現れる。
【0049】
高い確率は任意の適切なやり方で指示されてよい。一部の実施形態では、高い確率は、タップがキーのアンカ内で検出されるときに、1の確率を当該キーに関連付けることによって指示されることがある。あるいはまた、高い確率は、検出されたタップが別のキーのアンカ領域内で発生するときに他のキーの確率情報を抑制する、すなわち0に設定することによって指示されることもある。
【0050】
したがって、アンカ領域は、キーに関連付けられた確率分布関数に対して更なる制限を提供することがある。一部の実施形態では、キーの各々と関連付けられた確率分布は、検出された入力が別のキーのアンカ内に位置するときに0の値を示すように制限されてよい。あるいはまた、確率分布関数は、キーの中央から任意の方向に、その方向での別のキーの最も近いアンカまでの距離より大きい量だけ変位しているいずれかの位置について、低い値又は0の値を有するように制限されてもよい。しかし、任意の適切な機構を使用して、ユーザがあるキーをターゲットとした低い確率を表してもよい。例えば制限は、単にそのキーについての確率情報を提供しないことによって表現されてもよい。
【0051】
図5Aは、ソフトキーボード420上に重ね合わされたキー422
Wの2次元の空間的確率分布関数を概念的に図示している。ここで、確率分布関数560は、キー422
Wの中央の近傍にピークを有する。確率分布関数の値はキーの中央からの距離が増加するにつれて減少する。
【0052】
この例では、確率分布関数560は、
図5Aの「x」及び「y」とラベル付された2つの方向にのびている。図示された具体例では、キーボード420は列として配置されたキーを有し、各列は「x」と指示された方向に平行である。直交する方向は「y」と示されている。
図4Bに図示されるように、ユーザがキー422
Wをターゲットとすることを意図した確率は、タッチ入力の位置とキー422
Wの中央のとの間の変位から決定されてよい。
【0053】
図5Aの例では、確率分布関数560は、キーボード420の2次元のレイアウトに対応して、二次元に延びている。しかし、説明を簡略化するために、
図5Bは、確率が、簡略化された1次元表現を使用する確率分布関数に基づいて決定される手法を図示する。
図5Bは、キーボード420上のキーのサブセットを横断面で示している。ここでは、キー422
Q、キー422
W及びキー422
Eが図示されている。確率分布関数560
W及び560
Eが示されている。
図5Bからわかるように、位置440において、確率分布関数560
Eは値P
Eを有する。値P
Eは、位置440で検出されたタップがキー422
Eを打鍵するユーザ意図を指示する確率に対応する。同様に、確率分布関数560
Wも位置440において値P
Wを有する。値P
Wは、位置440で検出されたタップがキー422
Wを打鍵するユーザ意図を指示する確率を指示する。
【0054】
また
図5Bは、隣接するアンカまでの距離に基づく確率分布関数への制限の適用も図示している。図からわかるように、確率分布関数560
Wは、キー422
Wの中央からキー422
Eに向かってアンカ424
Eに到達するまで延びる非ゼロの確率を有する。その後、確率分布関数560
Wは0の値を有する。しかし、キーの確率はその制限の境界において0に収束しなくてもよいことに留意すべきである。一部の実施形態では、ガウス関数は、その制限領域外にある値を切られてもよい。同様に、確率分布関数560
Wも、キー522
Wの中央からキー422
Qに向かって延びる非ゼロの値を有する。しかし、確率分布関数560
Wは、アンカ424
Qにぶつかると0の値を有する。確率分布関数560
Eも同様に制限され、アンカ424
Wまで非ゼロの値を有する。
【0055】
各キーと関連付けられた確率分布関数は、任意の適切なやり方で求められてよい。
図5Bに例示される実施形態では、確率分布モデルのパラメータの値がまず決定される。そのモデルから生成された分布関数は次いで、アンカの位置に基づいて制限される。しかし、確率分布関数がこのようにしてモデル及び制限を使用して表現されることは必要条件ではない。例えば分布は、制限を課すことなく0の値を有するモデルを使用して定義されてもよい。
【0056】
しかし、
図6A及び
図6Bは、モデル及び制限を使用して確率分布関数を求める技法が図示している。
図6Aには、ガウス分布としてモデル化された確率分布関数660
1が例示されている。ガウス分布は限られた数のパラメータによって表されてよい。この例では、ガウス分布は、X
1で指示された平均と、分散とすることができ、ここではσ
X1で指示されている広がりを表す値とを特徴とする。この場合には、確率分布関数660
1は、
図6Aにアンカ領域624
1及び624
2として例示する、隣接するアンカ領域までの距離によって更に制限される。
【0057】
確率分布関数660
1は、タップがキー622をターゲットとするユーザ意図を示す確率を指示する。
図6Aには、簡略化のために単一次元の確率分布関数660
1が示されている。しかし、
図5A及び
図5Bと関連して上述したように、2次元キーボード上のキーと関連付けられた確率分布関数が2次元に広がってもよい。
【0058】
この例では、確率分布関数660
1の平均X
1はキー622の中央に近い。スプレッドσ
X1は概ねキー622の幅に対応し、よって、確率分布関数660
1は、相対的に高い確率をキー622と重なるタップに割り当て、他の位置でタップが検出されるときには、ユーザがキー622をターゲットすることを意図したことに相対的に低い確率を割り当てる。
【0059】
本発明の発明者らは、
図6Aに例示される確率分布関数は、いくつかの条件の下でユーザがキー622をターゲットとすることを意図した確率を適切に表すことを認識し、理解している。例えば確率分布関数660
1は、ユーザがソフトキーボードのうちのどのキーを押すべきか慎重に選択しているシナリオに適する可能性がある。そのようなシナリオは、例えば、ユーザが1本指でタイピングしているとき、又はタッチタイピング法を使用しているが、ゆっくり慎重にタイプしているときに生じる可能性がある。
【0060】
別の条件の下では、異なる確率分布関数が、より適切である可能性もある。
図6Bは、他の条件の下でキー622と関連付けられることがある確率分布関数660
2を図示している。確率分布関数660
1の場合と同様に、確率分布関数660
2も、隣接するアンカによって制限が課されるガウス分布としてモデル化されている。しかし、この分布は、σ
X2で示されるように、より広いスプレッドを有する。加えて、ガウス分布の平均値はX
2であり、これはキー622の中央からのΔ
Xの量だけのオフセットである。確率分布関数660
2は、ユーザが速くタイプしているシナリオでキーボードの周辺にあるキーに適切な可能性がある。本件出願人は、そのようなシナリオでは、確率分布関数のスプレッドが増大することを認識し、理解している。加えて、確率分布関数の平均は、キーボードの中央に対するオフセットである。
【0061】
より一般的には、本発明の発明者らは、キーと関連付けるべき適切な確率分布関数が、複数の要因に依存する可能性があることを認識し、理解している。それらの要因は、ユーザ及び/又はタッチスクリーン上にレンダリングされるソフトキーボードに関連していてよい。したがって、一部の実施形態では、タッチスクリーン上で検出されたタップが特定のキーに対応する確率を提供するために、キーの確率分布関数を、ソフトキーボードのスタイル又は他の構成パラメータ、及びタイピング速度のような動的に決定されるパラメータを含むユーザに関連するパラメータを含む、ランタイムの条件に基づいて決定してもよい。
【0062】
これらのパラメータは、任意の適切なやり方でモデル化された確率分布関数においてキャプチャされてよい。しかし、確率分布関数が有限個のパラメータによってモデル化される諸実施形態では、ソフトキーボード上の様々なキーについての確率分布関数に影響を及ぼす可能性がある任意の条件に関する情報を使用して、モデルパラメータの値を選択してもよい。任意の適切な機構を使用して、キーの確率分布関数に影響する可能性のあるコンテキスト又は他の要因に関する情報を、モデルパラメータの値に関連付けてもよい。一例として、ソフトキーボードインタフェースコンポーネントは、確率分布モデルを特徴付けるパラメータの値の1つ又は複数の表を記憶していてもよい。ガウス分布が確率分布関数のモデルとして使用される実施形態において、それらのパラメータは、モデルの平均及び分散とすることができる。
【0063】
これらのパラメータは、任意の適切なやり方で編成されてよい。一部の実施形態では、確率分布関数が求められることになるキーボード上のキーごとに、表が設けられてよい。しかし、他の実施形態では、キーボード上の特定のキーを指示する情報を、確率分布モデルパラメータの適切な値を決定するためのそのような表へのインデックスとして使用してもよい。具体例として、キーボードの中央からのキーの距離を、モデルパラメータの値を読み取るための表へのインデックスとして使用してもよい。
【0064】
他のパラメータの値も同様に、確率分布モデルのパラメータの値を選択する際に使用されてよい。各パラメータは表へのインデックスとして使用されてもよく、パラメータの値ごとに別個の表が設けられてもよい。
具体例として、キーボードが、
図1から
図3の実施形態によって表されるように、フルQWERTY配列キーボードか、簡略化されたキーボードか、それとも分割キーボードであるかなど、キーボードスタイルの指示が、確率分布モデルのパラメータの値を選択するためのパラメータとして使用されることがある。一部の実施形態では、キーボードスタイルごとに別個の表が設けられることがあり、ソフトキーボードインタフェースコンポーネントは、レンダリングされているキーボードのスタイルに基づいて、値を読み取るべき適切な表を選択することができる。あるいはまた、一部の実施形態では、未知のデータ(速度、キーサイズ、キーボードサイズ、キー位置、空きサイズ等)の値を補間するために、すべてのパラメータについて適合関数が提供されることがある。適合関数は、多項式関数又は任意の他の適切な関数とすることができる。
【0065】
確率分布モデルを特徴付けるパラメータの値がどのように決定されるかにかかわらず、ソフトキーボードインタフェースコンポーネントは、キーボード入力を処理する際に、キーボード上の複数のキーの各々と関連付けられた確率分布関数の適切な値を決定することがある。これらの値を使用して、ユーザタップがタッチスクリーンを介して受け取られる位置に隣接したキーについて確率分布関数を定義することができる。これらの確率分布関数は、タップが特定のキーをターゲットとするユーザ入力を表す、隣接キーの各々と関連付けられた確率を決定するのに適用されることがある。キーについての確率分布関数を、任意の適切なときに決定することができる。キーの確率分布関数を決定するのに使用される動作環境のパラメータが、レンダリングされるソフトキーボードの構成によってのみ定められる実施形態では、確率分布関数は、ソフトキーボードがレンダリングされるときに決定されてよい。
【0066】
しかし、一部の実施形態では、キーの確率分布関数を特徴付ける値を決定するのに使用されるパラメータは、ユーザがキーボードと対話する方法に依存することがある。
図7Aにソフトキーボード720を例示する。複数のキーの各々と関連付けられた確率分布関数が図示されている。例えば、「w」キーと関連付けられた確率分布関数760
1が図示されている。
図7Aにおいて、確率分布関数760
1は、多次元であるが、確率分布関数の分散に対応する輪郭を示すことによって2次元で図示されている。
【0067】
図7Aは、キーボードのユーザがゆっくりタイプしているという動作条件の下で、キー「w」の確率分布関数760
1と、文字に対応するソフトキーボード720上の他のキーの各々の対応する確率分布関数とを図示している。したがって、確率分布関数は、概ねキーの各々を中心とし、概ねキーと同じ範囲のスプレッドを有するものとして図示されている。しかし、キーボード720上の様々な位置にある様々なキーが様々な形状の確率分布関数を有することが分かる。
【0068】
これに対し、
図7Bは、キーボード720のユーザが速くタイプしているときの確率分布関数を図示している。確率分布関数760
1(
図7A)と確率分布関数760
2(
図2B)との比較から分かるように、より速くタイプすることにより、確率分布関数のスプレッドが増加し、キーボードの中央780に向かう確率分布関数のオフセットが生じる。例えば中央780に近い確率分布関数760
hは、中央780からより遠いキーと関連付けられた確率分布関数760
jよりも小さいバイアスを有する。
【0069】
確率分布関数760
sと760
zとを比較すると、スプレッドの増加の量は、中央780に対するキーの位置に依存しうることが示される。図からわかるように、確率分布関数760
sは確率分布関数760
zよりも小さいスプレッドを有する。本発明の発明者らは、このばらつきのパターンは、
図1及び
図2に描かれているキーボードスタイルのようなフルQWERTY配列キーボードに適しているが、異なるばらつきのパターンが、
図3に図示されるキーボードのような分割キーボードによって提示される可能性があることを認識し、理解している。したがって、キーボード上のキーについての確率分布関数をモデル化するのに使用される値は、異なるキーボードスタイル、及び検出されるタイピング速度などの他の要因について提供されてよい。
【0070】
確率分布関数を特徴付ける値を、任意の適切なやり方で決定することができる。一部の実施形態において、これらの値は、実験的に、ヒューリスティックに、及び/又は適応的に決定されることがある。例えば、一部の実施形態において、オペレーティングシステム又はソフトキーボードインタフェースを提供するアプリケーションの設計者が、複数の潜在的ユーザにタイプすべきサンプルテキストを提供することによって、実験的に情報を収集することがある。予想されるユーザの各々が、サンプルをタイプするのに必要な意図された各キーについてタッチスクリーンを打鍵する、ソフトキーボードに対する位置の分布を記録することによって、確率分布をキーの各々について生成することができるはずである。次いで確率分布モデルを、これらの測定された分布に適合させて、どの値が適切な適合度をもたらすかを判定することができる。このようなテストを、確率分布モデルのパラメータが必要とされる各条件又は条件セットの下で繰り返すことができる。確率分布モデルを特徴付けるパラメータの値が収集されると、これらのパラメータの値を表に記憶してもよく、あるいはそれ以外のやり方でソフトキーボードインタフェースコンポーネントに利用可能にしてもよい。
【0071】
確率分布関数をヒューリスティックに定義する方法の例として、
図7A及び
図7Bに、分布関数のスプレッドがタイピング速度と共に増加する様子を示す。低速タイピングについてスプレッドを推定し、各キーと概ねと同じ広がりを有する確率分布関数を得ることができる。この確率分布関数をベースラインとして使用し、ルール又は他のヒューリスティックを使用してベースラインの条件から逸脱する条件について調整してもよい。例えば、検出されたタイピング速度に基づいて、低速タイピングのスプレッドをタイピング速度の増加に比例して増減させることによって、確率分布関数の適切なスプレッドを決定してもよい。本明細書で説明される他の要因及び他の適切な要因を含め、確率分布関数に影響を及ぼす他の要因は、確率分布関数を特徴付けるパラメータの値を調整する手法を指示するルールとして表されてよい。
【0072】
パラメータの値が適応的に決定される方法の一例として、ソフトキーボードインタフェースコンポーネントが動作する際に、予測の正確さに関する情報を収集してもよい。具体例として、テキストの表示に続くユーザ入力が、ユーザが特定の位置におけるタップ入力を、その位置に近い第1のキーから第2のキーに一貫して変更することを指示する場合、それらのキーの確率分布関数は、より高い確率を第2のキーに割り当てることによって、ソフトキーボードインタフェースコンポーネントが同じ位置におけるタップに応答することとなる確率を増加するように調整されることがある。
【0073】
確率分布関数を特徴付けるパラメータの値が決定する方法にかかわらず、それらの値は、確率分布関数が、動作条件を特徴付ける任意の所望のパラメータに基づいて選択されるよう利用可能である。
【0074】
図8A及び
図8Bは、キーボードレイアウトのパラメータがキーについての確率分布関数に影響を及ぼすことを例示する。
図8Aはソフトキーボード820
1を図示している。文字キーと関連付けられた確率分布関数が、
図7Aと同じ形式を使用して
図8Aに図示されている。これに対し、
図8Bはソフトキーボード820
2を図示している。ソフトキーボード820
1及び820
2は同じキーボードスタイルである。しかし、キーボード820
2は隣接キーを分離するガター870を含む。本発明の発明者らは、同等のサイズのキーボードにとっても、キーの間に視覚的分離を作り出すガター870を設けることは、ユーザがターゲットとするキーを打鍵する際の正確さを高めることがあることを認識し、理解している。
【0075】
したがって、
図8Bには、確率分布関数860
2が確率分布関数860
1より小さいスプレッドを有することが示されている。
図8A及び
図8Bの対応するキーについて他の確率分布関数を比較すると、他のキーについても同様のパターンが示されている。具体例として、レンダリングされるキーボードレイアウトのパラメータは、タップを解釈するのに使用される確率分布関数を決定する際に使用されてもよい。したがって、ガターサイズ及び/又はキーサイズは、キーについて適切な確率分布関数を決定する際に使用されるキーボードレイアウトのパラメータとすることができる。しかし、任意の他のパラメータを代替又は追加として使用してもよい。
【0076】
一部の実施形態では、ソフトキーボードインタフェースコンポーネントは、パラメータの組み合わせに対する値に基づいて、ソフトキーボード上の複数のキーの各々について確率分布関数を選択してもよい。一部の実施形態では、これらのパラメータには、タイピング速度、キーボードスタイル、キーサイズ、及びガターサイズが含まれることがある。しかし、任意の適切なパラメータの値を使用してもよいことを理解されたい。
【0077】
さらに、
図8A及び
図8Bは、確率分布関数が文字キー及びスペースバーと関連付けられることを図示している。ソフトキーボードインタフェースコンポーネントは、確率情報がテキストの処理に使用される実施形態において、これらのキーに対する確率のみを決定することがある。しかし、確率を、これらのキーすべてについて報告すること又はこれらのキーのみについて報告することは、本発明の必要条件ではない。他のキーについて確率が他のキー報告される実施形態も可能である。
【0078】
ソフトキー上の検出されたタップに応答して確率が報告されるキーにかかわらず、ソフトキーボードインタフェースコンポーネントは、検出された入力に応答して、1つ又は複数のキーの確率を生成するよう動作してもよい。ソフトキーボードインタフェースコンポーネントは、一部の実施形態において、
図9に図示される方法900に従って動作してもよい。
【0079】
方法900は複数の動作を含み、そのうちの一部はソフトキーボードの初期レンダリングの際に行われてよい。
図9に図示される動作の他の動作は、タップが検出されるときに繰り返し行われてよい。
図9の例において、動作910、912及び914は、ソフトキーボードが最初にレンダリングされるとき、又はそうでなくともソフトキーボードの初期化の一部として行われてよい。さらに、一部の実施形態では、動作910、912及び914は、ソフトキーボードインタフェースコンポーネントを実装するプログラムの実行に際して、明確に定義されたステップとして行われなくてもよい。むしろ、動作910、912及び914によって実装される初期化のアクションを、ソフトキーボードインタフェースコンポーネントの一部としてコード化することができる。
【0080】
コンポーネントが初期化される具体的な方法にかかわらず、方法900は動作910において開始してよい。動作910において、キーボードスタイルを決定することができる。一部の実施形態では、コンピューティングデバイス上で実行されているアプリケーションが、好適なキーボードスタイルを指示することがある。例えば、非公式なチャットタイプの通信をサポートするアプリケーションは、限定的な機能のキーボードがレンダリングされるよう要求することがある。しかし、キーボードスタイルに関する情報を任意の適切なやり方で獲得することができる。一部の実施形態では、キーボードスタイルは、ユーザプロファイル又は他の構成情報ソースから読み取ることができる、直接ユーザ入力によって指定されることがある。
【0081】
キーボードスタイルを決定する方法にかかわらず、処理は次いで動作912に進んでよい。動作912において、ソフトキーボードインタフェースコンポーネントは、レンダリングされるキーボードパラメータの値を決定することができる。例えばこれらのキーボードパラメータは、キーのサイズ、キーの位置及び/又はキーの間のガターのサイズとすることができる。これらのパラメータの値を任意の適切な方法で決定してよい。パラメータの値は、例えば、ソフトキーボードがレンダリングされているデバイスのタイプ、特に、ディスプレイのサイズやソフトキーボードに割り当てられる表示領域のサイズなどの要因に依存することがある。
【0082】
動作914において、デフォルトの確率分布関数を、確率が返されるべきであるキーの各々について識別することができる。動作914においてロードされる確率分布関数は、動作910において決定されるキーボードスタイル、及び動作912において決定される他のキーボードパラメータの値に基づくものとすることができる。しかし、動作914においてロードされる確率分布関数は、ユーザがキーボードと対話し始める前に決定することができる任意の他の適切なパラメータの値に基づいて選択されてもよい。例えば、
図9には図示されていないが、一部の実施形態では、コンピューティングデバイスは、コンピューティングデバイスの複数の潜在的ユーザの各々についてプロファイル情報を記憶してもよい。また、アクティブなユーザのプロファイルからの情報を動作914において使用して、過去のタイピングパターン又はユーザに関して収集された他の履歴情報に基づいてソフトキーボードのキーについて適切な確率分布関数を識別することもできる。
【0083】
確率分布関数を決定するのに使用される特定のパラメータにかかわらず、これらの確率分布関数を任意の適切な方法で表すことができる。一部の実施形態において、確率分布関数を、上述のガウス確率分布モデルの平均及び分散などの、確率分布モデルのパラメータの値によって表すことができる。しかし、確率分布関数を特徴付けるための任意の適切な技術を使用することができる。どのように表されるかにかかわらず、それらの確率分布関数を特徴付けるのに使用される情報を、動作914の一部としてロードすることができる。確率分布関数が利用可能になると、ソフトキーボードインタフェースコンポーネントは、それらの確率分布関数を使用してキーボード入力を処理することができる。
【0084】
図9は、キーボード入力を生成するコンポーネント920を図示している。コンポーネント920は、例えば、タッチスクリーン用のコントローラとすることができる。しかし、コンポーネント920は、ソフトキーボードインタフェースコンポーネントに入力を提供する前に、「タップ」を識別するために、タッチスクリーンコントローラによって生成される情報を前処理するコンポーネントを含むコンポーネントの集合を表してもよいことを理解すべきである。キーボード入力のソース及び前処理にかかわらず、ソフトキーボードインタフェースコンポーネントは、これらの入力を動作922として受け取ることができる。
【0085】
動作924で、ソフトキーボードインタフェースコンポーネントは、ユーザのタイピング速度の推定値を更新することができる。一部の実施形態では、ソフトキーボードインタフェースコンポーネントは、キーボードタップが検出される平均レートをトラックしてよい。この平均レートは、ユーザがタイプしている速度の指示として使用されてよく、この速度はさらに、ソフトキーボードのキーについて確率分布関数を動的に決定するのに使用されてよい。動作924で取得されるタイピング速度の推定値は、任意の適切な方法で取得されてよい。しかし、一例として、タイピング速度の推定値は、キーボードタップを分ける移動平均(running average)時間として維持されてよい。
【0086】
方法900は次いで動作926に進んでよい。動作926において、動作922で受け取った入力の位置に隣接したキーを識別することができる。動作926において選択されるキーを任意の適切な方法で決定することができる。一部の実施形態では、動作926の一部として選択されるキーは、動作922の一部として受け取られる入力の位置を含む任意のキーを含むことがある。加えて、その入力位置に隣接する任意のキーも、選択に含まれることがある。しかし、その確率値が返されるべきであるキーのサブセットを識別するための任意の適切な技術を使用することができる。一部の実施形態では、キーと関連付けられる確率分布関数に対する制限を、隣接キーを選択するために、明示的に又は暗黙的に使用されてよい。例えば、入力位置において非ゼロである確率分布関数を有する任意のキーが動作926の一部として選択されてもよく、タッチ接触形状と交差する任意のキーを使用することもできる。本発明の発明者らは、そのような技術の組み合わせも、様々なアプリケーションン固有の修正及び予測に使用してもよいことを了解している。
【0087】
隣接キーが選択される方法にかかわらず、動作928において、それらの選択されたキーの確率分布関数を更新することができる。確率分布関数がタイピング速度に依存する実施形態では、動作928における更新は、動作924で決定されるように使用されるときに、動作910及び動作912において決定された特性を有するキーボードについて適切な確率分布関数を選択することを含んでもよい。確率分布関数の他の選択と同様に、動作928における選択は任意の適切な方法で行われてよい。一部の実施形態では、選択は、選択されたキーの各々に関連付けられたルックアップ表にアクセスし、ルックアップ表へのインデックスとして、動作910、動作912及び動作924の一部として決定されたパラメータの値を使用することによって行われてよい。
【0088】
確率分布関数が決定される方法にかかわらず、それらの確率分布関数を使用して、確率を、動作926の一部として選択された隣接キーの各々に関連付けることができる。各キーに対する確率は、ユーザが、動作922において受け取った入力でそのキーをターゲットとした確率を指示してもよい。
【0089】
確率分布関数が、キーに関連付けられたアンカによって定義される制限を受ける実施形態において、方法900は、判断ブロック940において、受け取った入力がアンカ内に入っているかどうかに応じて分岐してよい。受け取った入力がアンカ内にある場合、方法900は動作950に分岐する。動作950において、ソフトキーボードインタフェースコンポーネントは、1の確率を、入力が入っているアンカに関連付けられたキーに関連付けることができる。処理は次いで動作954に進んでよく、動作954において、この確率が報告される。
図9に図示された実施形態では、キーボード入力が、あるキーのアンカ内に入っているときには、他のキーについての確率は報告されない。しかし、別の実施形態では、あるキーのアンカ内に入っている入力が任意の適切な方法で報告されてもよい。一部の実施形態で用いられる代替例として、あるキーのアンカ内で検出された入力を、他の隣接キーと関連付けられた確率とは別個に報告してもよく、したがって、ソフトキーボードインタフェースコンポーネントから出力を受け取る後処理コンポーネントは、アンカ内の入力に関する情報を任意の適切な方法で使用するようプログラムされてもよい。
【0090】
アンカ内の入力を特定する方法にかかわらず、動作922の一部として受け取られた入力がアンカ内に入っていない場合には、方法900は動作952に進む。動作952において、動作926の一部として選択された隣接キーの各々について確率を決定することができる。ブロック952において確率を決定することは、それらの隣接キーの各々の基準点に対する受け取った入力の位置に基づいて、それらの隣接キーについて更新された確率分布関数から値を選択することを伴うことがある。
図6A及び
図6Bに関連して説明した実施形態では、各キーの基準点はその中心であるとみなされる。しかし、分割キーボードの実施形態のような他の実施形態では、基準点は、キーボードのエッジ又は他の適切な位置とすることができる。しかし、任意の適切な機構を使用して、各キーに関連付けられた空間的確率分布関数に基づいて特定の位置における入力の確率を決定してよい。
【0091】
確率が隣接キーの各々について決定される方法にかかわらず、処理は動作954に進む。動作954において、決定された1つ又は複数の確率を報告することができる。これらの報告は、テキスト予測エンジンなどの後処理コンポーネントに対して行われることがある。しかし、いかなる後処理かにかかわらず、受け取った入力と関連付けられた1つ又は複数のキーを指示する情報を、ソフトキーボードから入力を受け取るアプリケーション又は他のコンポーネントに提供することができる。この入力は、当分野で公知の技術を使用して、又は任意の他の適切な方法で提供されてよい。
【0092】
本明細書で説明されるソフトキーボードインタフェース技術は、任意の適切なコンピューティングデバイスに統合されてよい。
図10に、本発明が実装されうる適切なコンピューティングシステム環境1000の例を図示する。コンピューティングシステム環境1000は、適切なコンピューティング環境の一例にすぎず、本発明の使用又は機能の範囲に関するいかなる限定を示唆するようにも意図されていない。またコンピューティング環境1000は、例示的動作環境1000に図示される構成要素の任意の1つ又はそれらの組み合わせに関して、いかなる依存関係又は必要条件を有するようにも解釈されるべきではない。
【0093】
本発明は、多数の他の汎用又は専用のコンピューティングシステム環境又は構成とともに動作する。本発明とともに使用するのに適した周知のコンピューティングシステム、環境、及び/又は構成の例には、これだけに限られないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルド又はラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップックス、プログラマブル家電、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、上記のシステム又はデバイスのいずれかを含む分散コンピューティング環境などが含まれる。
【0094】
コンピューティング環境は、プログラムモジュールといったコンピュータ実行可能命令を実行しうる。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。また本発明は、通信ネットワークを介してリンクされるリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実施されてもよい。分散コンピューティング環境では、プログラムモジュールを、記憶デバイスを含むローカルとリモート双方のコンピュータ記憶媒体に位置することができる。
【0095】
図10を参照すると、本発明を実装するための例示的システムは、汎用コンピューティングデバイスをコンピュータ1010の形で含んでいる。コンピュータ1010の構成要素は、これらに限られないが、処理装置1020と、システムメモリ1030と、システムメモリを含め、様々なシステムコンポーネントを処理装置1020に結合するシステムバス1021とを含んでよい。システムバス1021は、メモリバス若しくはメモリコントローラ、周辺バス、及び様々なバスアーキテクチャのいずれかを使用したローカルバスを含むいくつかの種類のバス構造のうちの任意のものとすることができる。限定ではなく例として、そのようなアーキテクチャは、産業標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ベサ(VESA)ローカルバス、及びメザニンバスとしても知られる周辺装置相互接続(PCI)を含む。
【0096】
コンピュータ1010は典型的に、様々なコンピュータ読取可能媒体を含む。コンピュータ読取可能媒体は、コンピュータ1010によってアクセスすることができる任意の利用可能な媒体とすることができ、揮発性及び不揮発性の双方の媒体、取り外し可能及び取り外し不能の双方の媒体を含む。原例ではなく例として、コンピュータ読取可能媒体は、コンピュータ記憶媒体と通信媒体を含むことが。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール、又は他のデータといった情報を記憶するための任意の方法又は技術において実装された揮発性及び不揮発性の双方、取り外し可能及び取り外し不能の双方の媒体を含む。コンピュータ記憶媒体は、これらに限られないが、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD)若しくは他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するのに使用することができ、コンピュータ1010によってアクセスすることができる任意の他の媒体を含む。通信媒体は典型的に、コンピュータ読取可能命令、データ構造、プログラムモジュール又は他のデータを、搬送波又は他のトランスポート機構のような変調データ信号において具現化し、任意の情報伝達媒体を含む。「変調データ信号」という用語は、その特性のうちの1つ又は複数が、信号内に情報をエンコードするような方法で設定又は変更された信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続のような有線媒体と、音響、RF、赤外線又は他の無線媒体のような無線媒体とを含む。上記のうちのいずれかの組み合わせもコンピュータ読取可能媒体の範囲内に含まれるべきである。
【0097】
システムメモリ1030は、読取専用メモリ(ROM)1031やランダムアクセスメモリ(RAM)1032などの、揮発性及び/又は不揮発性メモリの形のコンピュータ記憶媒体を含む。基本入出力システム1033(BIOS)は、始動時などにコンピュータ1010内の要素間で情報を転送するのを助ける基本ルーチンを含み、典型的にはROM1031に記憶されている。RAM1032は典型的に、処理装置1020から即座にアクセス可能であり、及び/又は処理装置1020によって現在操作されているデータ及び/又はプログラムモジュールを含む。限定ではなく例として、
図10は、オペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036及びプログラムデータ1037を図示している。
【0098】
またコンピュータ1010は、他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体も含んでいてよい。例として、
図10は、取り外し不能・不揮発性の磁気媒体との間で読み取り又は書き込みを行うハードディスクドライブ1041と、取り外し可能・不揮発性の磁気ディスク1052との間で読み取り又は書き込みを行う磁気ディスクドライブ1051と、CD−ROM又は他の光学媒体などの取り外し可能・不揮発性の光ディスク1056との間で読み取り又は書き込みを行う光ディスクドライブ1055とを図示している。例示的動作環境で使用することができる他の取り外し可能/取り外し不能、揮発性/不揮発性コンピュータ記憶媒体には、これだけに限られないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、半導体RAM、半導体ROM等が含まれる。ハードディスクドライブ1041は典型的に、インタフェース1040などの取り外し不能メモリインタフェースを介してシステムバス1021に接続されており、磁気ディスクドライブ1051及び光ディスクドライブ1055は典型的に、インタフェース1050などの取り外し可能メモリインタフェースによってシステムバス1021に接続される。
【0099】
上記で説明し、
図10に図示したドライブ及びこれらのドライブと関連付けられたコンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュール及びコンピュータ1010のための他のデータのストレージを提供する。
図10では、例えば、ハードディスクドライブ1041が、オペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046及びプログラムデータ1047を記憶するものとして図示されている。これらのコンポーネントは、オペレーティングシステム1034、アプリケーションプログラム1035、他のプログラムモジュール1036及びプログラムデータ1037と同じものとすることも、異なるものとすることもできる。オペレーティングシステム1044、アプリケーションプログラム1045、他のプログラムモジュール1046及びプログラムデータ1047は、ここでは、少なくともこれらが異なるコピーであることを示すために異なる番号が与えられている。ユーザは、キーボード1062や、一般にマウス、トラックボール又はタッチパッドと呼ばれるポインティングデバイス1061などの入力デバイスを介して、コンピュータ1010にコマンド及び情報を入力してよい。しかし、タッチスクリーンが入出力デバイスとして使用される実施形態では、このタイプの別個のヒューマンインタフェースデバイスがなくてもよい。これらのコンポーネントの代わりに、又はこれらに加えて提供されることがある他の入力デバイス(不図示)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ等が含まれうる。これら及び他の入力デバイスはしばしば、システムバスに結合されるユーザ入力インタフェース1060を介して処理装置1020に接続されるが、パラレルポート、ゲームポート、ユニバーサルシリアルバス(USB)といった他のインタフェース及びバス構造によって接続されてもよい。モニタ1091又は別のタイプのディスプレイデバイスも、ビデオインタフェース1090のようなインタフェースを介してシステムバス1021に接続される。このディスプレイデバイスは、前述のようなタッチスクリーンであってよく、コンピューティングデバイスの本体に統合されていてもよい。モニタに加えて、コンピュータは、出力周辺装置インタフェース1095を介して接続され得る、スピーカ1097及びプリンタ1096などの他の周辺出力デバイスを含んでいてもよい。
【0100】
コンピュータ1010は、リモートコンピュータ1080などの1つ又は複数のリモートコンピュータへの論理接続を使用するネットワーク接続環境において動作することができる。リモートコンピュータ1080は、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピアデバイス又は他の一般的なネットワークノードとすることができ、典型的にはコンピュータ1010に関して前述した要素のうちの多く又は全部を含むが、
図10には記憶デバイス1081だけが図示されている。
図10に示される論理接続は、ローカルエリアネットワーク(LAN)1071及び広域ネットワーク(WAN)1073を含むが、他のネットワークを含んでいてもよい。そのようなネットワーク接続環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット及びインターネットでは一般的である。
【0101】
LANネットワーク接続環境で使用されるとき、コンピュータ1010は、ネットワークインタフェース又はアダプタ1070を介してLAN1071に接続される。WANネットワーク接続環境で使用されるとき、コンピュータ1010は典型的に、インターネットといったWAN1073上で通信を確立するためのモデム1072又は他の手段を含む。モデム1072は、内蔵であっても外付けであってもよく、ユーザ入力インタフェース1060又は他の適切な機構を介してシステムバス1021に接続されてよい。ネットワーク接続環境では、コンピュータ1010に関連して示されているプログラムモジュール、又はその一部分が、リモートメモリ記憶デバイスに記憶されていてもよい。限定ではなく例として、
図10は、リモートアプリケーションプログラム1085が記憶デバイス1081上に存在するものとして図示している。図示されたネットワーク接続は例示であり、コンピュータ間で通信リンクを確立する他の手段を使用してもよいことが理解されよう。
【0102】
以上のように本発明の少なくとも1つの実施形態のいくつかの態様を説明してきたが、当業者には様々な変更、修正及び改善が容易に想起されるであろうことを理解されたい。
【0103】
例えば、キーボードのユーザアクティブ化は、「タップ」によって行われると説明した。ユーザ入力は、キーボードを横切る指のドラッグに基づいて検出されてもよい。したがって、ユーザアクティブ化を示す任意の適切なジェスチャを、ユーザ入力として認識し、解釈してもよいことを理解すべきである。
【0104】
そのような変更、修正及び改善は、本開示の一部であることが意図されており、本発明の趣旨及び範囲の内にあることが意図されている。さらに、本発明の利点が示されているが、本発明の全ての実施形態が説明された全ての利点を含むことになるとは限らないことも理解されたい。一部の実施形態は、本明細書において一部の例で利点として記載されている任意の特徴を実装しない可能性がある。したがって、以上の説明及び図面は例示にすぎない。
【0105】
本発明の上述の実施形態を、多くの方法のうちのいずれかで実現することができる。例えば、これらの実施形態は、ハードウェア、ソフトウェア又はハードウェアとソフトウェアの組み合わせを使用して実装されてよい。ソフトウェアで実装されるとき、ソフトウェアコードを、単一のコンピュータに提供されることもあり複数のコンピュータの間で分散されることもある、任意の適切なプロセッサ又はプロセッサの集合の上で実行することができる。そのようなプロセッサは、集積回路コンポーネント内に1つ又は複数のプロセッサを有する集積回路として実装されてよい。しかし、プロセッサは任意の適切な形式の回路を使用して実装されてよい。
【0106】
さらに、コンピュータは、ラックマウント型コンピュータ、デスクトップコンピュータ、ラップトップコンピュータ又はタブレットコンピュータなどのいくつかの形態のうちのいずれで具現化されてもよいことを理解すべきである。加えて、コンピュータは、携帯情報端末(PDA)、スマートフォン、又は任意の他の適切な携帯若しくは固定式電子デバイスを含む、一般にコンピュータとはみなされないが適切な処理能力を有する機器において具体化されてもよい。
【0107】
また、コンピュータは、1つ又は複数の入出力デバイスも有していてよい。これらの装置は、特に、ユーザインタフェースを提示するのに使用することができる。ユーザインタフェースを提供するのに使用することのできる出力デバイスの例には、出力の視覚的提示のためのプリンタ若しくは表示画面、及び出力の可聴提示のためのスピーカ若しくは他の音発生装置が含まれる。ユーザインタフェースに使用することのできる入力デバイスの例には、キーボード、マウスなどのポインティングデバイス、タッチパッド、及びデジタル化タブレットが含まれる。別の例として、コンピュータは、音声認識によって、又は他の可聴形式で入力情報を受け取ってもよい。
【0108】
そのようなコンピュータは、企業ネットワークやインターネットといった、ローカルエリアネットワーク又は広域ネットワークとしてのネットワークを含む、任意の適切な形の1つ又は複数のネットワークによって相互接続されてよい。そのようなネットワークは、任意の適切な技術に基づくものであってよく、任意の適切なプロトコルに従って動作してよく、無線ネットワーク、有線ネットワーク又は光ファイバネットワークを含んでいてよい。
【0109】
また、本明細書で概説した様々な方法又はプロセスは、様々なオペレーティングシステム又はプラットフォームのうちのいずれか1つを用いる1つ又は複数のプロセッサ上で実行可能なソフトウェアとしてコード化されてもよい。加えて、そのようなソフトウェアは、いくつかの適切なプログラミング言語及び/又はプログラミングツール若しくはスクリプティングツールのうちのいずれを使用して書かれてもよく、また、フレームワーク又は仮想機械上で実行される実行可能機械語コード又は中間コードとしてコンパイルされてもよい。
【0110】
この点に関して、本発明は、1つ又は複数のコンピュータあるいは他のプロセッサ上で実行されると、前述の本発明の様々な実施形態を実施する方法を実行する1つ又は複数のプログラムで符号化される、コンピュータ読取可能記憶媒体(又は複数のコンピュータ読取可能媒体)(例えば、コンピュータメモリ、1つ又は複数のフロッピー(登録商標)ディスク、コンパクトディスク(CD)、光ディスク、デジタルビデオディスク(DVD)、磁気テープ、フラッシュメモリ、フィールドプログラマブルゲートアレイ又は他の半導体デバイスにおける回路構成、あるいは他の有形のコンピュータ記憶媒体)として具体化されてよい。前述の例から明らかなように、コンピュータ読取可能記憶媒体は、コンピュータ実行可能命令を非一時的な形で提供するのに十分な時間にわたって情報を保持しうる。そのような1つ又は複数のコンピュータ読取可能記憶媒体は可搬式とすることができ、よって、その媒体上に記憶された1つ又は複数のプログラムを、前述の本発明の様々な態様を実現するために1つ又は複数の異なるコンピュータあるいは他のプロセッサ上にロードすることができる。本明細書で使用されるとき、「コンピュータ読取可能記憶媒体」という用語は、製品(すなわち製造品)又はマシンであるとみなされるコンピュータ読取可能媒体だけを包含する。あるいはまた、本発明は、伝搬信号などの、コンピュータ読取可能記憶媒体以外のコンピュータ読取可能媒体として具体化されてもよい。
【0111】
「プログラム」又は「ソフトウェア」という用語は、本明細書では、コンピュータ又は他のプロセッサを、上述の本発明の様々な態様を実現するようにプログラムするのに用いることのできる、任意のタイプのコンピュータコード又はコンピュータ実行可能命令のセットを指す一般的な意味で使用される。加えて、この実施形態の一態様によれば、実行されると本発明の方法を実行する1つ又は複数のコンピュータプログラムは、単一のコンピュータ又はプロセッサ上に置かれる必要はなく、本発明の様々な態様を実現するように複数の異なるコンピュータ又はプロセッサの間でモジュール式に分散されていてもよいことを理解すべきである。
【0112】
コンピュータ実行可能命令は、1つ又は複数のコンピュータあるいは他の機器によって実行されるプログラムモジュールなどの多くの形態とすることができる。一般に、プログラムモジュールは、特定のタスクを実行し、又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。典型的に、プログラムモジュールの機能は、様々な実施形態において必要に応じて組み合わされても分散されてもよい。
【0113】
また、データ構造は、任意の適切な形態でコンピュータ読取可能媒体に記憶されてもよい。説明を簡単にするために、データ構造は、データ構造内の位置決めによって関係付けられるフィールドを有するものとして示されてもよい。そのような関係は、同様に、フィールド間の関係を伝えるコンピュータ読取可能媒体内の位置を有するフィールドについてストレージを割り当てることによって達成されてもよい。しかし、任意の適切な機構を使用してデータ構造のフィールド内の情報間の関係を確立してもよく、これは、ポインタ、タグ、又はデータ要素間の関係を確立する他の機構の使用によるものを含む。
【0114】
本発明の様々な態様は、単独で使用されても、組み合わせて使用されても、以上で説明した実施形態において具体的に論じられていない様々な構成で使用されてもよく、したがって、その適用において、以上の説明に記載し、又は図面に例示した構成要素の詳細及び構成だけに限定されるものではない。例えば、一実施形態において説明された態様を、他の実施形態で説明された態様と任意の方法で組み合わせてよい。
【0115】
また、本発明は方法として具体化されてもよく、その一例が提供されている。方法の一部として実行される各動作は、任意の適切な方法で順序付けられてよい。したがって、動作が例示のものと異なる順序で実行される実施形態が構築されてよく、例示の実施形態では順次の動作として示されても、いくつかの動作を同時に実行することを含んでいてよい。
【0116】
特許請求の範囲において構成要素を修飾するための「第1の」、「第2の」、「第3の」などの序数詞の使用は、それ自体によって、別の構成要素に対するある構成要素の優先順位、優位又は順序も意味するものではなく、また方法の動作が実行される時間的順序も意味するものではない。このような序数詞は、単に、ある名称を有するある構成要素を(序数詞の使用がなければ)同じ名称を有する別の要素と区別するためのラベルとして、それらの構成要素を区別するために使用されるにすぎない。
【0117】
また、本明細書で使用される言葉遣い及び用語は説明のためのものであり、限定とみなされるべきではない。本明細書における「含む(including)」、「備える(comprising)」、又は「有する(having)」、「包含する(containing)」、「伴う(involving)」及びこれらの変形の使用は、その後に記載された項目及びそれらの項目の均等物、並びに追加項目を包含することを意図するものである。