(57)【特許請求の範囲】
【請求項１】
タッチセンシティブ表面に対するユーザが意図したキー作動を決定する方法であって、
前記方法は、
複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することと、
前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも２つの関連する入力イベントを識別することと、
前記少なくとも２つの関連する入力イベントの相関の強度に基づいて１つの候補キー作動イベントを決定することと、
１つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記１つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定することと、
を含む、方法。
【請求項２】
前記複数の入力イベントを記録することは、
前記複数のタッチセンサと前記１つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換すること、
を含む、請求項１の方法。
【請求項３】
前記複数の入力イベントを相関させることは、
前記複数のタッチセンサから受信した信号間の時間的な近さに少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む、請求項１の方法。
【請求項４】
前記複数の入力イベントを相関させることは、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む、請求項１の方法。
【請求項５】
前記複数の入力イベントを相関させることは、
時間的な近さ、空間的な近さ、又は時間的な期間のうちの少なくとも１つを基準にしている相互の一致に少なくとも部分的に基づいて、前記複数の入力イベントを相関させること、
を含む請求項１の方法。
【請求項６】
前記１つの候補キー作動イベントをキー作動イベントとして意図していないユーザ接触と認定することは、
前記タッチセンシティブ表面上に見えるキーボードのホームローにユーザの手を載せた結果として生じた前記１つの候補キー作動イベントを決定すること、
を含む、請求項１の方法。
【請求項７】
前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを記録することは、
（ｉ）前記複数のタッチセンサから受信した信号と、（ｉｉ）前記１つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録すること、
を含む、請求項１の方法。
【請求項８】
前記複数の入力イベントを記録することは、
前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録することと、
前記１つ以上の振動センサから受信した信号に基づいて、１つ以上のタップイベントを記録することと、
を含む、請求項７の方法。
【請求項９】
前記複数の入力イベントを相関させて、前記少なくとも２つの関連する入力イベントを識別することは、
以下の基準、即ち、
時間的な近さ、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
前記１つ以上の振動センサからの信号が受信された場合における、前記１つ以上の振動センサの位置、
前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
前記１つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
前記複数のタッチセンサから受信した信号と、前記１つ以上の振動センサから受信した信号と、によって示される候補キー間の相互の一致、
のうちの少なくとも１つに基づいて、前記タッチイベントと前記タップイベントとを相関させること、
を含む、請求項８の方法。
【請求項１０】
前記複数の入力イベントを相関させて、前記少なくとも２つの関連する入力イベントを識別することは、
前記複数の入力イベントから成るそれぞれのグループを、前記１つの候補キー作動イベントに関連付けること、
を含み、
前記複数の入力イベントから成るそれぞれのグループは、１つ以上のタッチイベント及び／又は１つ以上のタップイベントを含み、
前記１つの候補キー作動イベントを認定することは、
前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定すること、
を含む、請求項８の方法。
【請求項１１】
前記複数の入力イベントを相関させて、前記少なくとも２つの関連する入力イベントを識別することは、
前記複数の入力イベントを相関させて、前記１つの候補キー作動イベントを含む、１つ以上の候補キー作動イベントから成る組を識別すること、
を含み、
前記１つ以上の候補キー作動イベントのうちの任意の１つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定することは、
前記組から、その候補キー作動イベントを削除すること、
を含む、請求項１の方法。
【請求項１２】
タッチ／タップセンシティブキーボードを有する装置であって、
前記装置は、
平坦な表面を有するハウジングと、
前記ハウジング内の、前記平坦な表面の下に配置されている複数のタッチセンサと、
前記ハウジング内に配置されている１つ以上の振動センサと、
前記複数のタッチセンサと前記１つ以上の振動センサとから信号を受信するために結合されているプロセッサと、
プログラムコードを記憶するメモリと、
を具備し、
前記プログラムコードは、前記プロセッサによって実行された場合に、前記プロセッサに、
複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、複数の入力イベントを前記メモリ内に記録させ、
前記複数の入力イベントを相関させて、時間が互いに近く且つ候補キーを共有する少なくとも２つの関連する入力イベントを識別させ、
前記少なくとも２つの関連する入力イベントの相関の強度に基づいて１つの候補キー作動イベントを決定させ、
１つ以上の振動センサから受信した信号に少なくとも部分的に基づいて、前記１つの候補キー作動イベントを、ユーザが意図したキー作動イベント又はキー作動イベントとして意図していないユーザ接触、の何れかと認定させる、装置。
【請求項１３】
前記メモリは、
前記プログラムコードを記憶するプログラムメモリと、
前記複数の入力イベントを記録するデータメモリと、
を具備し、
実行された場合に、前記プロセッサに、複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数のタッチセンサと前記１つ以上の振動センサとからの信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップデータに変換させるプログラムコード、
を含む、請求項１２の装置。
【請求項１４】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させる前記プログラムコードは、
実行された場合に、前記プロセッサに、（ｉ）前記複数のタッチセンサから受信した信号間の時間的な近さ、（ｉｉ）前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの相対的な位置、又は（ｉｉｉ）前記複数の入力イベントにそれぞれ対応する候補キー間の相互の一致、のうちの少なくとも1つに基づいて、前記複数の入力イベントを相関させるプログラムコード、
を含む、請求項１２の装置。
【請求項１５】
実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に少なくとも部分的に基づいて、前記複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、（ｉ）前記複数のタッチセンサから受信した信号と、（ｉｉ）前記１つ以上の振動センサから受信した信号と、に少なくとも部分的に基づいて、複数の入力イベントを記録させるプログラムコード、
を含む、請求項１２の装置。
【請求項１６】
実行された場合に、前記プロセッサに、前記複数の入力イベントを記録させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数のタッチセンサから受信した信号に基づいて、複数のタッチイベントを記録させ、前記１つ以上の振動センサから受信した信号に基づいて、１つ以上のタップイベントを記録させるプログラムコード、
を含む、請求項１５の装置。
【請求項１７】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも２つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、以下の基準、即ち、
時間的な近さ、
前記複数のタッチセンサからの信号が受信された場合における、前記複数のタッチセンサの位置、
前記１つ以上の振動センサからの信号が受信された場合における、前記１つ以上の振動センサの位置、
前記複数のタッチセンサから受信した信号によって示される候補キー間の相互の一致、
前記１つ以上の振動センサから受信した信号によって示される候補キー間の相互の一致、又は、
前記複数のタッチセンサから受信した信号と、前記１つ以上の振動センサから受信した信号とによって示される、候補キー間の相互の一致、
のうちの少なくとも１つに基づいて、前記タッチイベントと前記タップイベントとを相関させるプログラムコード、
を含む、請求項１６の装置。
【請求項１８】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくも２つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントから成るそれぞれのグループを、前記１つの候補キー作動イベントに関連付けさせるプログラムコード、
を含み、
前記複数の入力イベントから成るそれぞれのグループは、１つ以上のタッチイベント及び／又は１つ以上のタップイベントを含み、
実行された場合に、前記プロセッサに、前記１つの候補キー作動イベントを認定させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントから成るそれぞれのグループがタップイベントを欠いていると決定させるプログラムコード、
を含む、請求項１６の装置。
【請求項１９】
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記少なくとも２つの関連する入力イベントを識別させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記複数の入力イベントを相関させて、前記１つの候補キー作動イベントを含む、１つ以上の候補キー作動イベントから成る組を識別させるプログラムコード、
を含み、
実行された場合に、前記プロセッサに、前記１つ以上の候補キー作動イベントのうちの任意の１つの候補キー作動イベントを、キー作動イベントとして意図していないユーザ接触と認定させる前記プログラムコードは、
実行された場合に、前記プロセッサに、前記組から、その候補キー作動イベントを削除させるプログラムコード、
を含む、請求項１２の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、イベント（event）を始動させることなく、ユーザが手又は指を表面に載せることができる、滑らかな、固体のタッチ及び振動センシティブ表面（a smooth, solid touch- and vibration-sensitive surface）に関する。より具体的には、表面は、テキストとコマンドとを入力するコンピュータのキーボードとして使用され得る。
【背景技術】
【０００２】
人から機械へテキスト及びデータを入力する主要な方法としての現代のキーボードの起源は、１９世紀の初期のタイプライタに逆戻る。コンピュータが開発されると、タイプライタのキーボードを、テキスト及びデータを入力する主要な方法として使用されるように適応させることは、自然な進化であった。タイプライタにおけるキーと、その後の、コンピュータのキーボードの実施は、メカニカルなものから、電動式、最終的に電子式に進化し、一方で、キー自体のサイズと、レイアウトと、メカニカルな特徴は、ほとんど変化しないままである。
【０００３】
コンピュータと、コンピュータに付いているキーボードは、多数の産業にわたる環境で普及し、これらの環境の多くは、コンピュータ及びキーボードの設計において当初は考えられていなかった厳しい条件を有する。例えば、コンピュータは、レストランの厨房と、製造設備の生産フロアと、石油採掘装置とで、現在使用されている。これらは、極めて汚れた状態であるために、清掃せずに、あまり長い期間にわたって、従来のキーボードが動作可能なままでいられない環境である。
【０００４】
キーボードの清掃し易さの問題を克服するために、キーボードの表面自体が平らな又はほぼ平らな表面であり得る場合は、キーボードを拭いてキーボードを清潔にすることが、はるかにより容易になると直感的に考えられる。しかしながら、これは、キーボードの物理的なメカニカルキー又はメンブレンキー（physical mechanical or membrane keys）に代わるものを見付ける必要があることを意味する。
【０００５】
部分的にこれを受けて、新しいコンピュータのフォームファクタ（form factor）は、外付けのキーボードを完全に無くして、データ入力のためにソフトウェアベースの「仮想」キーボードを備えたタッチセンシティブフラットディスプレイスクリーン（touch-sensitive flat display screen）のみから構成されるように発展した。手をキーボードに載せる動作は、キーボードから望ましくないキーの作動をもたらすので、手をキーボードに載せるように訓練されたタイピストにとって、タッチスクリーンの仮想キーボードは、速い速度で使用するのが難しい。
【０００６】
従って、清掃し易く、ユーザがキーを触って感じることができ、ユーザが指をキーに載せることができ、標準的なキーボード上でキーを押下する力と同じ又はそれよりも小さい力を必要とし、人間のタッチに応答し、従来のメカニカルキーボードのときと同じ又はそれよりも速くユーザがタイプできるやり方で、上述のキーボード入力方法を改善する必要がある。
【発明の概要】
【０００７】
本発明は、タッチセンシティブ表面に取付けられた振動センサを使用して、表面に対する指接触イベント（finger contact events）の検出と位置特定との両者を行なうことを可能にする、システムと方法とに関する。特に、本発明は、意識的なタイピングイベントと、通常のタイピング動作からもたらされる偶発的な又は望ましくない接触とを区別する。このアプローチは、普通のキーボードに対して行うように、ユーザが指をキーに載せて、指でタイプすることを可能にする。
【０００８】
ユーザが表面に指を置くと、(１つのキー当たり１つ以上の)タッチセンサと、振動センサが、同時に作動する。タッチセンサと振動センサとの両者からの信号は、一連の入力イベントに変換される。次に、指が接触する位置と、対応するキーの作動とを決定するために、入力イベントを時間的に相関させる。対応する「タップ」(即ち、振動)のないタッチイベントは、無視される。次に、相関イベント（correlated events）をフィルタにかけ、望ましくないイベントを取り除き、曖昧な又は矛盾する結果を解決する。例えば、本発明は、意識的なキー押下と、ユーザがタイピングに備えて手をキーボード上にセットダウンする(set down)ときとの差異を検出することができる。
【０００９】
本発明は、従来のタッチセンシティブ入力デバイスに対してかなりの長所を有する。１つのこのような長所は、キーの作動を起こさせることなく、ユーザが指をキーに載せることができることである。別の長所は、ユーザが、キーボードを見る必要なく、タッチによってタイプできるということである。
【００１０】
本発明の好ましい代わりの例は、次の図面を参照して、以下で詳しく説明される。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に従って形成されたシステムの代表的なハードウェアコンポーネントを示すハードウェアのブロック図である。
【図２Ａ】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図１に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【図２Ｂ】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図１に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【図２Ｃ】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図１に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【図２Ｄ】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図１に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【図２Ｅ】表面に対する指の押下を検出して位置を特定し、対応するキーボードの入力キーを計算するために、図１に示されているシステムによって行なわれる例示的なプロセスのフローチャートである。
【図３】有効なキーの作動を検出し、タップ（振動）センサのデータからタッチ及びタップの入力イベントを発生させるために、本発明の方法を実施するソフトウェアアルゴリズムの実施形態を示している。
【図４Ａ】タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。
【図４Ｂ】タッチ及びタップの入力イベントを相関させるソフトウェアアルゴリズムの実施形態を示している。
【図５Ａ】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【図５Ｂ】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【図５Ｃ】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【図５Ｄ】相関入力イベントのフィルタリングを行なうソフトウェアアルゴリズムの実施形態を示している。
【発明を実施するための形態】
【００１２】
図１は、タッチ／タップセンシティブキーボードデバイス(touch/tap-sensitive keyboard device)１００の実施形態のハードウェアコンポーネントの単純化されたブロック図を示している。デバイス１００は、近接センサ（proximity sensor）１２０と、容量性タッチセンサ（capacitive touch sensor）１３０と、振動センサ（vibration sensor）１４０とを収めた平坦な表面を含む。センサコンポーネント１２０と、１３０と、１４０は、入力をＣＰＵ１１０(プロセッサ)１１０に与える。ＣＰＵは、キーボードの表面にユーザの手が近付いた、又はキーボードの表面がユーザの手によってタッチされたときに、センサコンポーネント１２０と、１３０と、１４０とから受信した生の信号の解釈に基づいて、接触イベントを通知する。
【００１３】
メモリ１７０は、ＣＰＵ１１０とデータ通信する。メモリ１７０は、プログラムメモリ１８０とデータメモリ１９０とを含む。プログラムメモリ１８０は、オペレーティングシステムソフトウェア１８１と、タップ／タッチ検出ソフトウェア１８２と、他のアプリケーションソフトウェア１８３とを含む。データメモリ１９０は、タッチ容量性センサの履歴配列（history array）１９１と、ユーザオプション／プリファランス（user options/preference）１９２と、他のデータ１９３とを含む。
【００１４】
ユーザの指が平らで平坦な表面に接触すると、容量性タッチセンサ１３０はアサート（assert）される。周期的に、ＣＰＵ１１０は、キーボードのオペレーティングシステムソフトウェア１８１を実行し、タッチセンサ１３０とタップセンサ１４０とから生のセンサのデータを収集し、生のセンサの日付をデータメモリ１９１に記憶する。
【００１５】
異なる実行スレッドにおいて、ＣＰＵ１１０は、連続的に、ここに記載されているタップ及びタッチの検出及び位置特定のソフトウェア（アルゴリズム）を実行し、キーボードによって生成されたセンサのデータを処理し、キーの「アップ」及び「ダウン」の一連の状態にする。アルゴリズムの各実行は、「サイクル」を構成する。「サイクル」は、アルゴリズムのための基本的なタイミングの単位（basic timing unit）である。有効なキーの作動が検出されると、ＣＰＵ１１０は、タッチ／タップ検出ソフトウェア１８２によって支援され、メモリ１９１に収められているセンサのデータのアルゴリズム的分析を行ない、平坦な表面のどのエリアがタッチ及びタップされたかを決定する。有効なタップ／タッチの位置がアルゴリズム１８２によって計算されると、それは、キーボードのオペレーティングシステムソフトウェア１８１に渡され、特定のキーボードのファンクションコードにマップされる。典型的なキーボードの機能は、標準的なキーボードの英数字キーと、ファンクション及びナビゲーションキーとを含む。次に、マップされたファンクションコードは、標準的な周辺装置／ホストインターフェイス、例えば、ＵＳＢ又はＰＳ／２を通じて、接続されたホストコンピュータ端末１９４に送られる。
【００１６】
図２Ａは、タッチ及びタップセンシティブ表面に対するユーザのキーの作動の位置を特定する例示的な方法を実施するソフトウェアの実施形態のフローチャートを示している。方法は、５つの別個のステージに分けられる。各ステージは、「マネージャ」と呼ばれる異なるシステムソフトウェアコンポーネントによって指示される。
【００１７】
ステージ１  センサのデータの収集２００  
ステージ２  センサのデータの分析及び入力イベントの発生３００  
ステージ３  入力イベントの相関付け（correlation）４００  
ステージ４  入力イベントのフィルタリング５００  
ステージ５  キーの状態の変化の分析６００  
ステージ１(図２Ａの２００)では、タッチ及びタップ(振動)センサ１４０からデータを収集し、将来処理するためにメモリに入れる。図２Ｂは、タッチ及びタップセンサから信号値を収集及び要約する（summarize）ソフトウェアアルゴリズムの実施形態のフローチャートを示している。ＣＰＵ１１０は、ＳｅｎｓｏｒＣｈａｎｎｅｌＭａｎａｇｅｒによって制御され、ＳＣＭ ＧｅｔＳｅｎｓｏｒＤａｔａ方法２００を通じて呼び出される（invoke）。ＳｅｎｓｏｒＣｈａｎｎｅｌＭａｎａｇｅｒ２００は、１つ以上のＳｅｎｓｏｒＣｈａｎｎｅｌコンポーネントを呼び出す。１つ以上のＳｅｎｓｏｒＣｈａｎｎｅｌコンポーネントは、センサデータを収集し、要約し、記憶する。ＳｅｎｓｏｒＣｈａｎｎｅｌは、特定の収集及び要約アルゴリズムをセンサの信号に適用し、タッチ又はタップセンサのデータの記録を生成する。次のステージで将来処理するために、センサのデータの記録は、関連付けられているタイムスタンプと共に記憶される。
【００１８】
ＳＣ Ｔａｐ ＣａｐｔｕｒｅＤａｔａ方法２００によって呼び出されたタップＳｅｎｓｏｒＣｈａｎｎｅｌ(Tap SensorChannel)は、表面に対して指が起こしたタップの時間の発生を識別する。図３は、タップイベントを検出するソフトウェアアルゴリズムの実施形態のフローチャートを示している。タップセンサチャネル方法（Tap sensor channel method）２２０は、現在のサイクルのために、振動センサのデータ記録に記憶されているタップのアナログデータをサンプリングする２２１。収集されたデータからなる組は、現在のサイクルの開始時間に定められた開始時間と共に、各振動センサに対する波形として表わされる。収集された信号値と平均信号との差が閾値(平均からの差の偏差（difference deviation）)を超えている場合に２２２、信号波形における対応する点は、可能性のあるイベント（possible event）を表わす。アルゴリズムは、同時に実行する２つの状態機械を起動する。第１の状態機械は、最初のタップの反響（reverberation）によって複数のタップイベントが発生するのを抑制する（フィルタをかける）。ブロック２２３を参照。第２の状態機械は、閾値を越えた波形における第１の最小値(最低点)を検出することによって、タップが発生した正確な時間を計算することを試みる。最小値の時間の位置は、各サンプル点（sample point）における波形の「第２の傾斜合計（second slope sum）」を計算することによって検出される。ＣＰＵは、各サンプル点における波形線の瞬間的な傾斜（instantaneous slope）を計算する２２４。サンプル点における傾斜が負（下向き）から正（上向き）に変わる場合に、サンプルは最小値である可能性のあるもの（possible minima）を表し、サンプル時間はタップイベントの時間である。次に、ＣＰＵは、その最小値を真の最小値として適格とする（qualify）かどうかを検出する。それまでの５つのサンプル点の傾斜を現在のサンプル点の傾斜に加えることによって、ＣＰＵは、サンプル点に対する「第１の傾斜合計（first slope sum）」を計算する。次に、システムは、それまでの５つのサンプル点の第１の傾斜合計を現在のサンプル点の第１の傾斜合計に加えることによって、「第２の傾斜合計」を計算する。ブロック２２７を参照。その結果は、サンプル点における傾斜の差を拡大したものであり、これは閾値と容易に比較でき、最小値の特徴を示す主要な傾斜の逆転（下降から上昇）が識別される。決定ブロック２２８を参照。閾値を超えると、タップイベントが発生され、チャネルによって、タップセンサのデータオブジェクトとして記憶される。ブロック２２９を参照。
【００１９】
ステージ２(図２Ａの３００)では、履歴のセンサのデータを分析し、「入力イベント」オブジェクトのストリームを生成する。「入力イベント」オブジェクトのストリームは、表面に対する可能性のあるキーの作動を表わす。図２Ｃは、センサのデータを分析して入力イベントを生成するソフトウェアアルゴリズムの実施形態のフローチャートを示している。ＣＰＵ１１０は、ＩｎｐｕｔＣｈａｎｎｅｌＭａｎａｇｅｒによって制御され、ＩＣＭ ＧｅｒＩｎｐｕｔＥｖｅｎｔｓ方法３００によって呼び出される。ＩｎｐｕｔＣｈａｎｎｅｌＭａｎａｇｅｒ３００は、１つ以上のＩｎｐｕｔＣｈａｎｎｅｌコンポーネントを呼び出す。１つ以上のＩｎｐｕｔＣｈａｎｎｅｌコンポーネントは、ステージ１で収集され、要約され、記憶された、センサのデータを分析する。ＩｎｐｕｔＣｈａｎｎｅｌは、特定の分析アルゴリズムをセンサのデータに適用し、状態を検出し、入力イベントを生成する。
【００２０】
ＩＣ Ｔｏｕｃｈ ＧｅｔＥｖｅｎｔｓ方法３１０によって呼び出されたタッチＩｎｐｕｔＣｈａｎｎｅｌプロセス（Touch InputChannel process）は、ユーザのタッチの入力イベント（user touch input event）を探す（look for）。ＣＰＵ１１０は、タッチＩｎｐｕｔＣｈａｎｎｅｌプロセスを実行し、記憶されているタッチ容量性センサのデータを分析し、閾値を超えた各信号に対して、タッチの入力イベントを生成する。
【００２１】
ＩＣ ＴａｐＭｕｌｔｉｌａｔｅｒａｔｉｏｎ ＧｅｔＥｖｅｎｔｓ方法３３０によって呼び出されたタップマルチラテレーションＩｎｐｕｔＣｈａｎｎｅｌ（tap multilateration InputChannel）は、各振動センサにおけるタップイベントの相対到達時間差（time difference of arrival ,TDOA)を使用し、キーボードに対するタップ位置の座標を計算し、入力イベントを生成する。定められた既知の位置に信号の検出器が３つ以上あるとすれば、ＣＰＵ１１０は、マルチラテレーション（multilateration）の技術を使用して、信号の源の位置を三角法で測定する（triangulate）。マルチラテレーションを使用するＣＰＵ１１０は、タップイベントの記録に記憶されている各加速度計への相対到達時間をとって、表面における振動波の、実験により測定された伝搬速度に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。計算されたタップ位置の近くにあるキーを、発生させた入力イベントにおける候補キーとして選ぶ。
【００２２】
図４Ａは、タップマルチラテレーションのためのソフトウェアアルゴリズムの実施形態のフローチャートを示している。ブロック３２２において、センサの各々におけるタップイベントの到達時間の時間デルタ又は差を計算する。表面に対するタップによって発生する音波は、ほぼ一定の速度で表面の物質を通って各センサへ進む。実際は、波の伝搬速度は、一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして相対到達時間を使用してもよい。位置ルックアップテーブルは、三つ組（triple）の相対到達時間をキーの座標にマップする。ブロック３２４を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する（match）可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、相対到達時間に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない速度によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配（increasing probability gradient）を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス３２０では、マップされた領域によって特定される候補キーで、入力イベントを生成する。ブロック３２６を参照。
【００２３】
１つの実施形態では、タップマルチラテレーションアルゴリズムは、外部(キーボードの外)の振動を検出し、タップイベントとして考慮することから外す方法を含む。外部の振動源が振動センサを作動させるのと同時に、ユーザが、キーボードの表面上で、タップしているのではなく、指を動かしているときに、よく起こる問題（common problem）が生じる。外部のタップ（external tap）がフィルタにかけられない限り、その振動がタッチセンサにおける変化と相関しているとして、これは誤検出（false positive）をもたらす。従って、外部の振動を検出し、それらをフィルタにかけて除去できることが、重要である。タップマルチラテレーションアルゴリズムは、表面の物理的構造の特性を使用して、外部のタップを検出する。外部のタップは、中央の加速度計よりも前に、左と右の両者の加速度計を始動させる。その理由は、外部の振動は、中央の検出器に伝搬する前に、キーボードの左と右の最下部（feet）を通じて、左と右の加速度計に伝わり、中央の検出器が最後になるからである。両者のアプローチの条件が満たされる場合に、信号は、外部の振動として生じている確率が高く、タップイベントから外すことができる。
【００２４】
ＩＣ ＴａｐＡｍｐｌｉｔｕｄｅ ＧｅｔＥｖｅｎｔｓ方法３３０によって呼び出されるタップ振幅ＩｎｐｕｔＣｈａｎｎｅｌプロセス（Tap Amplitude InputChannel Process）は、タップの信号振幅における相対的な差を使用し、キーボードに対するタップの位置の座標を計算し、入力イベントの位置を生成する。振幅変動アルゴリズムは、加速度計の各々によって記録された相対振幅をとって、表面の物質における振動波の、実験により測定された線形力応答の近似値（linear false response approximation）に基づいて、キーボード上のタップ位置の座標を三角法で測定して計算する。計算された振幅のタップ位置の近くにあるキーは、候補出力キーとして選ばれる。
【００２５】
１つの実施形態では、タップ振幅差プロセス３３０は、外部の振動を検出し、タップイベントとして不適格とするアプローチを含む。キーボードの表面上の幾つかの既知の座標を除いて、キーボードの表面に対してタップが行われると、各加速度計によって検出された振幅には、通常は大きな差があり、タップ振幅差プロセス３３０の基準の特性である。しかしながら、外部のタップが生じたときに、各センサによって検出された振幅は、多くの場合に、そのタップを潜在的な（potential）外部のタップとして識別するのに使用できる振幅に非常に近く、それを更なる検討から不適格とする。
【００２６】
図４Ｂは、タップの振幅差のためのソフトウェアアルゴリズムの実施形態のフローチャート(３３０)を示している。センサの各々におけるタップイベントの振幅差が計算される。ブロック３３２を参照。表面に対するタップから発生する音波は、信号振幅のほぼ線形の減衰(力の低下)を伴って、表面の物質を通って各センサに伝搬する。振幅差アルゴリズム３３０は、タップイベントの記録に記憶されている相対振幅を使用し、信号波が表面を渡るときに伝導物質における吸収によって生じる信号振幅における想定される線形の一定の減衰の線形力応答の近似値に基づいて、タップが行われたキーボード上の最も可能性の高い位置を計算する。信号源が信号検出器から更に遠くなるほど、信号はより小さくなる。実際には、波の減衰は一定ではなく、表面上の位置によって、及び実施形態の個々の例によって異なる。ばらつきを調整するために、プロセスでは、位置ルックアップテーブルへのインデックスとして振幅値を使用してもよい。位置ルックアップテーブルは、三つ組の振幅差をキーの座標にマップする。ブロック３３４を参照。テーブルの値は、表面に対する反復的なテストと測定とによって、実験により導き出される。正確に整合する可能性は低く、且つその正確な整合は信頼できないので、プロセスでは、振幅差に最も密接に整合する記録からなる組を選択する。記録からなる組は、一定でない減衰によって生成される統計誤差範囲に相当する、候補キーからなる組を含む領域の位置を定める。領域内の候補キーは、領域の縁端部から中央へ、増加する確率勾配を有する。最も可能性の高いキーは、領域の真ん中にある。プロセス３３０は、ブロック３３６において、マップされた領域によって特定される候補キーで、入力イベントを生成する。
【００２７】
ＩＣ Ｐｒｅｓｓ ＧｅｔＥｖｅｎｔｓ方法３４０によって呼び出される押下ＩｎｐｕｔＣｈａｎｎｅｌプロセス（Press InputChannel Process）は、載せている指がキーボードの表面上に強く押下されているときに生じる入力イベントを検出する。これは、載せている指のタッチ信号強度を認識して記憶に留めて、載せている指と押下した指との差を測定する。信号強度の差が閾値を超えると、入力イベントが発生される。
【００２８】
ＩＣ ＴａｐＷａｖｅｆｏｒｍ ＧｅｔＥｖｅｎｔｓ方法３５０によって呼び出されるタップ波形ＩｎｐｕｔＣｈａｎｎｅｌプロセス（Tap waveform InputChannel Process）は、タップ信号の波形の形状を比較し、既知の形状を認識し、キーボード上のタップ位置の座標を計算し、入力イベントを生成する。複数の使用環境における表面上の位置毎に、典型的な振動波形が記録及び記憶される。１つの実施形態では、記録された波形の各々を分析し、完全な波形ではなく、波形の幾つかの固有の特性(「フィンガープリント（fingerprint）」)を記憶する。ユーザが起こすタップの発生の各々の特性を、データベース中の各キーに対する記憶されている特性と比較し、最も良く整合するものを見付ける。各タップ位置を一意に識別するのに寄与できる波形の特性は、波形の最小ピークと、波形の最大ピークと、波形の減衰率と、波形の標準偏差と、波形の高速フーリエ変換と、波形の平均周波数と、波形の平均絶対振幅と、他のものとを含むが、これらに制限されるわけではない。
【００２９】
ステージ３(図２Ａの４００)では、入力イベントと、時間的及び空間的に関係するイベントとを相関させる。時間的及び空間的に関係付けられるイベントは、作動の位置と、内容と、期間とに対する相互の一致に基づいて、キーの作動を定める。図２Ｄは、入力イベントを相関させるソフトウェアアルゴリズムの実施形態のフローチャートを示している。システムは、ＩｎｐｕｔＣｏｒｒｅｌａｔｉｏｎＭａｎａｇｅｒによって制御され、ＩＣＯＲ ＣｏｒｒｅｌａｔｉｏｎＩｎｐｕｔＥｖｅｎｔｓ方法４００によって呼び出される。相関付けは、タッチと、押下と、タップ入力チャネルとによって生成される、関係付けられた入力イベントを、１つの相関入力イベントの中に合体させる（coalesce）。相関付けは、６つの個別の段階で進む。
【００３０】
ブロック４１０に示されている相関付け段階１は、入力イベントを分析して、履歴において幾つのイベントが利用可能であり、相互からの相対時間差がどれだけであるかを決定する。
【００３１】
ブロック４２０に示されている相関付け段階２は、可能性のある組み合わせであるイベントのペア(デュプル（duple）)を生成する。
【００３２】
ブロック４３０に示されている相関付け段階３は、計算されたデュプルからなる組から、タプル（tuple）(３つ以上のイベント)を生成する。
【００３３】
ブロック４４０に示されている相関付け段階４は、候補のタプルとデュプルとからなる組を減らして、十分に反射するように（reflexively）サポートしていない組み合わせのうちの何れかを削除する。
【００３４】
ブロック４５０に示されている相関付け段階５は、新たな相関入力イベントをタプルからなる組から生成し、タプルを構成する個々の入力イベントを、１つの相関入力イベントに置き換える。
【００３５】
ＩｎｐｕｔＣｏｒｒｅｌａｔｉｏｎＭａｎａｇｅｒプロセス４００は、ＩｎｐｕｔＥｖｅｎｔＭａｎａｇｅｒから履歴の入力イベントのデータを要求し、入力イベントの履歴から冗長のイベントを削除し、新たな相関入力イベントを生成する。相関イベントに寄与した全ての入力イベントは、入力イベントの履歴データベースから取り除かれる。図５Ａ乃至５Ｄは、相関プロセスを詳しく示している。
【００３６】
図５Ａは、段階２の入力イベントのペアリング（pairing）アルゴリズムの実施形態を示している。ＲｕｎＰａｉｒｉｎｇＲｕｌｅ方法４２０は、ブロック４２１において、入力イベントのペアの組み合わせ(デュプル)からなる組を生成し、次に、一連のルールを適用して、相関ペアとしての潜在性について、それらを評価する。ペア相関のためのルールは、次のものを含む。時間の相関付け(ブロック４２２)では、イベントが相互に時間的に近いかをチェックして確かめる。キーの共通部分(intersection)の相関付け(ブロック４２４)では、入力イベントが候補キーを共有するかをチェックして確かめる。チャネルの相関付け(ブロック４２６)では、イベントを発生した入力チャネルが互換性をもつことをチェックして保証する。ルールの実行結果を、ペアに対する総スコアの中に論理的に組み合わせる。スコアが閾値を越えている場合は、デュプルは、有効な相関ペアであり、ブロック４２８において、デュプルの出力リストに加えられる。
【００３７】
図５Ｂは、段階３の入力イベントの組み合わせアルゴリズムの実施形態を示している。ブロック４３０では、ペアリングアルゴリズム４２０によって生成されたデュプルを、３つ以上のイベントの組み合わせの中に更に組み合わせて、一連の「タプル」を作成する。ブロック４３２では、各タプルを評価し、タプル内の入力イベントの組み合わせが、寄与している各デュプルを十分に反射していることを確実にする。例えば、３つのイベントＡと、Ｂと、Ｃがあるとすれば、相関デュプルＡＢと、ＢＣと、ＡＣが存在する場合に、タプルＡＢＣは有効である。ブロック４３６では、タプルの評価の結果を、有効なデュプルのリストに付加する。ブロック４３７では、元のデュプルを付加し、ブロック４３８では、可能性のある全ての相関イベントのリストにおいて、非相関イベントを１つにする。より多数の寄与イベントを有するタプルは、より強い相関関係を有し、従って、(一般に)より高いスコアを有する。
【００３８】
図５Ｃは、段階３の入力イベントの削減アルゴリズム(ブロック４４０)の実施形態を示している。タプルと、デュプルと、単集合（singleton）とのイベントは、入力イベントの信頼度と相関の強度に基づいて割り当てられた数値のスコアを評価される。ブロック４４２を参照。入力イベントが２つ以上のタプル又はデュプルのメンバである場合は、最も高いスコアを有するタプル又はデュプルが、イベントを獲得し、より低いスコアを付けられたタプル又はデュプルを、候補からなる組から削除する（削減する）４４４。ブロック４４４では、残りのタプルと、デュプルと、単集合とのイベントからなる組が、共有する１つの入力イベントを含まず、任意の他の組み合わせからの重複しない入力イベントのメンバ構成を有するまで、削減し続ける。次に、残りのタプルと、デュプルと、単集合とのイベントを、降順のスコアで分類する４４６。
【００３９】
図５Ｄは、段階４の相関入力イベントの生成の実施形態(ブロック４５０)を示している。ブロック４５２では、削減されたタプルと、デュプルと、単集合とのイベントからなる組の中の要素が、後の処理のために遅らせる制約を有する場合に、それらを放出（release）できるかどうかを確かめるために、各要素をテストする。ブロック４５２に通った（pass）ものは、ブロック４５４において、新たな相関入力イベントに変換される。タプルと、デュプルと、単集合とのイベントに寄与した元の入力チャネルの発生された入力イベントは、ブロック４５６において、処理済みとしてマークを付され、従って、それらは再び処理されない。相関イベントの結果として得られた組は、ユーザによるキーの作動に対する真の候補を表わす。
【００４０】
ステージ４(図２Ａの５００)では、相関イベントのストリームを分析して、望ましくないイベントを取り除き、イベント内の曖昧なキー候補を決める。図２Ｅは、入力イベントをフィルタにかけるソフトウェアアルゴリズムの実施形態のフローチャートを示している。ＣＰＵ１１０は、ＩｎｐｕｔＦｉｌｔｅｒＭａｎａｇｅｒによって制御され、ＩＦＭ ＦｉｌｔｅｒＩｎｐｕｔＥｖｅｎｔｓ方法５００によって呼び出される。ＩｎｐｕｔＭａｎａｇｅｒは、ＩｎｐｕｔＦｉｌｔｅｒＭａｎａｇｅｒを呼び出して、望ましくない相関入力イベントを入力イベントのストリームから削除し、イベント内の候補キーを削減して、１つのキーにする。ＩｎｐｕｔＦｉｌｔｅｒＭａｎａｇｅｒは、ホストコンピュータのオペレーティングシステムに転送するのに適したキー作動コードに処理するために、最終的な一連の入力イベントを、ＫｅｙＳｔａｔｅＭａｎａｇｅｒに渡す。
【００４１】
実施形態では、フィルタのルールを相関入力イベントの組に連続的に適用するために、ルール実行エンジンを実施する。各フィルタは、入力イベントの組の特定の状況に作用し、スコアを変更し、ＩｎｐｕｔＭａｎａｇｅｒシステムの長期間の状態（long term state）を更新するルールとして定義される。フィルタは、入力イベントからなる組の全体にアクセスし、処理を検討することからイベントを取り除く、及び／又は、イベント内の候補キーからなる組を削減することができる。更に、フィルタは、長期間の傾向と振る舞い分析とを支援して、入力マネージャの長期間(マルチサイクル)の状態にアクセスして更新することができる。長期間の状態は、入力イベントの処理の他のステージにフィードバックする。
【００４２】
ＩｎｐｕｔＣｏｒｒｅｌａｔｉｏｎＭａｎａｇｅｒによって計算された相関入力イベントからなる組は、ＩＦＭ ＦｉｌｔｅｒＥｖｅｎｔｓ（ブロック５００）を通じて、ＩｎｐｕｔＦｉｌｔｅｒＭａｎａｇｅｒに渡される。ブロック５２０では、ルールエンジンが、フィルタのルールを入力イベントの組の中の各要素に、ルールの登録順に適用する。ルールの結果は、ブロック５３０において、（フィルタにかけられた）入力イベントに適用される変更の組であり、ブロック５４０において、これは次の処理ステージに出力される。実施形態では、キーの入力についての特別なケースに対処する幾つかのルールを実施する。
【００４３】
実施形態は、垂直タッチフィルタのルールを含む。垂直タッチフィルタは、垂直に隣接する候補キーで、イベントに対するキーの確率を調節する。ユーザがホームロー（home row）よりも上のキーをタイプするときに、指が伸びて、キーボードの「外に位置し」、しばしば、ホームローよりも上の目的のキーと、その直ぐ下のホームロー上のキーとの両者を作動させる。フィルタは、その状況の特徴を検出し、タイプされる可能性の最も高いものとして、垂直に隣接するものの中の最も上の候補キーのスコアを上昇させる（boost）。垂直に隣接するキー間におけるミスタイプが、より下のキーに対する強い信号に打ち勝たないように、上昇係数は適切にスケーリングされる。従って、上昇は、より上のキーの境界に部分的なミスタイプをしたときに、より上のキーに有利に働く（favor）のに十分小さいが、より下のキーの選択を妨げない。
【００４４】
実施形態は、次のキーのフィルタ（next key filter）を含む。次のキーのフィルタは、曖昧な(等しいスコアを付けられた)候補キーを有するイベントについて、キーの確率を調節する。フィルタは、簡単な確率データベースを使用する。簡単な確率データベースは、現在の対象言語（target language）における任意の所定の文字に対して、その任意の所定の文字に続く可能性の最も高いキーを定める。現在の言語は、キーボードの対象公用語のキーのレイアウトによって特定される。次の文字の確率は、対象言語の単語又は文法構造と関係がない。それは、対象言語における文字のペアの確率分布である。
【００４５】
１つの実施形態では、セットダウンフィルタ(set down filter)は、ユーザがキーボードのホームロー上の載せる位置（rest position）に手を置く結果として生じる入力イベントの特徴を検出する。「セットダウン」は、キーボードを使用していない期間の後で、又は、機敏な（active）タイピングにおける休止中に行われ得る。フィルタは、セットダウン中に指がホームローのキーと接触したときに生じる望ましくないキーの作動を削除する。
【００４６】
セットダウンフィルタは、入力イベントのキューと入力マネージャの長期間の状態とを更新し、それらに依存する(rely on)、マルチサイクルフィルタ（multicycle filter）である。セットダウンフィルタは、２つの異なる段階で処理する。段階１は、検出段階(detection phase)であり、相関入力イベントの組を分析し、２つ以上の同時のホームローイベントを探す。２つ以上の同時のホームローイベントは、時間的に近い、ホームローに対する複数のタッチ作動を含む。セットダウンが検出されると、その後の処理サイクルと、キーの作動へのイベントの変換とに対して、長期間のセットダウン状態がアサートされる。セットダウン状態がアサートされると、セットダウンが完結するまで、全ての入力イベントが延期される（defer）。段階２は、完結段階（completion phase）であり、延期された及び新たなイベントを分析し、イベントがセットダウンに加わるのを適格とするか又は不適格とする。セットダウンの終了は、セットダウンに対する最大期間を超えるか、セットダウン内における個々のイベント間の最大期間（ギャップ閾値）を超えるか、又は、非ホームローの入力イベントを検出することのうちの何れかによって決定される。セットダウンの終了条件のうちの何れかが満たされると、セットダウン状態はフィルタによってクリアされる。任意の延期イベントは、セットダウンの一部として取り除かれるか、又は処理のために解除される。セットダウンの完結が、ホームローイベントがセットダウンに加わるのを不適格とする終了を検出することがあるので、セットダウンの検出は、イベントが取り除かれる結果に常になるわけではない。
【００４７】
１つの実施形態では、タイピングスタイルフィルタ（typing style filter）は、ＩｎｐｕｔＭａｎａｇｅｒの長期間の状態と入力イベントとを分析し、現在のユーザのタイピングスタイルがどんなものであるかを決定する。次に、タイピングスタイルフィルタは、様々な制御パラメータと長期間の状態の値とを設定する。これらは他のフィルタにフィードバックする（他のフィルタによって使用される）。他のフィルタは、セットダウンと特別なケースとを含む。
【００４８】
１つの実施形態では、マルチプルモディファイヤフィルタ（a multiple modifier filter）は、ミスタイプによる２つ以上のモディファイヤキーの偶然の作動を防ぐ。モディファイヤキーは、一般に、キーボードの周囲を占め、特にタッチタイピストに対して、適切に動作し難くする。マルチプルモディファイヤフィルタは、モディファイヤキーを用いたイベントに対するキーの確率を調節し、最もよく使用されるモディファイヤとして、シフトキー(shift key)に有利に働き、めったに使用されないキーとして、キャップスロックキー（caps lock key）に対するスコアを下げる。調節されたスコアは、シフトキーに手を伸ばしたときの不注意によるキャップスロックの作動の多くを無くす。
【００４９】
ＫｅｙＳｔａｔｅＭａｎａｇｅｒによって制御され、ＫＳＭ ＣａｌｃｕｌａｔｅＫｅｙＳｔａｔｅ方法６００によって呼び出される、ステージ５(図２Ａの６００)では、フィルタにかけられたイベントのシーケンスを、キーのアップダウン作動のストリームに変換する。次に、これはホストコンピュータに送られる。
【００５０】
ここに記載されている実施形態の焦点は、キーボードの応用に関するが、このシステムを何等かのタイプのタッチスクリーンデバイスに応用するのにも成功し得ることが、当業者に分かるであろう。
【００５１】
本発明の好ましい実施形態を例示して説明したが、本発明の意図及び範囲から逸脱することなく、多くの変更を行なうことができる。従って、本発明の範囲は、好ましい実施形態の開示によって制限されない。その代わりに、本発明は、請求項を参照することによって全体的に決定されるべきである。
【００５２】
排他的な所有権又は特権に対する権利を主張する本発明の実施形態は、請求項によって定められる。
以下に、本出願時の特許請求の範囲に記載された発明を付記する。
[１]  固体の平坦なタッチセンシティブ表面に対するユーザの入力を検出し、ユーザの入力の位置を決定する方法であって、
前記方法は、前記タッチセンシティブ表面に含まれる複数のセンサと信号で通信するプロセッサデバイスによって行なわれ、
前記方法は、
複数のタッチセンサに基づいて、前記タッチセンシティブ表面へのユーザの複数のタッチを記録することと、
３つ以上の振動センサによって感知されたタップイベントに基づいて、前記タッチセンシティブ表面に接続されている１つ以上の振動センサから、タップイベントの信号を受信することと、
前記記録されたユーザの複数のタッチに基づいて、前記タップイベントの信号が受信された後で、選択をアサートすることと、
を含む、方法。
[２]  アサートすることは、タッチ及び振動センサの複数の信号を、定められた時間基準点に結び付けられた一連の個別のタッチ及びタップセンサのデータのイベントに変換することを含む、前記[１]の方法。
[３]  アサートすることは、定められた閾値を超えた、前記１つ以上の振動センサからの複数の信号の振幅に基づいて、タップセンサのデータのイベントの信号の発生を検出することを含む、前記[２]の方法。
[４]  アサートすることは、複数の傾斜合計値を使用して、振動波形の最小値の位置に基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出することを含む、前記[２]の方法。
[５]  アサートすることは、センサのデータの複数のイベントを一連の個別の入力イベントに変換することを含み、
前記一連の個別の入力イベントは、前記センサのデータに関連付けられているタイプによって分類され、
前記一連の個別の入力イベントは、複数の候補キーからなる組と、関連付けられている位置情報とを含む、前記[２]の方法。
[６]  アサートすることは、複数の振動センサにおけるタップイベントの到達時間の差に基づいて、前記タッチセンシティブ表面に対する前記タップセンサのデータのイベントの物理的座標を三角法で測定することを含む、前記[５]の方法。
[７]  アサートすることは、
マルチラテレーションの計算結果を既知の表面の座標にマップすることによって、物理的な物質とアセンブリとにおける差異を調節することと、
可能性のある複数の座標からなる組を選択することと、
を含み、
前記可能性のある複数の座標からなる組は、前記タップイベントの源の座標である０乃至１の確率を割り当てられる、前記[６]の方法。
[８]  三角法で測定することは、複数の振動センサにおけるタップイベントの振幅の差と、線形力応答の近似値とを使用し、物理的座標を三角法で測定することを含む、前記[５]の方法。
[９]  アサートすることは、振幅の差の計算結果を既知の表面の座標にマップし、可能性ある複数の座標からなる組を選択することによって、物理的な物質及びアセンブリにおける差異を調整することを含み、
前記可能性ある複数の座標からなる組は、前記タップイベントの源の座標である０乃至１の確率を割り当てられる、前記[８]の方法。
[１０]  アサートすることは、複数の例示的な波形からなる組と比較することによってタップの波形を認識することに基づいて、前記タップセンサのデータのイベントの信号の発生時間を検出すること、を含む、前記[５]の方法。
[１１]  前記信号の波形を認識することは、前記波形の全体ではなく、前記波形の計算された特性を使用して行われる、前記[１０]の方法。
[１２]  アサートすることは、複数のルールを使用して、相互に支援する複合入力イベントからなる組を生成することを含み、
前記相互に支援する複合入力イベントからなる組は、複数の元のイベントのデータの全てを含む、前記[５]の方法。
[１３]  相関させることは、時間的に近い位置によって相関させることを含む、前記[１２]の方法。
[１４]  相関させることは、前記センサのデータの源に基づいて相関させることを含む、前記[１２]の方法。
[１５]  相関させることは、前記入力イベントが表す候補キーの複数の作動の共通性に基づいて相関させることを含む、前記[１２]の方法。
[１６]  アサートすることは、前記複数の入力イベントからなる組からの複数の望ましくない入力イベントを、複数のフィルタによって取り除くことを含む、前記[１２]の方法。
[１７]  アサートすることは、目的のキーより下にあるキーの不注意による作動を検出して、取り除くことを含む、前記[１６]の方法。
[１８]  アサートすることは、タイプする直前にキーボードのホームローの位置に手を載せた結果としてのキーの複数の作動を検出して、取り除くことを含む、前記[１６]の方法。
[１９]  アサートすることは、キャップスロックキーよりも、シフトキーの最もよく行われる使用に有利に働くように、複数のモディファイヤキーの偶然の又は部分的な複数の作動のうちの少なくとも１つを選択的に検出して、抑制することを含む、前記[１６]の方法。
[２０]  アサートすることは、機敏なタイピング中に、複数の同時のモディファイヤキーの作動を選択的に検出して、抑制することを含む、前記[１６]の方法。
[２１]  アサートすることは、履歴のタッチ作動のデータに基づいて、「タッチする」又は「躊躇する」タイピストとして、ユーザのタイピングスタイルを検出することと、
その情報を複数の他のフィルタリング機構にフィードバックすることと、
を含む、前記[１６]の方法。
[２２]  アサートすることは、前記複数の入力イベントからなる組を、一連のキーアップ及びキーダウンの作動に変換することを含む、前記[１６]の方法。
【図１】
0005849095.tif 000002
【図２Ａ】
0005849095.tif 000003
【図２Ｂ】
0005849095.tif 000004
【図２Ｃ】
0005849095.tif 000005
【図２Ｄ】
0005849095.tif 000006
【図２Ｅ】
0005849095.tif 000007
【図３】
0005849095.tif 000008
【図４Ａ】
0005849095.tif 000009
【図４Ｂ】
0005849095.tif 000010
【図５Ａ】
0005849095.tif 000011
【図５Ｂ】
0005849095.tif 000012
【図５Ｃ】
0005849095.tif 000013
【図５Ｄ】
0005849095.tif 000014