(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5849095
(24)【登録日】2015年12月4日
(45)【発行日】2016年1月27日
(54)【発明の名称】タッチ及び振動センシティブの平らな表面に対するキー押下イベントを検出し位置を特定する方法
(51)【国際特許分類】
H03M 11/04 20060101AFI20160107BHJP
G06F 3/023 20060101ALI20160107BHJP
G06F 3/041 20060101ALI20160107BHJP
G06F 3/0488 20130101ALI20160107BHJP
【FI】
G06F3/023 310L
G06F3/041 500
G06F3/041 590
G06F3/048 620
【請求項の数】19
【全頁数】21
(21)【出願番号】特願2013-518583(P2013-518583)
(86)(22)【出願日】2011年6月28日
(65)【公表番号】特表2013-534111(P2013-534111A)
(43)【公表日】2013年8月29日
(86)【国際出願番号】US2011042225
(87)【国際公開番号】WO2012006108
(87)【国際公開日】20120112
【審査請求日】2013年2月7日
(31)【優先権主張番号】61/359,235
(32)【優先日】2010年6月28日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513135990
【氏名又は名称】クリーンキーズ・インコーポレイテッド
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(74)【代理人】
【識別番号】100134474
【弁理士】
【氏名又は名称】坂田 恭弘
(72)【発明者】
【氏名】マースデン、ランダル・ジェイ.
(72)【発明者】
【氏名】ホール、スティーブ
【審査官】
高瀬 勤
(56)【参考文献】
【文献】
国際公開第2009/039365(WO,A2)
【文献】
特表2008−544352(JP,A)
【文献】
国際公開第2007/138383(WO,A2)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/023
G06F 3/041
G06F 3/0488
H03M 11/04
(57)【特許請求の範囲】
【請求項1】
タッチセンシティブ表面に対するユーザが意図したキー作動を決定する方法であって、
前記方法は、
複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することと、
前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも2つの関連する入力イベントを識別することと、
前記少なくとも2つの関連する入力イベントの相関の強度に基づいて1つの候補キー作動イベントを決定することと、
1つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記1つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定することと、
を含む、方法。
【請求項2】
前記複数の入力イベントを記録することは、
前記複数のタッチセンサと前記1つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換すること、
を含む、請求項1の方法。
【請求項3】
前記複数の入力イベントを相関させることは、
前記複数のタッチセンサから受信した信号間の時間的な近さに少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む、請求項1の方法。
【請求項4】
前記複数の入力イベントを相関させることは、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む、請求項1の方法。
【請求項5】
前記複数の入力イベントを相関させることは、
時間的な近さ、空間的な近さ、又は時間的な期間のうちの少なくとも1つを基準にしている相互の一致に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む請求項1の方法。
【請求項6】
前記1つの候補キー作動イベントをキー作動イベントとして意図していないユーザ接触と認定することは、
前記タッチセンシティブ表面上に見えるキーボードのホームローにユーザの手を載せた結果として生じた前記1つの候補キー作動イベントを決定すること、
を含む、請求項1の方法。
【請求項7】
前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することは、
(i)前記複数のタッチセンサから受信した信号と、(ii)前記1つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録すること、
を含む、請求項1の方法。
【請求項8】
前記複数の入力イベントを記録することは、
前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録することと、
前記1つ以上の振動センサから受信した信号に基づいて、1つ以上のタップイベントを記録することと、
を含む、請求項7の方法。
【請求項9】
前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
以下の基準、即ち、
時間的な近さ、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
前記1つ以上の振動センサからの信号が受信された場合における、前記1つ以上の振動センサの位置、
前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
前記1つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
前記複数のタッチセンサから受信した信号と、前記1つ以上の振動センサから受信した信号と、によって示される候補キー間の相互の一致、
のうちの少なくとも1つに基づいて、前記タッチイベントと前記タップイベントとを相関させること、
を含む、請求項8の方法。
【請求項10】
前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
前記複数の入力イベントから成るそれぞれのグループを、前記1つの候補キー作動イベントに関連付けること、
を含み、
前記複数の入力イベントから成るそれぞれのグループは、1つ以上のタッチイベント及び/又は1つ以上のタップイベントを含み、
前記1つの候補キー作動イベントを認定することは、
前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定すること、
を含む、請求項8の方法。
【請求項11】
前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別することは、
前記複数の入力イベントを相関させて、前記1つの候補キー作動イベントを含む、1つ以上の候補キー作動イベントから成る組を識別すること、
を含み、
前記1つ以上の候補キー作動イベントのうちの任意の1つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定することは、
前記組から、その候補キー作動イベントを削除すること、
を含む、請求項1の方法。
【請求項12】
タッチ/タップセンシティブキーボードを有する装置であって、
前記装置は、
平坦な表面を有するハウジングと、
前記ハウジング内の、前記平坦な表面の下に配置されている複数のタッチセンサと、
前記ハウジング内に配置されている1つ以上の振動センサと、
前記複数のタッチセンサと前記1つ以上の振動センサとから信号を受信するために結合されているプロセッサと、
プログラムコードを記憶するメモリと、
を具備し、
前記プログラムコードは、前記プロセッサによって実行された場合に、前記プロセッサに、
複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを前記メモリ内に記録させ、
前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも2つの関連する入力イベントを識別させ、
前記少なくとも2つの関連する入力イベントの相関の強度に基づいて1つの候補キー作動イベントを決定させ、
1つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記1つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定させる、装置。
【請求項13】
前記メモリは、
前記プログラムコードを記憶するプログラムメモリと、
前記複数の入力イベントを記録するデータメモリと、
を具備し、
実行された場合に、前記プロセッサに、複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数のタッチセンサと前記1つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換させるプログラムコード、
を含む、請求項12の装置。
【請求項14】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させる前記プログラムコードは、
実行された場合に、前記プロセッサに、(i)前記複数のタッチセンサから受信した信号間の時間的な近さ、(ii)前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置、又は(iii)前記複数の入力イベントにそれぞれ対応する候補キー間の相互の一致、のうちの少なくとも1つに基づいて、前記複数の入力イベントを相関させるプログラムコード、
を含む、請求項12の装置。
【請求項15】
実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、前記複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、(i)前記複数のタッチセンサから受信した信号と、(ii)前記1つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録させるプログラムコード、
を含む、請求項12の装置。
【請求項16】
実行された場合に、前記プロセッサに、前記複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録させ、前記1つ以上の振動センサから受信した信号に基づいて、1つ以上のタップイベントを記録させるプログラムコード、
を含む、請求項15の装置。
【請求項17】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、以下の基準、即ち、
時間的な近さ、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
前記1つ以上の振動センサからの信号が受信された場合における、前記1つ以上の振動センサの位置、
前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
前記1つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
前記複数のタッチセンサから受信した信号と、前記1つ以上の振動センサから受信した信号とによって示される、候補キー間の相互の一致、
のうちの少なくとも1つに基づいて、前記タッチイベントと前記タップイベントとを相関させるプログラムコード、
を含む、請求項16の装置。
【請求項18】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくも2つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントから成るそれぞれのグループを、前記1つの候補キー作動イベントに関連付けさせるプログラムコード、
を含み、
前記複数の入力イベントから成るそれぞれのグループは、1つ以上のタッチイベント及び/又は1つ以上のタップイベントを含み、
実行された場合に、前記プロセッサに、前記1つの候補キー作動イベントを認定させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定させるプログラムコード、
を含む、請求項16の装置。
【請求項19】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも2つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記1つの候補キー作動イベントを含む、1つ以上の候補キー作動イベントから成る組を識別させるプログラムコード、
を含み、
実行された場合に、前記プロセッサに、前記1つ以上の候補キー作動イベントのうちの任意の1つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記組から、その候補キー作動イベントを削除させるプログラムコード、
を含む、請求項12の装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イベント(event)を始動させることなく、ユーザが手又は指を表面に載せることができる、滑らかな、固体のタッチ及び振動センシティブ表面(a smooth, solid touch- and vibration-sensitive surface)に関する。より具体的には、表面は、テキストとコマンドとを入力するコンピュータのキーボードとして使用され得る。
【背景技術】
【0002】
人から機械へテキスト及びデータを入力する主要な方法としての現代のキーボードの起源は、19世紀の初期のタイプライタに逆戻る。コンピュータが開発されると、タイプライタのキーボードを、テキスト及びデータを入力する主要な方法として使用されるように適応させることは、自然な進化であった。タイプライタにおけるキーと、その後の、コンピュータのキーボードの実施は、メカニカルなものから、電動式、最終的に電子式に進化し、一方で、キー自体のサイズと、レイアウトと、メカニカルな特徴は、ほとんど変化しないままである。
【0003】
コンピュータと、コンピュータに付いているキーボードは、多数の産業にわたる環境で普及し、これらの環境の多くは、コンピュータ及びキーボードの設計において当初は考えられていなかった厳しい条件を有する。例えば、コンピュータは、レストランの厨房と、製造設備の生産フロアと、石油採掘装置とで、現在使用されている。これらは、極めて汚れた状態であるために、清掃せずに、あまり長い期間にわたって、従来のキーボードが動作可能なままでいられない環境である。
【0004】
キーボードの清掃し易さの問題を克服するために、キーボードの表面自体が平らな又はほぼ平らな表面であり得る場合は、キーボードを拭いてキーボードを清潔にすることが、はるかにより容易になると直感的に考えられる。しかしながら、これは、キーボードの物理的なメカニカルキー又はメンブレンキー(physical mechanical or membrane keys)に代わるものを見付ける必要があることを意味する。
【0005】
部分的にこれを受けて、新しいコンピュータのフォームファクタ(form factor)は、外付けのキーボードを完全に無くして、データ入力のためにソフトウェアベースの「仮想」キーボードを備えたタッチセンシティブフラットディスプレイスクリーン(touch-sensitive flat display screen)のみから構成されるように発展した。手をキーボードに載せる動作は、キーボードから望ましくないキーの作動をもたらすので、手をキーボードに載せるように訓練されたタイピストにとって、タッチスクリーンの仮想キーボードは、速い速度で使用するのが難しい。
【0006】
従って、清掃し易く、ユーザがキーを触って感じることができ、ユーザが指をキーに載せることができ、標準的なキーボード上でキーを押下する力と同じ又はそれよりも小さい力を必要とし、人間のタッチに応答し、従来のメカニカルキーボードのときと同じ又はそれよりも速くユーザがタイプできるやり方で、上述のキーボード入力方法を改善する必要がある。
【発明の概要】
【0007】
本発明は、タッチセンシティブ表面に取付けられた振動センサを使用して、表面に対する指接触イベント(finger contact events)の検出と位置特定との両者を行なうことを可能にする、システムと方法とに関する。特に、本発明は、意識的なタイピングイベントと、通常のタイピング動作からもたらされる偶発的な又は望ましくない接触とを区別する。このアプローチは、普通のキーボードに対して行うように、ユーザが指をキーに載せて、指でタイプすることを可能にする。
【0008】
ユーザが表面に指を置くと、(1つのキー当たり1つ以上の)タッチセンサと、振動センサが、同時に作動する。タッチセンサと振動センサとの両者からの信号は、一連の入力イベントに変換される。次に、指が接触する位置と、対応するキーの作動とを決定するために、入力イベントを時間的に相関させる。対応する「タップ」(即ち、振動)のないタッチイベントは、無視される。次に、相関イベント(correlated events)をフィルタにかけ、望ましくないイベントを取り除き、曖昧な又は矛盾する結果を解決する。例えば、本発明は、意識的なキー押下と、ユーザがタイピングに備えて手をキーボード上にセットダウンする(set down)ときとの差異を検出することができる。
【0009】
本発明は、従来のタッチセンシティブ入力デバイスに対してかなりの長所を有する。1つのこのような長所は、キーの作動を起こさせることなく、ユーザが指をキーに載せることができることである。別の長所は、ユーザが、キーボードを見る必要なく、タッチによってタイプできるということである。
【0010】
本発明の好ましい代わりの例は、次の図面を参照して、以下で詳しく説明される。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態に従って形成されたシステムの代表的なハードウェアコンポーネントを示すハードウェアのブロック図である。
【
図2A】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、
図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【
図2B】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、
図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【
図2C】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、
図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【
図2D】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、
図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【
図2E】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、
図1に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【
図3】有効なキーの作動を検出し、タップ(振動)センサのデータからタッチ及びタップの入力イベントを発生させるために、本発明の方法を実施するソフトウェアアルゴリズムの実施形態を示している。
【
図4A】タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。
【
図4B】タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。
【
図5A】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【
図5B】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【
図5C】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【
図5D】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【発明を実施するための形態】
【0012】
図1は、タッチ/タップセンシティブキーボードデバイス(touch/tap-sensitive keyboard device)100の実施形態のハードウェアコンポーネントの単純化されたブロック図を示している。デバイス100は、近接センサ(proximity sensor)120と、容量性タッチセンサ(capacitive touch sensor)130と、振動センサ(vibration sensor)140とを収めた平坦な表面を含む。センサコンポーネント120と、130と、140は、入力をCPU110(プロセッサ)110に与える。CPUは、キーボードの表面にユーザの手が近付いた、又はキーボードの表面がユーザの手によってタッチされたときに、センサコンポーネント120と、130と、140とから受信した生の信号の解釈に基づいて、接触イベントを通知する。
【0013】
メモリ170は、CPU110とデータ通信する。メモリ170は、プログラムメモリ180とデータメモリ190とを含む。プログラムメモリ180は、オペレーティングシステムソフトウェア181と、タップ/タッチ検出ソフトウェア182と、他のアプリケーションソフトウェア183とを含む。データメモリ190は、タッチ容量性センサの履歴配列(history array)191と、ユーザオプション/プリファランス(user options/preference)192と、他のデータ193とを含む。
【0014】
ユーザの指が平らで平坦な表面に接触すると、容量性タッチセンサ130はアサート(assert)される。周期的に、CPU110は、キーボードのオペレーティングシステムソフトウェア181を実行し、タッチセンサ130とタップセンサ140とから生のセンサのデータを収集し、生のセンサの日付をデータメモリ191に記憶する。
【0015】
異なる実行スレッドにおいて、CPU110は、連続的に、ここに記載されているタップ及びタッチの検出及び位置特定のソフトウェア(アルゴリズム)を実行し、キーボードによって生成されたセンサのデータを処理し、キーの「アップ」及び「ダウン」の一連の状態にする。アルゴリズムの各実行は、「サイクル」を構成する。「サイクル」は、アルゴリズムのための基本的なタイミングの単位(basic timing unit)である。有効なキーの作動が検出されると、CPU110は、タッチ/タップ検出ソフトウェア182によって支援され、メモリ191に収められているセンサのデータのアルゴリズム的分析を行ない、平坦な表面のどのエリアがタッチ及びタップされたかを決定する。有効なタップ/タッチの位置がアルゴリズム182によって計算されると、それは、キーボードのオペレーティングシステムソフトウェア181に渡され、特定のキーボードのファンクションコードにマップされる。典型的なキーボードの機能は、標準的なキーボードの英数字キーと、ファンクション及びナビゲーションキーとを含む。次に、マップされたファンクションコードは、標準的な周辺装置/ホストインターフェイス、例えば、USB又はPS/2を通じて、接続されたホストコンピュータ端末194に送られる。
【0016】
図2Aは、タッチ及びタップセンシティブ表面に対するユーザのキーの作動の位置を特定する例示的な方法を実施するソフトウェアの実施形態のフローチャートを示している。方法は、5つの別個のステージに分けられる。各ステージは、「マネージャ」と呼ばれる異なるシステムソフトウェアコンポーネントによって指示される。
【0017】
ステージ1 センサのデータの収集200
ステージ2 センサのデータの分析及び入力イベントの発生300
ステージ3 入力イベントの相関付け(correlation)400
ステージ4 入力イベントのフィルタリング500
ステージ5 キーの状態の変化の分析600
ステージ1(
図2Aの200)では、タッチ及びタップ(振動)センサ140からデータを収集し、将来処理するためにメモリに入れる。
図2Bは、タッチ及びタップセンサから信号値を収集及び要約する(summarize)ソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、SensorChannelManagerによって制御され、SCM
GetSensorData方法200を通じて呼び出される(invoke)。SensorChannelManager200は、1つ以上のSensorChannelコンポーネントを呼び出す。1つ以上のSensorChannelコンポーネントは、センサデータを収集し、要約し、記憶する。SensorChannelは、特定の収集及び要約アルゴリズムをセンサの信号に適用し、タッチ又はタップセンサのデータの記録を生成する。次のステージで将来処理するために、センサのデータの記録は、関連付けられているタイムスタンプと共に記憶される。
【0018】
SC
Tap
CaptureData方法200によって呼び出されたタップSensorChannel(Tap SensorChannel)は、表面に対して指が起こしたタップの時間の発生を識別する。
図3は、タップイベントを検出するソフトウェアアルゴリズムの実施形態のフローチャートを示している。タップセンサチャネル方法(Tap sensor channel method)220は、現在のサイクルのために、振動センサのデータ記録に記憶されているタップのアナログデータをサンプリングする221。収集されたデータからなる組は、現在のサイクルの開始時間に定められた開始時間と共に、各振動センサに対する波形として表わされる。収集された信号値と平均信号との差が閾値(平均からの差の偏差(difference deviation))を超えている場合に222、信号波形における対応する点は、可能性のあるイベント(possible event)を表わす。アルゴリズムは、同時に実行する2つの状態機械を起動する。第1の状態機械は、最初のタップの反響(reverberation)によって複数のタップイベントが発生するのを抑制する(フィルタをかける)。ブロック223を参照。第2の状態機械は、閾値を越えた波形における第1の最小値(最低点)を検出することによって、タップが発生した正確な時間を計算することを試みる。最小値の時間の位置は、各サンプル点(sample point)における波形の「第2の傾斜合計(second slope sum)」を計算することによって検出される。CPUは、各サンプル点における波形線の瞬間的な傾斜(instantaneous slope)を計算する224。サンプル点における傾斜が負(下向き)から正(上向き)に変わる場合に、サンプルは最小値である可能性のあるもの(possible minima)を表し、サンプル時間はタップイベントの時間である。次に、CPUは、その最小値を真の最小値として適格とする(qualify)かどうかを検出する。それまでの5つのサンプル点の傾斜を現在のサンプル点の傾斜に加えることによって、CPUは、サンプル点に対する「第1の傾斜合計(first slope sum)」を計算する。次に、システムは、それまでの5つのサンプル点の第1の傾斜合計を現在のサンプル点の第1の傾斜合計に加えることによって、「第2の傾斜合計」を計算する。ブロック227を参照。その結果は、サンプル点における傾斜の差を拡大したものであり、これは閾値と容易に比較でき、最小値の特徴を示す主要な傾斜の逆転(下降から上昇)が識別される。決定ブロック228を参照。閾値を超えると、タップイベントが発生され、チャネルによって、タップセンサのデータオブジェクトとして記憶される。ブロック229を参照。
【0019】
ステージ2(
図2Aの300)では、履歴のセンサのデータを分析し、「入力イベント」オブジェクトのストリームを生成する。「入力イベント」オブジェクトのストリームは、表面に対する可能性のあるキーの作動を表わす。
図2Cは、センサのデータを分析して入力イベントを生成するソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、InputChannelManagerによって制御され、ICM
GerInputEvents方法300によって呼び出される。InputChannelManager300は、1つ以上のInputChannelコンポーネントを呼び出す。1つ以上のInputChannelコンポーネントは、ステージ1で収集され、要約され、記憶された、センサのデータを分析する。InputChannelは、特定の分析アルゴリズムをセンサのデータに適用し、状態を検出し、入力イベントを生成する。
【0020】
IC
Touch
GetEvents方法310によって呼び出されたタッチInputChannelプロセス(Touch InputChannel process)は、ユーザのタッチの入力イベント(user touch input event)を探す(look for)。CPU110は、タッチInputChannelプロセスを実行し、記憶されているタッチ容量性センサのデータを分析し、閾値を超えた各信号に対して、タッチの入力イベントを生成する。
【0021】
IC
TapMultilateration
GetEvents方法330によって呼び出されたタップマルチラテレーションInputChannel(tap multilateration InputChannel)は、各振動センサにおけるタップイベントの相対到達時間差(time difference of arrival ,TDOA)を使用し、キーボードに対するタップ位置の座標を計算し、入力イベントを生成する。定められた既知の位置に信号の検出器が3つ以上あるとすれば、CPU110は、マルチラテレーション(multilateration)の技術を使用して、信号の源の位置を三角法で測定する(triangulate)。マルチラテレーションを使用するCPU110は、タップイベントの記録に記憶されている各加速度計への相対到達時間をとって、表面における振動波の、実験により測定された伝搬速度に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。計算されたタップ位置の近くにあるキーを、発生させた入力イベントにおける候補キーとして選ぶ。
【0022】
図4Aは、タップマルチラテレーションのためのソフトウェアアルゴリズムの実施形態のフローチャートを示している。ブロック322において、センサの各々におけるタップイベントの到達時間の時間デルタ又は差を計算する。表面に対するタップによって発生する音波は、ほぼ一定の速度で表面の物質を通って各センサへ進む。実際は、波の伝搬速度は、一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして相対到達時間を使用してもよい。位置ルックアップテーブルは、三つ組(triple)の相対到達時間をキーの座標にマップする。ブロック324を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する(match)可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、相対到達時間に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない速度によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配(increasing probability gradient)を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス320では、マップされた領域によって特定される候補キーで、入力イベントを生成する。ブロック326を参照。
【0023】
1つの実施形態では、タップマルチラテレーションアルゴリズムは、外部(キーボードの外)の振動を検出し、タップイベントとして考慮することから外す方法を含む。外部の振動源が振動センサを作動させるのと同時に、ユーザが、キーボードの表面上で、タップしているのではなく、指を動かしているときに、よく起こる問題(common problem)が生じる。外部のタップ(external tap)がフィルタにかけられない限り、その振動がタッチセンサにおける変化と相関しているとして、これは誤検出(false positive)をもたらす。従って、外部の振動を検出し、それらをフィルタにかけて除去できることが、重要である。タップマルチラテレーションアルゴリズムは、表面の物理的構造の特性を使用して、外部のタップを検出する。外部のタップは、中央の加速度計よりも前に、左と右の両者の加速度計を始動させる。その理由は、外部の振動は、中央の検出器に伝搬する前に、キーボードの左と右の最下部(feet)を通じて、左と右の加速度計に伝わり、中央の検出器が最後になるからである。両者のアプローチの条件が満たされる場合に、信号は、外部の振動として生じている確率が高く、タップイベントから外すことができる。
【0024】
IC
TapAmplitude
GetEvents方法330によって呼び出されるタップ振幅InputChannelプロセス(Tap Amplitude InputChannel Process)は、タップの信号振幅における相対的な差を使用し、キーボードに対するタップの位置の座標を計算し、入力イベントの位置を生成する。振幅変動アルゴリズムは、加速度計の各々によって記録された相対振幅をとって、表面の物質における振動波の、実験により測定された線形力応答の近似値(linear false response approximation)に基づいて、キーボード上のタップ位置の座標を三角法で測定して計算する。計算された振幅のタップ位置の近くにあるキーは、候補出力キーとして選ばれる。
【0025】
1つの実施形態では、タップ振幅差プロセス330は、外部の振動を検出し、タップイベントとして不適格とするアプローチを含む。キーボードの表面上の幾つかの既知の座標を除いて、キーボードの表面に対してタップが行われると、各加速度計によって検出された振幅には、通常は大きな差があり、タップ振幅差プロセス330の基準の特性である。しかしながら、外部のタップが生じたときに、各センサによって検出された振幅は、多くの場合に、そのタップを潜在的な(potential)外部のタップとして識別するのに使用できる振幅に非常に近く、それを更なる検討から不適格とする。
【0026】
図4Bは、タップの振幅差のためのソフトウェアアルゴリズムの実施形態のフローチャート(330)を示している。センサの各々におけるタップイベントの振幅差が計算される。ブロック332を参照。表面に対するタップから発生する音波は、信号振幅のほぼ線形の減衰(力の低下)を伴って、表面の物質を通って各センサに伝搬する。振幅差アルゴリズム330は、タップイベントの記録に記憶されている相対振幅を使用し、信号波が表面を渡るときに伝導物質における吸収によって生じる信号振幅における想定される線形の一定の減衰の線形力応答の近似値に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。信号源が信号検出器から更に遠くなるほど、信号はより小さくなる。実際には、波の減衰は一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして振幅値を使用してもよい。位置ルックアップテーブルは、三つ組の振幅差をキーの座標にマップする。ブロック334を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、振幅差に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない減衰によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス330は、ブロック336において、マップされた領域によって特定される候補キーで、入力イベントを生成する。
【0027】
IC
Press
GetEvents方法340によって呼び出される押下InputChannelプロセス(Press InputChannel Process)は、載せている指がキーボードの表面上に強く押下されているときに生じる入力イベントを検出する。これは、載せている指のタッチ信号強度を認識して記憶に留めて、載せている指と押下した指との差を測定する。信号強度の差が閾値を超えると、入力イベントが発生される。
【0028】
IC
TapWaveform
GetEvents方法350によって呼び出されるタップ波形InputChannelプロセス(Tap waveform InputChannel Process)は、タップ信号の波形の形状を比較し、既知の形状を認識し、キーボード上のタップ位置の座標を計算し、入力イベントを生成する。複数の使用環境における表面上の位置毎に、典型的な振動波形が記録及び記憶される。1つの実施形態では、記録された波形の各々を分析し、完全な波形ではなく、波形の幾つかの固有の特性(「フィンガープリント(fingerprint)」)を記憶する。ユーザが起こすタップの発生の各々の特性を、データベース中の各キーに対する記憶されている特性と比較し、最も良く整合するものを見付ける。各タップ位置を一意に識別するのに寄与できる波形の特性は、波形の最小ピークと、波形の最大ピークと、波形の減衰率と、波形の標準偏差と、波形の高速フーリエ変換と、波形の平均周波数と、波形の平均絶対振幅と、他のものとを含むが、これらに制限されるわけではない。
【0029】
ステージ3(
図2Aの400)では、入力イベントと、時間的及び空間的に関係するイベントとを相関させる。時間的及び空間的に関係付けられるイベントは、作動の位置と、内容と、期間とに対する相互の一致に基づいて、キーの作動を定める。
図2Dは、入力イベントを相関させるソフトウェアアルゴリズムの実施形態のフローチャートを示している。システムは、InputCorrelationManagerによって制御され、ICOR
CorrelationInputEvents方法400によって呼び出される。相関付けは、タッチと、押下と、タップ入力チャネルとによって生成される、関係付けられた入力イベントを、1つの相関入力イベントの中に合体させる(coalesce)。相関付けは、6つの個別の段階で進む。
【0030】
ブロック410に示されている相関付け段階1は、入力イベントを分析して、履歴において幾つのイベントが利用可能であり、相互からの相対時間差がどれだけであるかを決定する。
【0031】
ブロック420に示されている相関付け段階2は、可能性のある組み合わせであるイベントのペア(デュプル(duple))を生成する。
【0032】
ブロック430に示されている相関付け段階3は、計算されたデュプルからなる組から、タプル(tuple)(3つ以上のイベント)を生成する。
【0033】
ブロック440に示されている相関付け段階4は、候補のタプルとデュプルとからなる組を減らして、十分に反射するように(reflexively)サポートしていない組み合わせのうちの何れかを削除する。
【0034】
ブロック450に示されている相関付け段階5は、新たな相関入力イベントをタプルからなる組から生成し、タプルを構成する個々の入力イベントを、1つの相関入力イベントに置き換える。
【0035】
InputCorrelationManagerプロセス400は、InputEventManagerから履歴の入力イベントのデータを要求し、入力イベントの履歴から冗長のイベントを削除し、新たな相関入力イベントを生成する。相関イベントに寄与した全ての入力イベントは、入力イベントの履歴データベースから取り除かれる。
図5A乃至5Dは、相関プロセスを詳しく示している。
【0036】
図5Aは、段階2の入力イベントのペアリング(pairing)アルゴリズムの実施形態を示している。RunPairingRule方法420は、ブロック421において、入力イベントのペアの組み合わせ(デュプル)からなる組を生成し、次に、一連のルールを適用して、相関ペアとしての潜在性について、それらを評価する。ペア相関のためのルールは、次のものを含む。時間の相関付け(ブロック422)では、イベントが相互に時間的に近いかをチェックして確かめる。キーの共通部分(intersection)の相関付け(ブロック424)では、入力イベントが候補キーを共有するかをチェックして確かめる。チャネルの相関付け(ブロック426)では、イベントを発生した入力チャネルが互換性をもつことをチェックして保証する。ルールの実行結果を、ペアに対する総スコアの中に論理的に組み合わせる。スコアが閾値を越えている場合は、デュプルは、有効な相関ペアであり、ブロック428において、デュプルの出力リストに加えられる。
【0037】
図5Bは、段階3の入力イベントの組み合わせアルゴリズムの実施形態を示している。ブロック430では、ペアリングアルゴリズム420によって生成されたデュプルを、3つ以上のイベントの組み合わせの中に更に組み合わせて、一連の「タプル」を作成する。ブロック432では、各タプルを評価し、タプル内の入力イベントの組み合わせが、寄与している各デュプルを十分に反射していることを確実にする。例えば、3つのイベントAと、Bと、Cがあるとすれば、相関デュプルABと、BCと、ACが存在する場合に、タプルABCは有効である。ブロック436では、タプルの評価の結果を、有効なデュプルのリストに付加する。ブロック437では、元のデュプルを付加し、ブロック438では、可能性のある全ての相関イベントのリストにおいて、非相関イベントを1つにする。より多数の寄与イベントを有するタプルは、より強い相関関係を有し、従って、(一般に)より高いスコアを有する。
【0038】
図5Cは、段階3の入力イベントの削減アルゴリズム(ブロック440)の実施形態を示している。タプルと、デュプルと、単集合(singleton)とのイベントは、入力イベントの信頼度と相関の強度に基づいて割り当てられた数値のスコアを評価される。ブロック442を参照。入力イベントが2つ以上のタプル又はデュプルのメンバである場合は、最も高いスコアを有するタプル又はデュプルが、イベントを獲得し、より低いスコアを付けられたタプル又はデュプルを、候補からなる組から削除する(削減する)444。ブロック444では、残りのタプルと、デュプルと、単集合とのイベントからなる組が、共有する1つの入力イベントを含まず、任意の他の組み合わせからの重複しない入力イベントのメンバ構成を有するまで、削減し続ける。次に、残りのタプルと、デュプルと、単集合とのイベントを、降順のスコアで分類する446。
【0039】
図5Dは、段階4の相関入力イベントの生成の実施形態(ブロック450)を示している。ブロック452では、削減されたタプルと、デュプルと、単集合とのイベントからなる組の中の要素が、後の処理のために遅らせる制約を有する場合に、それらを放出(release)できるかどうかを確かめるために、各要素をテストする。ブロック452に通った(pass)ものは、ブロック454において、新たな相関入力イベントに変換される。タプルと、デュプルと、単集合とのイベントに寄与した元の入力チャネルの発生された入力イベントは、ブロック456において、処理済みとしてマークを付され、従って、それらは再び処理されない。相関イベントの結果として得られた組は、ユーザによるキーの作動に対する真の候補を表わす。
【0040】
ステージ4(
図2Aの500)では、相関イベントのストリームを分析して、望ましくないイベントを取り除き、イベント内の曖昧なキー候補を決める。
図2Eは、入力イベントをフィルタにかけるソフトウェアアルゴリズムの実施形態のフローチャートを示している。CPU110は、InputFilterManagerによって制御され、IFM
FilterInputEvents方法500によって呼び出される。InputManagerは、InputFilterManagerを呼び出して、望ましくない相関入力イベントを入力イベントのストリームから削除し、イベント内の候補キーを削減して、1つのキーにする。InputFilterManagerは、ホストコンピュータのオペレーティングシステムに転送するのに適したキー作動コードに処理するために、最終的な一連の入力イベントを、KeyStateManagerに渡す。
【0041】
実施形態では、フィルタのルールを相関入力イベントの組に連続的に適用するために、ルール実行エンジンを実施する。各フィルタは、入力イベントの組の特定の状況に作用し、スコアを変更し、InputManagerシステムの長期間の状態(long term state)を更新するルールとして定義される。フィルタは、入力イベントからなる組の全体にアクセスし、処理を検討することからイベントを取り除く、及び/又は、イベント内の候補キーからなる組を削減することができる。更に、フィルタは、長期間の傾向と振る舞い分析とを支援して、入力マネージャの長期間(マルチサイクル)の状態にアクセスして更新することができる。長期間の状態は、入力イベントの処理の他のステージにフィードバックする。
【0042】
InputCorrelationManagerによって計算された相関入力イベントからなる組は、IFM
FilterEvents(ブロック500)を通じて、InputFilterManagerに渡される。ブロック520では、ルールエンジンが、フィルタのルールを入力イベントの組の中の各要素に、ルールの登録順に適用する。ルールの結果は、ブロック530において、(フィルタにかけられた)入力イベントに適用される変更の組であり、ブロック540において、これは次の処理ステージに出力される。実施形態では、キーの入力についての特別なケースに対処する幾つかのルールを実施する。
【0043】
実施形態は、垂直タッチフィルタのルールを含む。垂直タッチフィルタは、垂直に隣接する候補キーで、イベントに対するキーの確率を調節する。ユーザがホームロー(home row)よりも上のキーをタイプするときに、指が伸びて、キーボードの「外に位置し」、しばしば、ホームローよりも上の目的のキーと、その直ぐ下のホームロー上のキーとの両者を作動させる。フィルタは、その状況の特徴を検出し、タイプされる可能性の最も高いものとして、垂直に隣接するものの中の最も上の候補キーのスコアを上昇させる(boost)。垂直に隣接するキー間におけるミスタイプが、より下のキーに対する強い信号に打ち勝たないように、上昇係数は適切にスケーリングされる。従って、上昇は、より上のキーの境界に部分的なミスタイプをしたときに、より上のキーに有利に働く(favor)のに十分小さいが、より下のキーの選択を妨げない。
【0044】
実施形態は、次のキーのフィルタ(next key filter)を含む。次のキーのフィルタは、曖昧な(等しいスコアを付けられた)候補キーを有するイベントについて、キーの確率を調節する。フィルタは、簡単な確率データベースを使用する。簡単な確率データベースは、現在の対象言語(target language)における任意の所定の文字に対して、その任意の所定の文字に続く可能性の最も高いキーを定める。現在の言語は、キーボードの対象公用語のキーのレイアウトによって特定される。次の文字の確率は、対象言語の単語又は文法構造と関係がない。それは、対象言語における文字のペアの確率分布である。
【0045】
1つの実施形態では、セットダウンフィルタ(set down filter)は、ユーザがキーボードのホームロー上の載せる位置(rest position)に手を置く結果として生じる入力イベントの特徴を検出する。「セットダウン」は、キーボードを使用していない期間の後で、又は、機敏な(active)タイピングにおける休止中に行われ得る。フィルタは、セットダウン中に指がホームローのキーと接触したときに生じる望ましくないキーの作動を削除する。
【0046】
セットダウンフィルタは、入力イベントのキューと入力マネージャの長期間の状態とを更新し、それらに依存する(rely on)、マルチサイクルフィルタ(multicycle filter)である。セットダウンフィルタは、2つの異なる段階で処理する。段階1は、検出段階(detection phase)であり、相関入力イベントの組を分析し、2つ以上の同時のホームローイベントを探す。2つ以上の同時のホームローイベントは、時間的に近い、ホームローに対する複数のタッチ作動を含む。セットダウンが検出されると、その後の処理サイクルと、キーの作動へのイベントの変換とに対して、長期間のセットダウン状態がアサートされる。セットダウン状態がアサートされると、セットダウンが完結するまで、全ての入力イベントが延期される(defer)。段階2は、完結段階(completion phase)であり、延期された及び新たなイベントを分析し、イベントがセットダウンに加わるのを適格とするか又は不適格とする。セットダウンの終了は、セットダウンに対する最大期間を超えるか、セットダウン内における個々のイベント間の最大期間(ギャップ閾値)を超えるか、又は、非ホームローの入力イベントを検出することのうちの何れかによって決定される。セットダウンの終了条件のうちの何れかが満たされると、セットダウン状態はフィルタによってクリアされる。任意の延期イベントは、セットダウンの一部として取り除かれるか、又は処理のために解除される。セットダウンの完結が、ホームローイベントがセットダウンに加わるのを不適格とする終了を検出することがあるので、セットダウンの検出は、イベントが取り除かれる結果に常になるわけではない。
【0047】
1つの実施形態では、タイピングスタイルフィルタ(typing style filter)は、InputManagerの長期間の状態と入力イベントとを分析し、現在のユーザのタイピングスタイルがどんなものであるかを決定する。次に、タイピングスタイルフィルタは、様々な制御パラメータと長期間の状態の値とを設定する。これらは他のフィルタにフィードバックする(他のフィルタによって使用される)。他のフィルタは、セットダウンと特別なケースとを含む。
【0048】
1つの実施形態では、マルチプルモディファイヤフィルタ(a multiple modifier filter)は、ミスタイプによる2つ以上のモディファイヤキーの偶然の作動を防ぐ。モディファイヤキーは、一般に、キーボードの周囲を占め、特にタッチタイピストに対して、適切に動作し難くする。マルチプルモディファイヤフィルタは、モディファイヤキーを用いたイベントに対するキーの確率を調節し、最もよく使用されるモディファイヤとして、シフトキー(shift key)に有利に働き、めったに使用されないキーとして、キャップスロックキー(caps lock key)に対するスコアを下げる。調節されたスコアは、シフトキーに手を伸ばしたときの不注意によるキャップスロックの作動の多くを無くす。
【0049】
KeyStateManagerによって制御され、KSM
CalculateKeyState方法600によって呼び出される、ステージ5(
図2Aの600)では、フィルタにかけられたイベントのシーケンスを、キーのアップダウン作動のストリームに変換する。次に、これはホストコンピュータに送られる。
【0050】
ここに記載されている実施形態の焦点は、キーボードの応用に関するが、このシステムを何等かのタイプのタッチスクリーンデバイスに応用するのにも成功し得ることが、当業者に分かるであろう。
【0051】
本発明の好ましい実施形態を例示して説明したが、本発明の意図及び範囲から逸脱することなく、多くの変更を行なうことができる。従って、本発明の範囲は、好ましい実施形態の開示によって制限されない。その代わりに、本発明は、請求項を参照することによって全体的に決定されるべきである。
【0052】
排他的な所有権又は特権に対する権利を主張する本発明の実施形態は、請求項によって定められる。
以下に、本出願時の特許請求の範囲に記載された発明を付記する。
[1] 固体の平坦なタッチセンシティブ表面に対するユーザの入力を検出し、ユーザの入力の位置を決定する方法であって、
前記方法は、前記タッチセンシティブ表面に含まれる複数のセンサと信号で通信するプロセッサデバイスによって行なわれ、
前記方法は、
複数のタッチセンサに基づいて、前記タッチセンシティブ表面へのユーザの複数のタッチを記録することと、
3つ以上の振動センサによって感知されたタップイベントに基づいて、前記タッチセンシティブ表面に接続されている1つ以上の振動センサから、タップイベントの信号を受信することと、
前記記録されたユーザの複数のタッチに基づいて、前記タップイベントの信号が受信された後で、選択をアサートすることと、
を含む、方法。
[2] アサートすることは、タッチ及び振動センサの複数の信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップセンサのデータのイベントに変換することを含む、前記[1]の方法。
[3] アサートすることは、定められた閾値を超えた、前記1つ以上の振動センサからの複数の信号の振幅に基づいて、タップセンサのデータのイベントの信号の発生を検出することを含む、前記[2]の方法。
[4] アサートすることは、複数の傾斜合計値を使用して、振動波形の最小値の位置に基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出することを含む、前記[2]の方法。
[5] アサートすることは、センサのデータの複数のイベントを一連の個別の入力イベントに変換することを含み、
前記一連の個別の入力イベントは、前記センサのデータに関連付けられているタイプによって分類され、
前記一連の個別の入力イベントは、複数の候補キーからなる組と、関連付けられている位置情報とを含む、前記[2]の方法。
[6] アサートすることは、複数の振動センサにおけるタップイベントの到達時間の差に基づいて、前記タッチセンシティブ表面に対する前記タップセンサのデータのイベントの物理的座標を三角法で測定することを含む、前記[5]の方法。
[7] アサートすることは、
マルチラテレーションの計算結果を既知の表面の座標にマップすることによって、物理的な物質とアセンブリとにおける差異を調節することと、
可能性のある複数の座標からなる組を選択することと、
を含み、
前記可能性のある複数の座標からなる組は、前記タップイベントの源の座標である0乃至1の確率を割り当てられる、前記[6]の方法。
[8] 三角法で測定することは、複数の振動センサにおけるタップイベントの振幅の差と、線形力応答の近似値とを使用し、物理的座標を三角法で測定することを含む、前記[5]の方法。
[9] アサートすることは、振幅の差の計算結果を既知の表面の座標にマップし、可能性ある複数の座標からなる組を選択することによって、物理的な物質及びアセンブリにおける差異を調整することを含み、
前記可能性ある複数の座標からなる組は、前記タップイベントの源の座標である0乃至1の確率を割り当てられる、前記[8]の方法。
[10] アサートすることは、複数の例示的な波形からなる組と比較することによってタップの波形を認識することに基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出すること、を含む、前記[5]の方法。
[11] 前記信号の波形を認識することは、前記波形の全体ではなく、前記波形の計算された特性を使用して行われる、前記[10]の方法。
[12] アサートすることは、複数のルールを使用して、相互に支援する複合入力イベントからなる組を生成することを含み、
前記相互に支援する複合入力イベントからなる組は、複数の元のイベントのデータの全てを含む、前記[5]の方法。
[13] 相関させることは、時間的に近い位置によって相関させることを含む、前記[12]の方法。
[14] 相関させることは、前記センサのデータの源に基づいて相関させることを含む、前記[12]の方法。
[15] 相関させることは、前記入力イベントが表す候補キーの複数の作動の共通性に基づいて相関させることを含む、前記[12]の方法。
[16] アサートすることは、前記複数の入力イベントからなる組からの複数の望ましくない入力イベントを、複数のフィルタによって取り除くことを含む、前記[12]の方法。
[17] アサートすることは、目的のキーより下にあるキーの不注意による作動を検出して、取り除くことを含む、前記[16]の方法。
[18] アサートすることは、タイプする直前にキーボードのホームローの位置に手を載せた結果としてのキーの複数の作動を検出して、取り除くことを含む、前記[16]の方法。
[19] アサートすることは、キャップスロックキーよりも、シフトキーの最もよく行われる使用に有利に働くように、複数のモディファイヤキーの偶然の又は部分的な複数の作動のうちの少なくとも1つを選択的に検出して、抑制することを含む、前記[16]の方法。
[20] アサートすることは、機敏なタイピング中に、複数の同時のモディファイヤキーの作動を選択的に検出して、抑制することを含む、前記[16]の方法。
[21] アサートすることは、履歴のタッチ作動のデータに基づいて、「タッチする」又は「躊躇する」タイピストとして、ユーザのタイピングスタイルを検出することと、
その情報を複数の他のフィルタリング機構にフィードバックすることと、
を含む、前記[16]の方法。
[22] アサートすることは、前記複数の入力イベントからなる組を、一連のキーアップ及びキーダウンの作動に変換することを含む、前記[16]の方法。