(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定する前記ステップが、前記1つまたは複数のストロークが書記素を表す可能性が高いと判定するステップを含み、
前記データを処理するための前記特定の認識プロセスを選択する前記ステップが、前記多言語認識プロセスを選択するステップを含む、請求項1に記載の方法。
前記1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定する前記ステップが、前記1つまたは複数のストロークが書記素を表さない可能性が高いと判定するステップを含み、
前記データを処理するための前記特定の認識プロセスを選択する前記ステップが、単一文字のユニバーサル認識プロセスを選択するステップを含む、請求項1に記載の方法。
前記多言語認識プロセスが、所与の入力ストロークのセットについて、単一の書記素を出力するようにトレーニングされる前記ユニバーサル認識器を使用して入力ストロークをさらに処理する、請求項2に記載の方法。
前記1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定する前記ステップが、前記1つまたは複数のストロークが書記素を表す可能性を表す信頼スコアを生成するステップを含み、
前記特定の認識プロセスが、生成した信頼スコアに少なくとも基づいて選択される、請求項2に記載の方法。
前記データを処理するための前記特定の認識プロセスを選択するステップが、前記1つまたは複数のストロークを示す前記データを出力するために前記複数の認識器のサブセットを選択するステップを含む、請求項2に記載の方法。
前記1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定する前記ステップが、前記1つまたは複数のストロークが走り書きまたは殴り書きを表すかどうかを判定するステップを含む、請求項1から6のいずれか一項に記載の方法。
コンピュータプログラムとともに符号化されたコンピュータ記憶デバイスであって、前記コンピュータプログラムが、1つまたは複数のコンピュータによって実行されるとき、請求項1から7のいずれか一項に記載の方法を前記1つまたは複数のコンピュータに実施させる命令を含むコンピュータ記憶デバイス。
【発明の概要】
【発明が解決しようとする課題】
【0003】
HRシステムに対する手書き入力が異なるタイプのシンボルを含むとき、様々な種々雑多なシンボルに対するサポートの欠如のために、または高速でリソース効率の良い方式でHRを実施することを必要とする制限のために、HRシステムの示す認識能力はしばしば不十分である。様々なタイプのシンボルが入力されるとき、HRシステムは、電子デバイスにテキストを入力する方法として手書き入力を使用するユーザにとってしばしばほとんど価値のない、意味のない認識結果を出力し得る。さらに、走り書きを表す手書き入力内に含まれるパターンである入力ストロークに対して認識プロセスが実施されるとき、入力が多数のストロークを含むことがあり、ストロークの配置が認識されるシンボルに容易には対応しないことがあるので、処理は計算費用が高いことがある。
【課題を解決するための手段】
【0004】
したがって、本明細書で説明される主題の革新的な一態様は、多言語認識システムを使用して、最初に様々なタイプの手書き入力を分類し、次いで認識結果を生成する際により効果的である特定の認識プロセスを使用して、様々なタイプの手書き入力を処理する方法で実施され得る。たとえば、入力ストロークの特徴が解析され、ストロークが、言語の書記体系を記述する際に使用される最小単位を表す書記素(grapheme)を表すかどうか、またはストロークが、手書きのストロークまたはドットのランダムな連結である走り書きを表すかどうかが判定され得る。次いで入力は、ストロークが書記素を表すか、それとも走り書きを表すかに基づいて、異なる認識プロセスを使用して処理され得る。本明細書は一般に、入力ストロークが書記素を表すかどうかを判定することを含む特定の実装を説明するが、他の実装では、方法は、入力ストロークがグリフ、異文字(allograph)、文字、シンボル、描画などの他のタイポグラフィカル特徴を表すかどうかを判定することを含み得る。
【0005】
手書き入力分類およびフィルタリングが、HRシステムの全体的認識性能を改善してユーザ体験を改善するために使用され得る。たとえば、様々なタイプの手書き入力、たとえば様々な言語に適合された特定の認識プロセスを使用することによって、認識結果を生成するための時間が短縮され得る。他の例では、認識結果生成が使用する計算資源をより少なくし得、より正確な認識結果が提供され得る。より具体的には、手書き入力分類およびフィルタリングはまた、通常はテキスト入力と比較して認識するのがより難しい、描画やシンボルなどの特殊な手書き入力を処理するために使用され得る。
【0006】
実装は、以下の特徴のうちの1つまたは複数を含み得る。たとえば、コンピュータ実装方法が、1つまたは複数のストロークを示すデータを受け取ること、1つまたは複数のストロークの1つまたは複数の特徴を決定すること、特徴のうちの1つまたは複数に少なくとも基づいて、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定すること、少なくとも(i)所与の入力ストロークのセットについて、特定の言語に関連する1つまたは複数の書記素を出力するようにそれぞれトレーニングされる複数の認識器を使用して入力ストロークを処理する多言語認識プロセス、および(ii)所与の入力ストロークのセットについて、単一の書記素を出力するようにトレーニングされるユニバーサル認識器を使用して入力ストロークを処理する単一文字のユニバーサル認識プロセスの中から、データを処理するための特定の認識プロセスを選択すること、ならびに特定の認識プロセスを使用して処理するためにデータを供給することを含み得る。
【0007】
他の実装では、コンピュータ実装方法が、1つまたは複数のストロークを示すデータを受け取ること、1つまたは複数のストロークの1つまたは複数の特徴を決定すること、特徴のうちの1つまたは複数に少なくとも基づいて、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定すること、少なくとも(i)所与の入力ストロークのセットについて、特定の言語に関連する1つまたは複数の書記素を出力するようにトレーニングされる単一の認識器を使用して入力ストロークを処理する単一言語認識プロセス、および(ii)所与の入力ストロークのセットについて、単一の書記素を出力するようにトレーニングされるユニバーサル認識器を使用して入力ストロークを処理する単一文字のユニバーサル認識プロセスの中から、データを処理するための特定の認識プロセスを選択すること、ならびに特定の認識プロセスを使用して処理するためにデータを供給することを含み得る。方法は、選択した認識プロセスを使用してデータを処理し、それによって1つまたは複数のストロークに対応する有効な1つまたは複数の文字のシーケンスを出力するステップをさらに含み得る。
【0008】
他のバージョンは、コンピュータ記憶デバイス上に符号化された方法の動作を実施するように構成された、対応するシステム、およびコンピュータプログラムを含む。
【0009】
1つまたは複数の実装は、以下の任意選択の特徴を含み得る。たとえば、いくつかの実装では、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定することは、1つまたは複数のストロークが書記素を表す可能性が高いと判定することを含み、データを処理するための特定の認識プロセスを選択することは、多言語認識プロセスを選択することを含む。
【0010】
いくつかの実装では、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定することは、1つまたは複数のストロークが書記素を表さない可能性が高いと判定することを含み、データを処理するための特定の認識プロセスを選択することは、単一文字のユニバーサル認識プロセスを選択することを含む。
【0011】
いくつかの実装では、方法は、多言語認識プロセスが入力ストロークをさらに処理する場合、所与の入力ストロークのセットについて、単一の書記素を出力するようにトレーニングされるユニバーサル認識器を使用することを含み得る。
【0012】
いくつかの実装では、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定することは、1つまたは複数のストロークが書記素を表す可能性を表す信頼スコアを生成することを含み、特定の認識プロセスが、生成した信頼スコアに少なくとも基づいて選択される。
【0013】
いくつかの実装では、データを処理するための特定の認識プロセスを選択することは、1つまたは複数のストロークを示すデータを出力するために複数の認識器のサブセットを選択することを含む。
【0014】
いくつかの実装では、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定することは、1つまたは複数のストロークが走り書き(scribble)または殴り書き(scratch)を表すかどうかを判定することを含む。
【0015】
1つまたは複数の実装の詳細が、添付の図面および以下の説明で説明される。説明、図面、および特許請求の範囲から、他の潜在的特徴および利点が明らかとなるであろう。
【0016】
これらの態様の他の実装は、コンピュータ記憶デバイス上に符号化された、方法の動作を実施するように構成された、対応するシステム、装置、およびコンピュータプログラムを含む。
【発明を実施するための形態】
【0018】
図面では、全体にわたって同様の参照番号は対応する部分を表す。
【0019】
本明細書で説明される主題の革新的な一態様は、様々なタイプの手書き入力を分類およびフィルタリングし、それらの個々のタイプの入力をより効率的に処理するそれぞれの認識プロセスを使用して、様々なタイプの手書き入力を処理するプロセスで実施され得る。
【0020】
図1は、手書き認識を改善するための例示的システム100を示す図である。簡潔には、システム100は、入力102、たとえば入力102aおよび102bを受け取り、入力102の手書き認識結果である出力108、たとえば出力108aおよび108bを供給し得る。いくつかの例では、システム100は、入力信頼スコア103、トランスクリプト104、およびトランスクリプト信頼スコア106を計算し得る。システム100はまた、非テキスト入力分類器120、認識器エンジンセレクタ130、言語140a〜140c用の多言語認識器140、単一文字ユニバーサル認識器150、言語セレクタ160、出力セレクタ170などの構成要素をも含み得る。
【0021】
さらに、
図1は、手書き入力分類およびフィルタリングの一例を表す。たとえば、例示的ユーザ101a〜101bが、入力デバイス画面110aおよび110b上で、それぞれ入力102aおよび102bを与える。入力102aおよび102bにそれぞれ対応する認識結果である出力108aおよび108bが、それぞれ出力デバイス画面180aおよび180b上に表示される。
【0022】
非テキスト入力分類器120は、入力102などの手書き入力を受け取るHRシステム内のソフトウェアモジュールであり得る。非テキスト入力分類器120は、最初に入力データを前処理して、手書き認識に悪影響を及ぼし得る無関係なデータ、たとえば信号ノイズ、異質のストロークを除去することによって、受け取った入力102内に含まれる入力ストロークの集合であるインクを分類し得る。いくつかの例では、非テキスト入力分類器120はまた、正規化、サンプリング、平滑化、ノイズ除去などの追加の前処理ステップを実施して、HRシステム速度および精度を改善し得る。
【0023】
次いで、非テキスト入力分類器120は、入力102から特徴を抽出し得る。たとえば、非テキスト入力分類器120は、次元ベクトルフィールド(dimensional vector field)を生成して、入力102についての情報を抽出し得る。たとえば、抽出される特徴には、アスペクト比、水平半地点(half point)より上のピクセルのパーセント、垂直半地点の右側のピクセルのパーセント、ストローク数、ストローク曲率、イメージ中心からの平均距離、ペン圧、ペン速度、複数の入力ストローク間の時点、入力を与える合計時間、または筆記方向の変化が含まれ得る。次いで、非テキスト入力分類器120は、抽出した特徴を使用して、入力102の入力ストロークが特定の特徴にマッピングされる書記素を表す可能性が高いかどうかを判定し得る。
【0024】
いくつかの実装では、非テキスト入力分類器120は、少なくとも1つの認識可能な書記素を含むもの、または認識可能な書記素を含まない走り書きのどちらかとして入力120を分類する軽量2クラス分類器(light-weight two-class classifier)であり得る。たとえば、非テキスト入力分類器120は、特徴抽出に基づいて入力ストロークを分類するようにトレーニングされた統計学習モジュールを含むニューラルネットワークであり得る。他の例では、非テキスト入力分類器120は、トレーニング例のセットに基づく分類および回帰分析のために入力ストローク内のパターンを認識および解析する関連する学習アルゴリズムを含むサポートベクトルマシンであり得る。
【0025】
いくつかの実装では、非テキスト入力分類器120は、入力102の入力ストロークが書記素を表す可能性を表す入力信頼スコア103を生成し得る。たとえば、入力信頼スコア103は、入力102から抽出された特徴を、書記素のセットに関連する代表的特徴と比較することに基づき得る。いくつかの例では、入力102について生成される入力信頼スコア103がしきい値と比較され、入力102が書記素を表す可能性が高いか、それとも走り書きを表す可能性が高いかを判定し得る。たとえば、入力102についての入力信頼スコア103がしきい値未満である場合、入力102は走り書きと分類され得る。そのような例では、非テキスト入力分類器120が入力102を走り書きと誤って分類する確率が最小限に抑えられるように、しきい値は、トレーニングデータに基づいて精密に計算され得る。トレーニングデータは、入力ストロークが走り書きを表すかどうかを示す特定のインクおよびラベルを含み得る。
【0026】
図1の例に示されるように、ユーザ101aおよび101bは、入力モバイルデバイス上でそれぞれ別々の手書き入力102aおよび102bを与えるユーザに対応し得る。入力モバイルデバイスは、スマートフォン、タブレットコンピュータ、ラップトップ画面などの表示エリア内の手書き入力の存在および位置を検出し得る電子視覚ディスプレイを備える任意のタイプのモバイルコンピューティングデバイスであり得る。
【0027】
入力102aおよび102bは、システム100によって異なるように処理される手書き入力である。たとえば、例示的入力102aは、システム100によって書記素を含むと決定される可能性の高い少なくとも1つの認識可能な書記素、たとえば「H」および「i」を表す特徴を含み、その後で多言語認識プロセスを使用して処理される。一方、例示的入力102bは、認識可能な書記素を表す特徴を含まず、その後で単一のユニバーサル認識プロセスを使用して処理される。
【0028】
入力102が非テキスト入力分類器120によって分類されると、次いで入力102は認識器エンジンセレクタ130に送信され得る。認識器エンジンセレクタ130は、入力102を処理するための特定の認識プロセスを選択し得る。たとえば、前述のように、書記素を表す可能性が高いと分類される入力は、言語140a〜140c用の多言語認識器140を含む多言語認識プロセスによって処理され得るのに対して、書記素を表さない走り書きと分類される入力は、単一文字ユニバーサル認識器150を含む単一文字ユニバーサル認識プロセスによって処理され得る。
【0029】
いくつかの実装では、非テキスト入力分類器120および認識器エンジンセレクタ130の動作は、システム100の単一のソフトウェアコンポーネントによって実施され得る。たとえば、そのような実装では、認識器エンジンセレクタ130は非テキスト入力分類器120の動作も実施し得、逆も同様である。
【0030】
入力102が書記素を表すと分類される例では、入力102は、様々な言語、たとえば言語140a〜140c用の多言語認識器140を使用して処理され得る。たとえば、最初に、認識器エンジンセレクタ130は、入力102内に含まれる言語140a〜140cに対応する潜在的トランスクリプト104のセットを決定し得る。次いで、検出器エンジン130は、各トランスクリプト104に対応する特定の言語認識器140に照会し、入力102を処理し得る。単一の入力102が異なる言語に対応する複数のトランスクリプト104、たとえば「los cat」を含むいくつかの例では、検出器エンジンは、異なる言語に対応する複数の言語認識器140に照会し得る。たとえば、認識器エンジンセレクタ130は、入力102の「los」部分について、スペイン語であり得る言語140a用の特定の言語認識器140に照会し、入力102の「cat」部分について、英語であり得る言語140b用の特定の言語認識器140に照会し得る。
【0031】
いくつかの実装では、認識器エンジンセレクタ130はまた、トランスクリプト104が入力102についての高品質トランスクリプションを表す可能性に対応するトランスクリプト信頼スコア106を生成し得る。たとえば、入力102が英語の「rope」またはスペイン語の「ropa」と書き表され得る「rope-eh」などのあいまいなセグメントを含む場合、認識器エンジンセレクタ130は、入力102についての低品質トランスクリプションを表すトランスクリプションごとにトランスクリプト信頼スコア106を生成し得る。いくつかの例では、認識器エンジンセレクタ130は、トランスクリプト信頼スコア106を使用して、事前フィルタリングステップを実施し、低品質トランスクリプションを廃棄し、手書き認識速度を向上させ、認識品質を向上させ、使用される計算資源量を低減し得る。たとえば、認識器エンジンセレクタ130は、トランスクリプト信頼スコア106をしきい値と比較して、しきい値未満のトランスクリプト信頼スコア106を有するトランスクリプト104を廃棄し得る。
【0032】
入力102が走り書きと分類される他の例では、入力102は、様々なプロセスを使用して処理され得る。たとえば、いくつかの実装では、入力102は、単一文字ユニバーサル認識器150を使用して処理される。単一文字ユニバーサル認識器150は、テキスト、たとえば文字およびシンボルを含むUnicodeコードポイントの大きいセットに関してトレーニングされ得る。単一ユニバーサル認識器150はまた、走り書き入力のみを処理するので、入力サイズとは関わりなく、長い入力を処理し得る。
【0033】
入力102が走り書きと分類される他の実装では、無効な認識出力を処理することからHRシステム内の計算資源を保持するために入力102が廃棄され得る。他の実装では、入力102は、たとえば絵文字、矢印などの複雑な描画およびシンボルを使用してトレーニングされる特殊な走り書き認識器を含む特定の認識プロセスを使用して処理され得る。他の実装では、入力102は、単一文字ユニバーサル認識プロセスに加えて多言語認識プロセスによって処理され得る。
【0034】
言語セレクタ160は、トランスクリプト104の各々に関連する特定の言語140a〜140cを選択するソフトウェアモジュールであり得る。たとえば、言語セレクタは、認識器エンジンセレクタ130からトランスクリプト104を受け取り、トランスクリプト104の属性に基づいて言語を選択し得る。たとえば、言語セレクタ160は、トランスクリプト属性を特定の言語にマッピングするリポジトリを解析して、トランスクリプト104に関連する言語140a〜140cを決定し得る。
【0035】
言語セレクタ160はまた、各言語に関連する特定の言語認識器を選択し得る。たとえば、言語認識器は、特定の言語を使用して、手書き入力を処理し、認識出力を生成するようにトレーニングされる手書き認識器であり得る。
【0036】
出力セレクタ170は、言語140a〜140c用の複数の言語認識器、または単一文字ユニバーサル認識器150のどちらかを使用して生成される、入力102についての1つまたは複数の認識出力を受け取り得る。いくつかの例では、出力セレクタ170は、入力102について、言語140a〜140cの各々についての候補認識出力のセットを受け取り得る。そのような例では、候補認識出力は、単一の入力102についての代替認識出力を表し得る。入力102が様々なタイプの文字およびシンボルを含む他の例では、出力セレクタ170は、多言語認識プロセスと単一文字ユニバーサル認識プロセスの両方から認識出力を受け取り得る。そのような例では、複数の認識出力は、単一の入力102のセグメントについての出力を表し得る。
【0037】
いくつかの実装では、言語セレクタ160および出力セレクタ170の動作は、システム100の単一のソフトウェアコンポーネントによって実施され得る。たとえば、言語セレクタ160は、出力セレクタ170の動作をさらに実施し得、逆も同様である。他の実装では、特定の言語を選択することなく、選択する必要があるのは出力だけであり得るように、多言語認識器140からの結果がマージされ得る。
【0038】
システム100が入力102についての代替認識出力を生成する例では、出力セレクタ170は、入力信頼スコア103とトランスクリプト信頼スコア106の組合せを使用して、入力102の最良の認識である選択された出力108を選択し得る。システム100が入力102のセグメントに対応する複数の認識出力を生成する他の例では、出力セレクタ170は、選択された出力108内に含まれるべき複数の認識仮説を選択し得る。たとえば、入力102が、テキストに関連する第1のセグメントと、走り書きに類似の描画に関連する第2のセグメントの2つのセグメントを含む場合、出力セレクタ170は、多言語認識器140から生成されたテキストに対応する第1の認識出力と、単一文字ユニバーサル認識器150から生成された走り書きに対応する第2の認識出力とを含む、選択された出力108を選択し得る。
【0039】
図1の例に示されるように、出力108aおよび108bは、それぞれ別々の手書き入力102aおよび102bに対応し、手書き入力102aおよび102bは、それぞれ出力デバイス画面180aおよび180b上に表示される。たとえば、出力108aが、認識可能な英語の書記素「H」および「I」を含む入力102aに基づいて、英語用の特定の言語認識器140を使用して多言語認識プロセスから生成される。一方、出力108bが、単一文字ユニバーサル認識器150を使用して、走り書きと分類される入力102bに基づいて単一文字ユニバーサル認識プロセスから生成される。出力108bは書記素「Z」を含む。これが、入力102b内の入力ストロークに最も密接に対応する単一の書記素であるからである。
【0040】
図2は、1つまたは複数のストロークを示す1つまたは複数のデータを処理するための例示的プロセス200を示す。簡潔には、プロセス200は、1つまたは複数のストロークを示すデータを受け取ること(210)、1つまたは複数のストロークの1つまたは複数の特徴を決定すること(220)、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定すること(230)、データを処理するための特定の認識プロセスを選択すること(240)、および特定の認識プロセスを使用してデータを供給すること(250)を含み得る。
【0041】
より詳細には、プロセス200は、1つまたは複数のストロークを示すデータを受け取ること(210)を含み得る。たとえば、非テキスト入力分類器120は、1つまたは複数のストロークを示す入力102を受け取り得る。
図1の例に示されるように、ユーザ101aおよび101bは、それぞれ入力デバイス110aおよび110b上で入力102aおよび102bを与え得る。
【0042】
プロセス200は、1つまたは複数のストロークの1つまたは複数の特徴を決定すること(220)を含み得る。たとえば、非テキスト入力分類器120は、アスペクト比、水平半地点より上のピクセルのパーセント、垂直半地点の右側のピクセルのパーセント、ストローク数、ストローク曲率、イメージ中心からの平均距離、ペン圧、ペン速度、筆記方向の変化などの特徴を入力102から抽出し得る。
【0043】
いくつかの実装では、1つまたは複数のストロークの1つまたは複数の特徴を決定した後、非テキスト入力分類器120は、入力102の1つまたは複数のストロークの1つまたは複数の特徴に基づいて入力信頼スコア103を生成し得る。たとえば、入力信頼スコア103は、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを決定するために使用され得る。
【0044】
プロセス200は、特徴のうちの1つまたは複数に少なくとも基づいて、1つまたは複数のストロークが書記素を表す可能性が高いかどうかを判定すること(230)を含み得る。たとえば、非テキスト入力分類器120は、少なくとも1つの認識可能な書記素を表すこと、または少なくとも1つの認識可能な書記素を表さない走り書きのどちらかとして入力102を分類し得る。
図1の例に表されるように、非テキスト入力分類器120は、書記素「H」および「i」を表すと入力102aを分類し得、入力102bのストロークが認識可能な書記素を表すので、走り書きを表すと入力102bを分類し得る。
【0045】
プロセス200は、少なくとも多言語認識プロセスおよび単一文字のユニバーサル認識プロセスから、データを処理するための特定の認識プロセスを選択すること(240)を含み得る。たとえば、認識器エンジンセレクタ130は、非テキスト入力分類器120による入力102の分類に基づいて、入力102について特定の認識プロセスを選択し得る。たとえば、認識器エンジンセレクタ130は、入力102aについて多言語認識プロセスを選択し得、入力102bについて単一文字ユニバーサル認識プロセスを選択し得る。
【0046】
プロセス200は、特定の認識プロセスを使用して、処理のためにデータを供給すること(250)を含み得る。たとえば、認識器エンジンセレクタ130は、入力102について、多言語認識プロセスまたは単一文字ユニバーサル認識プロセスのどちらかを選択し得る。たとえば、認識器エンジンセレクタ130は、入力102aについて多言語認識プロセスを選択し、ユーザ入力102bについて単一文字ユニバーサル認識プロセスを選択し得る。
【0047】
入力102aについての多言語認識プロセスに関して、多言語認識器140が使用され、言語140a〜140cに対応する1つまたは複数の書記素が生成され得る。たとえば、多言語認識器140は、入力102の所与の入力ストロークのセットについて、特定の言語に関連する1つまたは複数の書記素を出力するようにそれぞれトレーニングされ得る。
図1に与えられる例では、入力102aは、英語に関連する書記素「H」および「I」に基づいて、英語用の特定の言語認識器140を使用して処理され得る。
【0048】
入力102bについての単一文字のユニバーサル認識プロセスに関して、単一の書記素を生成するために単一文字ユニバーサル認識器150が使用され得る。たとえば、単一文字ユニバーサル認識器150は、入力102の所与の入力ストロークのセットについて、単一の書記素を出力するようにトレーニングされ得る。
図1で与えられる例では、入力102bは、単一文字ユニバーサル認識器150によって処理され、入力102bの入力ストロークに最も密接に似ている書記素「Z」が出力され得る。
【0049】
図3は、クライアントとして、またはサーバもしくは複数のサーバとして、本文書内で説明されるシステムおよび方法を実装するために使用され得るコンピューティングデバイス300、350のブロック図である。コンピューティングデバイス300は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、他の適切なコンピュータなどの様々な形態のデジタルコンピュータを表すものとする。コンピューティングデバイス350は、携帯情報端末、セルラー電話、スマートフォン、他の類似のコンピューティングデバイスなどの様々な形態のモバイルデバイスを表すものとする。さらに、コンピューティングデバイス300または350はユニバーサルシリアルバス(USB)フラッシュドライブを含み得る。USBフラッシュドライブは、オペレーティングシステムおよび他のアプリケーションを記憶し得る。USBフラッシュドライブは、ワイヤレス送信機や、別のコンピューティングデバイスのUSBポート内に挿入され得るUSBコネクタなどの入力/出力構成要素を含み得る。ここに示される構成要素、その接続および関係、その機能は、単に例示的なものであることを意味し、本文書内で説明され、かつ/または特許請求される本発明の実装を限定することを意味するものではない。
【0050】
コンピューティングデバイス300は、プロセッサ302と、メモリ304と、記憶デバイス306と、メモリ304および高速拡張ポート310に接続する高速インターフェース308と、低速バス314および記憶デバイス306に接続する低速インターフェース312とを含む。構成要素302、304、306、308、310、および312の各々が、様々なバスを使用して相互接続され、共通マザーボード上に、または適宜に他の方式で取り付けられ得る。プロセッサ302は、メモリ304内に、または記憶デバイス306上に記憶された命令を含む、コンピューティングデバイス300内で実行するための命令を処理して、高速インターフェース308に結合されたディスプレイ316などの外部入力/出力デバイス上のGUIのためのグラフィカル情報を表示し得る。他の実装では、複数のプロセッサおよび/または複数のバスが、複数のメモリおよび複数のタイプのメモリとともに適宜に使用され得る。さらには、複数のコンピューティングデバイス300が、たとえばサーババンク、ブレードサーバのグループ、またはマルチプロセッサシステムとしての必要な動作の各部分を実現する各デバイスに接続され得る。
【0051】
メモリ304は、コンピューティングデバイス300内に情報を記憶する。一実装では、メモリ304は揮発性メモリユニットである。別の実装では、メモリ304は不揮発性メモリユニットである。メモリ304はまた、磁気または光ディスクなどの別の形態のコンピュータ可読媒体であり得る。
【0052】
記憶デバイス306は、コンピューティングデバイス300のための大容量記憶装置を提供することができる。一実装では、記憶デバイス306は、フロッピィディスクデバイス、ハードディスクデバイス、光ディスクデバイス、テープデバイスなどのコンピュータ可読媒体、フラッシュメモリもしくは他の類似の固体メモリデバイス、またはストレージエリアネットワークもしくは他の構成内のデバイスを含むデバイスのアレイであり得、またはそれらを含み得る。コンピュータプログラム製品は、情報キャリアで有形に実施され得る。コンピュータプログラム製品はまた、実行されるとき、前述のような1つまたは複数の方法を実施する命令を含み得る。情報キャリアは、メモリ304、記憶デバイス306、プロセッサ302上のメモリなどのコンピュータ可読または機械可読媒体である。
【0053】
高速コントローラ308は、コンピューティングデバイス300についての帯域幅集約的な動作を管理し、一方、低速コントローラ312は、より帯域幅集約的ではない動作を管理する。そのような機能の割振りは例示的なものに過ぎない。一実装では、高速コントローラ308が、メモリ304に結合され、たとえばグラフィックスプロセッサまたはアクセラレータを通じてディスプレイ316に結合され、様々な拡張カード(図示せず)を受け入れ得る高速拡張ポート310に結合される。この実装では、低速コントローラ312が、記憶デバイス306および低速拡張ポート314に結合される。様々な通信ポート、たとえばUSB、Bluetooth(登録商標)、イーサネット(登録商標)、ワイヤレスイーサネット(登録商標)を含み得る低速拡張ポートは、キーボード、ポインティングデバイス、マイクロフォン/スピーカ対、スキャナなどの1つまたは複数の入力/出力デバイスに結合され、あるいはたとえばネットワークアダプタを通じてスイッチやルータなどのネットワーキングデバイスに結合され得る。コンピューティングデバイス300は、図に示されるようにいくつかの異なる形態で実装され得る。たとえば、コンピューティングデバイス300は、標準サーバ320として実装され、またはそのようなサーバのグループ内で複数回実装され得る。コンピューティングデバイス300はまた、ラックサーバシステム324の部分として実装され得る。さらに、コンピューティングデバイス300は、ラップトップコンピュータ322などのパーソナルコンピュータ内で実装され得る。あるいは、コンピューティングデバイス300からの構成要素が、デバイス350などのモバイルデバイス(図示せず)内の他の構成要素と組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス300、350のうちの1つまたは複数を含み得、システム全体は、互いに通信する複数のコンピューティングデバイス300、350から構成され得る。
【0054】
コンピューティングデバイス300は、図に示されるようにいくつかの異なる形態で実装され得る。たとえば、コンピューティングデバイス300は、標準サーバ320として実装され、またはそのようなサーバのグループ内で複数回実装され得る。コンピューティングデバイス300はまた、ラックサーバシステム324の部分として実装され得る。さらに、コンピューティングデバイス300は、ラップトップコンピュータ322などのパーソナルコンピュータ内で実装され得る。あるいは、コンピューティングデバイス300からの構成要素が、デバイス350などのモバイルデバイス(図示せず)内の他の構成要素と組み合わされ得る。そのようなデバイスの各々は、コンピューティングデバイス300、350のうちの1つまたは複数を含み得、システム全体は、互いに通信する複数のコンピューティングデバイス300、350から構成され得る。
【0055】
コンピューティングデバイス350は、他の構成要素の中でもとりわけ、プロセッサ352と、メモリ364と、ディスプレイ354、通信インターフェース366、トランシーバ368などの入力/出力デバイスとを含む。さらに、デバイス350には、追加のストレージを設けるために、マイクロドライブや他のデバイスなどの記憶デバイスが設けられ得る。構成要素350、352、364、354、366、および368の各々は、様々なバスを使用して相互接続され、構成要素のうちのいくつかは、共通マザーボード上に、または適宜に他の方式で取り付けられ得る。
【0056】
プロセッサ352は、メモリ364内に記憶された命令を含む、コンピューティングデバイス350内の命令を実行し得る。プロセッサは、別々の複数のアナログおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。さらに、プロセッサは、いくつかのアーキテクチャのいずれかを使用して実装され得る。たとえば、プロセッサ352は、CISC(Complex Instruction Set Computers)プロセッサ、RISC(Reduced Instruction Set Computer)プロセッサ、またはMISC(Minimal Instruction Set Computer)プロセッサであり得る。プロセッサは、たとえば、ユーザインターフェース、デバイス350によって実行されるアプリケーション、デバイス350によるワイヤレス通信の制御などの、デバイス350の他の構成要素の調整を実現し得る。
【0057】
プロセッサ352は、制御インターフェース358と、ディスプレイ354に結合されたディスプレイインターフェース356とを通じてユーザと通信し得る。ディスプレイ354は、たとえば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイまたはOLED(有機発光ダイオード)ディスプレイ、あるいは他の適切なディスプレイ技術であり得る。ディスプレイインターフェース356は、グラフィカル情報および他の情報をユーザに提示するようにディスプレイ354を駆動するための適切な回路を備え得る。制御インターフェース358は、ユーザからコマンドを受け取り、プロセッサ352に依頼するためにコマンドを変換し得る。さらに、外部インターフェース362は、他のデバイスとの間のデバイス350の近接エリア通信を可能にするようにプロセッサ352と通信可能に提供される。外部インターフェース362は、たとえば、いくつかの実装ではワイヤード通信を実現し、または他の実装ではワイヤレス通信を実現し得、複数のインターフェースも使用され得る。
【0058】
メモリ364は、コンピューティングデバイス350内に情報を記憶する。メモリ364は、コンピュータ可読媒体、揮発性メモリユニット、または不揮発性メモリユニットのうちの1つまたは複数として実装され得る。拡張メモリ374も設けられ、拡張インターフェース372を通じてデバイス350に接続され得、拡張インターフェース372は、たとえばSIMM(シングルインラインメモリモジュール)カードインターフェースを含み得る。そのような拡張メモリ374は、デバイス350のための余分の記憶空間を与え得、またはデバイス350のためのアプリケーションまたは他の情報も記憶し得る。具体的には、拡張メモリ374は、前述のプロセスを実施または補足するための命令を含み得、セキュア情報も含み得る。したがって、たとえば、拡張メモリ374は、デバイス350のためのセキュリティモジュールとして設けられ得、デバイス350な安全な使用を可能にする命令とともにプログラムされ得る。さらに、ハッキング不能な方式でSIMMカード上に識別情報を配置することなど、追加の情報とともにSIMMカードを介してセキュアアプリケーションが提供され得る。
【0059】
メモリは、たとえば、以下で論じられるように、フラッシュメモリおよび/またはNVRAMメモリを含み得る。一実装では、コンピュータプログラム製品は、情報キャリアで有形に実施される。コンピュータプログラム製品は、実行されるとき、前述のような1つまたは複数の方法を実施する命令を含む。情報キャリアは、たとえば、トランシーバ368または外部インターフェース362を介して受け取られ得る、メモリ364、拡張メモリ374、プロセッサ352上のメモリなどのコンピュータ可読または機械可読媒体である。
【0060】
デバイス350は、通信インターフェース366を通じてワイヤレスに通信し得、通信インターフェース366は、必要ならデジタル信号処理回路を含み得る。通信インターフェース366は、とりわけ、GSM(登録商標)音声呼出し、SMS、EMS、またはMMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、またはGPRSなどの様々なモードまたはプロトコルの下で通信を実現し得る。そのような通信は、たとえば無線周波数トランシーバ368を通じて行われ得る。さらに、近距離通信は、Bluetooth(登録商標)、Wi-Fi、または他のそのようなトランシーバ(図示せず)などを使用して行われ得る。さらに、GPS(全地球測位システム)受信機モジュール370は、追加のナビゲーションおよび位置関連ワイヤレスデータをデバイス350に供給し得、追加のナビゲーションおよび位置関連ワイヤレスデータは、デバイス350上で実行中のアプリケーションによって適宜に使用され得る。
【0061】
デバイス350はまた、オーディオコーデック360を使用して可聴に(audibly)通信し得、オーディオコーデック360は、ユーザから音声情報を受け取り、それを使用可能なデジタル情報に変換し得る。オーディオコーデック360は、同様に、たとえばデバイス350のハンドセット内の、スピーカなどを通じて、ユーザに対する可聴音を生成し得る。そのような音は、音声電話呼出しからの音を含み得、ボイスメッセージ、音楽ファイルなどの記録音を含み得、デバイス350上で動作中のアプリケーションによって生成された音も含み得る。
【0062】
コンピューティングデバイス350は、図に示されるように、いくつかの異なる形態で実装され得る。たとえば、コンピューティングデバイス350はセルラー電話480として実装され得る。コンピューティングデバイス350はまた、スマートフォン382、携帯情報端末、または他の類似のモバイルデバイスの部分として実装され得る。
【0063】
ここで説明されたシステムおよび方法の様々な実装は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそのような実装の組合せで実現され得る。これらの様々な実装は、ストレージシステム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受け取り、それらにデータおよび命令を送るように結合された、専用または汎用であり得る少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能および/または解釈可能な1つまたは複数のコンピュータプログラム内の実装を含み得る。
【0064】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはコードとも呼ばれる)は、プログラマブルプロセッサ用の機械語命令を含み、高水準手続型および/またはオブジェクト指向プログラミング言語、ならびに/あるいはアセンブリ/機械語で実装され得る。本明細書では、「機械可読媒体」、「コンピュータ可読媒体」という用語は、機械可読信号として機械語命令を受け取る機械可読媒体を含む、プログラマブルプロセッサに機械語命令および/またはデータを供給するように使用される任意のコンピュータプログラム製品、装置、および/またはデバイス、たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD)を指す。「機械可読信号」という用語は、プログラマブルプロセッサに機械語命令および/またはデータを供給するように使用される任意の信号を指す。
【0065】
ユーザとの対話を実現するために、ここで説明されるシステムおよび技法は、ディスプレイデバイス、たとえば、ユーザに情報を表示するためのCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタと、キーボードおよびポインティングデバイス、たとえば、ユーザがそれによってコンピュータに入力を与え得るマウスまたはトラックボールとを有するコンピュータ上で実装され得る。他の種類のデバイスも、ユーザとの対話を実現するために使用され得、たとえば、ユーザに与えられるフィードバックは、任意の形態の感覚フィードバック、たとえば視覚フィードバック、音声フィードバック、または触覚フィードバックであり得、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形態で受信され得る。
【0066】
ここで説明されるシステムおよび技法は、バックエンド構成要素をたとえばデータサーバとして含むコンピューティングシステム、またはミドルウェア構成要素、たとえばアプリケーションサーバを含むコンピューティングシステム、フロントエンド構成要素、たとえばそれを通じてユーザがここで説明されるシステムおよび技法の一実装と対話し得るグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータを含むコンピューティングシステム、あるいはそのようなバックエンド、ミドルウェア、またはフロントエンド構成要素の任意の組合せで実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットが含まれる。
【0067】
コンピューティングシステムはクライアントおよびサーバを含み得る。クライアントおよびサーバは、一般には互いにリモートであり、通常は通信ネットワークを通じて対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で実行中の、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0068】
いくつかの実施形態が説明された。それでも、本発明の精神および範囲から逸脱することなく様々な修正が行われ得ることを理解されよう。さらに、図に示される論理フローは、望ましい結果を達成するために、図示される特定の順序、または順次的順序を必要とするわけではない。さらに、他のステップが設けられ得、または記載のフローからステップが省略され得、他の構成要素が記載のシステムに追加され、または記載のシステムから除去され得る。したがって、他の実施形態は以下の特許請求の範囲内にある。