(57)【要約】      （修正有）【課題】ユーザデバイス上に手書き入力の機能性を提供するためのリアルタイム手書き認識の管理を提供する。【解決手段】ポータブル多機能デバイス１００は、手書き入力区域８０４に、複数の手書きストローク１７０２、１７１８、１７２６、１７１０を含む場合、複数の手書きストロークから複数の認識単位を特定し、認識された文字のそれぞれの文字を含む認識結果を、手書き入力インタフェースの候補領域８０６内に表示する。ユーザが、削除ボタン１７３２を接触１７３０すると、認識結果から最後の文字を除去する。【選択図】図１７Ｅ
2019164801.tif 000002
【特許請求の範囲】
【請求項１】
マルチスクリプト手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
マルチスクリプト訓練コーパスの空間的に導出される特徴に基づいて、マルチスクリプト手書き認識モデルを訓練することであって、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを訓練することと、
前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含むことを特徴とする、方法。
【請求項２】
前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴が、ストローク順序非依存式及びストローク方向非依存式であることを特徴とする、請求項１に記載の方法。
【請求項３】
前記マルチスクリプト手書き認識モデルの前記訓練が、前記手書きサンプル内のそれぞれのストロークに関連付けられる、時間的情報とは無関係であることを特徴とする、請求項１に記載の方法。
【請求項４】
前記少なくとも３つの非重複スクリプトが、中国文字、絵文字、及びラテンスクリプトを含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記少なくとも３つの非重複スクリプトが、中国文字、アラビア語スクリプト、及びラテンスクリプトを含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記少なくとも３つの非重複スクリプトが、Ｕｎｉｃｏｄｅ規格によって定義された、非重複スクリプトを含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記マルチスクリプト手書き認識モデルを訓練することが、
単一の入力面及び単一の出力面を有する、単一の畳み込みニューラルネットワークに、前記マルチスクリプト訓練コーパスの前記手書きサンプルを提供することと、
前記マルチスクリプト訓練コーパス内に表される、前記少なくとも３つの非重複スクリプトの文字を区別するための、前記手書きサンプルの前記空間的に導出される特徴、及び前記空間的に導出される特徴に関するそれぞれの重みを、前記畳み込みニューラルネットワークを使用して判定することと、
を更に含むことを特徴とする、請求項１に記載の方法。
【請求項８】
前記マルチスクリプト手書き認識モデルが、前記少なくとも３つの非重複スクリプトにわたる少なくとも３万個の文字を表す、少なくとも３万個の出力クラスを有することを特徴とする、請求項１に記載の方法。
【請求項９】
ユーザの手書き入力に関する、リアルタイム手書き認識を提供することが、
前記マルチスクリプト手書き認識モデルを、ユーザデバイスに提供することを更に含み、前記ユーザデバイスが、前記ユーザから、複数の手書きストロークを受信し、前記受信したマルチスクリプト手書き認識モデルに基づいて、前記複数の手書きストロークから特定された１つ以上の認識単位に対して、手書き認識をローカルで実行することを特徴とする、請求項１に記載の方法。
【請求項１０】
ユーザの手書き入力に関する、リアルタイム手書き認識を提供することが、
前記ユーザによる前記手書き入力に対する継続的な追加又は訂正に応じて、前記ユーザの手書き入力に関する１つ以上の認識結果を、継続的に訂正することと、
前記１つ以上の認識結果の各訂正に応じて、前記それぞれの訂正された１つ以上の認識結果を、手書き入力ユーザインタフェースの候補表示区域内で、前記ユーザに対して表示することと、
を更に含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
入力言語に重複が存在しない、複数のデバイスに、前記マルチスクリプト手書き認識モデルを提供することを更に含み、前記マルチスクリプト手書き認識モデルが、前記各ユーザデバイスに関連付けられる、異なる入力言語の手書き認識に関して、前記複数のデバイスのそれぞれで使用されることを特徴とする、請求項１に記載の方法。
【請求項１２】
請求項１から１１に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１３】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、
マルチスクリプト訓練コーパスの空間的に導出される特徴に基づいて、マルチスクリプト手書き認識モデルを訓練することであって、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを訓練することと、
前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含む動作を実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項１４】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１から１１での方法のいずれかを実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項１５】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、
マルチスクリプト訓練コーパスの空間的に導出される特徴に基づいて、マルチスクリプト手書き認識モデルを訓練することであって、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを訓練することと、
前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含む動作を実行させることを特徴とする、システム。
【請求項１６】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行された時に、前記プロセッサに、請求項１から１１での方法のいずれかを実行させることを特徴とする、システム。
【請求項１７】
マルチスクリプト手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するユーザデバイスで、
マルチスクリプト手書き認識モデルを受信することであって、前記マルチスクリプト認識モデルが、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されており、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを受信することと、
ユーザから手書き入力を受信することであって、前記手書き入力が、前記ユーザデバイスに結合されたタッチ感知面上に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、
前記手書き入力の受信に応じて、前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルに基づいて、１つ以上の手書き認識結果を、前記ユーザにリアルタイムで提供することと、
を含むことを特徴とする、方法。
【請求項１８】
前記ユーザにリアルタイムの手書き認識結果を提供することが、
前記ユーザの手書き入力を、１つ以上の認識単位へと分割することであって、各認識単位が、前記ユーザによって提供された前記手書きストロークのうちの１つ以上を含む、１つ以上の認識単位へと分割することと、
前記１つ以上の認識単位のそれぞれの対応の画像を、前記マルチスクリプト手書き認識モデルに、入力として提供することと、
前記１つ以上の認識単位のうちの少なくとも１つに関して、前記マルチスクリプト手書き認識モデルから、第１のスクリプトからの少なくとも第１の出力文字、及び、前記第１のスクリプトとは異なる第２のスクリプトからの少なくとも第２の出力文字を取得することと、
を更に含むことを特徴とする、請求項１７に記載の方法。
【請求項１９】
前記ユーザにリアルタイムの手書き認識結果を提供することが、
前記ユーザデバイスの手書き入力インタフェースの候補表示区域内に、前記第１の出力文字及び前記第２の出力文字の双方を表示することを更に含むことを特徴とする、請求項１８に記載の方法。
【請求項２０】
前記ユーザにリアルタイムの手書き認識結果を提供することが、
前記第１のスクリプト又は前記第２のスクリプトのうちのいずれの一方が、前記ユーザデバイス上に現在インストールされているソフトキーボードで使用される対応のスクリプトであるかに基づいて、前記第１の出力文字及び前記第２の出力文字のうちの一方を選択的に表示することを更に含むことを特徴とする、請求項１８に記載の方法。
【請求項２１】
ユーザの手書き入力に関する、リアルタイム手書き認識を提供することが、
前記ユーザによる前記手書き入力に対する継続的な追加又は訂正に応じて、前記ユーザの手書き入力に関する１つ以上の認識結果を、継続的に訂正することと、
前記１つ以上の認識結果の各訂正に応じて、前記それぞれの訂正された１つ以上の認識結果を、前記手書き入力ユーザインタフェースの候補表示区域内で、前記ユーザに対して表示することと、
を更に含むことを特徴とする、請求項１７に記載の方法。
【請求項２２】
前記少なくとも３つの非重複スクリプトが、中国文字、絵文字、及びラテンスクリプトを含むことを特徴とする、請求項１７に記載の方法。
【請求項２３】
前記少なくとも３つの非重複スクリプトが、中国文字、アラビア語スクリプト、及びラテンスクリプトを含むことを特徴とする、請求項１７に記載の方法。
【請求項２４】
前記マルチスクリプト手書き認識モデルが、単一の入力面及び単一の出力面を有する、単一の畳み込みニューラルネットワークであり、前記マルチスクリプト訓練コーパス内に表される、前記少なくとも３つの非重複スクリプトの文字を区別するための、空間的に導出される特徴、及び前記空間的に導出される特徴に関するそれぞれの重みを含むことを特徴とする、請求項１７に記載の方法。
【請求項２５】
前記マルチスクリプト手書き認識モデルが、少なくとも３つの非重複スクリプトにわたる少なくとも３万個の文字を表す、少なくとも３万個の出力クラスを有することを特徴とする、請求項１７に記載の方法。
【請求項２６】
前記マルチスクリプト手書き認識モデルが、前記手書き入力内で特定された１つ以上の認識単位の、それぞれの入力画像に基づいて、文字を認識するように構成され、認識のために使用される、それぞれの空間的に導出される特徴は、前記手書き入力内での、それぞれのストローク順序、ストローク方向、及びストロークの連続性とは無関係であることを特徴とする、請求項１７に記載の方法。
【請求項２７】
請求項１７から２６に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項２８】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、
マルチスクリプト手書き認識モデルを受信することであって、前記マルチスクリプト認識モデルが、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されており、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを受信することと、
ユーザから手書き入力を受信することであって、前記手書き入力が、前記ユーザデバイスに結合されたタッチ感知面上に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、
前記手書き入力の受信に応じて、前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルに基づいて、１つ以上の手書き認識結果を、前記ユーザにリアルタイムで提供することと、
を含む動作を実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項２９】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１７から２６に記載の方法のいずれかを実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項３０】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、
マルチスクリプト手書き認識モデルを受信することであって、前記マルチスクリプト認識モデルが、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されており、前記マルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを受信することと、
ユーザから手書き入力を受信することであって、前記手書き入力が、前記ユーザデバイスに結合されたタッチ感知面上に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、
前記手書き入力の受信に応じて、前記マルチスクリプト訓練コーパスの前記空間的に導出される特徴について訓練されている、前記マルチスクリプト手書き認識モデルに基づいて、１つ以上の手書き認識結果を、前記ユーザにリアルタイムで提供することと、
を含む動作を実行させることを特徴とする、システム。
【請求項３１】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１７から２６に記載の方法のいずれかを実行させることを特徴とする、システム。
【請求項３２】
リアルタイム手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
ユーザから複数の手書きストロークを受信することであって、前記複数の手書きストロークが、１つの手書き文字に対応する、手書きストロークを受信することと、
前記複数の手書きストロークに基づいて、入力画像を生成することと、
前記手書き文字のリアルタイム認識を実行するために、手書き認識モデルに前記入力画像を提供することであって、前記手書き認識モデルが、ストローク順序非依存式の手書き認識を提供する、前記入力画像を提供することと、
前記ユーザから受信された前記複数の手書きストロークの、それぞれの順序に関わりなく、前記複数の手書きストロークを受信するリアルタイムで、同一の第１の出力文字を表示することと、
を含むことを特徴とする、方法。
【請求項３３】
前記手書き認識モデルが、ストローク方向非依存式の手書き認識を提供し、前記同一の第１の出力文字を表示することが、
前記複数の手書きストロークの受信に応じて、前記ユーザによって提供された前記複数の手書きストロークのそれぞれの、それぞれのストローク方向に関わりなく、前記同一の第１の出力文字を表示することを更に含むことを特徴とする、請求項３２に記載の方法。
【請求項３４】
前記手書き認識モデルが、ストローク数非依存式の手書き認識を提供し、前記同一の第１の出力文字を表示することが、
前記複数の手書きストロークの受信に応じて、幾つの手書きストロークが、前記入力画像内の継続的ストロークを形成するために使用されるかに関わりなく、前記同一の第１の出力文字を表示することを更に含むことを特徴とする、請求項３２に記載の方法。
【請求項３５】
ストローク順序非依存式の手書き認識が、前記手書き文字内の個別のストロークに関連付けられる時間的情報とは、無関係に実行されることを特徴とする、請求項３２に記載の方法。
【請求項３６】
前記ユーザから第２の複数の手書きストロークを受信することであって、前記第２の複数の手書きストロークが、第２の手書き文字に対応する、第２の複数の手書きストロークを受信することと、
前記第２の複数の手書きストロークに基づいて、第２の入力画像を生成することと、前記第２の手書き文字のリアルタイム認識を実行するために、前記手書き認識モデルに、前記第２の入力画像を提供することと、
前記第２の複数の手書きストロークを受信するリアルタイムで、前記第２の複数の手書きストロークに対応する第２の出力文字を表示することであって、前記第１の出力文字と前記第２の出力文字とが、前記ユーザによって提供された、前記第１の複数の手書き入力及び前記第２の複数の手書き入力のそれぞれの順序とは無関係な、空間的配列で同時に表示される、第２の出力文字を表示することと、
を更に含むことを特徴とする、請求項３２に記載の方法。
【請求項３７】
前記第１の出力文字及び前記第２の出力文字の前記空間的配列が、前記ユーザデバイスの手書き入力インタフェースの、デフォルトの書き込み方向に沿った、前記第１の複数の手書きストローク及び前記第２の複数のストロークの、空間的分布に対応することを特徴とする、請求項３６に記載の方法。
【請求項３８】
前記第１の手書き文字が、第１の手書き文の一部として、前記ユーザによって提供され、前記第２の手書き文字が、第２の手書き文の一部として、前記ユーザによって提供され、前記第１の手書き文及び前記第２の手書き文が、前記ユーザデバイスの手書き入力区域内に、同時に表示されることを特徴とする、請求項３６に記載の方法。
【請求項３９】
前記第２の複数の手書きストロークが、前記第１の複数の手書きストロークよりも時間的に後に受信され、前記第２の出力文字が、前記ユーザデバイスの手書き入力インタフェースの、デフォルトの書き込み方向に沿った空間的配列で、前記第１の出力文字に先行することを特徴とする、請求項３６に記載の方法。
【請求項４０】
前記第２の複数の手書きストロークが、前記ユーザデバイスの手書き入力インタフェースの、デフォルトの書き込み方向に沿って、前記第１の複数の手書きストロークを空間的に追従し、前記第２の出力文字が、前記デフォルトの書き込み方向に沿った空間的配列で、前記第１の出力文字を追従し、前記方法が、
前記手書き文字を訂正するために、前記ユーザから第３の手書きストロークを受信することであって、前記第３の手書きストロークが、前記第１の複数の手書きストローク及び前記第２の複数の手書きストロークよりも時間的に後に受信される、第３の手書きストロークを受信することと、
前記第３の手書きストロークの受信に応じて、前記第３の手書きストロークの、前記第１の複数の手書きストロークへの相対的な近接性に基づいて、前記第１の複数の手書きストロークと同じ認識単位に、前記第３の手書きストロークを割り当てることと、
前記第１の複数の手書きストローク及び前記第３の手書きストロークに基づいて、訂正された入力画像を生成することと、
前記訂正された手書き文字のリアルタイム認識を実行するために、前記訂正された入力画像を、前記手書き認識モデルに提供することと、
前記第３の手書き入力の受信に応じて、前記訂正された入力画像に対応する第３の出力文字を表示することであって、前記第３の出力文字が、前記第１の出力文字に置き換わり、前記デフォルトの書き込み方向に沿った前記空間的配列で、前記第２の出力文字と同時に表示される、第３の出力文字を表示することと、
を更に含むことを特徴とする、請求項３６に記載の方法。
【請求項４１】
前記第３の出力文字及び前記第２の出力文字が、前記手書き入力インタフェースの候補表示区域内に、認識結果として同時に表示されている間に、前記ユーザから削除入力を受信することと、
前記削除入力に応じて、前記認識結果から前記第２の出力文字を削除する一方で、前記第３の出力文字を、前記認識結果内に維持することと、
を更に含むことを特徴とする、請求項４０に記載の方法。
【請求項４２】
前記手書き入力インタフェースの前記手書き入力区域内に、前記第１の複数の手書きストローク、前記第２の複数の手書きストローク、及び前記第３の手書きストロークを、前記手書きストロークのそれぞれが前記ユーザによって提供される際にリアルタイムでレンダリングすることと、
前記削除入力の受信に応じて、前記手書き入力区域から、前記第２の複数の手書きストロークの、それぞれのレンダリングを削除する一方で、前記第１の複数の手書きストローク及び前記第３の手書きストロークの、それぞれのレンダリングを、前記手書き入力区域内に維持することと、
を更に含むことを特徴とする、請求項４１に記載の方法。
【請求項４３】
前記手書き文字が、複数ストロークの中国文字であることを特徴とする、請求項３２に記載の方法。
【請求項４４】
前記第１の複数の手書きストロークが、筆写体の書体で提供されることを特徴とする、請求項３２に記載の方法。
【請求項４５】
前記第１の複数の手書きストロークが、筆写体の書体で提供され、前記手書き文字が、複数ストロークの中国文字であることを特徴とする、請求項３２に記載の方法。
【請求項４６】
手書き文字入力に関する容認可能な寸法のセットについての、それぞれの既定の制約を確立することと、
現時点で蓄積されている複数の手書きストロークを、前記それぞれの既定の制約に基づいて、複数の認識単位へと分割することであって、前記認識単位のそれぞれから、それぞれの入力画像が生成され、前記手書き認識モデルに提供され、対応する出力文字として認識される、複数の認識単位へと分割することと、
を更に含むことを特徴とする、請求項４０に記載の方法。
【請求項４７】
前記現時点で蓄積されている複数の手書きストロークを、前記複数の認識単位へと分割した後、前記ユーザから更なる手書きストロークを受信することと、
前記複数の認識単位に対する、前記更なる手書きストロークの空間的位置に基づいて、前記複数の認識単位のうちのそれぞれ１つに、前記更なる手書きストロークを割り当てることと、
を更に含むことを特徴とする、請求項４６に記載の方法。
【請求項４８】
請求項３２から４７に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項４９】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、
ユーザから複数の手書きストロークを受信することであって、前記複数の手書きストロークが、１つの手書き文字に対応する、複数の手書きストロークを受信することと、
前記複数の手書きストロークに基づいて、入力画像を生成することと、
前記手書き文字のリアルタイム認識を実行するために、手書き認識モデルに前記入力画像を提供することであって、前記手書き認識モデルが、ストローク順序非依存式の手書き認識を提供する、前記入力画像を提供することと、
前記ユーザから受信された前記複数の手書きストロークの、それぞれの順序に関わりなく、前記複数の手書きストロークを受信するリアルタイムで、同一の第１の出力文字を表示することと、
を含む動作を実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項５０】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項３２から４７に記載の方法のいずれかを実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項５１】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、
ユーザから複数の手書きストロークを受信することであって、前記複数の手書きストロークが、１つの手書き文字に対応する、複数の手書きストロークを受信することと、
前記複数の手書きストロークに基づいて、入力画像を生成することと、前記手書き文字のリアルタイム認識を実行するために、手書き認識モデルに前記入力画像を提供することであって、前記手書き認識モデルが、ストローク順序非依存式の手書き認識を提供する、前記入力画像を提供することと、
前記ユーザから受信された前記複数の手書きストロークの、それぞれの順序に関わりなく、前記複数の手書きストロークを受信するリアルタイムで、同一の第１の出力文字を表示することと、
を含む動作を実行させることを特徴とする、システム。
【請求項５２】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項３２から４７に記載の方法のいずれかを実行させることを特徴とする、システム。
【請求項５３】
リアルタイム手書き認識を提供する方法であって、１つ以上のプロセッサ及びメモリを有するデバイスで、
ユーザから手書き入力を受信することであって、前記手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、
手書き認識モデルに基づいて、前記手書き入力に関する複数の出力文字を特定することと、
既定のカテゴリ化基準に基づいて、前記複数の出力文字を、２つ以上のカテゴリへと分類することと、
前記手書き入力インタフェースの候補表示区域の初期ビュー内に、前記２つ以上のカテゴリのうちの第１のカテゴリ内の、それぞれの出力文字を表示することであって、前記候補表示区域の前記初期ビューが、前記候補表示区域の拡張ビューを呼び出すためのアフォーダンスと同時に提供される、それぞれの出力文字を表示することと、
前記拡張ビューを呼び出すための前記アフォーダンスを選択する、ユーザ入力を受信することと、
前記ユーザ入力に応じて、前記候補表示区域の前記拡張ビュー内に、前記第１のカテゴリ内の前記それぞれの出力文字、及び、前記候補表示区域の前記初期ビュー内には従前に表示されていなかった、前記２つ以上のカテゴリのうちの少なくとも第２のカテゴリ内の、それぞれの出力文字を表示することと、
を含むことを特徴とする、方法。
【請求項５４】
前記既定のカテゴリ化基準が、それぞれの文字が一般的に使用される文字であるか、又は低頻度の文字であるかを判定することを特徴とする、請求項５３に記載の方法。
【請求項５５】
前記第１のカテゴリ内の前記それぞれの文字が、一般的に使用される文字の辞書内に見出される文字であり、前記第２のカテゴリ内の前記それぞれの文字が、低頻度の文字の辞書内に見出される文字であることを特徴とする、請求項５３に記載の方法。
【請求項５６】
前記一般的に使用される文字の辞書、及び前記低頻度の文字の辞書が、前記デバイスに関連付けられる使用履歴に基づいて、動的に調節されることを特徴とする、請求項５５に記載の方法。
【請求項５７】
前記複数の出力文字から、既定の類似性基準に従って、互いに視覚的に類似する文字のグループを特定することと、
前記視覚的に類似する文字のグループから、既定の選択基準に基づいて、代表的文字を選択することと、
前記候補表示区域の前記初期ビュー内に、前記代表的文字を、前記視覚的に類似する文字のグループ内の他の文字の代わりに表示することと、
を更に含むことを特徴とする、請求項５３に記載の方法。
【請求項５８】
前記候補表示区域の前記初期ビュー内に表示された前記代表的文字を対象とする、既定の拡大入力を、前記ユーザから受信することと、
前記既定の拡大入力の受信に応じて、前記代表的文字の拡大されたビューと、前記視覚的に類似する文字のグループ内の１つ以上の他の文字の、それぞれの拡大されたビューとを、同時に表示することと、
を更に含むことを特徴とする、請求項５７に記載の方法。
【請求項５９】
前記既定の拡大入力が、前記候補表示区域内に表示された前記代表的文字の上で検出される、拡大ジェスチャを含むことを特徴とする、請求項５８に記載の方法。
【請求項６０】
前記既定の拡大入力が、前記候補表示区域内に表示された前記代表的文字の上で検出され、既定の閾値時間よりも長く持続される、接触を含むことを特徴とする、請求項５８に記載の方法。
【請求項６１】
前記既定の選択基準が、前記グループ内での、前記文字の相対的な使用頻度に基づくことを特徴とする、請求項５７に記載の方法。
【請求項６２】
前記既定の選択基準が、前記デバイスに関連付けられる、好ましい入力言語に基づくことを特徴とする、請求項５７に記載の方法。
【請求項６３】
請求項５３から６２に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項６４】
リアルタイム手書き認識を提供する方法であって、１つ以上のプロセッサ及びメモリを有するデバイスで、
ユーザから手書き入力を受信することであって、前記手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含む、手書き入力を受信することと、
手書き認識モデルに基づいて、前記手書き入力から複数の出力文字を認識することであって、前記出力文字が、少なくとも第１の絵文字、及び自然人間言語のスクリプトからの少なくとも第１の文字を含む、複数の出力文字を認識することと、
前記第１の絵文字と前記自然人間言語の前記スクリプトからの前記第１の文字とを含む認識結果を、前記手書き入力インタフェースの候補表示区域内に表示することと、
を含むことを特徴とする、方法。
【請求項６５】
前記手書き認識モデルに基づいて、前記手書き入力から、少なくとも第１の意味的単位を認識することであって、前記第１の意味的単位が、それぞれの人間言語での、それぞれの意味論的意味を伝達することが可能な、それぞれの文字、語、又は語句を含む、少なくとも第１の意味的単位を認識することと、
前記手書き入力から認識された前記第１の意味的単位に関連付けられる、第２の絵文字を特定することと、
前記手書き入力インタフェースの前記候補表示区域内に、前記第１の意味的単位から特定された前記第２の絵文字を少なくとも含む、第２の認識結果を表示することと、
を更に含むことを特徴とする、請求項６４に記載の方法。
【請求項６６】
前記第２の認識結果を表示することが、
少なくとも前記第１の意味的単位を含む第３の認識結果と同時に、前記第２の認識結果を表示することを更に含むことを特徴とする、請求項６５に記載の方法。
【請求項６７】
前記候補表示区域内に表示された前記第１の認識結果を選択する、ユーザ入力を受信することと、
前記ユーザ入力に応じて、前記手書き入力インタフェースのテキスト入力区域内に、前記選択された第１の認識結果のテキストを入力することであって、前記テキストが、少なくとも、前記第１の絵文字、及び前記自然人間言語の前記スクリプトからの前記第１の文字を含む、第１の認識結果のテキストを入力することと、
を更に含むことを特徴とする、請求項６４に記載の方法。
【請求項６８】
前記手書き認識モデルが、少なくとも３つの非重複スクリプトの文字に対応する書き込みサンプルを含む、マルチスクリプト訓練コーパスについて訓練されており、前記３つの非重複スクリプトが、絵文字、中国文字、及びラテンスクリプトのセットを含むことを特徴とする、請求項６４に記載の方法。
【請求項６９】
前記手書き入力から認識された前記第１の絵文字に対応する、第２の意味的単位を特定することと、
前記手書き入力インタフェースの前記候補表示区域内に、前記第１の絵文字から特定された前記第２の意味的単位を少なくとも含む、第４の認識結果を表示することと、
を更に含むことを特徴とする、請求項６４に記載の方法。
【請求項７０】
前記第４の認識結果を表示することが、
前記候補表示区域内に、前記第１の認識結果と同時に、前記第４の認識結果を表示することを更に含むことを特徴とする、請求項６９に記載の方法。
【請求項７１】
請求項６４から７０に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項７２】
手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
前記デバイスに結合されたタッチ感知面内に提供される複数の手書きストロークを含む手書き入力をユーザから受信することと、
手書き入力インタフェースの手書き入力区域内に、前記複数の手書きストロークをリアルタイムでレンダリングすることと、
前記複数の手書きストロークの上での、ピンチジェスチャ入力と拡大ジェスチャ入力とのうちの一方を受信することと、
ピンチジェスチャ入力の受信に際して、前記複数の手書きストロークを単一の認識単位として処理することによって、前記複数の手書きストロークに基づいた第１の認識結果を生成することと、
拡大ジェスチャ入力の受信に際して、前記複数の手書きストロークを前記拡大ジェスチャ入力によって引き離された２つの別個の認識単位として処理することによって、前記複数の手書きストロークに基づいた第２の認識結果を生成することと、
前記第１の認識結果と前記第２の認識結果とのうちのそれぞれの一方の生成に際して、前記生成された認識結果を前記手書き入力インタフェースの候補表示区域内に表示することと、
を含むことを特徴とする、方法。
【請求項７３】
前記ピンチジェスチャ入力が、前記複数の手書きストロークによって占有される区域内で互いに向けて収束する、前記タッチ感知面上での２つの接触を含むことを特徴とする、請求項７２に記載の方法。
【請求項７４】
前記拡大ジェスチャ入力が、前記複数の手書きストロークによって占有される区域内で互いに分散する、前記タッチ感知面上での２つの接触を含むことを特徴とする、請求項７２に記載の方法。
【請求項７５】
前記複数の手書きストロークから２つの隣接する認識単位を特定することと、
前記候補表示区域内に、前記２つの隣接する認識単位から認識されたそれぞれの文字を含む初期の認識結果を表示することと、
前記初期の認識結果が前記候補表示区域内に表示されている間に、前記ピンチジェスチャ入力を受信することと、
を更に含むことを特徴とする、請求項７２に記載の方法。
【請求項７６】
前記第１の認識結果を表示することが、前記候補表示区域内で、前記初期の認識結果を前記第１の認識結果で置き換えることを更に含むことを特徴とする、請求項７５に記載の方法。
【請求項７７】
前記ピンチジェスチャ入力に応じて、前記手書き入力区域内の前記２つの隣接する認識単位間の距離を低減するように、前記複数の手書きストロークを再レンダリングすることを更に含むことを特徴とする、請求項７５に記載の方法。
【請求項７８】
前記複数の手書きストロークから単一の認識単位を特定することと、
前記候補表示区域内に、前記単一の認識単位から認識された文字を含む初期の認識結果を表示することと、
前記初期の認識結果が前記候補表示区域内に表示されている間に、前記拡大ジェスチャ入力を受信することと、
を更に含むことを特徴とする、請求項７２に記載の方法。
【請求項７９】
前記第２の認識結果を表示することが、前記候補表示区域内で、前記初期の認識結果を前記第２の認識結果で置き換えることを更に含むことを特徴とする、請求項７８に記載の方法。
【請求項８０】
前記拡大ジェスチャ入力に応じて、前記手書き入力区域内の、第１の認識単位に割り当てられた第１のストロークのサブセットと、第２の認識単位に割り当てられた第２の手書きストロークのサブセットとの距離を増大させるように、前記複数の手書きストロークを再レンダリングすることを更に含むことを特徴とする、請求項７９に記載の方法。
【請求項８１】
請求項７２から８０に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項８２】
手書き認識を提供する方法であって、
ユーザから手書き入力を受信することであって、前記手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含む、手書き入力を受信することと、
前記複数の手書きストロークから、複数の認識単位を特定することであって、各認識単位が、前記複数の手書きストロークのうちの対応のサブセットを含む、複数の認識単位を特定することと、
前記複数の認識単位から認識されたそれぞれの文字を含む、複数文字の認識結果を生成することと、
前記複数文字の認識結果を、前記手書き入力インタフェースの候補表示区域内に表示することと、
前記複数文字の認識結果が前記候補表示区域内に表示されている間に、前記ユーザから削除入力を受信することと、
前記削除入力の受信に応じて、前記候補表示区域内に表示された前記複数文字の認識結果から、最後の文字を除去することと、
を含むことを特徴とする、方法。
【請求項８３】
前記複数の手書きストロークが前記ユーザによって提供される際に、前記手書き入力インタフェースの前記手書き入力区域内に、前記複数の手書きストロークをリアルタイムでレンダリングすることと、
前記削除入力の受信に応じて、前記手書き入力区域から、前記手書き入力区域内の、前記複数の認識単位によって形成された空間的配列内の、最後の認識単位に対応する、前記複数の手書きストロークのうちの前記対応のサブセットを除去することであって、前記最後の認識単位が、前記複数文字の認識結果内の、前記最後の文字に対応する、前記対応のサブセットを除去することと、
を更に含むを特徴とする、請求項８２に記載の方法。
【請求項８４】
前記最後の認識単位が、前記ユーザによって提供された前記複数の手書きストロークの中の、時間的に最後の手書きストロークを含まないことを特徴とする、請求項８３に記載の方法。
【請求項８５】
前記削除入力の初期部分の受信に応じて、前記最後の認識単位を、前記手書き入力区域内で特定された他の認識単位から、視覚的に識別することを更に含むことを特徴とする、請求項８３に記載の方法。
【請求項８６】
前記削除入力の前記初期部分が、前記手書き入力インタフェース内の削除ボタン上で検出される、初期の接触であり、前記初期の接触が、既定の閾値時間量を超えて持続される場合に、前記削除入力が検出されることを特徴とする、請求項８５に記載の方法。
【請求項８７】
前記最後の認識単位が、手書き中国文字に対応することを特徴とする、請求項８３に記載の方法。
【請求項８８】
前記手書き入力が、筆写体の書体で書き込まれることを特徴とする、請求項８３に記載の方法。
【請求項８９】
前記手書き入力が、筆写体の書体で書き込まれた、複数の中国文字に対応することを特徴とする、請求項８３に記載の方法。
【請求項９０】
前記手書きストロークのうちの少なくとも１つが、前記複数の認識単位のうちの、２つの隣接する認識単位へと分離されることを特徴とする、請求項８３に記載の方法。
【請求項９１】
前記削除入力が、前記手書き入力インタフェース内に提供される削除ボタン上での持続的接触であり、前記複数の手書きストロークのうちの前記対応のサブセットを除去することが、
前記最後の認識単位内の前記手書きストロークのサブセットを、前記手書きストロークのサブセットが前記ユーザによって提供された逆の時間的順序で、前記手書き入力区域から、ストローク単位で除去することを更に含むことを特徴とする、請求項８３に記載の方法。
【請求項９２】
前記複数の認識単位から認識された前記それぞれの文字のサブセットを含む、部分的認識結果を生成することであって、前記それぞれの文字の前記サブセットのそれぞれが、既定の信頼度閾値を満たす、部分的認識結果を生成することと、
前記手書き入力インタフェースの前記候補表示区域内に、前記部分的認識結果を、前記複数文字の認識結果と同時に表示することと、
を更に含むことを特徴とする、請求項８２に記載の方法。
【請求項９３】
前記部分的認識結果が、複数文字の認識結果内の、少なくとも前記最後の文字を含まないことを特徴とする、請求項９２に記載の方法。
【請求項９４】
前記部分的認識結果が、複数文字の認識結果内の、少なくとも最初の文字を含まないことを特徴とする、請求項９２に記載の方法。
【請求項９５】
前記部分的認識結果が、複数文字の認識結果内の、少なくとも中間の文字を含まないことを特徴とする、請求項９２に記載の方法。
【請求項９６】
請求項８２から９５に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項９７】
リアルタイム手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
前記デバイスの向きを判定することと、
前記デバイスが第１の向きにあることに従って、前記デバイス上に、手書き入力インタフェースを、水平入力モードで提供することであって、前記水平入力モードで入力される手書き入力のそれぞれの行が、水平の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される、水平入力モードで提供することと、
前記デバイスが第２の向きにあることに従って、前記デバイス上に、前記手書き入力インタフェースを、垂直入力モードで提供することであって、前記垂直入力モードで入力される手書き入力のそれぞれの行が、垂直の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される、垂直入力モードで提供することと、
を含むことを特徴とする、方法。
【請求項９８】
前記水平入力モードで動作している間に、
前記第１の向きから前記第２の向きへの、デバイスの向きの変化を検出することと、
前記デバイスの向きの変化に応じて、前記水平入力モードから前記垂直入力モードに切り替えることと、
を更に含むことを特徴とする、請求項９７に記載の方法。
【請求項９９】
前記垂直入力モードで動作している間に、
前記第２の向きから前記第１の向きへの、デバイスの向きの変化を検出することと、
前記デバイスの向きの変化に応じて、前記垂直入力モードから前記水平入力モードに切り替えることと、
を更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１００】
前記水平入力モードで動作している間に、
前記ユーザから、第１の複数語の手書き入力を受信することと、
前記第１の複数語の手書き入力に応じて、前記手書き入力インタフェースの候補表示区域内に、前記水平の書き込み方向に従って、第１の複数語の認識結果を提示することと、
前記垂直入力モードで動作している間に、
前記ユーザから、第２の複数語の手書き入力を受信することと、
前記第２の複数語の手書き入力に応じて、前記候補表示区域内に、前記垂直の書き込み方向に従って、第２の複数語の認識結果を提示することと、
を更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１０１】
前記第１の複数語の認識結果を選択する、第１のユーザ入力を受信することと、
前記第２の複数語の認識結果を選択する、第２のユーザ入力を受信することと、
前記手書き入力インタフェースのテキスト入力区域内に、前記第１の複数語の認識結果及び前記第２の複数語の認識結果の、対応のテキストを同時に表示することであって、前記第１の複数語の認識結果の前記対応のテキストが、前記水平の書き込み方向に従って表示され、前記第２の複数語の認識結果の前記対応のテキストが、前記垂直の書き込み方向に従って表示される、対応のテキストを同時に表示することと、
を更に含むことを特徴とする、請求項１００に記載の方法。
【請求項１０２】
前記手書き入力区域が、前記水平の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの上から下へのパラグラフ方向を有することを特徴とする、請求項９７に記載の方法。
【請求項１０３】
前記水平の書き込み方向が、左から右であることを特徴とする、請求項９７に記載の方法。
【請求項１０４】
前記水平の書き込み方向が、右から左であることを特徴とする、請求項９７に記載の方法。
【請求項１０５】
前記手書き入力区域が、前記垂直の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの左から右へのパラグラフ方向を有することを特徴とする、請求項９７に記載の方法。
【請求項１０６】
前記手書き入力区域が、前記垂直の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの右から左へのパラグラフ方向を有することを特徴とする、請求項９７に記載の方法。
【請求項１０７】
前記垂直の書き込み方向が、上から下であることを特徴とする、請求項９７に記載の方法。
【請求項１０８】
前記第１の向きが、デフォルトで横表示の向きであり、前記第２の向きが、デフォルトで縦表示の向きであることを特徴とする、請求項９７に記載の方法。
【請求項１０９】
前記デバイスの向きに関わりなく、前記水平入力モードと前記垂直入力モードとを手動で切り替えるために、前記手書き入力インタフェース内に、対応のアフォーダンスを提供することを更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１１０】
２つの代替的な書き込み方向を手動で切り替えるために、前記手書き入力インタフェース内に、対応のアフォーダンスを提供することを更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１１１】
２つの代替的なパラグラフ方向を手動で切り替えるために、前記手書き入力インタフェース内に、対応のアフォーダンスを提供することを更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１１２】
ユーザから手書き入力を受信することであって、前記手書き入力が、前記手書き入力インタフェースの前記手書き入力区域内に提供される、複数の手書きストロークを含む、手書き入力を受信することと、
前記手書き入力に応じて、前記手書き入力インタフェースの候補表示区域内に、１つ以上の認識結果を表示することと、
前記１つ以上の認識結果が、前記候補表示区域内に表示されている間に、現在の手書き入力モードから代替の手書き入力モードに切り替えるための、ユーザ入力を検出することと、
前記ユーザ入力に応じて、
前記現在の手書き入力モードから前記代替の手書き入力モードに切り替えることと、
前記手書き入力区域内から、前記手書き入力を消去することと、
前記候補表示区域内に表示された前記１つ以上の認識結果のうちの、最上ランクの認識結果を、前記手書き入力インタフェースのテキスト入力区域内に、自動的に入力することと、
を更に含むことを特徴とする、請求項９７に記載の方法。
【請求項１１３】
前記ユーザ入力が、現在の向きから、異なる向きへの、前記デバイスの回転であることを特徴とする、請求項１１２に記載の方法。
【請求項１１４】
前記ユーザ入力が、前記現在の手書き入力モードを、前記代替の手書き入力モードに手動で切り替えるための、アフォーダンスの呼び出しであることを特徴とする、請求項１１２に記載の方法。
【請求項１１５】
請求項９７から１１４に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１１６】
リアルタイム手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
ユーザから手書き入力を受信することであって、前記手書き入力が、前記デバイスに結合されたタッチ感知面上に提供される、複数の手書きストロークを含む、手書き入力を受信することと、
手書き入力インタフェースの手書き入力区域内に、前記複数の手書きストロークをレンダリングすることと、
前記複数の手書きストロークを、２つ以上の認識単位へと分割することであって、各認識単位が、前記複数の手書きストロークのうちの対応のサブセットを含む、２つ以上の認識単位へと分割することと、
前記ユーザから編集リクエストを受信することと、
前記編集リクエストに応じて、前記手書き入力区域内の前記２つ以上の認識単位を、視覚的に識別することと、
前記手書き入力区域から、前記２つ以上の認識単位のうちのそれぞれを、個別に削除する手段を提供することと、
を含むことを特徴とする、方法。
【請求項１１７】
前記２つ以上の認識単位のうちのそれぞれを、個別に削除するための前記手段が、前記各認識単位の近位に表示される、それぞれの削除ボタンであることを特徴とする、請求項１１６に記載の方法。
【請求項１１８】
前記２つ以上の認識単位のうちのそれぞれを、個別に削除するための前記手段が、前記各認識単位の上での、既定の削除ジェスチャ入力を検出する手段であることを特徴とする、請求項１１６に記載の方法。
【請求項１１９】
前記２つ以上の認識単位を視覚的に識別することが、前記手書き入力区域内の前記２つ以上の認識単位間の、それぞれの境界線を強調表示することを更に含むことを特徴とする、請求項１１６に記載の方法。
【請求項１２０】
前記編集リクエストが、前記手書き入力インタフェース内に提供された、既定のアフォーダンスの上で検出される、接触であることを特徴とする、請求項１１６に記載の方法。
【請求項１２１】
前記編集リクエストが、前記手書き入力インタフェース内の既定の区域の上で検出される、タップジェスチャであることを特徴とする、請求項１１６に記載の方法。
【請求項１２２】
前記既定の区域が、前記手書き入力インタフェースの前記手書き入力区域内に存在することを特徴とする、請求項１２１に記載の方法。
【請求項１２３】
前記既定の区域が、前記手書き入力インタフェースの前記手書き入力区域の外側に存在することを特徴とする、請求項１２１に記載の方法。
【請求項１２４】
前記２つ以上の認識単位のうちの第１の認識単位を、前記手書き入力区域から個別に削除するための削除入力を、前記ユーザから、前記提供された手段を通じて受信することと、
前記削除入力に応じて、前記手書き入力区域から、前記第１の認識単位内の、前記手書きストロークのうちの対応のサブセットを除去することと、
を更に含むことを特徴とする、請求項１１６に記載の方法。
【請求項１２５】
前記第１の認識単位が、前記２つ以上の認識単位内の、空間的に最初の認識単位であることを特徴とする、請求項１２４に記載の方法。
【請求項１２６】
前記第１の認識単位が、前記２つ以上の認識単位の中の、空間的に中間の認識単位であることを特徴とする、請求項１２４に記載の方法。
【請求項１２７】
前記複数の手書きストロークから、分割束を生成することであって、前記分割束が、それぞれが前記複数の手書きストロークから特定される対応の認識単位のセットを表す、複数の代替的な分割鎖を含む、分割束を生成することと、
前記ユーザから、２つ以上の連続的編集リクエストを受信することと、
前記２つ以上の連続的編集リクエストのそれぞれに応じて、前記手書き入力区域内で、前記複数の代替的な分割鎖のうちの異なる１つからの、前記対応の認識単位のセットを、視覚的に識別することと、
前記手書き入力区域内に現在表されている、前記対応の認識単位のセットのそれぞれを、個別に削除する手段を提供することと、
を更に含むことを特徴とする、請求項１２４に記載の方法。
【請求項１２８】
請求項１１６から１２７に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１２９】
リアルタイム手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
ユーザから第１の手書き入力を受信することであって、前記第１の手書き入力が、複数の手書きストロークを含み、前記複数の手書きストロークが、手書き入力インタフェースの手書き入力区域に関連付けられた、それぞれの書き込み方向に沿って分布する、複数の認識単位を形成する、第１の手書き入力を受信することと、
前記手書きストロークが前記ユーザによって提供される際に、前記手書き入力区域内に、前記複数の手書きストロークのそれぞれをレンダリングすることと、
前記認識単位が完全にレンダリングされた後に、前記複数の認識単位のそれぞれに関する、それぞれのフェーディングプロセスを開始することであって、前記それぞれのフェーディングプロセスの間に、前記第１の手書き入力内の前記認識単位の前記レンダリングが、次第にフェードする、それぞれのフェーディングプロセスを開始することと、
前記複数の認識単位のうちのフェードした認識単位によって占有されていた、前記手書き入力区域の領域の上に、前記ユーザから第２の手書き入力を受信することと、
前記第２の手書き入力の受信に応じて、
前記手書き入力区域内に、前記第２の手書き入力をレンダリングすることと、
全てのフェードした認識単位を、前記手書き入力区域から消去することと、
を含むことを特徴とする、方法。
【請求項１３０】
前記第１の手書き入力に関する、１つ以上の認識結果を生成することと、
前記手書き入力インタフェースの候補表示区域内に、前記１つ以上の認識結果を表示することと、
前記第２の手書き入力の受信に応じて、前記候補表示区域内に表示された最上ランクの認識結果を、ユーザ選択なしで、前記手書き入力インタフェースのテキスト入力区域内に、自動的に入力することと、
を更に含むことを特徴とする、請求項１２９に記載の方法。
【請求項１３１】
前記第１の手書き入力及び前記第２の手書き入力を含む、入力スタックを記憶することと、
前記第１の手書き入力と前記第２の手書き入力との連結から認識された、対応の空間的な文字の配列をそれぞれが含む、１つ以上の複数文字の認識結果を生成することと、
前記第２の手書き入力の前記レンダリングが、前記手書き入力区域内で、前記第１の手書き入力の前記レンダリングを置き換えている間に、前記手書き入力インタフェースの候補表示区域内に、前記１つ以上の複数文字の認識結果を表示することと、
を更に含むことを特徴とする、請求項１２９に記載の方法。
【請求項１３２】
各認識単位に関する前記それぞれのフェーディングプロセスが、前記認識単位が前記ユーザによって完了された後、既定の期間が経過している場合に開始されることを特徴とする、請求項１２９に記載の方法。
【請求項１３３】
各認識単位に関する前記それぞれのフェーディングプロセスが、前記認識単位の後に、前記ユーザが次の認識単位に関するストロークの入力を開始している場合に開始されることを特徴とする、請求項１２９に記載の方法。
【請求項１３４】
各認識単位に関する前記それぞれのフェーディングプロセスの終了状態が、前記認識単位に関して、既定の最小限の視認性を有する状態であることを特徴とする、請求項１２９に記載の方法。
【請求項１３５】
各認識単位に関する前記それぞれのフェーディングプロセスの終了状態が、前記認識単位に関して、ゼロの視認性を有する状態であることを特徴とする、請求項１２９に記載の方法。
【請求項１３６】
前記第１の手書き入力内の最後の認識単位がフェードした後、前記ユーザから、既定の再生入力を受信することと、
前記既定の再生入力の受信に応じて、前記最後の認識単位を、前記フェード状態から非フェード状態に復帰させることと、
を更に含むことを特徴とする、請求項１２９に記載の方法。
【請求項１３７】
前記既定の再生入力が、前記手書き入力インタフェース内に提供された削除ボタン上で検出される、初期の接触であることを特徴とする、請求項１３６に記載の方法。
【請求項１３８】
前記削除ボタン上で検出される持続的接触が、前記手書き入力区域から前記最後の認識単位を削除し、最後から２番目の認識単位を、前記フェード状態から前記非フェード状態に再生することを特徴とする、請求項１３６に記載の方法。
【請求項１３９】
請求項１２９から１３８に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１４０】
手書き認識を提供する方法であって、
１つ以上のプロセッサ及びメモリを有するデバイスで、
手書き認識モデルの、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを、別個に訓練することであって、
前記空間的に導出される特徴のセットが、それぞれが出力文字セットのそれぞれの文字に関する手書きサンプルの画像である、訓練画像のコーパスについて訓練され、
前記時間的に導出される特徴のセットが、ストローク分布プロファイルのコーパスについて訓練され、各ストローク分布プロファイルが、前記出力文字セットのそれぞれの文字に関する手書きサンプル内での、複数のストロークの空間的分布を、数値的に特徴付ける、
別個に訓練することと、
前記手書き認識モデル内で、前記空間的に導出される特徴のセットと前記時間的に導出される特徴のセットとを組み合わせることと、
前記手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含むことを特徴とする、方法。
【請求項１４１】
前記空間的に導出される特徴のセットを別個に訓練することが、
入力層、出力層、及び複数の畳み込み層を有する、畳み込みニューラルネットワークを訓練することを更に含み、前記複数の畳み込み層が、最初の畳み込み層、最終畳み込み層、前記最初の畳み込み層と前記最終畳み込み層との間の０以上の中間畳み込み層、及び、前記最終畳み込み層と前記出力層との間の隠れ層を含むことを特徴とする、請求項１４０に記載の方法。
【請求項１４２】
前記時間的に導出される特徴のセットを別個に訓練することが、
前記複数のストローク分布プロファイルを統計モデルに提供して、前記出力文字セットの前記それぞれの文字を分類するための、複数の時間的に導出されるパラメータ、及び前記複数の時間的に導出されるパラメータに関するそれぞれの重みを判定することを更に含むことを特徴とする、請求項１４１に記載の方法。
【請求項１４３】
前記手書き認識モデル内で、前記空間的に導出される特徴のセットと前記時間的に導出される特徴のセットとを組み合わせることが、
前記畳み込みニューラルネットワークの、前記畳み込み層のうちの１つ又は前記隠れ層内に、前記複数の空間的に導出されるパラメータ、及び前記複数の時間的に導出されるパラメータを導入することを含むことを特徴とする、請求項１４２に記載の方法。
【請求項１４４】
前記複数の時間的に導出されるパラメータ、及び前記複数の時間的に導出されるパラメータに関するそれぞれの重みが、手書き認識に関する前記畳み込みニューラルネットワークの前記最終畳み込み層内に導入されることを特徴とする、請求項１４３に記載の方法。
【請求項１４５】
前記複数の時間的に導出されるパラメータ、及び前記複数の時間的に導出されるパラメータに関するそれぞれの重みが、前記畳み込み手書き認識の前記隠れ層内に導入されることを特徴とする、請求項１４３に記載の方法。
【請求項１４６】
複数の書き込みサンプルから、前記ストローク分布プロファイルのコーパスを生成することを更に含み、
前記複数の手書きサンプルのそれぞれが、前記出力文字セット内の文字に対応し、前記手書きサンプルの各構成ストロークに関する、前記ストロークが書き込まれた際のそれぞれの空間的情報を、別個に保存し、
前記ストローク分布プロファイルのコーパスを生成することが、
前記複数の手書きサンプルのそれぞれに関して、
前記手書きサンプル内の構成ストロークを特定することと、
前記手書きサンプルの前記特定されたストロークのそれぞれに関して、複数の既定の方向のそれぞれに沿った、それぞれの占有率を算出することであって、占有率が、前記各ストローク方向の投影スパンと、前記書き込みサンプルの最大投影スパンとの比率であることと、
前記手書きサンプルの前記特定されたストロークのそれぞれに関して、前記各ストローク内のそれぞれのピクセル数と、前記書き込みサンプル内の総ピクセル数との比率に基づいて、前記各ストロークに関するそれぞれの飽和率を算出することと、
前記書き込みサンプルの前記ストローク分布プロファイルとして、前記手書きサンプルに関する特徴ベクトルを生成することであって、前記特徴ベクトルが、前記手書きサンプル内の少なくともＮ個のストロークの、前記それぞれの占有率及び前記それぞれの飽和率を含み、Ｎが既定の自然数である、特徴ベクトルを生成することと、
を更に含むことを特徴とする、請求項１４０に記載の方法。
【請求項１４７】
Ｎが、前記複数の書き込みサンプル内の、いずれの単一の書き込みサンプル内で観察される最大ストローク数よりも少ないことを特徴とする、請求項１４６に記載の方法。
【請求項１４８】
前記複数の手書きサンプルのそれぞれに関して、
前記既定の方向のそれぞれでの、前記特定されたストロークの前記それぞれの占有率を、降順に並べ替えることと、
Ｎ個の上位ランクの占有率及び飽和率の書き込みサンプルのみを、前記書き込みサンプルの前記特徴ベクトル内に含めることと、
を更に含むことを特徴とする、請求項１４７に記載の方法。
【請求項１４９】
前記複数の既定の方向が、前記書き込みサンプルの水平方向、垂直方向、正の４５度の方向、及び負の４５度の方向を含むことを特徴とする、請求項１４６に記載の方法。
【請求項１５０】
前記手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することが、
前記ユーザの手書き入力を受信することと、
前記ユーザの手書き入力の受信に応じて、手書き認識出力を、前記手書き入力の前記受信と実質的に同時に、前記ユーザに提供することと、
を更に含むことを特徴とする、請求項１４０に記載の方法。
【請求項１５１】
請求項１４０から１５０に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１５２】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、
手書き認識モデルの、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを、別個に訓練することであって、
前記空間的に導出される特徴のセットが、それぞれが出力文字セットのそれぞれの文字に関する手書きサンプルの画像である、訓練画像のコーパスについて訓練され、
前記時間的に導出される特徴のセットが、ストローク分布プロファイルのコーパスについて訓練され、各ストローク分布プロファイルが、前記出力文字セットのそれぞれの文字に関する手書きサンプル内での、複数のストロークの空間的分布を、数値的に特徴付ける、
別個に訓練することと、
前記手書き認識モデル内で、前記空間的に導出される特徴のセットと前記時間的に導出される特徴のセットとを組み合わせることと、
前記手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含む動作を実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項１５３】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１４０から１５０に記載の方法のいずれかを実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項１５４】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、
手書き認識モデルの、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを、別個に訓練することであって、
前記空間的に導出される特徴のセットが、それぞれが出力文字セットのそれぞれの文字に関する手書きサンプルの画像である、訓練画像のコーパスについて訓練され、
前記時間的に導出される特徴のセットが、ストローク分布プロファイルのコーパスについて訓練され、各ストローク分布プロファイルが、前記出力文字セットのそれぞれの文字に関する手書きサンプル内での、複数のストロークの空間的分布を、数値的に特徴付ける、
別個に訓練することと、
前記手書き認識モデル内で、前記空間的に導出される特徴のセットと前記時間的に導出される特徴のセットとを組み合わせることと、
前記手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することと、
を含む動作を実行させることを特徴とする、システム。
【請求項１５５】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１４０から１５０に記載の方法のいずれかを実行させることを特徴とする、システム。
【請求項１５６】
請求項１から１５０に記載の特徴の、いずれかの組み合わせを含むことを特徴とする、方法。
【請求項１５７】
記憶された命令を有する、非一時的コンピュータ可読媒体であって、前記命令が、１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１から１５０に記載の方法のいずれかを実行させることを特徴とする、非一時的コンピュータ可読媒体。
【請求項１５８】
システムであって、
１つ以上のプロセッサと、
記憶された命令を有するメモリと、
を備え、前記命令が、前記１つ以上のプロセッサによって実行されると、前記プロセッサに、請求項１から１５０に記載の方法のいずれかを実行させることを特徴とする、システム。
【請求項１５９】
電子デバイスであって、
ディスプレイと、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、
を備え、前記１つ以上のプログラムが、前記メモリ内に記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムが、請求項１から１５０に記載の方法のいずれかを実行する命令を含むことを特徴とする、電子デバイス。
【請求項１６０】
ディスプレイと、メモリと、前記メモリ内に記憶された１つ以上のプログラムを実行するための１つ以上のプロセッサとを備える電子デバイス上の、グラフィカルユーザインタフェースであって、請求項１から１５０に記載の方法のいずれかに従って表示されるユーザインタフェースを含むことを特徴とする、グラフィカルユーザインタフェース。
【請求項１６１】
電子デバイスであって、
ディスプレイと、
請求項１から１５０に記載の方法のいずれかを実行する手段と、
を備えることを特徴とする、電子デバイス。
【請求項１６２】
ディスプレイを備える電子デバイス内で使用するための、情報処理装置であって、
請求項１から１５０に記載の方法のいずれかを実行する手段を備えることを特徴とする、情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、コンピューティングデバイス上に手書き入力の機能性を提供することに関し、より具体的には、コンピューティングデバイス上に、リアルタイムの、マルチスクリプト、ストローク順序非依存式の、手書き認識及び入力の機能性を提供することに関する。
【背景技術】
【０００２】
手書き入力法は、タッチ感知面（例えば、タッチ感知ディスプレイスクリーン、又はタッチパッド）を装備するコンピューティングデバイス用の、重要な代替的入力方法である。多くのユーザ、特に、一部のアジア又はアラブ諸国のユーザは、筆写体で書くことに慣れており、キーボード上でのタイピングとは対照的に、普通の手書きで書き込むことを快適に感じることができる。
【０００３】
中国語の漢字及び日本語の漢字（中国文字とも称される）などの、特定の表語文字書き込みシステムに関しては、代替的な音節入力法（例えば、ピンイン又は仮名）が、対応する表語文字書き込みシステムの文字を入力するために利用可能であっても、ユーザが、表語文字をどのように表音して綴るかを知らない場合、及び、その表語文字の不正確な表音式綴りを使用する場合、そのような音節入力法は不適切である。それゆえ、コンピューティングデバイス上で手書き入力の使用が可能であることは、関連する表語文字書き込みシステムに関して、十分に、又は全く単語を発音することができないユーザにとって、極めて重要となる。
【０００４】
手書き入力の機能性は、世界の特定の領域内では、ある程度普及してきてはいるが、依然として改善が必要とされている。具体的には、人間の手書きは、（例えば、ストローク順序、サイズ、書体などの観点から）非常に変動的であり、高品質の手書き認識ソフトウェアは複雑で、広範囲の訓練を必要とする。それゆえ、限られたメモリ及びコンピューティングリソースを有するモバイルデバイス上に、効率的なリアルタイム手書き認識を提供することは、困難な課題となっている。
【０００５】
更には、今日の多文化的世界では、多くの国々のユーザは多数の言語を使用し、２種以上のスクリプトで書き込むこと（例えば、映画のタイトルを英語で言及する、中国語のメッセージを書き込むこと）を頻繁に必要とし得る。しかしながら、書き込み中に、認識システムを、所望のスクリプト又は言語に手動で切り替えることは、煩雑かつ非効率的である。更には、従来のマルチスクリプト手書き認識技術の有用性は、厳格に限定されているが、これは、デバイスの認識能力を、複数のスクリプトを同時に取り扱うように拡大することが、その認識システムの複雑性、及びコンピュータリソースに対する要求を、大幅に増大させるためである。
【０００６】
更には、従来の手書き技術は、認識精度を達成するために、言語又はスクリプト固有の特殊性に依存するところが大きい。そのような特殊性は、他の言語又はスクリプトに、容易に移植可能なものではない。それゆえ、新たな言語又はスクリプトに関する、手書き入力能力を追加することは、ソフトウェア及びデバイスの供給元によって容易には着手されることのない、困難な作業である。結果として、多言語のユーザには、自身の電子デバイスに関する、重要な代替的入力方法が与えられていない。
【０００７】
手書き入力を提供するための従来のユーザインタフェースは、ユーザから手書き入力を受け入れるための区域、及び手書き認識結果を表示するための区域を含む。小さいフォームファクタを有するポータブルデバイス上では、効率、精度、及び全般的なユーザエクスペリエンスを改善するために、ユーザインタフェースの著しい改善が、依然として必要とされている。
【発明の開示】
【０００８】
本明細書は、汎用認識部を使用する、マルチスクリプト手書き認識を提供するための技術を説明する。この汎用認識部は、種々の言語又はスクリプトでの文字に関する書き込みサンプルの、大規模なマルチスクリプトコーパスを使用して訓練される。この汎用認識部の訓練は、言語非依存式、スクリプト非依存式、ストローク順序非依存式、及びストローク方向非依存式である。それゆえ、使用中に入力言語間の手動切り替えを必要とすることなく、同じ認識部が、混合言語、混合スクリプトの手書き入力を認識することが可能である。更には、この汎用認識部は、モバイルデバイス上にスタンドアロン型モジュールとして配備されるほど十分に軽量であることにより、世界中の種々の領域で使用される、種々の言語及びスクリプトでの手書き入力が可能となる。
【０００９】
更には、この汎用認識部は、ストローク順序非依存式、及びストローク方向非依存式の、空間的に導出される特徴について訓練され、ストロークレベルでの時間的情報又は配列情報を必要としないため、この汎用認識部は、従来の時間に基づく認識方法（例えば、隠れマルコフ法（ＨＭＭ）に基づく認識方法）に勝る、数多くの更なる特徴及び利点を提供する。例えば、ユーザは、１つ以上の文字、語句、及び文のストロークを、任意の順序で入力しても、依然として同じ認識結果を得ることが可能となる。それゆえ、順序外の複数文字入力、及び、以前に入力した文字の順序外の修正（例えば、追加又は書き直し）が、この場合に可能となる。
【００１０】
更には、この汎用認識部は、リアルタイム手書き認識に関しても使用され、その場合、各ストロークに関する時間的情報が利用可能であり、汎用認識部によって文字認識が実行される前に、手書き入力の曖昧性を除去するか、又は手書き入力を分割するために、任意選択的に使用される。本明細書で説明される、リアルタイムの、ストローク順序非依存式の認識は、従来のオフライン認識方法（例えば、光学式文字認識（ＯＣＲ））とは異なるものであり、従来のオフライン認識方法よりも良好な性能を提供することができる。更には、本明細書で説明される汎用認識部は、種々の変動（例えば、速度、緩急、ストローク順序、ストローク方向、ストローク連続性などの変動）の顕著な特徴を、認識システム内に明示的に組み込むことなく、個別の書き癖における高い変動性（例えば、速度、緩急、ストローク順序、ストローク方向、ストローク連続性などの変動性）を処理することが可能であることにより、認識システムの全体的な複雑性が低減される。
【００１１】
本明細書で説明されるように、一部の実施形態では、時間的に導出されるストローク分布情報が、任意選択的に、汎用認識部内に再導入されて、認識精度が向上し、同じ入力画像に関する、類似した見た目の認識出力間の曖昧性が除去される。時間的に導出されるストローク分布情報の再導入は、汎用認識部のストローク順序及びストローク方向非依存性を損なうものではないが、これは、時間的に導出される特徴と、空間的に導出される特徴とが、別個の訓練プロセスを通じて得られるものであり、その別個の訓練プロセスが完了した後にのみ、手書き認識モデル内で組み合わされるためである。更には、時間的に導出されるストローク分布情報は、類似した見た目の文字の、ストローク順序の相違についての明示的知識に依存することなく、類似した見た目の文字の、顕著な時間的特性を捕捉するように、慎重に設計される。
【００１２】
手書き入力の機能性を提供するためのユーザインタフェースもまた、本明細書で説明される。
【００１３】
一部の実施形態では、マルチスクリプト手書き認識を提供する方法は、マルチスクリプト訓練コーパスの空間的に導出される特徴に基づいて、マルチスクリプト手書き認識モデルを訓練することであって、このマルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、訓練することと、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されている、そのマルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することとを含む。
【００１４】
一部の実施形態では、マルチスクリプト手書き認識を提供する方法は、マルチスクリプト手書き認識モデルを受信することであって、このマルチスクリプト認識モデルが、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されており、このマルチスクリプト訓練コーパスが、少なくとも３つの非重複スクリプトの文字に対応する、それぞれの手書きサンプルを含む、マルチスクリプト手書き認識モデルを受信することと、ユーザから手書き入力を受信することであって、この手書き入力が、ユーザデバイスに結合されたタッチ感知面上に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、この手書き入力の受信に応じて、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されている、マルチスクリプト手書き認識モデルに基づいて、１つ以上の手書き認識結果を、ユーザにリアルタイムで提供することとを含む。
【００１５】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、ユーザから複数の手書きストロークを受信することであって、それらの複数の手書きストロークが、１つの手書き文字に対応する、複数の手書きストロークを受信することと、それらの複数の手書きストロークに基づいて、入力画像を生成することと、その手書き文字のリアルタイム認識を実行するために、手書き認識モデルに入力画像を提供することであって、この手書き認識モデルが、ストローク順序非依存式の手書き認識を提供する、入力画像を提供することと、ユーザから受信された複数の手書きストロークの、それぞれの順序に関わりなく、複数の手書きストロークを受信するリアルタイムで、同一の第１の出力文字を表示することとを含む。
【００１６】
一部の実施形態では、この方法は、ユーザから第２の複数の手書きストロークを受信することであって、それらの第２の複数の手書きストロークが、第２の手書き文字に対応する、受信することと、それらの第２の複数の手書きストロークに基づいて、第２の入力画像を生成することと、第２の手書き文字のリアルタイム認識を実行するために、手書き認識モデルに第２の入力画像を提供することと、第２の複数の手書きストロークを受信するリアルタイムで、第２の複数の手書きストロークに対応する第２の出力文字を表示することであって、第１の出力文字と第２の出力文字とが、ユーザによって提供された、第１の複数の手書き入力及び第２の複数の手書き入力のそれぞれの順序とは無関係な、空間的配列で同時に表示される、第２の出力文字を表示することとを更に含む。
【００１７】
一部の実施形態では、第２の複数の手書きストロークは、ユーザデバイスの手書き入力インタフェースの、デフォルトの書き込み方向に沿って、第１の複数の手書きストロークを空間的に追従し、第２の出力文字は、そのデフォルトの書き込み方向に沿った空間的配列で、第１の出力文字を追従し、この方法は、手書き文字を訂正するために、ユーザから第３の手書きストロークを受信することであって、この第３の手書きストロークが、第１の複数の手書きストローク及び第２の複数の手書きストロークよりも時間的に後に受信される、第３の手書きストロークを受信することと、この第３の手書きストロークの受信に応じて、その第３の手書きストロークの、第１の複数の手書きストロークへの相対的な近接性に基づいて、第１の複数の手書きストロークと同じ認識単位に、その手書きストロークを割り当てることと、第１の複数の手書きストローク及び第３の手書きストロークに基づいて、訂正された入力画像を生成することと、訂正された手書き文字のリアルタイム認識を実行するために、この訂正された入力画像を、手書き認識モデルに提供することと、第３の手書き入力の受信に応じて、訂正された入力画像に対応する第３の出力文字を表示することであって、この第３の出力文字が、第１の出力文字に置き換わり、デフォルトの書き込み方向に沿った空間的配列で、第２の出力文字と同時に表示される、第３の出力文字を表示することとを更に含む。
【００１８】
一部の実施形態では、この方法は、第３の出力文字及び第２の出力文字が、手書き入力インタフェースの候補表示区域内に、認識結果として同時に表示されている間に、ユーザから削除入力を受信することと、この削除入力に応じて、認識結果から第２の出力文字を削除する一方で、第３の出力文字を認識結果内に維持することとを更に含む。
【００１９】
一部の実施形態では、手書き入力インタフェースの手書き入力区域内に、第１の複数の手書きストローク、第２の複数の手書きストローク、及び第３の手書きストロークを、それらの手書きストロークのそれぞれがユーザによって提供される際にリアルタイムでレンダリングすることと、削除入力の受信に応じて、手書き入力区域から、第２の複数の手書きストロークの、それぞれのレンダリングを削除する一方で、第１の複数の手書きストローク及び第３の手書きストロークの、それぞれのレンダリングを、手書き入力区域内に維持することとである。
【００２０】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、ユーザから手書き入力を受信することであって、この手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、１つ以上の手書きストロークを含む、手書き入力を受信することと、手書き認識モデルに基づいて、その手書き入力に関する複数の出力文字を特定することと、既定のカテゴリ化基準に基づいて、それらの複数の出力文字を、２つ以上のカテゴリへと分類することと、手書き入力インタフェースの候補表示区域の初期ビュー内に、２つ以上のカテゴリのうちの第１のカテゴリ内の、それぞれの出力文字を表示することであって、この候補表示区域の初期ビューが、候補表示区域の拡張ビューを呼び出すためのアフォーダンスと同時に提供される、出力文字を表示することと、この拡張ビューを呼び出すためのアフォーダンスを選択する、ユーザ入力を受信することと、そのユーザ入力に応じて、候補表示区域の拡張ビュー内に、第１のカテゴリ内のそれぞれの出力文字、及び、候補表示区域の初期ビュー内には従前に表示されていなかった、２つ以上のカテゴリのうちの少なくとも第２のカテゴリ内の、それぞれの出力文字を表示することとを含む。
【００２１】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、ユーザから手書き入力を受信することであって、この手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含む、手書き入力を受信することと、手書き認識モデルに基づいて、その手書き入力から複数の出力文字を認識することであって、それらの出力文字が、少なくとも第１の絵文字、及び自然人間言語のスクリプトからの少なくとも第１の文字を含む、複数の出力文字を認識することと、それらの第１の絵文字と自然人間言語のスクリプトからの第１の文字とを含む認識結果を、手書き入力インタフェースの候補表示区域内に表示することとを含む。
【００２２】
一部の実施形態では、手書き認識を提供する方法は、ユーザから手書き入力を受信することであって、この手書き入力が、デバイスに結合されたタッチ感知面内に提供される、複数の手書きストロークを含む、手書き入力を受信することと、手書き入力インタフェースの手書き入力区域内に、それらの複数の手書きストロークをリアルタイムでレンダリングすることと、それらの複数の手書きストロークの上での、ピンチジェスチャ入力及び拡大ジェスチャ入力のうちの一方を受信することと、ピンチジェスチャ入力の受信に際して、複数の手書きストロークを、単一の認識単位として処理することによって、それらの複数の手書きストロークに基づいた、第１の認識結果を生成することと、拡大ジェスチャ入力の受信に際して、複数の手書きストロークを、拡大ジェスチャ入力によって引き離された２つの別個の認識単位として処理することによって、それらの複数の手書きストロークに基づいた、第２の認識結果を生成することと、第１の認識結果及び第２の認識結果のうちの、それぞれの一方の生成に際して、生成された認識結果を、手書き入力インタフェースの候補表示区域内に表示することとを含む。
【００２３】
一部の実施形態では、手書き認識を提供する方法は、ユーザから手書き入力を受信することであって、この手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含むことと、それらの複数の手書きストロークから、複数の認識単位を特定することであって、各認識単位が、それらの複数の手書きストロークのうちの対応のサブセットを含む、複数の認識単位を特定することと、複数の認識単位から認識されたそれぞれの文字を含む、複数文字の認識結果を生成することと、その複数文字の認識結果を、手書き入力インタフェースの候補表示区域内に表示することと、その複数文字の認識結果が候補表示区域内に表示されている間に、ユーザから削除入力を受信することと、この削除入力の受信に応じて、候補表示区域内に表示された複数文字の認識結果から、最後の文字を除去することとを含む。
【００２４】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、デバイスの向きを判定することと、デバイスが第１の向きにあることに従って、デバイス上に、手書き入力インタフェースを、水平入力モードで提供することであって、この水平入力モードで入力される手書き入力のそれぞれの行が、水平の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される、水平入力モードで提供することと、デバイスが第２の向きにあることに従って、デバイス上に、手書き入力インタフェースを、垂直入力モードで提供することであって、この垂直入力モードで入力される手書き入力のそれぞれの行が、垂直の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される、垂直入力モードで提供することとを含む。
【００２５】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、ユーザから手書き入力を受信することであって、この手書き入力が、デバイスに結合されたタッチ感知面上に提供される、複数の手書きストロークを含む、手書き入力を受信することと、手書き入力インタフェースの手書き入力区域内に、それらの複数の手書きストロークをレンダリングすることと、それらの複数の手書きストロークを、２つ以上の認識単位へと分割することであって、各認識単位が、それらの複数の手書きストロークのうちの対応のサブセットを含む、２つ以上の認識単位へと分割することと、ユーザから編集リクエストを受信することと、この編集リクエストに応じて、手書き入力区域内の２つ以上の認識単位を、視覚的に識別することと、手書き入力区域から、２つ以上の認識単位のうちのそれぞれを、個別に削除する手段を提供することとを含む。
【００２６】
一部の実施形態では、リアルタイム手書き認識を提供する方法は、ユーザから第１の手書き入力を受信することであって、この第１の手書き入力が、複数の手書きストロークを含み、それらの複数の手書きストロークが、手書き入力インタフェースの手書き入力区域に関連付けられた、それぞれの書き込み方向に沿って分布する、複数の認識単位を形成する、第１の手書き入力を受信することと、それらの手書きストロークがユーザによって提供される際に、手書き入力区域内に、それらの複数の手書きストロークのそれぞれをレンダリングすることと、認識単位が完全にレンダリングされた後に、複数の認識単位のそれぞれに関する、それぞれのフェーディングプロセスを開始することであって、それぞれのフェーディングプロセスの間に、第１の手書き入力内の認識単位のレンダリングが、次第にフェードする、それぞれのフェーディングプロセスを開始することと、複数の認識単位のうちのフェードした認識単位によって占有されていた、手書き入力区域の領域の上に、ユーザから第２の手書き入力を受信することと、この第２の手書き入力の受信に応じて、手書き入力区域内に、その第２の手書き入力をレンダリングすることと、全てのフェードした認識単位を、手書き入力区域から消去することとを含む。
【００２７】
一部の実施形態では、手書き認識を提供する方法は、手書き認識モデルの、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを、別個に訓練することであって、空間的に導出される特徴のセットは、それぞれが、出力文字セットのそれぞれの文字に関する手書きサンプルの画像である、訓練画像のコーパスについて訓練され、時間的に導出される特徴のセットは、ストローク分布プロファイルのコーパスについて訓練され、各ストローク分布プロファイルが、出力文字セットのそれぞれの文字に関する手書きサンプル内での、複数のストロークの空間的分布を、数値的に特徴付けることと、手書き認識モデル内で、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを組み合わせる、別個に訓練することと、その手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することとを含む。
【００２８】
本明細書で説明される主題の、１つ以上の実施形態の詳細が、添付図面及び以下の説明に記載される。本主題の他の特徴、態様、及び利点は、それらの説明、図面、及び特許請求の範囲から明らかとなるであろう。
【図面の簡単な説明】
【００２９】
【図１】一部の実施形態に係る、タッチ感知ディスプレイを備えるポータブル多機能デバイスを示すブロック図である。
【００３０】
【図２】一部の実施形態に係る、タッチ感知ディスプレイを有するポータブル多機能デバイスを示す。
【００３１】
【図３】一部の実施形態に係る、ディスプレイ及びタッチ感知面を備える、例示的な多機能デバイスのブロック図である。
【００３２】
【図４】一部の実施形態に係る、ディスプレイとは別個のタッチ感知面を備える多機能デバイスに関する、例示的ユーザインタフェースを示す。
【００３３】
【図５】一部の実施態様による、手書き入力システムの動作環境のブロック図である。
【００３４】
【図６】一部の実施形態に係る、マルチスクリプト手書き認識モデルのブロック図である。
【００３５】
【図７】一部の実施形態に係る、マルチスクリプト手書き認識モデルを訓練するための、例示的プロセスの流れ図である。
【００３６】
【図８Ａ】一部の実施形態に係る、ポータブル多機能デバイス上での、リアルタイムのマルチスクリプト手書き認識及び入力を示す、例示的ユーザインタフェースを示す。
【図８Ｂ】一部の実施形態に係る、ポータブル多機能デバイス上での、リアルタイムのマルチスクリプト手書き認識及び入力を示す、例示的ユーザインタフェースを示す。
【００３７】
【図９Ａ】ポータブル多機能デバイス上での、リアルタイムのマルチスクリプト手書き認識及び入力を提供するための、例示的プロセスの流れ図である。
【図９Ｂ】ポータブル多機能デバイス上での、リアルタイムのマルチスクリプト手書き認識及び入力を提供するための、例示的プロセスの流れ図である。
【００３８】
【図１０Ａ】一部の実施形態に係る、ポータブル多機能デバイス上での、リアルタイムの、ストローク順序非依存式の手書き認識及び入力を提供するための、例示的プロセスの流れ図である。
【図１０Ｂ】一部の実施形態に係る、ポータブル多機能デバイス上での、リアルタイムの、ストローク順序非依存式の手書き認識及び入力を提供するための、例示的プロセスの流れ図である。
【図１０Ｃ】は、一部の実施形態に係る、ポータブル多機能デバイス上での、リアルタイムの、ストローク順序非依存式の手書き認識及び入力を提供するための、例示的プロセスの流れ図である。
【００３９】
【図１１Ａ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｂ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｃ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｄ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｅ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｆ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｇ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｈ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｉ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｊ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【図１１Ｋ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的ユーザインタフェースを示す。
【００４０】
【図１２Ａ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的プロセスの流れ図である。
【図１２Ｂ】一部の実施形態に係る、候補表示区域の通常ビュー内に、認識結果の１つのカテゴリを選択的に表示し、候補表示区域の拡張ビュー内に、認識結果の他のカテゴリを選択的に表示するための、例示的プロセスの流れ図である。
【００４１】
【図１３Ａ】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的ユーザインタフェースを示す。
【図１３Ｂ】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的ユーザインタフェースを示す。
【図１３Ｃ】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的ユーザインタフェースを示す。
【図１３Ｄ】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的ユーザインタフェースを示す。
【図１３Ｅ】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的ユーザインタフェースを示す。
【００４２】
【図１４】一部の実施形態に係る、手書き入力を通じて絵文字を入力するための、例示的プロセスの流れ図である。
【００４３】
【図１５Ａ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｂ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｃ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｄ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｅ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｆ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｇ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｈ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｉ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｊ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【図１５Ｋ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的ユーザインタフェースを示す。
【００４４】
【図１６Ａ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的プロセスの流れ図である。
【図１６Ｂ】一部の実施形態に係る、ピンチジェスチャ又は拡大ジェスチャを使用して、現時点で蓄積されている手書き入力を、どのように１つ以上の認識単位へと分離するかについて、手書き入力モジュールに通知するための、例示的プロセスの流れ図である。
【００４５】
【図１７Ａ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｂ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｃ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｄ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｅ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｆ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｇ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【図１７Ｈ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【００４６】
【図１８Ａ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的プロセスの流れ図である。
【図１８Ｂ】一部の実施形態に係る、ユーザの手書き入力の文字単位での削除を提供するための、例示的プロセスの流れ図である。
【００４７】
【図１９Ａ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【図１９Ｂ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【図１９Ｃ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【図１９Ｄ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【図１９Ｅ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【図１９Ｆ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的ユーザインタフェースを示す。
【００４８】
【図２０Ａ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的プロセスの流れ図である。
【図２０Ｂ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的プロセスの流れ図である。
【図２０Ｃ】一部の実施形態に係る、垂直書き込みモードと水平書き込みモードとを切り替えるための、例示的プロセスの流れ図である。
【００４９】
【図２１Ａ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｂ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｃ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｄ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｅ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｆ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｇ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【図２１Ｈ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、ユーザインタフェースを示す。
【００５０】
【図２２Ａ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、例示的プロセスの流れ図である。
【図２２Ｂ】一部の実施形態に係る、ユーザの手書き入力内で特定された個別の認識単位を表示し、選択的に削除する手段を提供するための、例示的プロセスの流れ図である。
【００５１】
【図２３Ａ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｂ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｃ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｄ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｅ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｆ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｇ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｈ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｉ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｊ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｋ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【図２３Ｌ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的ユーザインタフェースを示す。
【００５２】
【図２４Ａ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的プロセスの流れ図である。
【図２４Ｂ】一部の実施形態に係る、手書き入力区域内の、既存の手書き入力の上に提供される新たな手書き入力を、その既存の手書き入力に関して表示された認識結果を入力するための暗黙的確認入力として利用するための、例示的プロセスの流れ図である。
【００５３】
【図２５Ａ】一部の実施形態に係る、手書き認識モデルのストローク順序及びストローク方向依存性を損なうことなく、空間的に導出される特徴に基づく手書き認識モデル内に、時間的に導出されるストローク分布情報を統合するための、例示的プロセスの流れ図である。
【図２５Ｂ】一部の実施形態に係る、手書き認識モデルのストローク順序及びストローク方向依存性を損なうことなく、空間的に導出される特徴に基づく手書き認識モデル内に、時間的に導出されるストローク分布情報を統合するための、例示的プロセスの流れ図である。
【００５４】
【図２６】一部の実施形態に係る、例示的な手書き認識システムの、空間的に導出される特徴及び時間的に導出される特徴の別個の訓練、並びに後続の統合を示す、ブロック図である。
【００５５】
【図２７】文字のストローク分布プロファイルを計算するための、例示的方法を示すブロック図である。
【００５６】
類似の参照番号は、これらの図面全体を通して対応する部分を指す。
【発明を実施するための形態】
【００５７】
多くの電子デバイスは、文字入力用のソフトキーボードを備える、グラフィカルユーザインタフェースを有する。一部の電子デバイス上では、ユーザはまた、手書き入力インタフェースをインストールするか、又は有効化することが可能な場合もあり、この手書き入力インタフェースにより、ユーザは、そのデバイスに結合されたタッチ感知ディスプレイスクリーン又はタッチ感知面上での手書きを介して、文字を入力することが可能となる。従来の手書き認識入力の方法及びユーザインタフェースは、幾つかの問題及び欠点を有する。例えば、
●一般に、従来の手書き入力の機能性は、言語ごとに、又はスクリプトごとに有効化される。追加される各入力言語は、別個の記憶スペース及びメモリを費やす、別個の手書き認識モデルのインストールを必要とする。異なる言語に関する手書き認識モデルを組み合わせることによってもたらされる相乗効果は、僅かなものであり、混合言語又は混合スクリプトの手書き認識は、複雑な曖昧性除去プロセスのために、従来は、極めて長い時間を要するものであった。
●更には、従来の手書き認識システムは、文字認識に関して、言語固有又はスクリプト固有の特性に依存するところが大きい。混合言語の手書き入力の認識は、低い精度を有するものであった。更には、認識される言語の利用可能な組み合わせは、極めて限定される。殆どのシステムは、非デフォルトの各言語又は各スクリプトで手書き入力を提供する前に、所望の言語固有の手書き認識部を、ユーザが手動で指定することを必要とするものであった。
●多くの既存のリアルタイム手書き認識モデルは、ストローク単位レベルでの、時間的情報又は配列情報を必要とし、このことは、どのように文字が書かれ得るかの高い変動性（例えば、書体又は個人的な癖による、ストロークの形状、長さ、緩急、分割、順序、及び方向の高い変動性）に対処する場合に、不正確な認識結果を生じさせる。一部のシステムはまた、手書き入力を提供する場合に、ユーザが、厳格な（例えば、各文字入力のサイズ、配列、及び時間枠に対する、組み込みの仮定条件を有する）空間的及び時間的基準を順守することも必要とする。これらの基準からのいずれの逸脱も、修正することが困難な、不正確な認識結果を引き起こすものであった。
●現時点では、殆どのリアルタイム手書き入力インタフェースは、ユーザが一度に少数の文字を入力することのみを可能とする。長い語句又は文の入力は、短い分節へと分解されて、別個に入力される。この形式的な入力は、構成の流れを維持するための、ユーザに対する認知負担を強いるだけではなく、以前に入力された文字又は語句を、ユーザが修正若しくは訂正することも困難にさせる。
【００５８】
以下で説明される実施形態は、これらの問題及び関連する問題に対処する。
【００５９】
以下の図１〜図４は、例示的デバイスの説明を提供する。図５、図６、及び図２６、図２７は、例示的な手書き認識及び入力システムを示す。図８Ａ、図８Ｂ、図１１Ａ〜図１１Ｋ、図１３Ａ〜図１３Ｅ、図１５Ａ〜図１５Ｋ、図１７Ａ〜図１７Ｆ、図１９Ａ〜図１９Ｆ、図２１Ａ〜図２１Ｈ、図２３Ａ〜図１２Ｌは、手書き認識及び入力に関する、例示的ユーザインタフェースを示す。図７、図９Ａ，図９Ｂ、図１０Ａ〜図１０Ｃ、図１２Ａ、図１２Ｂ、図１４、図１６Ａ、図１６Ｂ、図１８Ａ、図１８Ｂ、図２０Ａ〜図２０Ｃ、図２２Ａ、図２２Ｂ、図２４Ａ、図２４Ｂ、及び図２５は、手書き認識モデルを訓練すること、リアルタイムの手書き認識結果を提供すること、手書き入力を入力して訂正する手段を提供すること、及び認識結果をテキスト入力として入力する手段を提供することを含む、手書き認識及び入力を可能にする方法を示す、流れ図である。図８Ａ、図８Ｂ、図１１Ａ〜図１１Ｋ、図１３Ａ〜図１３Ｅ、図１５Ａ〜図１５Ｋ、図１７Ａ〜図１７Ｆ、図１９Ａ〜図１９Ｆ、図２１Ａ〜図２１Ｈ、図２３Ａ〜図１２Ｌでのユーザインタフェースは、図７、図９Ａ，図９Ｂ、図１０Ａ〜図１０Ｃ、図１２Ａ、図１２Ｂ、図１４、図１６Ａ、図１６Ｂ、図１８Ａ、図１８Ｂ、図２０Ａ〜図２０Ｃ、図２２Ａ、図２２Ｂ、図２４Ａ、図２４Ｂ、及び図２５でのプロセスを示すために使用される。
例示的デバイス
【００６０】
ここで、添付図面に実施例が示される実施形態を、詳細に参照する。以下の発明を実施するための形態では、本発明の完全な理解を提供するために、数多くの具体的な詳細が記載される。しかしながら、本発明は、これらの具体的な詳細を伴わずとも実践することができる点が、当業者には明らかとなるであろう。他の例では、周知の方法、手順、構成要素、回路、及びネットワークは、実施形態の態様を不必要に不明瞭なものとしないよう、詳細には説明されていない。
【００６１】
本明細書では、様々な要素を説明するために第１、第２などの用語が使用される場合があるが、それらの要素は、これらの用語によって限定されるべきではないこともまた、理解されるであろう。これらの用語は、ある要素を別の要素から識別するためにのみ使用される。例えば、本発明の範囲から逸脱することなく、第１の接触を第２の接触と呼ぶことが可能であり、同様に、第２の接触を第１の接触と呼ぶことが可能である。第１の接触及び第２の接触は、双方とも接触であるが、それらは同じ接触ではない。
【００６２】
本明細書での本発明の説明で使用される用語法は、特定の実施形態を説明することのみを目的とするものであって、本発明を限定することを意図するものではない。本発明の説明及び添付の特許請求の範囲で使用されるとき、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用するとき、用語「及び／又は」は、関連する列挙された項目のうちの１つ以上の、任意の全ての可能な組み合わせを指し、それらの組み合わせを包含することもまた、理解されるであろう。用語「ｉｎｃｌｕｄｅｓ（含む）」、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｃｏｍｐｒｉｓｅｓ（備える）」、及び／又は「ｃｏｍｐｒｉｓｉｎｇ（備える）」は、本明細書で使用される場合、記述される特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらの群の存在若しくは追加を排除するものではないことが、更に理解されるであろう。
【００６３】
本明細書で使用するとき、用語「〜の場合には」は、文脈に応じて、「〜のとき」若しくは「〜する際」、又は「〜という判定に応じて」若しくは「〜の検出に応じて」を意味するものと解釈することができる。同様に、語句「〜と判定される場合には」又は「（記述される条件又はイベント）が検出される場合には」は、文脈に応じて、「〜と判定される際」若しくは「〜との判定に応じて」、又は「（記述される条件又はイベント）が検出される際」若しくは「（記述される条件又はイベント）の検出に応じて」を意味するものと解釈することができる。
【００６４】
電子デバイス、そのようなデバイス用のユーザインタフェース、及びそのようなデバイスを使用するための関連プロセスの、実施形態を説明する。一部の実施形態では、このデバイスは、ＰＤＡ機能及び／又は音楽プレーヤ機能などの他の機能もまた含む、モバイル電話などのポータブル通信デバイスである。ポータブル多機能デバイスの例示的実施形態としては、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）によるｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスが挙げられるが、これらに限定されない。タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を備えるラップトップコンピュータ又はタブレットコンピュータなどの、他のポータブル電子デバイスもまた、使用することができる。また、一部の実施形態では、このデバイスは、ポータブル通信デバイスではなく、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を備えるデスクトップコンピュータであることも理解されたい。
【００６５】
以下の論考では、ディスプレイ及びタッチ感知面を含む、電子デバイスを説明する。しかしながら、この電子デバイスは、物理キーボード、マウス、及び／又はジョイスティックなどの、１つ以上の他の物理ユーザインタフェースデバイスを含み得ることを理解されたい。
【００６６】
このデバイスは、典型的には、描画アプリケーション、プレゼンテーションアプリケーション、ワードプロセッシングアプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、テレビ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、トレーニングサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブブラウジングアプリケーション、デジタル音楽プレーヤアプリケーション、及び／又はデジタルビデオプレーヤアプリケーションのうちの１つ以上などの、様々なアプリケーションをサポートする。
【００６７】
このデバイス上で実行することが可能な様々なアプリケーションは、タッチ感知面などの、少なくとも１つの共通の物理ユーザインタフェースデバイスを使用することができる。タッチ感知面の１つ以上の機能、並びにデバイス上に表示される対応する情報は、アプリケーションごとに、及び／又はそれぞれのアプリケーション内で、調節並びに／あるいは変更することができる。この方式で、そのデバイスの共通の（タッチ感知面などの）物理アーキテクチャは、ユーザにとって直観的かつ透明なユーザインタフェースを使用して、様々なアプリケーションをサポートすることができる。
【００６８】
ここで、タッチ感知ディスプレイを備えるポータブルデバイスの実施形態に注意を向ける。図１は、一部の実施形態に係る、タッチ感知ディスプレイ１１２を備えるポータブル多機能デバイス１００を示すブロック図である。タッチ感知ディスプレイ１１２は、便宜上「タッチスクリーン」と呼ばれる場合があり、タッチ感知ディスプレイシステムとしても既知であるか、又はそのように呼ばれる場合もある。デバイス１００は、メモリ１０２（１つ以上のコンピュータ可読記憶媒体を含み得る）、メモリコントローラ１２２、１つ以上の処理ユニット（ＣＰＵ）１２０、周辺機器インタフェース１１８、ＲＦ回路機構１０８、オーディオ回路機構１１０、スピーカ１１１、マイクロホン１１３、入出力（Ｉ／Ｏ）サブシステム１０６、他の入力又は制御デバイス１１６、並びに外部ポート１２４を含み得る。デバイス１００は、１つ以上の光センサ１６４を含み得る。これらの構成要素は、１つ以上の通信バス又は信号線１０３を介して通信することができる。
【００６９】
デバイス１００は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス１００は、示されているものよりも多くの構成要素又は少ない構成要素を有し得るものであり、２つ以上の構成要素を組み合わせることができ、又は、それらの構成要素の異なる構成若しくは配置を有し得ることを理解されたい。図１に示される様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含めた、ハードウェア、ソフトウェア、あるいはハードウェア及びソフトウェアの双方の組み合わせとして実装することができる。
【００７０】
メモリ１０２は、高速ランダムアクセスメモリを含み得るものであり、また、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体メモリデバイスなどの、不揮発性メモリも含み得る。ＣＰＵ  １２０及び周辺機器インタフェース１１８などの、デバイス１００の他の構成要素によるメモリ１０２へのアクセスは、メモリコントローラ１２２によって制御することができる。
【００７１】
周辺機器インタフェース１１８を使用して、このデバイスの入力及び出力周辺機器を、ＣＰＵ  １２０及びメモリ１０２に結合することができる。１つ以上のプロセッサ１２０は、メモリ１０２内に記憶された様々なソフトウェアプログラム及び／又は命令セットを稼働若しくは実行して、デバイス１００に関する様々な機能を実行し、かつデータを処理する。
【００７２】
一部の実施形態では、周辺機器インタフェース１１８、ＣＰＵ  １２０、及びメモリコントローラ１２２は、チップ１０４などの単一チップ上に実装することができる。一部の他の実施形態では、それらは、別個のチップ上に実装することができる。
【００７３】
ＲＦ（無線周波数）回路機構１０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路機構１０８は、電気信号を電磁信号に／電磁信号を電気信号に変換し、その電磁信号を介して、通信ネットワーク及び他の通信デバイスと通信する。
【００７４】
オーディオ回路機構１１０、スピーカ１１１、及びマイクロホン１１３は、ユーザとデバイス１００との間のオーディオインタフェースを提供する。オーディオ回路機構１１０は、周辺機器インタフェース１１８からオーディオデータを受信し、そのオーディオデータを電気信号に変換し、その電気信号をスピーカ１１１に送信する。スピーカ１１１は、その電気信号を人間の可聴音波に変換する。オーディオ回路機構１１０はまた、マイクロホン１１３によって音波から変換された電気信号も受信する。オーディオ回路機構１１０は、その電気信号をオーディオデータに変換し、そのオーディオデータを、処理のために周辺機器インタフェース１１８に送信する。オーディオデータは、周辺機器インタフェース１１８によって、メモリ１０２及び／又はＲＦ回路機構１０８から検索することができ、かつ／あるいは、メモリ１０２及び／又はＲＦ回路機構１０８に送信することができる。一部の実施形態では、オーディオ回路機構１１０はまた、ヘッドセットジャック（例えば、図２の２１２）も含む。
【００７５】
Ｉ／Ｏサブシステム１０６は、タッチスクリーン１１２及び他の入力制御デバイス１１６などの、デバイス１００上の入出力周辺機器を、周辺機器インタフェース１１８に結合する。Ｉ／Ｏサブシステム１０６は、ディスプレイコントローラ１５６、並びに他の入力又は制御デバイスのための１つ以上の入力コントローラ１６０を含み得る。１つ以上の入力コントローラ１６０は、他の入力又は制御デバイス１１６との間で電気信号を受信／送信する。他の入力制御デバイス１１６は、物理ボタン（例えば、プッシュボタン、ロッカボタンなど）、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含み得る。一部の代替的実施形態では、入力コントローラ１６０は、キーボード、赤外線ポート、ＵＳＢポート、及びマウスなどのポインタデバイスのうちのいずれかに結合することができる（又は、いずれにも結合されない場合もある）。１つ以上のボタン（例えば、図２の２０８）は、スピーカ１１１及び／又はマイクロホン１１３の音量調節のための、アップ／ダウンボタンを含み得る。１つ以上のボタンはプッシュボタン（例えば、図２の２０６）を含み得る。
【００７６】
タッチ感知ディスプレイ１１２は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ１５６は、タッチスクリーン１１２との間で、電気信号を受信及び／又は送信する。タッチスクリーン１１２は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ（「グラフィック」と総称される）を含み得る。一部の実施形態では、これらの視覚出力の一部又は全ては、ユーザインタフェースオブジェクトに対応し得る。
【００７７】
タッチスクリーン１１２は、触覚及び／又は蝕知の接触に基づいて、ユーザからの入力を受け入れる、タッチ感知面、センサ、若しくはセンサのセットを有する。タッチスクリーン１１２及びディスプレイコントローラ１５６は（メモリ１０２内のあらゆる関連モジュール及び／又は命令セットと共に）、タッチスクリーン１１２上での接触（及び、その接触のあらゆる移動又は中断）を検出し、その検出された接触を、タッチスクリーン１１２上に表示されるユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ、又は画像）との対話に変換する。例示的実施形態では、タッチスクリーン１１２とユーザとの間の接触点は、ユーザの指に対応する。
【００７８】
タッチスクリーン１１２は、ＬＣＤ（液晶ディスプレイ）技術、ＬＰＤ（発光ポリマーディスプレイ）技術、又はＬＥＤ（発光ダイオード）技術を使用することができるが、他の実施形態では、他のディスプレイ技術を使用することができる。タッチスクリーン１１２及びディスプレイコントローラ１５６は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動若しくは中断を検出することができ、それらの技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面超音波技術、並びにタッチスクリーン１１２との１つ以上の接触点を判定するための、他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。例示的実施形態では、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）によるｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）で見出されるものなどの、投影型相互静電容量式検知技術が使用される。
【００７９】
タッチスクリーン１１２は、１００ｄｐｉを超えるビデオ解像度を有し得る。一部の実施形態では、タッチスクリーンは、約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス、指などの、任意の好適な物体又は付属物を使用して、タッチスクリーン１１２と接触することができる。一部の実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャで機能するように設計されるが、これらは、タッチスクリーン上での指の接触面積がより広いことにより、スタイラスに基づく入力よりも精度が低い恐れがある。一部の実施形態では、デバイスは、指に基づく粗い入力を、ユーザによって所望されるアクションを実行するための、正確なポインタ／カーソルの位置又はコマンドに変換する。手書き入力は、指に基づく接触若しくはスタイラスに基づく接触の場所及び移動を介して、タッチスクリーン１１２上に提供することができる。一部の実施形態では、タッチスクリーン１１２は、指に基づく入力又はスタイラスに基づく入力を、その現在の手書き入力に対する即座の視覚フィードバックとしてレンダリングし、筆記用具（例えば、ペン）を使用する、書き込み面（例えば、１枚の紙）上での実際の書き込みの、視覚効果を提供する。
【００８０】
一部の実施形態では、タッチスクリーンに加えて、デバイス１００は、特定の機能をアクティブ化又は非アクティブ化するための、タッチパッド（図示せず）を含み得る。一部の実施形態では、このタッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、そのデバイスのタッチ感知区域である。タッチパッドは、タッチスクリーン１１２とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部とすることができる。
【００８１】
デバイス１００はまた、様々な構成要素に電力を供給するための、電力システム１６２も含む。電力システム１６２は、電力管理システム、１つ以上の電源（例えば、バッテリ、交流（ＡＣ））、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、並びにポータブルデバイス内での電力の生成、管理、及び分配に関連付けられる任意の他の構成要素を含み得る。
【００８２】
デバイス１００はまた、１つ以上の光センサ１６４も含み得る。図１は、Ｉ／Ｏサブシステム１０６内の光センサコントローラ１５８に結合された、光センサを示す。光センサ１６４は、電荷結合素子（ＣＣＤ）又は相補的金属酸化物半導体（ＣＭＯＳ）フォトトランジスタを含み得る。光センサ１６４は、１つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール１４３（カメラモジュールとも呼ばれる）と関連して、光センサ１６４は、静止画像又はビデオを取り込むことができる。
【００８３】
デバイス１００はまた、１つ以上の近接センサ１６６も含み得る。図１は、周辺機器インタフェース１１８に結合された、近接センサ１６６を示す。あるいは、近接センサ１６６は、Ｉ／Ｏサブシステム１０６内の入力コントローラ１６０に結合することもできる。一部の実施形態では、この多機能デバイスが、ユーザの耳の近くに配置される場合（例えば、ユーザが電話通話を行っている場合）、近接センサは、タッチスクリーン１１２をオフにして無効化する。
【００８４】
デバイス１００はまた、１つ以上の加速度計１６８も含み得る。図１は、周辺機器インタフェース１１８に結合された、加速度計１６８を示す。あるいは、加速度計１６８は、Ｉ／Ｏサブシステム１０６内の入力コントローラ１６０に結合することもできる。一部の実施形態では、情報は、１つ以上の加速度計から受信されたデータの分析に基づいて、縦表示又は横表示で、タッチスクリーンディスプレイ上に表示される。デバイス１００は、任意選択的に、加速度計１６８に加えて、デバイス１００の位置及び向き（例えば、縦表示又は横表示）に関する情報を取得するための、磁力計（図示せず）及びＧＰＳ（又は、ＧＬＯＮＡＳＳ若しくは他のグローバルナビゲーションシステム）受信機（図示せず）を含む。
【００８５】
一部の実施形態では、メモリ１０２に記憶されたソフトウェア構成要素は、オペレーティングシステム１２６、通信モジュール（又は、命令セット）１２８、接触／動きモジュール（又は命令セット）１３０、グラフィックモジュール（又は、命令セット）１３２、テキスト入力モジュール（又は、命令セット）１３４、全地球測位システム（ＧＰＳ）モジュール（又は、命令セット）１３５、及びアプリケーション（又は、命令セット）１３６を含む。更には、一部の実施形態では、図１及び図３に示すように、メモリ１０２は、手書き入力モジュール１５７を記憶する。手書き入力モジュール１５７は、手書き認識モデルを含み、デバイス１００（又は、デバイス３００）のユーザに、手書き認識及び入力機能を提供する。手書き入力モジュール１５７の更なる詳細は、図５〜図２７、及びそれらの付随説明に関連して提供される。
【００８６】
オペレーティングシステム１２６（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ＷＩＮＤＯＷＳ（登録商標）、又はＶｘＷｏｒｋｓ（登録商標）などの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理など）を制御及び管理するための、様々なソフトウェア構成要素及び／又はドライバを含み、様々なハードウェア構成要素及びソフトウェア構成要素との間の通信を容易にする。
【００８７】
通信モジュール１２８は、１つ以上の外部ポート１２４を介した他のデバイスとの通信を容易にし、また、ＲＦ回路機構１０８及び／又は外部ポート１２４によって受信されたデータを処理するための様々なソフトウェア構成要素も含む。外部ポート１２４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）など）は、他のデバイスに直接結合するように、又はネットワーク（例えば、インターネット、無線ＬＡＮなど）を介して間接的に結合するように適合される。
【００８８】
接触／動きモジュール１３０は、（ディスプレイコントローラ１５６と関連して）タッチスクリーン１１２との接触、及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出することができる。接触／動きモジュール１３０は、接触が生じたか否かを判定すること（例えば、指を下ろすイベントを検出すること）、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること（例えば、指をドラッグする１つ以上のイベントを検出すること）、及び接触が停止したか否かを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）などの、接触の検出に関連する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触／動きモジュール１３０は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、接触点の速さ（大きさ）、速度（大きさ及び方向）、及び／又は加速度（大きさ及び／又は方向の変化）を判定することを含み得る。これらの操作は、単一の接触（例えば、１本の指の接触）又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用することができる。一部の実施形態では、接触／動きモジュール１３０及びディスプレイコントローラ１５６は、タッチパッド上での接触を検出する。
【００８９】
接触／動きモジュール１３０は、ユーザによるジェスチャ入力を検出することができる。タッチ感知面上での異なるジェスチャは、異なる接触パターンを有する。それゆえ、特定の接触パターンを検出することによって、ジェスチャを検出することができる。例えば、指のタップジェスチャを検出することは、指を下ろすイベントを検出し、続いて（例えば、アイコンの位置での）その指を下ろすイベントと同じ位置（又は、実質的に同じ位置）で指を上げる（リフトオフする）イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて１つ以上の指をドラッグするイベントを検出し、その後、続いて指を上げる（リフトオフする）イベントを検出することを含む。
【００９０】
接触／動きモジュール１３０は、タッチ感知ディスプレイスクリーン１１２上に表示される、手書き入力インタフェースの手書き入力区域内の（又は、図３での、ディスプレイ３４０上に表示される手書き入力区域に対応する、タッチパッド３５５の区域内の）、手書きストロークの入力を登録するために、手書き入力モジュール１５７によって、任意選択的に利用される。一部の実施形態では、最初の指を下ろすイベント、最後の指を上げるイベント、それらの間の任意の時間中の接触に関連付けられる、場所、動きの経路、及び強度が、手書きストロークとして記録される。そのような情報に基づいて、そのユーザ入力に関するフィードバックとして、ディスプレイ上に手書きストロークをレンダリングすることができる。更には、接触／動きモジュール１３０によって登録された手書きストロークに基づいて、１つ以上の入力画像を生成することができる。
【００９１】
グラフィックモジュール１３２は、表示されるグラフィックの明度を変更するための構成要素を含めた、タッチスクリーン１１２又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することが可能な任意のオブジェクトを含み、それらのオブジェクトとしては、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクトなど）、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【００９２】
一部の実施形態では、グラフィックモジュール１３２は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードを割り当てることができる。グラフィックモジュール１３２は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィックを指定する１つ以上のコードを受信し、次いで、ディスプレイコントローラ１５６に出力するためのスクリーン画像データを生成する。
【００９３】
テキスト入力モジュール１３４は、グラフィックモジュール１３２の構成要素とすることができ、様々なアプリケーション（例えば、連絡先１３７、電子メール１４０、ＩＭ  １４１、ブラウザ１４７、及びテキスト入力を必要とする任意の他のアプリケーション）内でテキストを入力するための、ソフトキーボードを提供する。一部の実施形態では、テキスト入力モジュール１３４のユーザインタフェースを通じて、例えば、キーボード選択アフォーダンスを通じて、手書き入力モジュール１５７が、任意選択的に呼び出される。一部の実施形態では、同じ又は同様のキーボード選択アフォーダンスはまた、テキスト入力モジュール１３４を呼び出すために、手書き入力インタフェース内にも提供される。
【００９４】
ＧＰＳモジュール１３５は、デバイスの場所を判定し、この情報を、様々なアプリケーションで使用するために（例えば、場所に基づくダイヤル発呼で使用するために電話１３８へ、写真／ビデオのメタデータとしてカメラ１４３へ、並びに、天気ウィジェット、地域のイエローページウィジェット、及び地図／ナビゲーションウィジェットなどの、場所に基づくサービスを提供するアプリケーションへ）提供する。
【００９５】
アプリケーション１３６は、以下のモジュール（又は、命令セット）、又はそれらのサブセット若しくはスーパーセットを含み得る：連絡先モジュール１３７（アドレス帳又は連絡先リストと呼ばれる場合もある）、電話モジュール１３８；テレビ会議モジュール１３９；電子メールクライアントモジュール１４０；インスタントメッセージング（ＩＭ）モジュール１４１；トレーニングサポートモジュール１４２；静止画像及び／又はビデオ画像用のカメラモジュール１４３；画像管理モジュール１４４；ブラウザモジュール１４７；カレンダーモジュール１４８；天気ウィジェット１４９−１、株価ウィジェット１４９−２、計算機ウィジェット１４９−３、アラーム時計ウィジェット１４９−４、辞書ウィジェット１４９−５、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット１４９−６のうちの１つ以上を含み得る、ウィジェットモジュール１４９；ユーザ作成ウィジェット１４９−６を作成するためのウィジェット作成モジュール１５０；検索モジュール１５１；ビデオプレーヤモジュール及び音楽プレーヤモジュールで構成することができる、ビデオ及び音楽プレーヤモジュール１５２；メモモジュール１５３；地図モジュール１５４；並びに／あるいはオンラインビデオモジュール１５５。
【００９６】
メモリ１０２内に記憶することが可能な他のアプリケーション１３６の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ（登録商標）対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【００９７】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、連絡先モジュール１３７は、（例えば、メモリ１０２又はメモリ３７０内の連絡先モジュール１３７のアプリケーション内部状態１９２内に記憶される）アドレス帳又は連絡先リストを管理するために使用することができ、この管理には、アドレス帳に名前を追加すること、アドレス帳から名前を削除すること、電話番号、電子メールアドレス、実際の住所、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並び替えること、電話１３８、テレビ会議１３９、電子メール１４０、又はＩＭ  １４１などによる通信を開始及び／又は促進するために、電話番号又は電子メールアドレスを提供することなどが含まれる。
【００９８】
ＲＦ回路機構１０８、オーディオ回路機構１１０、スピーカ１１１、マイクロホン１１３、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、電話モジュール１３８は、電話番号に対応する一連の文字を入力し、アドレス帳１３７内の１つ以上の電話番号にアクセスし、入力されている電話番号を修正し、それぞれの電話番号をダイヤルし、会話を実行し、会話が完了した際に接続を切るか又は電話を切るために、使用することができる。上述のように、この無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用することができる。
【００９９】
ＲＦ回路機構１０８、オーディオ回路機構１１０、スピーカ１１１、マイクロホン１１３、タッチスクリーン１１２、ディスプレイコントローラ１５６、光センサ１６４、光センサコントローラ１５８、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、連絡先リスト１３７、及び電話モジュール１３８と関連して、テレビ会議モジュール１３９は、ユーザの指示に従って、ユーザと１人以上の他の参加者との間のビデオ会議を開始し、実行し、終了するための、実行可能命令を含む。
【０１００】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、電子メールクライアントモジュール１４０は、ユーザの指示に応じて、電子メールを作成し、送信し、受信し、管理するための、実行可能命令を含む。画像管理モジュール１４４と関連して、電子メールクライアントモジュール１４０は、カメラモジュール１４３で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを、非常に容易にする。
【０１０１】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、インスタントメッセージングモジュール１４１は、インスタントメッセージに対応する一連の文字を入力し、従前に入力された文字を修正し、（例えば、電話ベースのインスタントメッセージ用のショートメッセージサービス（ＳＭＳ）若しくはマルチメディアメッセージサービス（ＭＭＳ）プロトコルを使用して、又はインターネットベースのインスタントメッセージ用のＸＭＰＰ、ＳＩＭＰＬＥ、若しくはＩＭＰＳを使用して）それぞれのインスタントメッセージを送信し、インスタントメッセージを受信し、受信されたインスタントメッセージを見るための、実行可能命令を含む。一部の実施形態では、送信及び／又は受信されるインスタントメッセージは、ＭＭＳ及び／又は拡張メッセージングサービス（ＥＭＳ）でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び／又は他の添付ファイルを含み得る。本明細書で使用するとき、「インスタントメッセージング」とは、電話ベースのメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）及びインターネットベースのメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを使用して送信されるメッセージ）の双方を指す。
【０１０２】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、ＧＰＳモジュール１３５、地図モジュール１５４、及び音楽プレーヤモジュール１４６と関連して、トレーニングサポートモジュール１４２は、（例えば、時間、距離、及び／又はカロリー消費目標を有する）トレーニングを作成し、トレーニングセンサ（スポーツデバイス）と通信し、トレーニングセンサデータを受信し、トレーニングを監視するために使用されるセンサを較正し、トレーニング用の音楽を選択及び再生し、トレーニングデータを表示、記憶、及び送信するための、実行可能命令を含む。
【０１０３】
タッチスクリーン１１２、ディスプレイコントローラ１５６、光センサ１６４、光センサコントローラ１５８、接触モジュール１３０、グラフィックモジュール１３２、及び画像管理モジュール１４４と関連して、カメラモジュール１４３は、静止画像又は（ビデオストリームを含む）ビデオを取り込み、それらをメモリ１０２内に記憶し、静止画像又はビデオの特性を修正するか、あるいはメモリ１０２から静止画像又はビデオを削除するための、実行可能命令を含む。
【０１０４】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、及びカメラモジュール１４３と関連して、画像管理モジュール１４４は、静止画像及び／又はビデオ画像を配列し、修正（例えば、編集）するか若しくは他の方式で操作し、ラベルを付け、削除し、（例えば、デジタルスライドショー又はアルバム内で）提示し、記憶するための、実行可能命令を含む。
【０１０５】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、ブラウザモジュール１４７は、ウェブページ又はその諸部分、並びにウェブページにリンクされた添付ファイル及び他のファイルを検索すること、リンクすること、受信すること、及び表示することを含めた、ユーザの指示に従ってインターネットを閲覧するための、実行可能命令を含む。
【０１０６】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、電子メールクライアントモジュール１４０、及びブラウザモジュール１４７と関連して、カレンダーモジュール１４８は、ユーザの指示に従って、カレンダー、及びカレンダーに関連付けられたデータ（例えば、カレンダー項目、ｔｏ  ｄｏリストなど）を作成し、表示し、修正し、記憶するための、実行可能命令を含む。
【０１０７】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、及びブラウザモジュール１４７と関連して、ウィジェットモジュール１４９は、ユーザによってダウンロードされ、使用することが可能なミニアプリケーション（例えば、天気ウィジェット１４９−１、株価ウィジェット１４９−２、計算機ウィジェット１４９−３、アラーム時計ウィジェット１４９−４、及び辞書ウィジェット１４９−５）、又はユーザによって作成することが可能なミニアプリケーション（例えば、ユーザ作成ウィジェット１４９−６）である。一部の実施形態では、ウィジェットは、ＨＴＭＬ（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを含む。一部の実施形態では、ウィジェットは、ＸＭＬ（拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！（登録商標）ウィジェット）を含む。
【０１０８】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、及びブラウザモジュール１４７と関連して、ウィジェット作成モジュール１５０は、ウィジェットを作成する（例えば、ウェブページのユーザ指定箇所をウィジェットに変える）ために、ユーザによって使用することができる。
【０１０９】
タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、検索モジュール１５１は、ユーザの指示に従って、１つ以上の検索基準（例えば、１つ以上のユーザ指定の検索条件）に一致する、メモリ１０２内のテキスト、音楽、音声、画像、ビデオ、及び／又は他のファイルを検索するための、実行可能命令を含む。
【０１１０】
タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、オーディオ回路機構１１０、スピーカ１１１、ＲＦ回路機構１０８、及びブラウザモジュール１４７と関連して、ビデオ及び音楽プレーヤモジュール１５２は、ＭＰ３又はＡＡＣファイルなどの１つ以上のファイル形式で記憶された、録音済みの音楽及び他の音声ファイルを、ユーザがダウンロード及び再生することを可能にする、実行可能命令と、ビデオを（例えば、タッチスクリーン１１２上に、又は外部ポート１２４を介して外部に接続されたディスプレイ上に）表示するか、提示するか、又は他の方式で再生するための、実行可能命令とを含む。一部の実施形態では、デバイス１００は、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）などのＭＰ３プレーヤの機能性を含み得る。
【０１１１】
タッチスクリーン１１２、ディスプレイコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、及びテキスト入力モジュール１３４と関連して、メモモジュール１５３は、ユーザの指示に従って、メモ、ｔｏ  ｄｏリストなどを作成及び管理するための、実行可能命令を含む。
【０１１２】
ＲＦ回路機構１０８、タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、手書き入力モジュール１５７、テキスト入力モジュール１３４、ＧＰＳモジュール１３５、及びブラウザモジュール１４７と関連して、地図モジュール１５４は、ユーザの指示に従って、地図、及び地図に関連付けられたデータ（例えば、運転方向、特定の場所若しくはその付近の店舗及び関心対象の他の地点についてのデータ、並びに場所に基づく他のデータ）を受信し、表示し、修正し、記憶するために使用することができる。
【０１１３】
タッチスクリーン１１２、ディスプレイシステムコントローラ１５６、接触モジュール１３０、グラフィックモジュール１３２、オーディオ回路機構１１０、スピーカ１１１、ＲＦ回路機構１０８、手書き入力モジュール１５７、テキスト入力モジュール１３４、電子メールクライアントモジュール１４０、及びブラウザモジュール１４７と関連して、オンラインビデオモジュール１５５は、ユーザが、特定のオンラインビデオにアクセスし、閲覧し、（例えば、ストリーミング及び／又はダウンロードによって）受信し、（例えば、タッチスクリーン上で、又は外部ポート１２４を介して接続された外部のディスプレイ上で）再生し、そのオンラインビデオへのリンクを有する電子メールを送信し、また他の方式で、Ｈ．２６４などの１つ以上のファイル形式でオンラインビデオを管理することが可能となる、命令を含む。一部の実施形態では、電子メールクライアントモジュール１４０ではなく、インスタントメッセージングモジュール１４１を使用して、特定のオンラインビデオへのリンクを送信する。
【０１１４】
上記で特定されたモジュール及びアプリケーションのそれぞれは、上述の１つ以上の機能、及び本出願で説明される方法（例えば、コンピュータにより実施される方法及び本明細書で説明される他の情報処理方法）を実行する、実行可能命令のセットに対応する。これらのモジュール（すなわち、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再構成することができる。一部の実施形態では、メモリ１０２は、上記で特定されたモジュール及びデータ構造のサブセットを記憶することができる。更には、メモリ１０２は、上述されていない追加的モジュール及びデータ構造を記憶することができる。
【０１１５】
一部の実施形態では、デバイス１００は、デバイス上での既定の機能のセットの動作が、排他的にタッチスクリーン及び／又はタッチパッドを介して実行されるデバイスである。デバイス１００の動作に関する主要な入力制御デバイスとして、タッチスクリーン及び／又はタッチパッドを使用することによって、デバイス１００上の物理入力制御デバイス（プッシュボタン、ダイヤルなど）の数を低減することができる。
【０１１６】
図２は、一部の実施形態に係る、タッチスクリーン１１２を有するポータブル多機能デバイス１００を示す。このタッチスクリーンは、ユーザインタフェース（ＵＩ）２００内に、１つ以上のグラフィックを表示することができる。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、１本以上の指２０２（図には正確な縮尺率では描かれていない）又は１つ以上のスタイラス２０３（図には正確な縮尺率では描かれていない）を使用して、グラフィック上でジェスチャを実施することによって、グラフィックのうちの１つ以上を選択することができる。一部の実施形態では、ユーザが１つ以上のグラフィックとの接触を中断する場合に、１つ以上のグラフィックの選択が発生する。一部の実施形態では、このジェスチャは、１回以上のタップ、１回以上の（左から右、右から左、上向き、及び／又は下向きの）スワイプ、及び／又は、デバイス１００と接触した（右から左、左から右、上向き、及び／又は下向きの）指のローリングを含み得る。一部の実施形態では、グラフィックとの不測の接触は、そのグラフィックを選択し得ない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上を掃過するスワイプジェスチャは、対応するアプリケーションを選択し得ない。
【０１１７】
デバイス１００はまた、「ホーム」又はメニューボタン２０４などの、１つ以上の物理ボタンも含み得る。前述のように、メニューボタン２０４を使用して、デバイス１００上で実行することが可能なアプリケーションのセット内の任意のアプリケーション１３６に、ナビゲートすることができる。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン１１２上に表示されるＧＵＩ内の、ソフトキーとして実装される。
【０１１８】
一実施形態では、デバイス１００は、タッチスクリーン１１２、メニューボタン２０４、デバイスの電源をオン／オフし、デバイスをロックするためのプッシュボタン２０６、音量調節ボタン２０８、加入者識別モジュール（ＳＩＭ）カードスロット２１０、ヘッドセットジャック２１２、及びドッキング／充電用外部ポート１２４を含む。プッシュボタン２０６は、ボタンを押し下げて、既定の時間間隔にわたってボタンを押し下げられた状態で保持することによって、デバイス上の電源をオン／オフし、ボタンを押し下げて、既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックし、及び／又は、デバイスをロック解除するか、若しくはロック解除プロセスを開始するために、使用することができる。代替的実施形態では、デバイス１００はまた、マイクロホン１１３を介して、一部の機能のアクティブ化又は非アクティブ化に関する口頭入力も受け入れることができる。
【０１１９】
図３は、一部の実施形態に係る、ディスプレイ及びタッチ感知面を備える、例示的な多機能デバイスのブロック図である。デバイス３００は、ポータブル型である必要はない。一部の実施形態では、デバイス３００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育用デバイス（子供の学習玩具など）、ゲームシステム、電話デバイス、又は制御デバイス（例えば、家庭用又は業務用コントローラ）である。デバイス３００は、典型的には、１つ以上の処理ユニット（ＣＰＵ）３１０、１つ以上のネットワーク又は他の通信インタフェース３６０、メモリ３７０、及びこれらの構成要素を相互接続するための１つ以上の通信バス３２０を含む。通信バス３２０は、システム構成要素間の通信を相互接続及び制御する、（チップセットと呼ばれる場合もある）回路機構を含み得る。デバイス３００は、典型的にはタッチスクリーンディスプレイである、ディスプレイ３４０を備える、入出力（Ｉ／Ｏ）インタフェース３３０を含む。Ｉ／Ｏインタフェース３３０はまた、キーボード及び／又はマウス（又は、他のポインティングデバイス）３５０、並びにタッチパッド３５５も含み得る。メモリ３７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又は他のランダムアクセス半導体メモリデバイスなどの、高速ランダムアクセスメモリを含み、また、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含み得る。メモリ３７０は、ＣＰＵ  ３１０から遠隔に配置される１つ以上の記憶デバイスを、任意選択的に含み得る。一部の実施形態では、メモリ３７０は、ポータブル多機能デバイス１００（図１）のメモリ１０２内に記憶されたプログラム、モジュール、及びデータ構造に類似する、プログラム、モジュール、及びデータ構造、若しくはそれらのサブセットを記憶する。更には、メモリ３７０は、ポータブル多機能デバイス１００のメモリ１０２内には存在しない、追加的なプログラム、モジュール、及びデータ構造を記憶することができる。例えば、デバイス３００のメモリ３７０は、描画モジュール３８０、プレゼンテーションモジュール３８２、ワードプロセッシングモジュール３８４、ウェブサイト作成モジュール３８６、ディスクオーサリングモジュール３８８、及び／又はスプレッドシートモジュール３９０を記憶することができるが、その一方で、ポータブル多機能デバイス１００（図１）のメモリ１０２は、これらのモジュールを記憶しない場合がある。
【０１２０】
上記で特定された図３の要素のそれぞれは、前述のメモリデバイスのうちの１つ以上に記憶することができる。上記で特定されたモジュールのそれぞれは、上述の機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム（すなわち、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再構成することができる。一部の実施形態では、メモリ３７０は、上記で特定されたモジュール及びデータ構造のサブセットを記憶することができる。更には、メモリ３７０は、上述されていない追加的なモジュール及びデータ構造を記憶することができる。
【０１２１】
図４は、ディスプレイ４５０（例えば、タッチスクリーンディスプレイ１１２）とは別個のタッチ感知面４５１（例えば、図３のタブレット又はタッチパッド３５５）を備えるデバイス（例えば、図３のデバイス３００）上の、例示的ユーザインタフェースを示す。以下の実施例の多くは、タッチスクリーンディスプレイ１１２上での入力（タッチ感知面とディスプレイとが組み合わされている場合）を参照して説明されるが、一部の実施形態では、デバイスは、図４に示されるように、ディスプレイとは別個のタッチ感知面上での入力を検出する。一部の実施形態では、このタッチ感知面（例えば、図４での４５１）は、ディスプレイ（例えば、４５０）上の主軸（例えば、図４での４５３）に対応する主軸（例えば、図４での４５２）を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所（例えば、図４では、４６０は４６８に対応し、４６２は４７０に対応する）での、タッチ感知面４５１との接触（例えば、図４での４６０及び４６２）を検出する。この方式で、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面（例えば、図４での４５１）上でデバイスによって検出されたユーザ入力（例えば、接触４６０及び４６２、並びにそれらの移動）が、多機能デバイスのディスプレイ（例えば、図４での４５０）上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法を、本明細書で説明される他のユーザインタフェースに関して使用することができる点を理解されたい。
【０１２２】
ここで、多機能デバイス（例えば、デバイス１００）上に実装することが可能な、手書き入力法及びユーザインタフェース（「ＵＩ」）の実施形態に注意を向ける。
【０１２３】
図５は、一部の実施態様による、Ｉ／Ｏインタフェースモジュール５００（例えば、図３でのＩ／Ｏインタフェース３３０、又は図１でのＩ／Ｏサブシステム１０６）と相互作用して、デバイス上に手書き入力能力を提供する、例示的な手書き入力モジュール１５７を示す、ブロック図である。図５に示されるように、手書き入力モジュール１５７は、入力処理モジュール５０２、手書き認識モジュール５０４、及び結果生成モジュール５０６を含む。一部の実施形態では、入力処理モジュール５０２は、分割モジュール５０８、及び正規化モジュール５１０を含む。一部の実施形態では、結果生成モジュール５０６は、部首クラスタ化モジュール５１２、及び１つ以上の言語モデル５１４を含む。
【０１２４】
一部の実施形態では、入力処理モジュール５０２は、Ｉ／Ｏインタフェースモジュール５００（例えば、図３でのＩ／Ｏインタフェース３３０、又は図１でのＩ／Ｏサブシステム１０６）と通信して、ユーザから手書き入力を受信する。手書きは、図１でのタッチ感知ディスプレイシステム１１２、及び／又は図３でのタッチパッド３５５などの、任意の好適な手段を介して入力される。それらの手書き入力は、手書き入力ＵＩ内の既定の手書き入力区域内にユーザによって提供された各ストロークを表す、データを含む。一部の実施形態では、手書き入力の各ストロークを表すデータは、手書き入力区域内での持続的接触（例えば、ユーザの指又はスタイラスとデバイスのタッチ感知面との接触）の、開始及び終了の場所、強度プロファイル、並びに動きの経路などの、データを含む。一部の実施形態では、Ｉ／Ｏインタフェースモジュール５００は、関連する時間的情報及び空間的情報を有する、手書きストロークの配列５１６を、リアルタイムで入力処理モジュール５０２に渡す。同時に、Ｉ／Ｏインタフェースモジュールはまた、このユーザの入力に対する視覚フィードバックとして、手書き入力ユーザインタフェースの手書き入力区域内に、それらの手書きストロークのリアルタイムレンダリング５１８も提供する。
【０１２５】
一部の実施形態では、各手書きストロークを表すデータが、入力処理モジュール５０２によって受信される際に、複数の連続的ストロークに関連付けられた、時間的情報及び空間的情報もまた記録される。例えば、それらのデータは、任意選択的に、それぞれのストローク配列番号を有する個別のストロークの、形状、サイズ、空間的飽和度、及び、手書き入力全体の書き込み方向に沿った、それらのストロークの相対的な空間的位置などを示す、スタックを含む。一部の実施形態では、入力処理モジュール５０２は、受信したストロークを、デバイスのディスプレイ５１８（例えば、図３でのディスプレイ３４０、又は図１でのタッチ感知ディスプレイ１１２）上にレンダリングするように、Ｉ／Ｏインタフェースモジュール５００に命令を返す。一部の実施形態では、受信したストロークのレンダリングは、アニメーション化されて、筆記用具（例えば、ペン）を使用する書き込み面（例えば、１枚の紙）上での書き込みの実際の進行を模倣する、視覚効果が提供される。一部の実施形態では、ユーザは、レンダリングされるストロークの、ペン先スタイル、色、質感などを指定することが、任意選択的に可能となる。
【０１２６】
一部の実施形態では、入力処理モジュール５０２は、手書き入力区域内に現時点で蓄積されているストロークを処理して、それらのストロークを、１つ以上の認識単位へと割り当てる。一部の実施形態では、各認識単位は、手書き認識モデル５０４によって認識される、特定の文字に対応する。一部の実施形態では、各認識単位は、手書き認識モデル５０４によって認識される、特定の出力文字又は部首に対応する。部首は、複数の複合表語文字内に見出される、再現性の構成要素である。複合表語文字は、一般的なレイアウト（例えば、左右のレイアウト、上下のレイアウトなど）に従って配置構成された、２つ以上の部首を含み得る。一実施例では、単一の中国文字「
2019164801.tif 000003
」は、２つの部首、すなわち、左の部首「
2019164801.tif 000004
」及び右の部首「
2019164801.tif 000005
」を使用して構築されている。
【０１２７】
一部の実施形態では、入力処理モジュール５０２は、現時点で蓄積されている手書きストロークを、１つ以上の認識単位に割り当てるか又は分離するために、分割モジュールに依存する。例えば、手書き文字「
2019164801.tif 000006
」に関するストロークを分割する場合、分割モジュール５０８は、任意選択的に、手書き入力の左側にクラスタ化されるストロークを、１つの（すなわち、左の部首「
2019164801.tif 000007
」に関する）認識単位に割り当て、手書き入力の右側にクラスタ化されるストロークを、別の（すなわち、右の部首「
2019164801.tif 000008
」に関する）認識単位に割り当てる。あるいは、分割モジュール５０８はまた、これらのストロークの全てを、単一の（すなわち、文字「
2019164801.tif 000009
」に関する）認識単位に割り当てることもできる。
【０１２８】
一部の実施形態では、分割モジュール５０８は、現時点で蓄積されている手書き入力（例えば、１つ以上の手書きストローク）を、幾つかの異なる方式で認識単位のグループに分割して、分割束５２０を作り出す。例えば、これまでに、合計で９つのストロークが、手書き入力区域内に蓄積されていると想定する。分割束５２０の第１の分割鎖に従って、ストローク１、２、３が、第１の認識単位５２２へとグループ化され、ストローク４、５、６が、第２の認識単位５２６へとグループ化される。分割束５２０の第２の分割鎖に従って、ストローク１〜９の全てが、１つの認識単位５２６へとグループ化される。
【０１２９】
一部の実施形態では、各分割鎖には、特定の分割鎖が現在の手書き入力の正しい分割であることの尤度を評価するための、分割スコアが与えられる。一部の実施形態では、各分割鎖の分割スコアを算出するために、任意選択的に使用される因子としては、ストロークの絶対的及び／又は相対的サイズ、様々な方向（例えば、ｘ方向、ｙ方向、ｚ方向）でのストロークの相対的及び／又は絶対的スパン、ストロークの飽和レベルの平均及び／又は変動、隣接するストロークへの絶対的及び／又は相対的距離、ストロークの絶対的及び／又は相対的場所、ストロークが入力される順序又は配列、各ストロークの持続時間、各ストロークが入力された速度（又は、緩急）の平均及び／又は変動、ストロークの長さに沿った各ストロークの強度プロファイルなどが挙げられる。一部の実施形態では、これらの因子のうちの１つ以上に、１つ以上の関数又は変換を、任意選択的に適用して、分割束５２０内の種々の分割鎖の分割スコアが生成される。
【０１３０】
一部の実施形態では、分割モジュール５０８が、ユーザから受信された現在の手書き入力５１６を分割した後、分割モジュール５０８は、その分割束５２０を、正規化モジュール５１０に渡す。一部の実施形態では、正規化モジュール５１０は、分割束５２０内で指定された各認識単位（例えば、認識単位５２２、５２４、及び５２６）に関する入力画像（例えば、入力画像５２８）を生成する。一部の実施形態では、この正規化モジュールは、手書き認識モデル５０４に、その入力画像を入力として提供することができるように、その入力画像に、必須又は所望の正規化（例えば、延伸、トリミング、ダウンサンプル、又はアップサンプリング）を実行する。一部の実施形態では、各入力画像５２８は、それぞれの１つの認識単位に割り当てられるストロークを含むものであり、手書き認識モジュール５０４によって認識される、１つの文字又は部首に対応する。
【０１３１】
一部の実施形態では、入力処理モジュール５０２によって生成された入力画像は、個別のストロークに関連付けられる、いずれの時間的情報も含まず、空間的情報（例えば、入力画像内のピクセルの場所及び密度によって表される情報）のみが、その入力画像内に保存される。純粋に訓練書き込みサンプルの空間的情報について訓練された、手書き認識モデルは、空間的情報のみに基づく、手書き認識が可能である。結果として、その手書き認識モデルは、ストローク順序及びストローク方向非依存式であり、訓練の間に、その手書き認識モデルの語彙内の全ての文字（すなわち、全ての出力クラス）に関する、ストローク順序及びストローク方向の全ての可能な順列を、網羅的に列挙することはない。実際に、一部の実施形態では、手書き認識モジュール５０２は、入力画像内で、１つのストロークに属するピクセルと、別のストロークに属するピクセルとを、区別しない。
【０１３２】
後に（例えば、図２５Ａ〜図２７に関連して）より詳細に説明されるように、一部の実施形態では、一部の時間的に導出されるストローク分布情報が、純粋に空間的な手書き認識モデル内に再導入されて、その認識モデルのストローク順序及びストローク方向非依存性を損なうことなく、認識精度が向上する。
【０１３３】
一部の実施形態では、１つの認識単位に関して、入力処理モジュール５０２によって生成された入力画像は、同じ分割鎖内の、いずれの他の認識単位の入力画像とも重複しない。一部の実施形態では、異なる認識単位に関して生成された入力画像は、ある程度の重複を有し得る。一部の実施形態では、ある程度の入力画像間の重複は、筆写体の書体で書かれた手書き入力、及び／又は続き文字を含む（例えば、１つのストロークが２つの隣接する文字を接続する）手書き入力の認識に関して、許容される。
【０１３４】
一部の実施形態では、分割の前に、ある程度の正規化が実行される。一部の実施形態では、分割モジュール５０８及び正規化モジュール５１０の機能は、同じモジュール又は２つ以上の他のモジュールによって、実行することができる。
【０１３５】
一部の実施形態では、各認識単位の入力画像５２８が、手書き認識モデル５０４に入力として提供されると、手書き認識モデル５０４は、その認識単位が、手書き認識モデル５０４のレパートリー又は語彙（すなわち、手書き認識モジュール５０４によって認識可能な、全ての文字及び部首のリスト）内の、それぞれの出力文字であることの、種々の尤度からなる出力を生成する。後により詳細に説明されるように、手書き認識モデル５０４は、複数のスクリプト（例えば、Ｕｎｉｃｏｄｅ規格によって符号化されている、少なくとも３つの非重複スクリプト）内の多数の文字を認識するように、訓練されている。非重複スクリプトの例としては、ラテンスクリプト、中国文字、アラビア文字、ペルシャスクリプト、キリルスクリプト、及び絵文字などの人工的スクリプトが挙げられる。一部の実施形態では、手書き認識モデル５０４は、各入力画像に関する（すなわち、各認識単位に関する）１つ以上の出力文字を生成し、その文字認識に関連付けられる信頼レベルに基づいて、各出力文字に関するそれぞれの認識スコアを割り当てる。
【０１３６】
一部の実施形態では、手書き認識モデル５０４は、分割束５２０に従って、候補束５３０を生成し、分割束５２０内の分割鎖内の各弧（例えば、それぞれの認識単位５２２、５２４、５２６に対応するもの）は、候補束５３０内で、１つ以上の候補弧（例えば、それぞれが、それぞれの出力文字に対応する、弧５３２、５３４、５３６、５３８、５４０）へと拡大される。候補束５３０内の各候補鎖は、その候補鎖の基底となる分割鎖の、それぞれの分割スコアと、その候補鎖内の出力文字に関連付けられた認識スコアとに従って、スコア化される。
【０１３７】
一部の実施形態では、手書き認識モデル５０４が、認識単位の入力画像５２８から出力文字を生成した後、候補束５３０は、結果生成モジュール５０６に渡され、現時点で蓄積されている手書き入力５１６に関する１つ以上の認識結果が生成される。
【０１３８】
一部の実施形態では、結果生成モジュール５０６は、部首クラスタ化モジュール５１２を利用して、候補鎖内の１つ以上の部首を、複合文字へと組み合わせる。一部の実施形態では、結果生成モジュール５０６は、１つ以上の言語モデル５１４を使用して、候補束５３０内の文字鎖が、その言語モデルによって表される特定の言語での適切な配列であるか否かを判定する。一部の実施形態では、結果生成モジュール５０６は、候補束５３０内の、特定の弧を削除するか、又は２つ以上の弧を組み合わせることによって、訂正候補束５４２を生成する。
【０１３９】
一部の実施形態では、結果生成モジュール５０６は、訂正候補束５４２内に依然として維持されている各文字配列（例えば、文字配列５４４及び５４６）に関する統合認識スコアを、部首クラスタ化モジュール５１２及び言語モデル５１４によって修正された（例えば、増大又は減少された）、それらの文字配列内の出力文字の認識スコアに基づいて生成する。一部の実施形態では、結果生成モジュール５０６は、訂正候補束５４２内に維持されている種々の文字配列を、それらの統合認識スコアに基づいてランク付けする。
【０１４０】
一部の実施形態では、結果生成モジュール５０６は、最上ランクの文字配列を、ランク付け認識結果５４８としてＩ／Ｏインタフェースモジュール５００に送信して、ユーザに表示する。一部の実施形態では、Ｉ／Ｏインタフェースモジュール５００は、受信した認識結果５４８（例えば、「
2019164801.tif 000010
」及び「
2019164801.tif 000011
」）を、手書き入力インタフェースの候補表示区域内に表示する。一部の実施形態では、Ｉ／Ｏインタフェースモジュールは、複数の認識結果（例えば、「
2019164801.tif 000012
」及び「
2019164801.tif 000013
」）をユーザに対して表示し、ユーザが、認識結果を選択し、関連するアプリケーションに関するテキスト入力として入力することを可能にする。一部の実施形態では、Ｉ／Ｏインタフェースモジュールは、最上ランクの認識結果（例えば、「
2019164801.tif 000014
」）を、その認識結果のユーザ確認の、他の入力又は指示に応じて、自動的に入力する。最上ランクの結果の有効な自動入力により、入力インタフェースの効率を改善し、より良好なユーザエクスペリエンスを提供することができる。
【０１４１】
一部の実施形態では、結果生成モジュール５０６は、他の因子を使用して、候補鎖の統合認識スコアを変更する。例えば、一部の実施形態では、結果生成モジュール５０６は、特定のユーザ又は多数のユーザに関する、最も頻繁に使用された文字のログを、任意選択的に維持する。結果生成モジュール５０６は、特定の候補文字又は文字配列が、最も頻繁に使用された文字又は文字配列のリストの中に見出される場合には、その特定の候補文字又は文字配列の統合認識スコアを、任意選択的に引き上げる。
【０１４２】
一部の実施形態では、手書き入力モジュール１５７は、ユーザに表示された認識結果に関する、リアルタイムの更新を提供する。例えば、一部の実施形態では、ユーザによる各追加ストロークに関して、入力処理モジュール５０２は、任意選択的に、現時点で蓄積されている手書き入力を再分割し、手書き認識モデル５０４に提供された分割束及び入力画像を訂正する。同様に、手書き認識モデル５０４は、任意選択的に、結果生成モジュール５０６に提供された候補束を訂正する。結果として、結果生成モジュール５０６は、任意選択的に、ユーザに提示された認識結果を更新する。本明細書で使用されるとき、リアルタイム手書き認識とは、手書き認識結果が、即座に、又は短い期間内で（例えば、数十ミリ秒〜数秒内で）ユーザに提示される手書き認識を指す。リアルタイム手書き認識は、後に検索するために保存されている記録画像から、現在のユーザセッションの後に一度に実行されるのではなく、認識が直ちに開始されて、手書き入力の受信と実質的に同時に実行されるという点で、（例えば、オフライン光学式文字認識（ＯＣＲ）アプリケーションにおけるような）オフライン認識とは異なる。更には、オフライン文字認識は、個別のストローク及びストロークの配列に関する、いずれの時間的情報も使用することなく実行されるため、分割は、そのような情報の恩恵を受けることなく実行される。類似した見た目の候補文字間の更なる曖昧性除去もまた、そのような時間的情報の恩恵を受けることがない。
【０１４３】
一部の実施形態では、手書き認識モデル５０４は、畳み込みニューラルネットワーク（ＣＮＮ）として実装される。図６は、複数の非重複スクリプト内の文字に関する書き込みサンプルを含む、マルチスクリプト訓練コーパス６０４について訓練される、例示的な畳み込みニューラルネットワーク６０２を示す。
【０１４４】
図６に示されるように、畳み込みニューラルネットワーク６０２は、入力面６０６及び出力面６０８を含む。入力面６０６と出力面６０８との間に、複数の畳み込み層６１０（例えば、最初の畳み込み層６１０ａ、０以上の中間畳み込み層（図示せず）、及び最終畳み込み層６１０ｎを含む）が存在する。各畳み込み層６１０の後に、それぞれのサブサンプリング層６１２（例えば、最初のサブサンプリング層６１２ａ、０以上の中間サブサンプリング層（図示せず）、及び最終サブサンプリング層６１２ｎ）が続く。これらの畳み込み層及びサブサンプリング層の後、出力面６０８の直前に、隠れ層６１４が存在する。隠れ層６１４は、出力面６０８の前の最終層である。一部の実施形態では、カーネル層６１６（例えば、最初のカーネル層６１６ａ、０以上の中間カーネル層（図示せず）、及び最終カーネル層６１２ｎを含む）が、各畳み込み層６１０の前に挿入されて、計算効率が向上する。
【０１４５】
図６に示されるように、入力面６０６は、手書きの認識単位（例えば、手書きの文字又は部首）の入力画像６１４を受信し、出力面６０８は、その認識単位が、対応の出力クラス（例えば、ニューラルネットワークが認識するように構成されている出力文字のセット中の特定の文字）に属していることの尤度を示す、確率のセットを出力する。このニューラルネットワークの出力クラスの全体（又は、ニューラルネットワークの出力文字のセット）はまた、その手書き認識モデルのレパートリー又は語彙とも称される。本明細書で説明される畳み込みニューラルネットワークは、数万個の文字のレパートリーを有するように、訓練することができる。
【０１４６】
入力画像６１４が、ニューラルネットワークの種々の層を通過して処理されると、入力画像６１４内に組み込まれている種々の空間的特徴が、畳み込み層６１０によって抽出される。各畳み込み層６１０はまた、特徴マップのセットとも称され、異なる文字に対応する画像を区別するための、入力画像６１４内の特定の特徴を見つけ出す、フィルタとしての役割を果たす。サブサンプリング層６１２は、入力画像６１４から、徐々に増大するスケールで、特徴を捕捉することを確実にする。一部の実施形態では、サブサンプリング層６１２は、最大値プーリング技術を使用して実装される。この最大値プーリング層は、より大きい局所領域にわたる、位置不変性を生じさせるものであり、先行の畳み込み層の出力画像を、各方向に沿って、Ｋｘ及びＫｙ倍でダウンサンプリングする（Ｋｘ及びＫｙは、最大値プーリング矩形のサイズである）。最大値プーリングは、上位の不変特徴を選択することによって、より速い収束速度をもたらし、一般化能力を向上させる。一部の実施形態では、サブサンプリングは、他の方法を使用して達成される。
【０１４７】
一部の実施形態では、畳み込み層６１０ｎ及びサブサンプリング６１２ｎの最終セットの後、出力面６０８の前に、完全接続層、すなわち、隠れ層６１４が存在する。完全接続隠れ層６１４は、最終サブサンプリング層６１２ｎ内のノードと出力面６０８内のノードとを完全に接続する、多層パーセプトロンである。隠れ層６１４は、前の層から受信される出力画像を取得し、ロジスティック回帰を通じて、出力層６０８内の出力文字のうちの１つに到達する。
【０１４８】
畳み込みニューラルネットワーク６０２の訓練の間に、畳み込み層６１０内の特徴、及びそれらの特徴に関連付けられるそれぞれの重み、並びに隠れ層６１４内のパラメータに関連付けられる重みは、訓練コーパス６０４内の既知の出力クラスを有する書き込みサンプルに関して、分類エラーが最小限に抑えられるように、調整される。畳み込みニューラルネットワーク６０２が訓練され、パラメータ及び関連する重みの最適なセットが、そのネットワーク内の種々の層に関して確立されると、その畳み込みニューラルネットワーク６０２を使用して、ユーザから受信されたリアルタイム手書き入力に基づいて生成される入力画像などの、訓練コーパス６０４の一部ではない新たな書き込みサンプル６１８を、認識することができる。
【０１４９】
本明細書で説明されるように、手書き入力インタフェースの畳み込みニューラルネットワークは、マルチスクリプト訓練コーパスを使用して訓練されて、マルチスクリプト又は混合スクリプト手書き認識を可能にする。一部の実施形態では、畳み込みニューラルネットワークは、３万〜６万超の文字の（例えば、全ての文字がＵｎｉｃｏｄｅ規格によって符号化されている）幅広いレパートリーを認識するように訓練される。殆どの最新式の手書き認識システムは、ストローク順序依存式の隠れマルコフ法（ＨＭＭ）に基づく。更には、殆どの既存の手書き認識モデルは、言語固有のものであり、数十個の文字（例えば、英語のアルファベット、ギリシャ語のアルファベット、全１０個の数字などの文字）の小さいレパートリーから、最大数千個の文字（例えば、最も一般的に使用される中国文字のセット）を含む。それゆえ、本明細書で説明される汎用認識部は、殆どの既存のシステムよりも数桁多い文字を取り扱うことができる。
【０１５０】
一部の従来の手書きシステムは、それぞれが特定の言語又は文字の小セットに関して適合された、幾つかの個別に訓練された手書き認識モデルを含み得る。書き込みサンプルは、分類することが可能となるまでは、種々の認識モデルを通って伝播される。例えば、手書きサンプルは、一連の連結された言語固有又はスクリプト固有の文字認識モデルに提供することができ、その手書きサンプルは、最初の認識モデルによって確証的に分類することができない場合には、次の認識モデルに提供され、この次の認識モデルが、それ自体のレパートリー内に、その手書きサンプルを分類することを試みる。この分類のための手法は、時間がかかり、採用する必要がある認識モデルが追加されるごとに、メモリ要件が急速に増大する。
【０１５１】
他の最新式モデルは、ユーザが、好ましい言語を指定することを必要とするものであり、その選択された手書き認識モデルを使用して、現在の入力を分類する。そのような実装は、使用することが煩雑であり、著しくメモリを消費するばかりではなく、混合言語入力を認識するために使用することもできない。混合言語又は混合スクリプトの入力の途中で、言語設定を切り替えることが、ユーザに必要となることは、実際的ではない。
【０１５２】
本明細書で説明されるマルチスクリプト又は汎用認識部は、従来の認識システムに関する、上記の問題のうちの少なくとも一部に対処する。図７は、大規模なマルチスクリプト訓練コーパスを使用して、手書き認識モジュール（例えば、畳み込みニューラルネットワーク）を訓練して、その手書き認識モジュールを、ユーザの手書き入力に関するリアルタイムのマルチ言語及びマルチスクリプト手書き認識を提供するために、その後に使用することができるようにするための、例示的プロセス７００の流れ図である。
【０１５３】
一部の実施形態では、手書き認識モデルの訓練は、サーバデバイス上で実行され、次いで、その訓練された手書き認識モデルが、ユーザデバイスに提供される。この手書き認識モデルは、任意選択的に、サーバからの更なる支援を必要とすることなく、ユーザデバイス上で、リアルタイム手書き認識をローカルで実行する。一部の実施形態では、同じデバイス上に、訓練及び認識の双方が提供される。例えば、サーバデバイスは、ユーザデバイスからユーザの手書き入力を受信し、手書き認識を実行し、その認識結果をリアルタイムでユーザデバイスに送信することができる。
【０１５４】
例示的プロセス７００では、１つ以上のプロセッサ及びメモリを有するデバイスで、デバイスは、マルチスクリプト訓練コーパスの空間的に導出される特徴（例えば、ストローク順序非依存式特徴）に基づいて、マルチスクリプト手書き認識モデルを訓練する（７０２）。一部の実施形態では、マルチスクリプト訓練コーパスの空間的に導出される特徴は、ストローク順序非依存式及びストローク方向非依存式である（７０４）。一部の実施形態では、マルチスクリプト手書き認識モデルの訓練は、手書きサンプル内のそれぞれのストロークに関連付けられる時間的情報とは無関係である（７０６）。具体的には、手書きサンプルの画像は、既定のサイズに正規化され、それらの画像は、その画像を形成するために個別のストロークが入力される順序についての、いかなる情報も含まない。更には、それらの画像はまた、その画像を形成するために個別のストロークが入力される方向についての、いかなる情報も含まない。実際に、訓練の間は、個別のストロークによって、どのように画像が時間的に形成されるかには関係なく、それらの手書き画像から特徴が抽出される。それゆえ、認識の間は、個別のストロークに関連する時間的情報は必要とされない。結果として、その認識は、手書き入力内での、遅延した順序外のストローク、及び恣意的なストローク方向にもかかわらず、一貫した認識結果を頑健に提供する。
【０１５５】
一部の実施形態では、マルチスクリプト訓練コーパスは、少なくとも３つの非重複スクリプトの文字に対応する、手書きサンプルを含む。図６に示されるように、マルチスクリプト訓練コーパスは、多くのユーザから収集された手書きサンプルを含む。各手書きサンプルは、手書き認識モデルに表される、それぞれのスクリプトの１つの文字に対応する。手書き認識モデルを適切に訓練するために、訓練コーパスは、手書き認識モデル内に表されるスクリプトの各文字に関して、多数の書き込みサンプルを含む。
【０１５６】
一部の実施形態では、少なくとも３つの非重複スクリプトは、中国文字、絵文字、及びラテンスクリプトを含む（７０８）。一部の実施形態では、マルチスクリプト手書き認識モデルは、少なくとも３つの非重複スクリプトにわたる３万個の文字を表す、少なくとも３万個の出力クラスを有する（７１０）。
【０１５７】
一部の実施形態では、マルチスクリプト訓練コーパスは、Ｕｎｉｃｏｄｅ規格で符号化されている全ての中国文字（例えば、全てのＣＪＫ（中国語−日本語−韓国語）統合漢字の、全て又は実質的な部分）の各文字に関する、それぞれの書き込みサンプルを含む。Ｕｎｉｃｏｄｅ規格は、合計で約７万４千個のＣＪＫ統合漢字を定義する。ＣＪＫ統合漢字の基本ブロック（４Ｅ００−９ＦＦＦ）は、中国語、並びに日本語、韓国語、及びベトナム語で使用される、２０，９４１個の基本中国文字を含む。一部の実施形態では、マルチスクリプト訓練コーパスは、ＣＪＫ統合漢字の基本ブロック中の全ての文字に関する、書き込みサンプルを含む。一部の実施形態では、マルチスクリプト訓練コーパスは、１つ以上の複合中国文字を構造的に構成するために使用することが可能なＣＪＫ部首に関する、書き込みサンプルを更に含む。一部の実施形態では、マルチスクリプト訓練コーパスは、ＣＪＫ統合漢字拡張のうちの１つ以上で符号化されている中国文字などの、より使用頻度が低い中国文字に関する、書き込みサンプルを更に含む。
【０１５８】
一部の実施形態では、マルチスクリプト訓練コーパスは、Ｕｎｉｃｏｄｅ規格によって符号化されているラテンスクリプト中の全ての文字の各文字に関する、それぞれの書き込みサンプルを更に含む。基本ラテンスクリプト中の文字は、ラテン大文字及びラテン小文字、並びに、標準的なラテンキーボード上で一般的に使用される、基本記号及び数字を含む。一部の実施形態では、マルチスクリプト訓練コーパスは、拡張ラテンスクリプト中の文字（例えば、基本ラテン文字の様々な強調形態）を更に含む。
【０１５９】
一部の実施形態では、マルチスクリプト訓練コーパスは、いずれの自然人間言語にも関連付けられない、人工的スクリプトの各文字に対応する、書き込みサンプルを含む。例えば、一部の実施形態では、絵文字のセットが、任意選択的に、絵文字スクリプト中に定義され、それらの絵文字のそれぞれに対応する書き込みサンプルが、マルチスクリプト訓練コーパス内に含まれる。例えば、手描きのハート形記号は、訓練コーパス内の絵文字「
2019164801.tif 000015
」に関する手書きサンプルである。同様に、手描きの笑顔（例えば、上を向いた弧の上方の２つの点）は、訓練コーパス内の絵文字「
2019164801.tif 000016
」に関する手書きサンプルである。他の絵文字としては、種々の感情（例えば、歓喜、悲哀、怒り、当惑、驚愕、笑い、泣き、苛立ちなど）、種々の物体及びキャラクタ（例えば、猫、犬、ウサギ、心臓、果物、目、唇、贈り物、花、ろうそく、月、星など）、及び種々の行為（例えば、握手、キス、走る、踊る、跳び上がる、眠る、食べる、会う、愛する、好む、投票するなど）などを示すアイコンのカテゴリが挙げられる。一部の実施形態では、絵文字に対応する手書きサンプル内のストロークは、対応する絵文字を形成する実際の線の、単純化及び／又は様式化された線である。一部の実施形態では、各デバイス又はアプリケーションは、同じ絵文字に関して、異なるデザインを使用することができる。例えば、女性のユーザに提示される笑顔の絵文字は、男性のユーザに提示される笑顔の絵文字とは、それらの２人のユーザから受信される手書き入力が実質的に同じ場合であっても、異なるものとすることができる。
【０１６０】
一部の実施形態では、マルチスクリプト訓練コーパスはまた、ギリシャ語スクリプト（例えば、ギリシャ文字及び記号を含む）、キリル文字スクリプト、ヘブライ語スクリプト、及びＵｎｉｃｏｄｅ規格に従って符号化されている１つ以上の他のスクリプトなどの、他のスクリプト中の文字に関する書き込みサンプルも含む。一部の実施形態では、マルチスクリプト訓練コーパス内に含まれる、少なくとも３つの非重複スクリプトは、中国文字、絵文字、及びラテンスクリプト中の文字を含む。中国文字、絵文字、及びラテンスクリプト中の文字は、本来、非重複スクリプトである。多くの他のスクリプトは、少なくとも一部の文字に関して、互いに重複する場合がある。例えば、ラテンスクリプト中の一部の文字（例えば、Ａ、Ｚ）は、多くの他のスクリプト（例えば、ギリシャ語、及びキリル文字）中に見出すことができる。一部の実施形態では、マルチスクリプト訓練コーパスは、中国文字、アラビア語スクリプト、及びラテンスクリプトを含む。一部の実施形態では、マルチスクリプト訓練コーパスは、重複スクリプト及び／又は非重複スクリプトの、他の組み合わせを含む。一部の実施形態では、マルチスクリプト訓練コーパスは、Ｕｎｉｃｏｄｅ規格によって符号化されている全ての文字に関する、書き込みサンプルを含む。
【０１６１】
図７に示されるように、一部の実施形態では、マルチスクリプト手書き認識モデルを訓練するために、デバイスは、単一の入力面及び単一の出力面を有する、単一の畳み込みニューラルネットワークに、マルチスクリプト訓練コーパスの手書きサンプルを提供する（７１２）。デバイスは、マルチスクリプト訓練コーパス内に表される、少なくとも３つの非重複スクリプトの文字を区別するための、それらの手書きサンプルの空間的に導出される特徴（例えば、ストローク順序非依存式特徴）、及びそれらの空間的に導出される特徴に関するそれぞれの重みを、畳み込みニューラルネットワークを使用して判定する（７１４）。このマルチスクリプト手書き認識モデルは、単一の入力面及び単一の出力面を有する、単一の手書き認識モデルが、マルチスクリプト訓練コーパス内の全てのサンプルを使用して訓練されるという点で、従来のマルチスクリプト手書き認識モデルとは異なる。単一の畳み込みニューラルネットワークは、訓練コーパスの小さいサブセットをそれぞれが取り扱う、個別のサブネットワーク（例えば、それぞれが、特定の言語内で使用される特定のスクリプト又は文字に関して訓練される、サブネットワーク）に依存することなく、マルチスクリプト訓練コーパス内に表される全ての文字を識別するように訓練される。更には、この単一の畳み込みニューラルネットワークは、ラテンスクリプト及びギリシャ語スクリプトなどの（例えば、重複文字Ａ、Ｂ、Ｅ、Ｚなどを有する）少数の重複スクリプトの文字ではなく、複数の非重複スクリプトにわたる多数の文字を識別するように訓練される。
【０１６２】
一部の実施形態では、デバイスは、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されている、マルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供する（７１６）。一部の実施形態では、ユーザの手書き入力に関するリアルタイム手書き認識を提供することは、ユーザが、手書き入力の追加及び訂正を継続して提供する際に、そのユーザの手書き入力に関する認識出力を、継続的に訂正することを含む。一部の実施形態では、ユーザの手書き入力に関するリアルタイム手書き認識を提供することは、マルチスクリプト手書き認識モデルを、ユーザデバイスに提供することを更に含み（７１８）、ユーザデバイスは、ユーザから手書き入力を受信し、そのマルチスクリプト手書き認識モデルに基づいて、手書き入力に対して手書き認識をローカルで実行する。
【０１６３】
一部の実施形態では、デバイスは、それぞれの入力言語に重複が存在しない複数のデバイスに、マルチスクリプト手書き認識モデルを提供し、そのマルチスクリプト手書き認識モデルは、それらの各ユーザデバイスに関連付けられる、異なる言語の手書き認識に関して、それらの複数のデバイスのそれぞれで使用される。例えば、マルチスクリプト手書き認識モデルが、多くの異なるスクリプト及び言語での文字を認識するように訓練されている場合、その同じ手書き認識モデルを世界中で使用して、それらの入力言語のうちのいずれかに関する、手書き入力を提供することができる。英語及びヘブライ語で入力することのみを望むユーザ用の第１のデバイスは、中国語及び絵文字で入力することのみを望むユーザ用の第２のデバイスと同じ手書き認識モデルを使用して、手書き入力の機能性を提供することができる。第１のデバイスのユーザが、英語の手書き入力キーボード（例えば、英語固有の手書き認識モデルで実装されるもの）、及び別個のヘブライ語の手書き入力キーボード（例えば、ヘブライ語固有の手書き認識モデルで実装されるもの）を、別個にインストールすることを必要とする代わりに、同じ汎用マルチスクリプト手書き認識モデルを、第１のデバイス上に一旦インストールすると、英語、ヘブライ語の双方に関する手書き入力機能、並びに双方の言語での混合入力を提供するために使用することができる。更には、第２のユーザが、中国語の手書き入力キーボード（例えば、中国語固有の手書き認識モデルで実装されるもの）、及び別個の絵文字の手書き入力キーボード（例えば、絵文字の手書き認識モデルで実装されるもの）をインストールすることを必要とする代わりに、同じ汎用マルチスクリプト手書き認識モデルを、第２のデバイス上に一旦インストールすると、中国語、絵文字の双方に関する手書き入力機能、並びに双方のスクリプトでの混合入力を提供するために使用することができる。同じマルチスクリプト手書きモデルを使用して、複数のスクリプトにわたる幅広いレパートリー（例えば、１００に近い異なるスクリプトで符号化されている文字の実質的な部分又は全て）を取り扱うことにより、デバイスの供給元及びユーザに対して実質的な負担を課すことなく、その認識部の有用性が向上する。
【０１６４】
大規模なマルチスクリプト訓練コーパスを使用する、マルチスクリプト手書き認識モデルの訓練は、従来のＨＭＭに基づく手書き認識システムとは異なるものであり、文字の個別のストロークに関連付けられる時間的情報には依存しない。更には、このマルチスクリプト認識システムに関するリソース及びメモリ要件は、そのマルチスクリプト認識システムの適用範囲となる記号及び言語の増加に比例して増大するものではない。例えば、従来の手書きシステムでは、言語の数の増加は、独立して訓練された別のモデルを追加することを意味し、メモリ要件は、その手書き認識システムの増大する能力に適応するために、少なくとも倍増されることになる。対照的に、マルチスクリプトモデルが、マルチスクリプト訓練コーパスによって訓練される場合、言語の適用範囲を増大させることは、更なる手書きサンプルを使用して、その手書き認識モデルを再訓練することを必要とし、出力面のサイズを増大させるが、その増大の量は極めて穏やかである。マルチスクリプト訓練コーパスが、ｎ個の異なる言語に対応する手書きサンプルを含み、マルチスクリプト手書き認識モデルが、サイズｍのメモリを占有し、言語の適用範囲をＮ個（Ｎ＞ｎ）の言語に増加させる場合、デバイスが、第２のマルチスクリプト訓練コーパスの空間的に導出される特徴に基づいて、マルチスクリプト手書き認識モデルを再訓練し、この第２のマルチスクリプト訓練コーパスが、Ｎ個の異なる言語に対応する第２の手書きサンプルを含むと想定する。Ｎ／ｎの変化が１〜１００である場合に、Ｍ／ｍの変化は、１〜２の範囲内で、実質的に一定のまま維持される。マルチスクリプト手書き認識モデルが再訓練された後、デバイスは、その再訓練されたマルチスクリプト手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供することができる。
【０１６５】
図８Ａ、図８Ｂは、ポータブルユーザデバイス（例えば、デバイス１００）上に、リアルタイムのマルチスクリプト手書き認識及び入力を提供するための、例示的ユーザインタフェースを示す。図８Ａ及び図８Ｂでは、手書き入力インタフェース８０２が、ユーザデバイスのタッチ感知ディスプレイスクリーン（例えば、タッチスクリーン１１２）上に表示されている。手書き入力インタフェース８０２は、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８を含む。一部の実施形態では、手書き入力インタフェース８０２は、複数の制御要素を更に含み、それぞれを呼び出して、手書き入力インタフェースに、既定の機能を実行させることができる。図８Ａに示されるように、手書き入力インタフェース内には、削除ボタン、スペースボタン、復帰改行即ちＥｎｔｅｒボタン、キーボード切り替えボタンが含まれる。他の制御要素も可能であり、手書き入力インタフェース８０２を利用する、それぞれの異なるアプリケーションに適合するように、任意選択的に、手書き入力インタフェース内に提供することができる。手書き入力インタフェース８０２の種々の構成要素のレイアウトは、単なる例示に過ぎず、異なるデバイス及び異なるアプリケーションによって変化し得る。
【０１６６】
一部の実施形態では、手書き入力区域８０４は、ユーザから手書き入力を受信するための、タッチ感知区域である。手書き入力区域８０４内のタッチスクリーン上での持続的接触、及びその関連する動きの経路が、手書きストロークとして登録される。一部の実施形態では、デバイスによって登録された手書きストロークは、手書き入力区域８０４内に、その持続的接触によってトレースされた同じ場所で視覚的にレンダリングされる。図８Ａに示されるように、ユーザは、手書き入力区域８０４内に、幾つかの手書き中国文字（例えば、「
2019164801.tif 000017
」）、幾つかの手書き英語文字（例えば、「Ｈａｐｐｙ」）、及び手描きの絵文字（例えば、笑顔）を含む、幾つもの手書きストロークを提供している。これらの手書き文字は、手書き入力区域８０４内の複数の行（例えば、２つの行）内に分布されている。
【０１６７】
一部の実施形態では、候補表示区域８０６は、手書き入力区域８０４内に現時点で蓄積されている手書き入力に関する、１つ以上の認識結果（例えば、８１０及び８１２）を表示する。一般的に、最上ランクの認識結果（例えば、８１０）が、候補表示区域内の第１の位置に表示される。図８Ａに示されるように、本明細書で説明される手書き認識モデルは、中国文字、ラテンスクリプト、及び絵文字を含めた、複数の非重複スクリプトの文字を認識することが可能であるため、この認識モデルによって提供される認識結果（例えば、８１０）は、手書き入力によって表された中国文字、英語文字、及び絵文字を、正確に含む。ユーザは、認識言語を選択又は切り替えるために、入力の書き込みの途中で中断することが必要とされない。
【０１６８】
一部の実施形態では、テキスト入力区域８０８は、この手書き入力インタフェースを採用しているそれぞれのアプリケーションに提供される、テキスト入力を表示する区域である。図８Ａに示されるように、テキスト入力区域８０８は、メモアプリケーションによって使用され、テキスト入力区域８０８内に現在示されているテキスト（例えば、「Ａｍｅｒｉｃａ
2019164801.tif 000018
」）は、メモアプリケーションに既に提供されたテキスト入力である。一部の実施形態では、カーソル８１３が、テキスト入力区域８０８内での、現在のテキスト入力位置を示す。
【０１６９】
一部の実施形態では、ユーザは、例えば、明示的な選択入力（例えば、表示された認識結果のうちの１つの上でのタップジェスチャ）、又は暗黙的な確認入力（例えば、「Ｅｎｔｅｒ」ボタン上でのタップジェスチャ、又は手書き入力区域内でのダブルタップジェスチャ）によって、候補表示区域８０６内に表示された特定の認識結果を選択することができる。図８Ｂに示されるように、ユーザは、（図８Ａでの、認識結果８１０の上での接触８１４によって示されるような）タップジェスチャを使用して、最上ランクの認識結果８１０を、明示的に選択している。この選択入力に応じて、テキスト入力区域８０８内の、カーソル８１３によって示される挿入ポイントに、認識結果８１０のテキストが挿入される。図８Ｂに示されるように、選択された認識結果８１０のテキストが、テキスト入力区域８０８内に入力されると、手書き入力区域８０４及び候補表示区域８０６は、双方ともクリアされる。この時点で、手書き入力区域８０４は、新たな手書き入力を受け入れる準備が整い、候補表示区域８０６は、この時点で、その新たな手書き入力に関する認識結果を表示するために使用することが可能となる。一部の実施形態では、暗黙的確認入力は、ユーザが中断して最上ランクの認識結果を選択することを必要とせずに、テキスト入力区域８０８内に、最上ランクの認識結果を入力させる。優れた設計の暗黙的確認入力により、テキスト入力速度が向上し、テキスト構成の間の、ユーザに強いられる認知負担が軽減される。
【０１７０】
一部の実施形態（図８Ａ、８Ｂには示さず）では、現在の手書き入力の最上ランクの認識結果が、任意選択的に、テキスト入力区域８０８内に暫定的に表示される。このテキスト入力区域８０８内に示される暫定的テキスト入力は、例えば、その暫定的テキスト入力を取り囲む、暫定入力ボックスによって、テキスト入力区域内の他のテキスト入力から視覚的に識別される。この暫定入力ボックス内に示されるテキストは、未だ確定されておらず、また、関連するアプリケーション（例えば、メモアプリケーション）にも未だ提供されておらず、例えば、現在の手書き入力のユーザ訂正に応じて、最上ランクの認識結果が手書き入力モジュールによって変更されると、自動的に更新される。
【０１７１】
図９Ａ、図９Ｂは、ユーザデバイス上にマルチスクリプト手書き認識を提供するための、例示的プロセス９００の流れ図である。一部の実施形態では、図９００に示されるように、ユーザデバイスは、マルチスクリプト手書き認識モデルを受信し（９０２）、このマルチスクリプト認識モデルは、マルチスクリプト訓練コーパスの空間的に導出される特徴（例えば、ストローク順序及びストローク方向非依存式特徴）について訓練されており、このマルチスクリプト訓練コーパスは、少なくとも３つの非重複スクリプトの文字に対応する、手書きサンプルを含む。一部の実施形態では、マルチスクリプト手書き認識モデルは、単一の入力面及び単一の出力面を有する、単一の畳み込みニューラルネットワークであり（９０６）、マルチスクリプト訓練コーパス内に表される、少なくとも３つの非重複スクリプトの文字を区別するための、空間的に導出される特徴、及びそれらの空間的に導出される特徴に関するそれぞれの重みを含む。一部の実施形態では、マルチスクリプト手書き認識モデルは、手書き入力内で特定された１つ以上の認識単位の、それぞれの入力画像に基づいて、文字を認識するように構成され（９０８）、認識のために使用される、それぞれの空間的に導出される特徴は、その手書き入力内での、それぞれのストローク順序、ストローク方向、及びストロークの連続性とは無関係である。
【０１７２】
一部の実施形態では、ユーザデバイスは、ユーザから手書き入力を受信し（９０８）、この手書き入力は、ユーザデバイスに結合されたタッチ感知面上に提供される、１つ以上の手書きストロークを含む。例えば、手書き入力は、指又はスタイラスと、ユーザデバイスに結合されたタッチ感知面との接触の、場所及び移動についての、それぞれのデータを含む。この手書き入力の受信に応じて、ユーザデバイスは、マルチスクリプト訓練コーパスの空間的に導出される特徴について訓練されている、マルチスクリプト手書き認識モデルに基づいて、１つ以上の手書き認識結果を、リアルタイムでユーザに提供する（９１０）（９１２）。
【０１７３】
一部の実施形態では、リアルタイムの手書き認識結果をユーザに提供する場合、ユーザデバイスは、ユーザの手書き入力を、１つ以上の認識単位へと分割し（９１４）、各認識単位は、ユーザによって提供された手書きストロークのうちの１つ以上を含む。一部の実施形態では、ユーザデバイスは、ユーザの指又はスタイラスと、ユーザデバイスのタッチ感知面との接触によって作り出される、個別のストロークの、形状、場所、及びサイズに従って、ユーザの手書き入力を分割する。一部の実施形態では、この手書き入力の分割は、ユーザの指又はスタイラスと、ユーザデバイスのタッチ感知面との接触によって作り出される、個別のストロークの、相対順序及び相対位置を更に考慮に入れる。一部の実施形態では、ユーザの手書き入力は、筆写体の書体であり、その手書き入力内の各継続的ストロークは、印刷形態での認識文字内の、複数のストロークに対応し得る。一部の実施形態では、ユーザの手書き入力は、印刷形態での複数の認識文字にわたる、継続的ストロークを含み得る。一部の実施形態では、手書き入力の分割は、それぞれが各認識単位に対応する、１つ以上の入力画像を生成する。一部の実施形態では、それらの入力画像のうちの一部は、任意選択的に、幾つかの重複ピクセルを含む。一部の実施形態では、それらの入力画像は、いずれの重複ピクセルも含まない。一部の実施形態では、ユーザデバイスは、分割束を生成し、この分割束の各分割鎖が、現在の手書き入力を分割する、それぞれの方式を表す。一部の実施形態では、分割鎖内の各弧が、現在の手書き入力内のストロークの、それぞれのグループに対応する。
【０１７４】
図９００に示されるように、ユーザデバイスは、１つ以上の認識単位のそれぞれの対応の画像を、マルチスクリプト認識モデルに、入力として提供する（９１４）。１つ以上の認識単位のうちの少なくとも１つに関して、ユーザデバイスは、マルチスクリプト手書き認識モデルから、第１のスクリプトからの少なくとも第１の出力文字、及び、第１のスクリプトとは異なる第２のスクリプトからの、少なくとも第２の出力文字を取得する（９１６）。例えば、同じ入力画像は、マルチスクリプト認識モデルに、異なるスクリプトからの２つ以上の類似した見た目の出力文字を、その同じ入力画像に関する認識結果として出力させることができる。例えば、ラテンスクリプトでの文字「ａ」、及びギリシャス語クリプトでの文字「α」に関する手書き入力は、類似する場合が多い。更には、ラテンスクリプトでの文字「Ｊ」、及び中国文字「
2019164801.tif 000019
」に関する手書き入力は、類似する場合が多い。同様に、絵文字「
2019164801.tif 000020
」に関する手書き入力は、ＣＪＫ部首「
2019164801.tif 000021
」に関する手書き入力と類似する場合がある。一部の実施形態では、マルチスクリプト手書き認識モデルは、多くの場合、ユーザの手書き入力に対応する可能性が高い、複数の候補認識結果を生成するが、これは、手書き入力の視覚的外観が、人間の読み手でさえも、解読することが困難となるためである。一部の実施形態では、第１のスクリプトは、ＣＪＫ基本文字ブロックであり、第２のスクリプトは、Ｕｎｉｃｏｄｅ規格によって符号化されているようなラテンスクリプトである。一部の実施形態では、第１のスクリプトは、ＣＪＫ基本文字ブロックであり、第２のスクリプトは、絵文字のセットである。一部の実施形態では、第１のスクリプトは、ラテンスクリプトであり、第２のスクリプトは、絵文字である。
【０１７５】
一部の実施形態では、ユーザデバイスは、そのユーザデバイスの手書き入力インタフェースの候補表示区域内に、第１の出力文字及び第２の出力文字の双方を表示する（９１８）。一部の実施形態では、ユーザデバイスは、第１のスクリプト及び第２のスクリプトのうちのいずれの一方が、そのユーザデバイス上に現在インストールされているソフトキーボードで使用される対応のスクリプトであるかに基づいて、第１の出力文字及び第２の出力文字のうちの一方を選択的に表示する（９２０）。例えば、手書き認識モデルが、現在の手書き入力に関する出力文字として、中国文字「
2019164801.tif 000022
」及びギリシャ文字「λ」を特定していると想定すると、ユーザデバイスは、そのユーザデバイス上に、中国語ソフトキーボード（例えば、ピンイン入力法を使用するキーボード）又はギリシャ語入力キーボードのいずれをユーザがインストールしているかを判定する。ユーザデバイスが、中国語ソフトキーボードのみがインストールされていると判定する場合には、そのユーザデバイスは、任意選択的に、ユーザへの認識結果として中国文字「
2019164801.tif 000023
」のみを表示し、ギリシャ文字「λ」は表示しない。
【０１７６】
一部の実施形態では、ユーザデバイスは、リアルタイム手書き認識及び入力を提供する。一部の実施形態では、ユーザデバイスは、ユーザが、ユーザに表示された認識結果の明示的又は暗黙的な選択を実施する前に、ユーザによる手書き入力に対する継続的な追加又は訂正に応じて、そのユーザの手書き入力に関する１つ以上の認識結果を、継続的に訂正する（９２２）。一部の実施形態では、１つ以上の認識結果の各訂正に応じて、ユーザは、それぞれの訂正された１つ以上の認識結果を、手書き入力ユーザインタフェースの候補表示区域内で、ユーザに対して表示する（９２４）。
【０１７７】
一部の実施形態では、マルチスクリプト手書き認識モデルは、Ｕｎｉｃｏｄｅ規格に従って符号化されている、中国文字、絵文字、及びラテンスクリプトを含めた、少なくとも３つの非重複スクリプトの全ての文字を認識するように訓練される（９２６）。一部の実施形態では、少なくとも３つの非重複スクリプトは、中国文字、アラビア語スクリプト、及びラテンスクリプトを含む。一部の実施形態では、マルチスクリプト手書き認識モデルは、少なくとも３つの非重複スクリプトにわたる少なくとも３０個の文字を表す、少なくとも３万個の出力クラスを有する（９２８）。
【０１７８】
一部の実施形態では、ユーザデバイスは、２つ以上のスクリプトの文字を含む語句などの、マルチスクリプト手書き入力を、ユーザが入力することを可能にする。例えば、ユーザは、認識言語を手動で切り替えるために、書き込みの途中で中断することなく、継続的に書き込みを行い、２つ以上のスクリプトの文字を含む、手書き認識結果を受信することができる。例えば、ユーザは、ユーザデバイスの手書き入力区域内に、マルチスクリプトの文「Ｈｅｌｌｏ  ｍｅａｎｓ
2019164801.tif 000024
ｉｎ  Ｃｈｉｎｅｓｅ．」を書き込むことができ、その場合、中国文字「
2019164801.tif 000025
」を書き込む前に、英語から中国語に入力言語を切り替えることも、又は英語の語「ｉｎ  Ｃｈｉｎｅｓｅ」を書き込む際に、中国語から英語に入力言語を切り替えて戻すことも必要とはしない。
【０１７９】
本明細書で説明されるように、ユーザの入力に関するリアルタイム手書き認識を提供するために、マルチスクリプト手書き認識モデルが使用される。一部の実施形態では、リアルタイム手書き認識は、ユーザのデバイス上にリアルタイムマルチスクリプト手書き入力の機能性を提供するために使用される。図１０Ａ〜図１０Ｃは、ユーザデバイス上にリアルタイム手書き認識及び入力を提供するための、例示的プロセス１０００の流れ図である。具体的には、このリアルタイム手書き認識は、文字レベル、語句レベル、及び文レベルで、ストローク順序非依存式である。
【０１８０】
一部の実施形態では、文字レベルでのストローク順序非依存式の手書き認識は、ユーザによって提供された特定の文字の個別のストロークの配列にかかわらず、手書き認識モデルが、その特定の手書き文字に関して同じ認識結果を提供することが必要とされる。例えば、中国文字の個別のストロークは、典型的には、特定の順序で書き込まれる。中国語を母国語とする人は、学校で、各文字を特定の順序で書き込むように訓練される場合が多いが、多くのユーザは、その従来のストローク順序から逸脱する、個人的なスタイル及びストロークの配列を、後に採用している。更には、筆写体の書体は、高度に個別化され、中国文字の印刷形態での複数のストロークは、単一の様式化されたストロークへと融合される場合が多く、そのストロークは、歪曲し、向きを変え、更には次の文字へと続け書きされる場合もある。ストローク順序非依存式の認識モデルは、個別のストロークに関連付けられる時間的情報を含まない、書き込みサンプルの画像に基づいて訓練される。それゆえ、この認識は、ストローク順序情報とは無関係である。例えば、中国文字「
2019164801.tif 000026
」に関しては、ユーザが、水平のストロークを最初に書き込むか、又は垂直のストロークを最初に書き込むかにかかわらず、同じ認識結果「
2019164801.tif 000027
」が、手書き認識モデルによって与えられる。
【０１８１】
図１０Ａに示されるように、プロセス１０００では、ユーザデバイスは、ユーザから複数の手書きストロークを受信し（１００２）、これらの複数の手書きストロークは、１つの手書き文字に対応する。例えば、文字「
2019164801.tif 000028
」に関する手書き入力は、典型的には、実質的に垂直の手書きストロークと交差する、実質的に水平の手書きストロークを含む。
【０１８２】
一部の実施形態では、ユーザデバイスは、これらの複数の手書きストロークに基づいて、入力画像を生成する（１００４）。一部の実施形態では、ユーザデバイスは、その手書き文字のリアルタイム手書き認識を実行するために、手書き認識モデルに入力画像を提供し（１００６）、この手書き認識モデルは、ストローク順序非依存式の手書き認識を提供する。次いで、ユーザデバイスは、ユーザから受信された複数の手書きストローク（例えば、水平のストローク及び垂直のストローク）の、それぞれの順序に関わりなく、それらの複数の手書きストロークを受信するリアルタイムで、同一の第１の出力文字（例えば、印刷形態での文字「
2019164801.tif 000029
」）を表示する（１００８）。
【０１８３】
一部の従来の手書き認識システムでは、少数の文字での軽微なストローク順序の変動は、その手書き認識システムの訓練に、そのような変動を具体的に含めることによって許容される。そのような従来の手書き認識システムは、中国文字などの、多数の複雑な文字での、恣意的なストローク順序の変動に適応するように拡張可能ではないが、これは、適度な複雑性の文字であっても、既に、ストローク順序の多数の変動を生じさせるためである。更には、特定の文字に関する容認可能なストローク順序の、より多くの順列を単に含めることによっては、従来の認識システムでは、複数のストロークが単一のストロークへと組み合わされる（例えば、超筆写体の書き込みでのような）手書き入力、又は１つのストロークが複数のサブストロークへと分解される（例えば、入力ストロークの極めて荒いサンプリングで取り込まれた文字でのような）手書き入力は、依然として取り扱うことが不可能である。それゆえ、本明細書で説明されるような、空間的に導出される特徴について訓練される、マルチスクリプト手書きシステムは、従来の認識システムに勝る利点を提供する。
【０１８４】
一部の実施形態では、ストローク順序非依存式の手書き認識は、各手書き文字内の個別のストロークに関連付けられる時間的情報とは、無関係に実行される。一部の実施形態では、ストローク順序非依存式の手書き認識は、フラットな入力画像へと融合される前の、個別のストロークの空間的分布を考慮に入れる、ストローク分布情報と関連して実行される。この時間的に導出されるストローク分布情報を使用して、どのように上述のストローク順序非依存式の手書き認識を増強するかについての更なる詳細は、この後（例えば、図２５Ａ〜図２７に関連して）本明細書で提供される。図２５Ａ〜図２７に関連して説明される技術は、手書き認識システムのストローク順序非依存性を損なうものではない。
【０１８５】
一部の実施形態では、手書き認識モデルは、ストローク方向非依存式の手書き認識を提供する（１０１０）。一部の実施形態では、ストローク方向非依存式の認識は、ユーザデバイスが、複数の手書き入力の受信に応じて、ユーザによって提供された複数の手書きストロークのそれぞれの、それぞれのストローク方向に関わりなく、同一の第１の出力文字を表示することが必要とされる。例えば、ユーザが、ユーザデバイスの手書き入力区域内に、中国文字「
2019164801.tif 000030
」を書き込んでいる場合には、手書き認識モデルは、ユーザが、水平のストロークを左から右に描いたか、又は右から左に描いたかにかかわらず、同じ認識結果を出力する。同様に、手書き認識モデルは、ユーザが、垂直のストロークを下向きの方向で描いたか、又は上向きの方向で描いたかにかかわらず、同じ認識結果を出力する。別の実施例では、多くの中国文字は、２つ以上の部首で構造的に作成される。一部の中国文字は、左の部首及び右の部首をそれぞれが含み、人々は、慣例的に、左の部首を最初に書き込み、右の部首を２番目に書き込む。一部の実施形態では、手書き認識モデルは、ユーザが手書き文字を完成させた際に、結果的に得られる手書き入力が、右の部首の左側に左の部首を示す限りは、ユーザが左の部首を最初に書き込んだか、又は右の部首を最初に書き込んだかにかかわらず、同じ認識結果を提供する。同様に、一部の中国文字は、上の部首及び下の部首をそれぞれが含み、人々は、慣例的に、上の部首を最初に書き込み、下の部首を最後に書き込む。一部の実施形態では、手書き認識モデルは、結果的に得られる手書き入力が、下の部首の上方に上の部首を示す限りは、ユーザが上の部首を最初に書き込んだか、又は下の部首を最初に書き込んだかにかかわらず、同じ認識結果を提供する。換言すれば、手書き認識モデルは、ユーザが提供する、手書き文字の個別のストロークの方向に依存することなく、手書き文字の同一性を判定する。
【０１８６】
一部の実施形態では、手書き認識モデルは、ユーザによって提供された認識単位のサブストロークの数にかかわらず、その認識単位の画像に基づいて、手書き認識を提供する。換言すれば、一部の実施形態では、手書き認識モデルは、ストローク数非依存式の手書き認識を提供する（１０１４）。一部の実施形態では、ユーザデバイスは、複数の手書きストロークの受信に応じて、幾つの手書きストロークが、その入力画像内の継続的ストロークを形成するために使用されるかに関わりなく、同一の第１の出力文字を表示する。例えば、ユーザが、手書き入力区域内に、中国文字「＋」を書き込んでいる場合には、手書き認識モデルは、ユーザが、文字「
2019164801.tif 000031
」の形状を構成するために、４つのストローク（例えば、十字形状の文字を構成するための、２つの短い水平のストローク及び２つの短い垂直のストローク）を提供したか、又は２つのストローク（例えば、Ｌ形状のストローク及び７形状のストローク、あるいは水平のストローク及び垂直のストローク）を提供したか、又は任意の他の数のストローク（例えば、数百個の極度に短いストローク又は点）を提供したかにかかわらず、同じ認識結果を出力する。
【０１８７】
一部の実施形態では、手書き認識モデルは、それぞれの単一の文字が書き込まれた順番、方向、及びストローク数にかかわらず、同じ文字を認識することが可能であるばかりではなく、手書き認識モデルはまた、ユーザによって提供された、複数の文字のストロークの時間的順序に関わりなく、複数の文字を認識することも可能である。
【０１８８】
一部の実施形態では、ユーザデバイスは、ユーザから、第１の複数の手書きストロークを受信しているだけではなく、第２の複数の手書きストロークも受信しており（１０１６）、それらの第２の複数の手書きストロークは、第２の手書き文字に対応する。一部の実施形態では、ユーザデバイスは、それらの第２の複数の手書きストロークに基づいて、第２の入力画像を生成する（１０１８）。一部の実施形態では、ユーザデバイスは、第２の手書き文字のリアルタイム認識を実行するために、この第２の入力画像を、手書き認識モデルに提供する（１０２０）。一部の実施形態では、ユーザデバイスは、第２の複数の手書きストロークを受信するリアルタイムで、それらの第２の複数の手書きストロークに対応する、第２の出力文字を表示する（１０２２）。一部の実施形態では、第２の出力文字及び第１の出力文字は、ユーザによって提供された、第１の複数の手書きストローク及び第２の複数の手書きストロークのそれぞれの順序とは無関係な、空間的配列で同時に表示される。例えば、ユーザが、ユーザデバイスの手書き入力区域内に、２つの中国文字（例えば、「
2019164801.tif 000032
」及び「
2019164801.tif 000033
」）を書き込んでいる場合には、ユーザデバイスは、手書き入力区域内に現時点で蓄積されている手書き入力が、文字「
2019164801.tif 000034
」に関するストロークの左に、文字「
2019164801.tif 000035
」に関するストロークを示す限りは、ユーザが文字「
2019164801.tif 000036
」のストロークを最初に書き込んだか、又は文字「
2019164801.tif 000037
」のストロークを最初に書き込んだかにかかわらず、認識結果「
2019164801.tif 000038
」を表示する。実際に、ユーザが、文字「
2019164801.tif 000039
」に関するストロークのうちの一部（例えば、垂直のストローク）の前に、文字「
2019164801.tif 000040
」に関するストロークのうちの一部（例えば、左に傾斜したストローク）を書き込んでいる場合であっても、手書き入力区域内の手書き入力の結果的に得られる画像が、文字「
2019164801.tif 000041
」に関する全てのストロークの左に、文字「
2019164801.tif 000042
」に関する全てのストロークを示す限りは、ユーザデバイスは、それらの２つの手書き文字の空間的配列で、認識結果「
2019164801.tif 000043
」を示す。
【０１８９】
換言すれば、図１０Ｂに示されるように、一部の実施形態では、第１の出力文字及び第２の出力文字の空間的配列は、ユーザデバイスの手書き入力インタフェースの、デフォルトの（例えば、左から右への）書き込み方向に沿った、第１の複数の手書きストローク及び第２の複数のストロークの空間的分布に対応する（１０２４）。一部の実施形態では、第２の複数の手書きストロークは、第１の複数の手書きストロークよりも時間的に後に受信され（１０２６）、第２の出力文字は、ユーザデバイスの手書き入力インタフェースの、デフォルトの（例えば、左から右への）書き込み方向に沿った空間的配列で、第１の出力文字に先行する。
【０１９０】
一部の実施形態では、手書き認識モデルは、文と文とのレベルで、ストローク順序非依存式の認識を提供する。例えば、手書き入力区域内で、手書き文字「
2019164801.tif 000044
」が第１の手書き文内に存在し、手書き文字「
2019164801.tif 000045
」が第２の手書き文内に存在し、それらの２つの手書き文字が、１つ以上の他の手書き文字及び／又は語によって隔てられている場合であっても、手書き認識モデルは、それらの２つの文字を空間的配列「
2019164801.tif 000046
」で示す認識結果を、依然として提供する。この認識結果、及び２つの認識文字の空間的配列は、ユーザが手書き入力を完了した際に、それらの２つの文字に関する認識単位が、配列「
2019164801.tif 000047
」で空間的に配置構成されているならば、ユーザによって提供された、それらの２つの文字のストロークの時間的順序にかかわらず、同じままで維持される。一部の実施形態では、第１の手書き文字（例えば、「
2019164801.tif 000048
」）は、第１の手書き文（例えば、「
2019164801.tif 000049
ｉｓ  ａ  ｎｕｍｂｅｒ．」）の一部として、ユーザによって提供され、第２の手書き文字（例えば、「
2019164801.tif 000050
」）は、第２の手書き文（例えば、「
2019164801.tif 000051
ｉｓ  ａｎｏｔｈｅｒ  ｎｕｍｂｅｒ．」）の一部として、ユーザによって提供され、これらの第１の手書き文及び第２の手書き文は、ユーザデバイスの手書き入力区域内に、同時に表示される。一部の実施形態では、この認識結果（例えば、「
2019164801.tif 000052
ｉｓ  ａ  ｎｕｍｂｅｒ．
2019164801.tif 000053
ｉｓ  ａｎｏｔｈｅｒ  ｎｕｍｂｅｒ．」）が正しい認識結果であることを、ユーザが確認すると、それらの２つの文は、ユーザデバイスのテキスト入力区域内に入力され、手書き入力区域は、ユーザが別の手書き入力を入力するために、クリアされる。
【０１９１】
一部の実施形態では、手書き認識モデルは、文字レベルのみならず、語句レベル及び文レベルでもストローク順序非依存式であるため、ユーザは、従前の未完了の文字に対する修正を、後続の文字を書き込んだ後に実施することができる。例えば、ユーザが、手書き入力区域内での、１つ以上の後続の文字の書き込みに移行する前に、ある文字に関する特定のストロークの書き込みを忘れていた場合には、ユーザは依然として、その特定の文字内の正しい場所に、欠落したストロークを後から記入して、正しい認識結果を受け取ることができる。
【０１９２】
従来のストローク順序依存式のシステム（例えば、ＨＭＭに基づく認識システム）では、文字が一旦書き込まれると、その文字は確定されて、ユーザは、もはや、その文字に対するいずれの変更も実施することができない。ユーザが、いずれかの変更を実施することを望む場合には、ユーザは、その文字及び後続の全ての文字を削除して、最初からやり直さなければならない。一部の従来の認識システムでは、ユーザは、短い既定の時間窓の範囲内で、手書き文字を完成することが必要とされ、その既定の時間窓外で入力されたいずれのストロークも、その時間窓の間に提供された他のストロークと同じ認識単位内には含められない。そのような従来のシステムは、使用することが困難であり、多大な苛立ちをユーザにもたらす。ストローク順序非依存式システムは、これらの欠点とは無縁であり、ユーザは、ユーザが適切と思われるような、任意の順序及び任意の時間枠で、文字を完成させることができる。ユーザはまた、以前に書き込んだ文字に対する修正（例えば、１つ以上のストロークの追加）を、その後に１つ以上の文字を手書き入力インタフェース内に書き込んだ後に、実施することもできる。一部の実施形態では、ユーザはまた、以前に書き込んだ文字を、（例えば、図２１Ａ、図２２Ｂに関連して後に説明される方法を使用して）個別に削除して、手書き入力インタフェース内の同じ場所に、その文字を書き直すこともできる。
【０１９３】
図１０Ｂ及び図１０Ｃに示されるように、第２の複数の手書きストロークは、ユーザデバイスの手書き入力インタフェースの、デフォルトの書き込み方向に沿って、第１の複数の手書きストロークを空間的に追従し（１０２８）、第２の出力文字は、手書き入力インタフェースの候補表示区域内で、そのデフォルトの書き込み方向に沿った空間的配列で、第１の出力文字を追従する。ユーザデバイスは、第１の手書き文字（すなわち、第１の複数の手書きストロークによって形成された手書き文字）を訂正するために、ユーザから第３の手書きストロークを受信し（１０３０）、この第３の手書きストロークは、第１の複数の手書きストローク及び第２の複数の手書きストロークよりも、時間的に後に受信される。例えば、ユーザは、手書き入力区域内に、左から右への空間的配列で２つの文字（例えば、「
2019164801.tif 000054
」）を書き込んでいる。第１の複数のストロークは、手書き文字「
2019164801.tif 000055
」を形成する。ユーザは、実際には文字「
2019164801.tif 000056
」を書き込むことを意図していたが、１つのストロークを書き落としたことに留意されたい。第２の複数のストロークは、手書き文字「
2019164801.tif 000057
」を形成する。ユーザが、「
2019164801.tif 000058
」ではなく「
2019164801.tif 000059
」を書き込むことを望んでいたことを、その後に理解すると、ユーザは、単純に、文字「
2019164801.tif 000060
」に関するストロークの下方に、もう１つの垂直のストロークを記入することができ、ユーザデバイスは、その垂直のストロークを、第１の認識単位（例えば、「
2019164801.tif 000061
」に関する認識単位）に割り当てる。ユーザデバイスは、第１の認識単位に関する新たな出力文字（例えば、「
2019164801.tif 000062
」）を出力し、この新たな出力文字が、認識結果内の従前の出力文字（例えば、「
2019164801.tif 000063
」）に置き換わる。図１０Ｃに示されるように、第３の手書きストロークの受信に応じて、ユーザデバイスは、その第３の手書きストロークの、第１の複数の手書きストロークへの相対的な近接性に基づいて、第１の複数の手書きストロークと同じ認識単位に、その第３の手書きストロークを割り当てる（１０３２）。一部の実施形態では、ユーザデバイスは、第１の複数の手書きストローク及び第３の手書きストロークに基づいて、訂正された入力画像を生成する（１０３４）。ユーザデバイスは、訂正された手書き文字のリアルタイム認識を実行するために、この訂正された入力画像を、手書き認識モデルに提供する（１０３６）。一部の実施形態では、ユーザデバイスは、第３の手書き入力の受信に応じて、訂正された入力画像に対応する第３の出力文字を表示し（１０４０）、この第３の出力文字は、第１の出力文字に置き換わり、デフォルトの書き込み方向に沿った空間的配列で、第２の出力文字と同時に表示される。
【０１９４】
一部の実施形態では、手書き認識モジュールは、左から右へのデフォルトの書き込み方向で書き込まれた、手書き入力を認識する。例えば、ユーザは、左から右に、かつ１つ以上の行で、文字を書き込むことができる。この手書き入力に応じて、手書き入力モジュールは、必要に応じて、左から右への空間的配列で、かつ１つ以上の行で文字を含む、認識結果を提示する。ユーザが認識結果を選択する場合には、選択された認識結果は、ユーザデバイスのテキスト入力区域内に入力される。一部の実施形態では、デフォルトの書き込み方向は、上から下である。一部の実施形態では、デフォルトの書き込み方向は、右から左である。一部の実施形態では、ユーザは、認識結果が選択され、手書き入力区域がクリアされた後、任意選択的に、デフォルトの書き込み方向を、代替的な書き込み方向に変更する。
【０１９５】
一部の実施形態では、手書き入力モジュールは、複数文字の手書き入力を、ユーザが手書き入力区域内に入力することを可能にし、その手書き入力からの、一度に全ての認識単位ではなく、一度に１つの認識単位の、ストロークの削除を可能にする。一部の実施形態では、手書き入力モジュールは、手書き入力からの、一度に１つのストロークの削除を可能にする。一部の実施形態では、認識単位の削除は、現在の手書き入力を作り出すために入力された、認識単位又はストロークの順序にかかわらず、デフォルトの書き込み方向とは反対の方向で、１つずつ進行する。一部の実施形態では、ストロークの削除は、そのストロークが各認識単位内で入力された逆の順序で、１つずつ進行し、１つの認識単位内のストロークが全て削除されると、ストロークの削除は、デフォルトの書き込み方向とは反対の方向で、次の認識単位へと進行する。
【０１９６】
一部の実施形態では、第３の出力文字及び第２の出力文字が、手書き入力インタフェースの候補表示区域内に、候補認識結果として同時に表示されている間に、ユーザデバイスは、ユーザから削除入力を受信する。この削除入力に応じて、ユーザデバイスは、認識結果から第２の出力文字を削除する一方で、第３の出力文字を、候補表示区域内表示された認識結果内に維持する。
【０１９７】
一部の実施形態では、図１０Ｃに示されるように、ユーザデバイスは、第１の複数の手書きストローク、第２の複数の手書きストローク、及び第３の手書きストロークを、それらの手書きストロークのそれぞれがユーザによって提供される際に、リアルタイムでレンダリングする（１０４２）。一部の実施形態では、ユーザからの削除入力の受信に応じて、ユーザデバイスは、手書き入力区域から、第２の複数の手書き入力の（例えば、第２の手書き文字に対応する）それぞれのレンダリングを削除する一方で、第１の複数の手書きストローク及び第３の手書きストロークの（例えば、訂正された第１の手書き文字に、一体となって対応する）それぞれのレンダリングを、手書き入力区域内に維持する（１０４４）。例えば、ユーザが、文字配列「
2019164801.tif 000064
」内の欠落した垂直のストロークを提供した後、ユーザが、削除入力を入力した場合には、文字「
2019164801.tif 000065
」に関する認識単位内のストロークが、手書き入力区域から除去され、文字「
2019164801.tif 000066
」が、ユーザデバイスの候補表示区域内の認識結果「
2019164801.tif 000067
」から除去される。この削除の後、文字「
2019164801.tif 000068
」に関するストロークは、手書き入力区域内に維持され、認識結果は、文字「
2019164801.tif 000069
」のみを示す。
【０１９８】
一部の実施形態では、手書き文字は、複数ストロークの中国文字である。一部の実施形態では、第１の複数の手書き入力は、筆写体の書体で提供される。一部の実施形態では、第１の複数の手書き入力は、筆写体の書体で提供され、その手書き文字は、複数ストロークの中国文字である。一部の実施形態では、それらの手書き文字は、筆写体のアラビア語で書き込まれる。一部の実施形態では、それらの手書き文字は、筆写体の他のスクリプトで書き込まれる。
【０１９９】
一部の実施形態では、ユーザデバイスは、手書き文字入力に関する容認可能な寸法のセットについて、それぞれの既定の制約を確立し、現時点で蓄積されている複数の手書きストロークを、それぞれの既定の制約に基づいて、複数の認識単位へと分割し、それらの認識単位のそれぞれから、それぞれの入力画像が生成されて、手書き認識モデルに提供され、対応する出力文字として認識される。
【０２００】
一部の実施形態では、ユーザデバイスは、現時点で蓄積されている複数の手書きストロークを分割した後、ユーザから更なる手書きストロークを受信する。ユーザデバイスは、複数の認識単位に対する、更なる手書きストロークの空間的位置に基づいて、それらの複数の認識単位のうちのそれぞれ１つに、その更なる手書きストロークを割り当てる。
【０２０１】
ここで、ユーザデバイス上に手書き認識及び入力を提供するための、例示的ユーザインタフェースに注意を向ける。一部の実施形態では、この例示的ユーザインタフェースは、ユーザの手書き入力の、リアルタイムのストローク順序非依存式の手書き認識を提供する、マルチスクリプト手書き認識モデルに基づいて、ユーザデバイス上に提供される。一部の実施形態では、この例示的ユーザインタフェースは、手書き入力区域８０４、候補表示区域８０４、及びテキスト入力区域８０８を含む、（例えば、図８Ａ及び図８Ｂに示されるような）例示的な手書き入力インタフェース８０２のユーザインタフェースである。一部の実施形態では、例示的な手書き入力インタフェース８０２はまた、削除ボタン、スペースバー、Ｅｎｔｅｒボタン、キーボード切り替えボタンなどの、複数の制御要素１１０２も含む。１つ以上の他の区域及び／又は要素を、手書き入力インタフェース９０２内に提供して、以下で説明される更なる機能性を可能にすることができる。
【０２０２】
本明細書で説明されるように、マルチスクリプト手書き認識モデルは、多くの異なるスクリプト及び言語での、数万個の文字の極めて幅広いレパートリーを有することが可能である。結果として、手書き入力に関しては、この認識モデルは、多数の出力文字を特定する可能性が極めて高く、それらの出力文字は全て、ユーザによって意図された文字であることの、適度に良好な尤度を有する。限られた表示区域を有するユーザデバイス上では、最初に認識結果のサブセットのみを提供する一方で、他の結果は、ユーザリクエストに応じて利用可能となるように保つことが有利である。
【０２０３】
図１１Ａ〜図１１Ｇは、候補表示区域の通常ビュー内に認識結果のサブセットを表示し、それと共に、認識結果の残余を表示するための候補表示区域の拡張ビューを呼び出すためのアフォーダンスを表示するための、例示的ユーザインタフェースを示す。更には、候補表示区域の拡張ビュー内では、認識結果は、異なるカテゴリへと分類され、拡張ビュー内の異なるタブ付きページ上に表示される。
【０２０４】
図１１Ａは、例示的な手書き入力インタフェース８０２を示す。この手書き入力インタフェースは、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８を含む。１つ以上の制御要素１１０２もまた、手書き入力インタフェース１００２内に含まれる。
【０２０５】
図１１Ａに示されるように、候補表示区域８０６は、任意選択的に、１つ以上の認識結果を表示するための区域と、候補表示区域８０６の拡張バージョンを呼び出すためのアフォーダンス１１０４（例えば、拡張アイコン）とを含む。
【０２０６】
図１１Ａ〜図１１Ｃは、ユーザが、手書き入力区域８０４内に１つ以上の手書きストローク（例えば、ストローク１１０６、１１０８、及び１１１０）を提供すると、ユーザデバイスが、手書き入力区域８０４内に現時点で蓄積されているストロークに対応する、それぞれの認識結果のセットを特定して表示することを示す。図１１Ｂに示されるように、ユーザが、第１のストローク１１０６を入力した後に、ユーザデバイスは、３つの認識結果１１１２、１１１４、及び１１１６（例えば、文字「／」、「１」、及び「，」）を特定して表示する。一部の実施形態では、候補表示区域内８０６内には、少数の候補文字が、各文字に関連付けられた認識信頼度に従った順序で表示される。
【０２０７】
一部の実施形態では、最上ランクの候補結果（例えば、「／」）が、テキスト入力区域８０８内の、例えばボックス１１１８内に、暫定的に表示される。ユーザは、その最上ランクの候補が意図された入力であることを、単純な確認入力で（例えば、「Ｅｎｔｅｒ」キーを押圧するか、又は手書き入力区域内にダブルタップジェスチャを提供することによって）、任意選択的に確認することができる。
【０２０８】
図１１Ｃは、いずれかの候補認識結果をユーザが選択する前に、ユーザが、更に２つのストローク１１０８及び１１１０を、手書き入力区域８０４内に入力すると、それらの追加ストロークが、初期のストローク１１０６と共に手書き入力区域８０４内にレンダリングされ、候補結果が、現時点で蓄積されている手書き入力から特定される認識単位に、それらの変化を反映させるように、更新されることを示す。図１１Ｃに示されるように、３つのストロークに基づいて、ユーザデバイスは、単一の認識単位を特定している。この単一の認識単位に基づいて、ユーザデバイスは、幾つかの認識結果１１１８〜１１２４を特定して表示している。一部の実施形態では、候補表示区域８０６内に現時点で表示されている、これらの認識結果のうちの１つ以上（例えば、１１１８及び１１２２）は、それぞれ、現在の手書き入力に関する、複数の類似した見た目の候補文字の中から選択された、それぞれの代表的候補文字である。
【０２０９】
図１１Ｃ及び図１１Ｄに示されるように、ユーザが、アフォーダンス１１０４を（例えば、アフォーダンス１１０４の上での接触１１２６を伴う、タップジェスチャを使用して）選択すると、候補表示区域は、（例えば、図１１Ｃに示される）通常ビューから、（例えば、図１１Ｄに示される）拡張ビューに変化する。一部の実施形態では、この拡張ビューは、現在の手書き入力に関して特定されている認識結果（例えば、候補文字）の全てを示す。
【０２１０】
一部の実施形態では、初期に表示された、候補表示区域８０６の通常ビューは、それぞれのスクリプト又は言語で使用される、最も一般的に使用される文字のみを示すが、その一方で、拡張ビューは、スクリプト又は言語で使用頻度が低い文字を含めた、全ての候補文字を示す。この候補表示区域の拡張ビューは、種々の方式で設計することができる。図１１Ｄ〜図１１Ｇは、一部の実施形態に係る、拡張候補表示区域の例示的設計を示す。
【０２１１】
図１１Ｄに示されるように、一部の実施形態では、拡張候補表示区域１１２８は、それぞれが、それぞれの候補文字のカテゴリを提示する、１つ以上のタブ付きページ（例えば、ページ１１３０、１１３２、１１３４、及び１１３６）を含む。図１１Ｄに示されるタブ付き設計により、ユーザは、所望の文字のカテゴリを素早く見出し、次いで、その対応するタブ付きページ内で、ユーザが入力することを意図していた文字を見出すことが可能となる。
【０２１２】
図１１Ｄでは、第１のタブ付きページ１１３０は、一般的に使用される文字並びに低頻度の文字の双方を含めた、現時点で蓄積されている手書き入力に関して特定されている、全ての候補文字を表示する。図１１Ｄに示されるように、タブ付きページ１１３０は、図１１Ｃでの初期の候補表示区域８０６内に示されていた文字の全て、及び初期の候補表示区域８０６内には含まれなかった幾つかの更なる文字（例えば、「
2019164801.tif 000070
」、「β」、「
2019164801.tif 000071
」など）を含む。
【０２１３】
一部の実施形態では、初期の候補表示区域８０６内に表示される文字は、特定のスクリプトに関連付けられる、一般的に使用される文字のセットからの文字（例えば、Ｕｎｉｃｏｄｅ規格に従って符号化されているような、ＣＪＫスクリプトの基本ブロック中の全ての文字）のみを含む。一部の実施形態では、拡張候補表示区域１１２８内に表示される文字は、そのスクリプトに関連付けられる、低頻度の文字のセット（例えば、Ｕｎｉｃｏｄｅ規格に従って符号化されているような、ＣＪＫスクリプトの拡張ブロック中の全ての文字）を更に含む。一部の実施形態では、拡張候補表示区域１１２８は、ユーザによって一般的に使用されない他のスクリプト、例えば、ギリシャ語スクリプト、アラビア語スクリプト、及び／又は絵文字スクリプトからの候補文字を更に含む。
【０２１４】
一部の実施形態では、図１１Ｄに示されるように、拡張候補表示区域１１２８は、それぞれが、それぞれの候補文字のカテゴリ（例えば、それぞれ、全ての文字、低頻度の文字、ラテンスクリプトからの文字、及び絵文字スクリプトからの文字）に対応する、それぞれのタブ付きページ１１３０、１１３２、１１３４、及び１１３８を含む。図１１Ｅ〜図１１Ｇは、ユーザが、種々のタブ付きページのそれぞれを選択して、対応するカテゴリ内の候補文字を表出させることができることを示す。図１１Ｅは、現在の手書き入力に対応する、低頻度の文字（例えば、ＣＪＫスクリプトの拡張ブロックからの文字）のみを示す。図１１Ｆは、現在の手書き入力に対応する、ラテン文字及びギリシャ文字のみを示す。図１１Ｇは、現在の手書き入力に対応する、絵文字のみを示す。
【０２１５】
一部の実施形態では、拡張候補表示区域１１２８は、それぞれのタブ付きページ内の候補文字を、それぞれの基準に基づいて（例えば、表音式綴りに基づいて、ストロークの数に基づいて、及び部首などに基づいて）並べ替えるための、１つ以上のアフォーダンスを更に含む。認識信頼度スコア以外の基準に従って、各カテゴリ内の候補文字を並べ替える能力は、テキスト入力に関して所望の候補文字を素早く見出すための、更なる能力をユーザに提供する。
【０２１６】
図１１Ｈ〜図１１Ｋは、一部の実施形態では、類似した見た目の候補文字をグループ化することが可能であり、類似した見た目の候補文字の各グループからの、代表的文字のみが、初期の候補表示区域８０６内に提示されることを示す。本明細書で説明されるマルチスクリプト認識モデルは、所定の手書き入力に関して、ほぼ等しく有効な多くの候補文字を作り出すことができるため、この認識モデルは、１つの候補を、別の類似した見た目の候補を犠牲にして削除することが、必ずしも可能であるとは限らない。限られた表示区域を有するデバイス上では、多くの類似した見た目の候補を、一度に全て表示することは、ユーザが正しい文字を選び出すために役立つものではないが、これは、微細な区別を容易には視認することができず、また、所望の文字をユーザが視認することができる場合であっても、その文字を、極めて混雑した表示から、指又はスタイラスを使用して選択することは、困難である恐れがあるためである。
【０２１７】
一部の実施形態では、上記の問題に対処するために、ユーザデバイスは、互いに高い類似性を有する候補文字を（例えば、類似した見た目の文字のコンコーダンス若しくは辞書、又は画像に基づく何らかの基準に従って）特定し、それらの候補文字を、それぞれのグループへとグループ化する。一部の実施形態では、所定の手書き入力に関する候補文字のセットから、類似した見た目の文字の１つ以上グループを特定することができる。一部の実施形態では、ユーザデバイスは、同じグループ内の複数の類似した見た目の候補文字の中から、代表的候補文字を特定しており、その代表的候補のみを、初期の候補表示区域８０６内に表示する。一般的に使用される文字が、いずれの他の候補文字にも十分に類似して見えない場合には、その文字自体が表示される。一部の実施形態では、図１１Ｈに示されるように、各グループの代表的候補文字（例えば、候補文字１１１８「
2019164801.tif 000072
」及び１１２２「Ｔ」）は、いずれのグループにも属さない候補文字（例えば、候補文字１１２０「
2019164801.tif 000073
」及び１１２４「Ｊ」）とは異なる方式で（例えば、太枠ボックス内に）表示される。一部の実施形態では、グループの代表的文字を選択するための基準は、そのグループ内での候補文字の相対的な使用頻度に基づく。一部の実施形態では、他の基準を使用することができる。
【０２１８】
一部の実施形態では、代表的文字がユーザに対して表示されると、ユーザは、任意選択的に、候補表示区域８０６を拡大し、類似した見た目の候補文字を、拡大ビュー内に示すことができる。一部の実施形態では、特定の代表的文字の選択により、その選択された代表的文字と同じグループ内の候補文字のみの拡大ビューを、生じさせることができる。
【０２１９】
類似した見た目の候補の拡大ビューを提供するための、様々な設計が可能である。図１１Ｈ〜図１１Ｋは、代表的候補文字（例えば、代表的文字１１１８）の上で検出された既定のジェスチャ（例えば、拡大ジェスチャ）によって、代表的候補文字の拡大ビューが呼び出される、一実施形態を示す。拡大ビューを呼び出すための既定のジェスチャ（例えば、拡大ジェスチャ）は、テキスト入力に関する代表的文字を選択するための既定のジェスチャ（例えば、タップジェスチャ）とは異なる。
【０２２０】
図１１Ｈ及び図１１Ｉに示されるように、ユーザが、第１の代表的文字１１１８の上に、（例えば、互いに離れる方向で移動する、２つの接触１１３８及び１１４０によって示されるような）拡大ジェスチャを提供すると、代表的文字１１１８を表示する区域が拡大され、３つの類似した見た目の候補文字（例えば、「
2019164801.tif 000074
」、「
2019164801.tif 000075
」、及び「
2019164801.tif 000076
」）が、同じ拡大グループ内には存在しない他の候補文字（例えば、「
2019164801.tif 000077
」）と比較して、拡大されたビュー内に（例えば、それぞれ、拡大されたボックス１１４２、１１４４、及び１１４６内に）提示される。
【０２２１】
図１１Ｉに示されるように、拡大されたビュー内に提示される場合、３つの類似した見た目の候補文字（例えば、「
2019164801.tif 000078
」、「
2019164801.tif 000079
」、及び「
2019164801.tif 000080
」）の微細な区別は、ユーザによって、より容易に視認することができる。これらの３つの候補文字のうちの１つが、意図された文字入力である場合には、ユーザは、例えば、その文字が表示されている区域をタッチすることによって、その候補文字を選択することができる。図１１Ｊ及び図１１Ｋに示されるように、ユーザは、拡大ビュー内のボックス１１４４内に示される第２の文字（例えば、「
2019164801.tif 000081
」）を、（接触１１４８で）選択している。これに応じて、選択された文字（例えば、「
2019164801.tif 000082
」）が、テキスト入力区域８０８内に、カーソルによって示される挿入ポイントで入力される。図１１Ｋに示されるように、文字が選択されると、手書き入力区域８０４内の手書き入力、及び候補表示区域８０６（又は、候補表示区域の拡大ビュー）内の候補文字は、後続の手書き入力のために消去される。
【０２２２】
一部の実施形態では、ユーザが、第１の代表的候補文字１１４２の拡大ビュー内に、所望の候補文字を視認しない場合には、ユーザは、任意選択的に、同じジェスチャを使用して、候補表示区域８０６内に表示された他の文字を拡大することができる。一部の実施形態では、候補表示区域８０６内の別の代表的文字を拡大して、現在提示されている拡大ビューは、自動的に通常ビューに復元される。一部の実施形態では、ユーザは、任意選択的に、縮小ジェスチャを使用して、現在拡大されているビューを通常ビューに復元する。一部の実施形態では、ユーザは、候補表示区域８０６を、（例えば、左に、又は右に）スクロールさせて、候補表示区域８０６内で不可視の他の候補文字を表出させることができる。
【０２２３】
図１２Ａ及び図１２Ｂは、認識結果の第１のサブセットが、初期の候補表示区域内に提示される一方で、認識結果の第２のサブセットが、ユーザによって具体的に呼び出されるまでは隠されて見えない、拡張候補表示区域内に提示される、例示的プロセス１２００の流れ図である。例示的プロセス１２００では、デバイスは、手書き入力に関する複数の手書き認識結果から、既定の閾値を超える視覚的類似性レベルを有する、認識結果のサブセットを特定する。次いで、ユーザデバイスは、その認識結果のサブセットから、代表的認識結果を選択し、ディスプレイの候補表示区域内に、選択された代表的認識結果を表示する。プロセス１２００は、図１１Ａ〜図１１Ｋに示される。
【０２２４】
図１２Ａに示されるように、例示的プロセス１２００では、ユーザデバイスは、ユーザから手書き入力を受信する（１２０２）。この手書き入力は、手書き入力インタフェース（例えば、図１１Ｃでの８０２）の手書き入力区域（例えば、図１１Ｃでの８０６）内に提供される、１つ以上の手書きストローク（例えば、図１１Ｃでの１１０６、１１０８、１１１０）を含む。ユーザデバイスは、手書き認識モデルに基づいて、その手書き入力に関する複数の出力文字（例えば、図１１Ｃの、タブ付きページ１１３０内に示される文字）を特定する（１２０４）。ユーザデバイスは、既定のカテゴリ化基準に基づいて、それらの複数の出力文字を、２つ以上のカテゴリへと分類する（１２０６）。一部の実施形態では、この既定のカテゴリ化基準は、それぞれの文字が、一般的に使用される文字であるか、又は低頻度の文字であるかを判定する（１２０８）。
【０２２５】
一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの候補表示区域（例えば、図１１Ｃに示されるような８０６）の初期ビュー内に、２つ以上のカテゴリのうちの第１のカテゴリ（例えば、一般的に使用される文字）内の、それぞれの出力文字を表示し（１２１０）、この候補表示区域の初期ビューは、候補表示区域の拡張ビュー（例えば、図１１Ｄでの１１２８）を呼び出すためのアフォーダンス（例えば、図１１Ｃでの１１０４）と同時に提供される。
【０２２６】
一部の実施形態では、ユーザデバイスは、例えば、図１１Ｃに示されるように、拡張ビューを呼び出すためのアフォーダンスを選択する、ユーザ入力を受信する（１２１２）。このユーザ入力に応じて、ユーザデバイスは、例えば、図１１Ｄに示されるように、候補表示区域の拡張ビュー内に、第１のカテゴリ内のそれぞれの出力文字、及び、候補表示区域の初期ビュー内には従前に表示されていなかった、２つ以上のカテゴリのうちの少なくとも第２のカテゴリ内の、それぞれの出力文字を表示する（１２１４）。
【０２２７】
一部の実施形態では、第１のカテゴリ内のそれぞれの文字は、一般的に使用される文字の辞書内に見出される文字であり、第２のカテゴリ内のそれぞれの文字は、低頻度の文字の辞書内に見出される文字である。一部の実施形態では、一般的に使用される文字の辞書、及び低頻度の文字の辞書は、ユーザデバイスに関連付けられる使用履歴に基づいて、動的に調節又は更新される。
【０２２８】
一部の実施形態では、ユーザデバイスは、それらの複数の出力文字から、既定の類似性基準に従って（例えば、類似文字の辞書に基づいて、又は何らかの空間的に導出される特徴に基づいて）、互いに視覚的に類似する文字のグループを特定する（１２１６）。一部の実施形態では、ユーザデバイスは、視覚的に類似する文字のグループから、既定の選択基準に基づいて（例えば、履歴的な使用頻度に基づいて）、代表的文字を選択する。一部の実施形態では、この既定の選択基準は、そのグループ内での、文字の相対的な使用頻度に基づく。一部の実施形態では、この既定の選択基準は、デバイスに関連付けられる、好ましい入力言語に基づく。一部の実施形態では、代表的候補は、各候補がユーザによる意図された入力であることの尤度を示す、他の因子に基づく。これらの因子としては、例えば、その候補文字が、ユーザのデバイス上に現在インストールされているソフトキーボードに関するスクリプトに、属しているか否か、又は、その候補文字が、ユーザ若しくはユーザデバイスに関連付けられる特定の言語での、最も一般的に使用される文字のセットの中に存在するか否かなどが挙げられる。
【０２２９】
一部の実施形態では、ユーザデバイスは、候補表示区域（例えば、図１１Ｈでの８０６）の初期ビュー内に、代表的文字（例えば、「
2019164801.tif 000083
」）を、その視覚的に類似する文字のグループ内の他の文字（例えば、「
2019164801.tif 000084
」、「
2019164801.tif 000085
」）の代わりに表示する（１２２０）。一部の実施形態では、各候補文字が、グループの代表的文字であるか、又はいずれのグループ内にも存在しない通常の候補文字であるかを示すために、候補表示区域の初期ビュー内に、視覚的指示（例えば、選択的な視覚的強調表示、特殊な背景）が提供される。一部の実施形態では、ユーザデバイスは、例えば、図１１Ｈに示されるように、候補表示区域の初期ビュー内に表示された代表的文字を対象とする、既定の拡大入力（例えば、拡大ジェスチャ）を、ユーザから受信する（１２２２）。一部の実施形態では、この既定の拡大入力の受信に応じて、ユーザデバイスは、例えば、図１１Ｉに示されるように、代表的文字の拡大されたビューと、視覚的に類似する文字のグループ内の１つ以上の他の文字の、それぞれの拡大されたビューとを、同時に表示する（１２２４）。
【０２３０】
一部の実施形態では、この既定の拡大入力は、候補表示区域内に表示された代表的文字の上で検出される、拡大ジェスチャである。一部の実施形態では、この既定の拡大入力は、候補表示区域内に表示された代表的文字の上で検出され、既定の閾値時間よりも長く持続される、接触である。一部の実施形態では、グループを拡大するための、この持続的接触は、テキスト入力に関する代表的文字を選択するタップジェスチャよりも、長い閾値持続時間を有する。
【０２３１】
一部の実施形態では、各代表的文字は、その類似した見た目の候補文字のグループの拡大ビューを呼び出すための、対応のアフォーダンス（例えば、対応の拡大ボタン）と同時に表示される。一部の実施形態では、既定の拡大入力は、代表的文字に関連付けられる、対応のアフォーダンスの選択である。
【０２３２】
本明細書で説明されるように、一部の実施形態では、マルチスクリプト手書き認識モデルのレパートリーは、絵文字スクリプトを含む。手書き入力認識モジュールは、ユーザの手書き入力に基づいて、絵文字を認識することができる。一部の実施形態では、手書き認識モジュールは、手書きから直接特定される絵文字と、その特定される絵文字を表す、自然人間言語での文字又は語との双方を提示する。一部の実施形態では、手書き入力モジュールは、ユーザの手書き入力に基づいて、自然人間言語での文字又は語を認識し、その認識された文字又は語と、その認識された文字又は語に対応する絵文字との双方を提示する。換言すれば、手書き入力モジュールは、手書き入力インタフェースから絵文字キーボードに切り替えることなく、絵文字を入力するための方法を提供する。更には、手書き入力モジュールはまた、正規の自然言語の文字を、手で絵文字を描くことによって入力するための方法も提供する。図１３Ａ〜図１３Ｅは、絵文字及び正規の自然言語の文字を入力する、これらの種々の方法を示す、例示的ユーザインタフェースを提供する。
【０２３３】
図１３Ａは、チャットアプリケーションの下で呼び出された、例示的な手書き入力インタフェース８０２を示す。手書き入力インタフェース８０２は、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８を含む。一部の実施形態では、ユーザが、テキスト入力区域８０８内のテキスト構成に満足すると、ユーザは、現在のチャットセッションの別の参加者に、そのテキスト構成を送信するように選択することができる。チャットセッションの対話履歴は、対話パネル１３０２内に示される。この実施例では、ユーザは、対話パネル１３０２内に表示されたチャットメッセージ１３０４（例えば、「Ｈａｐｐｙ  Ｂｉｒｔｈｄａｙ
2019164801.tif 000086
」）を受信している。
【０２３４】
図１３Ｂに示されるように、ユーザは、手書き入力区域８０４内に、英語の語「Ｔｈａｎｋｓ」に関する手書き入力１３０６を提供している。手書き入力１３０６に応じて、ユーザデバイスは、幾つかの候補認識結果（例えば、認識結果１３０８、１３１０、及び１３１２）を特定している。最上ランクの認識結果１３０３が、テキスト入力区域８０８内のボックス１３１４内に、暫定的に入力されている。
【０２３５】
図１３Ｃに示されるように、ユーザが、手書き入力区域８０６内に、手書きの語「Ｔｈａｎｋｓ」を入力した後、次いで、ユーザは、手書き入力区域８０６内に、ストローク１３１６（例えば、丸い円を下に有する、細長い円）で、様式化された感嘆符を描いている。ユーザデバイスは、この追加ストローク１３１６が、手書き入力区域８０６内の蓄積された手書きストローク１３０６から従前に認識された他の認識単位とは、別個の認識単位を形成することを認識する。この新たに入力された認識単位（すなわち、ストローク１３１６によって形成される認識単位）に基づいて、ユーザデバイスは、手書き認識モデルを使用して、絵文字（例えば、様式化された「！」）を特定する。この認識された絵文字に基づいて、ユーザデバイスは、候補表示区域８０６内に、第１の認識結果１３１８（例えば、様式化された「！」を有する「Ｔｈａｎｋｓ！」）を提示する。更には、ユーザデバイスはまた、同じくその新たに入力された認識単位に視覚的に類似する、数字「８」も特定する。この認識された数字に基づいて、ユーザデバイスは、候補表示区域８０６内に、第２の認識結果１３２２（例えば、「Ｔｈａｎｋｓ  ８」）を提示する。更には、特定された絵文字（例えば、様式化された「！」）に基づいて、ユーザデバイスはまた、その絵文字に対応する正規の文字（例えば、正規の文字「！」）も特定する。この間接的に認識された正規の文字に基づいて、ユーザデバイスは、候補表示区域８０６内に、第３の認識結果１３２０（例えば、正規の「！」を有する「Ｔｈａｎｋｓ！」）を提示する。この時点で、ユーザは、候補認識結果１３１８、１３２０、及び１３２２のうちの任意の１つを選択して、テキスト入力区域８０８内に、その候補認識結果を入力することができる。
【０２３６】
図１３Ｄに示されるように、ユーザは、手書き入力区域８０６内に、更なる手書きストローク１３２４を継続して提供する。今回、ユーザは、様式化された感嘆符の後に続けて、ハート記号を描いている。この新たな手書きストローク１３２４に応じて、ユーザデバイスは、その新たに提供された手書きストローク１３２４が、更に別の新たな認識単位を形成することを認識する。この新たな認識単位に基づいて、ユーザデバイスは、その新たな認識単位に関する候補文字として、絵文字「
2019164801.tif 000087
」、及び代替的に数字「０」を特定する。新たな認識単位から認識された、これらの新たな候補文字に基づいて、ユーザデバイスは、２つの更新された候補認識結果１３２６及び１３３０（例えば、「Ｔｈａｎｋｓ
2019164801.tif 000088
」及び「Ｔｈａｎｋｓ  ８０」）を提示する。一部の実施形態では、ユーザデバイスは、特定された絵文字（例えば、「
2019164801.tif 000089
」）に対応する、正規の文字又は語（例えば、「Ｌｏｖｅ」）を更に特定する。認識された絵文字に関する、その特定された正規の文字又は語に基づいて、ユーザデバイスは、認識された絵文字が、その対応する正規の文字又は語で置き換えられた、第３の認識結果１３２８を提示する。図１３Ｄに示されるように、認識結果１３２８では、絵文字「
2019164801.tif 000090
」が、通常の感嘆符「！」で置き換えられ、絵文字「
2019164801.tif 000091
」が、正規の文字又は語「Ｌｏｖｅ」で置き換えられている。
【０２３７】
図１３Ｅに示されるように、ユーザは、候補認識結果のうちの１つ（例えば、混合スクリプトのテキスト「Ｔｈａｎｋｓ
2019164801.tif 000092
」を示す候補結果１３２６）を選択しており、この選択された認識結果のテキストが、テキスト入力区域８０８内に入力され、その後、チャットセッションの他の参加者に送信される。メッセージの吹き出し１３３２は、対話パネル１３０２内に、そのメッセージのテキストを示す。
【０２３８】
図１４は、ユーザが手書き入力を使用して絵文字を入力する、例示的プロセス１４００の流れ図である。図１３Ａ〜図１３Ｅは、一部の実施形態に係る、例示的プロセス１４００を示す。
【０２３９】
プロセス１４００では、ユーザデバイスは、ユーザから手書き入力を受信する（１４０２）。この手書き入力は、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含む。一部の実施形態では、ユーザデバイスは、手書き認識モデルに基づいて、その手書き入力から複数の出力文字を認識する（１４０４）。一部の実施形態では、それらの出力文字は、少なくとも第１の絵文字（例えば、図１３Ｄでの、様式化された感嘆符「
2019164801.tif 000093
」又は絵文字「
2019164801.tif 000094
」）と、自然人間言語のスクリプトからの少なくとも第１の文字（例えば、図１３Ｄでの、語「Ｔｈａｎｋｓ」からの文字）とを含む。一部の実施形態では、ユーザデバイスは、例えば、図１３Ｄに示されるように、それらの第１の絵文字（例えば、図１３Ｄでの、様式化された感嘆符「
2019164801.tif 000095
」又は絵文字「
2019164801.tif 000096
」）と自然人間言語のスクリプトからの第１の文字（例えば、図１３Ｄでの、語「Ｔｈａｎｋｓ」からの文字）とを含む認識結果（例えば、図１３Ｄでの結果１３２６）を、手書き入力インタフェースの候補表示区域内に表示する（１４０６）。
【０２４０】
一部の実施形態では、手書き認識モデルに基づいて、ユーザデバイスは、任意選択的に、その手書き入力から、少なくとも第１の意味的単位（例えば、語「Ｔｈａｎｋｓ」）を認識し（１４０８）、この第１の意味的単位は、それぞれの人間言語での、それぞれの意味論的意味を伝達することが可能な、それぞれの文字、語、又は語句を含む。一部の実施形態では、ユーザデバイスは、手書き入力から認識された第１の意味的単位（例えば、語「Ｔｈａｎｋｓ」）に関連付けられる、第２の絵文字（例えば、「握手」の絵文字）を特定する（１４１０）。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、第１の意味的単位（例えば、語「Ｔｈａｎｋｓ」）から特定された第２の絵文字を少なくとも含む、第２の認識結果（例えば、「握手」の絵文字の後に続けて「
2019164801.tif 000097
」及び「
2019164801.tif 000098
」の絵文字を示す、認識結果）を表示する（１４１２）。一部の実施形態では、第２の認識結果を表示することは、少なくとも第１の意味的単位（例えば、語「Ｔｈａｎｋｓ」）を含む第３の認識結果（例えば、認識結果「Ｔｈａｎｋｓ
2019164801.tif 000099
」）と同時に、第２の認識結果を表示することを更に含む。
【０２４１】
一部の実施形態では、ユーザは、候補表示区域内に表示された第１の認識結果を選択する、ユーザ入力を受信する。一部の実施形態では、このユーザ入力に応じて、ユーザデバイスは、手書き入力インタフェースのテキスト入力区域内に、その選択された第１の認識結果のテキストを入力し、このテキストは、少なくとも、第１の絵文字と、自然人間言語のスクリプトからの第１の文字とを含む。換言すれば、ユーザは、自然言語キーボードと絵文字キーボードとを切り替えることなく、手書き入力区域内の単一の手書き入力（複数のストロークを含む手書き入力ではあるが）を使用して、混合スクリプトのテキスト入力を入力することが可能である。
【０２４２】
一部の実施形態では、手書き認識モデルは、少なくとも３つの非重複スクリプトの文字に対応する書き込みサンプルを含む、マルチスクリプト訓練コーパスについて訓練されており、それらの３つの非重複スクリプトは、絵文字、中国文字、及びラテンスクリプトのセットを含む。
【０２４３】
一部の実施形態では、ユーザデバイスは、手書き入力から直接認識された第１の絵文字（例えば、「
2019164801.tif 000100
」の絵文字）に対応する、第２の意味的単位（例えば、語「Ｌｏｖｅ」）を特定する（１４１４）。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、第１の絵文字（例えば、「
2019164801.tif 000101
」の絵文字）から特定された第２の意味的単位（例えば、語「Ｌｏｖｅ」）を少なくとも含む、第４の認識結果（例えば、図１３Ｄでの１３２８）を表示する（１４１６）。一部の実施形態では、ユーザデバイスは、図１３Ｄに示されるように、候補表示区域内に、第１の認識結果（例えば、結果「Ｔｈａｎｋｓ
2019164801.tif 000102
」）と同時に、第４の認識結果（例えば、結果１３２８「Ｔｈａｎｋｓ！Ｌｏｖｅ」）を表示する。
【０２４４】
一部の実施形態では、ユーザデバイスは、ユーザが、絵文字を描くことによって正規のテキストを入力することを可能にする。例えば、ユーザが、語「ｅｌｅｐｈａｎｔ」の綴り方を知らない場合には、ユーザは、任意選択的に、手書き入力区域内に、「ｅｌｅｐｈａｎｔ」に関する様式化された絵文字を描き、ユーザデバイスが、その手書き入力を、「ｅｌｅｐｈａｎｔ」に関する絵文字として正しく認識することができる場合には、ユーザデバイスはまた、任意選択的に、候補表示区域内に表示される認識結果のうちの１つとして、通常のテキストで語「ｅｌｅｐｈａｎｔ」も提示する。別の実施例では、ユーザは、手書き入力区域内に、中国文字「
2019164801.tif 000103
」を書き込む代わりに、様式化された猫を描くことができる。ユーザデバイスが、このユーザによって提供された手書き入力に基づいて、「猫」に関する絵文字を特定する場合には、ユーザデバイスはまた、任意選択的に、候補表示区域内に、「猫」に関する絵文字と共に、中国語で「猫」を意味する中国文字「
2019164801.tif 000104
」も提示する。認識された絵文字に関する通常のテキストを提示することによって、ユーザデバイスは、周知の絵文字に一般的に関連付けられる、少ない数の様式化されたストロークを使用して、複雑な文字又は語を入力する、代替的な方法を提供する。一部の実施形態では、ユーザデバイスは、絵文字を、１つ以上の好ましいスクリプト又は言語（例えば、英語又は中国語）での、それらの対応する通常のテキスト（例えば、文字、語、語句、記号など）と結びつける、辞書を記憶する。
【０２４５】
一部の実施形態では、ユーザデバイスは、手書き入力から生成された画像に対する、絵文字の視覚的類似性に基づいて、絵文字を認識する。一部の実施形態では、手書き入力からの絵文字の認識を可能にするために、ユーザデバイス上で使用される手書き認識モデルは、自然人間言語のスクリプトの文字に対応する手書きサンプル、及び人工的に設計された絵文字のセットに対応する手書きサンプルの双方を含む、訓練コーパスを使用して訓練される。一部の実施形態では、同じ意味概念に関連する絵文字は、異なる自然言語のテキストを有する混合入力内で使用される場合に、異なる外観を有し得る。例えば、「Ｌｏｖｅ」の意味概念に関する絵文字は、１つの自然言語（例えば、日本語）の通常のテキストで提示される場合は、「ハート」の絵文字とすることができ、別の自然言語（例えば、英語又はフランス語）の通常のテキストで提示される場合は、「キス」の絵文字とすることができる。
【０２４６】
本明細書で説明されるように、複数文字の手書き入力の認識を実行する場合、手書き入力モジュールは、手書き入力区域内に現時点で蓄積されている手書き入力の分割を実行し、それらの蓄積されたストロークを、１つ以上の認識単位へと分離する。手書き入力をどのように分割するかを判定するために使用されるパラメータのうちの１つは、手書き入力区域内で、それらのストロークがどのようにクラスタ化されているか、及び異なるストロークのクラスタ間の距離とすることができる。人々は、種々の書体を有する。一部の人々は、ストローク間の距離、又は同じ文字の異なる部分間の距離を大きくして、極めて低い密度で書き込む傾向があり、その一方で、他の人々は、ストローク間の距離、又は異なる文字間の距離を極めて小さくして、極めて高い密度で書き込む傾向がある。同じユーザに関してさえも、不完全な計画により、手書き文字は、バランスが取れた外観から逸脱し、種々の方式で偏るか、延伸されるか、又は圧縮される場合がある。本明細書で説明されるように、マルチスクリプト手書き認識モデルは、ストローク順序非依存式の認識を提供し、それゆえ、ユーザは、文字又は文字の諸部分を、順番から外れて書き込むことができる。結果として、文字間の手書き入力の空間的均一性及びバランスを達成することは、困難となる恐れがある。
【０２４７】
一部の実施形態では、本明細書で説明される手書き入力モデルは、ユーザが、手書き入力モジュールに、２つの隣接する認識単位を単一の認識単位へと融合させるべきか、又は単一の認識単位を２つの別個の認識単位へと分離するべきかを通知するための方法を提供する。このユーザの手助けで、手書き入力モジュールは、初期の分割を訂正し、ユーザによって意図された結果を生成することができる。
【０２４８】
図１５Ａ〜図１５Ｊは、ユーザが、ユーザデバイスによって特定された認識単位を修正するために、既定のピンチジェスチャ及び拡大ジェスチャを提供する、一部の例示的ユーザインタフェース及びプロセスを示す。
【０２４９】
図１５Ａ及び図１５Ｂに示されるように、ユーザは、手書き入力インタフェース８０２の手書き入力区域８０６内に、複数の手書きストローク１５０２（例えば、３つのストローク）を入力している。ユーザデバイスは、現時点で蓄積されている手書きストローク１５０２に基づいて、単一の認識単位を特定しており、候補表示区域８０６内に、３つの候補文字１５０８（例えば、それぞれ、「
2019164801.tif 000105
」、「
2019164801.tif 000106
」、及び「
2019164801.tif 000107
」）を提示している。
【０２５０】
図１５Ｃは、ユーザが、手書き入力区域６０６内の、初期の手書きストローク１５０２の右に、少数の追加ストローク１５１０を更に入力していることを示す。ユーザデバイスは、ストローク１５０２及びストローク１５１０が、２つの別個の認識単位として見なされるべきであることを、（例えば、複数のストローク１５０２並びに１５１０の寸法及び空間的分布に基づいて）判定する。この認識単位の分離に基づいて、ユーザデバイスは、それらの第１の認識単位及び第２の認識単位の入力画像を、手書き認識モデルに提供し、２つの候補文字のセットを取得する。次いで、ユーザデバイスは、それらの認識文字の種々の組み合わせに基づいて、複数の認識結果（例えば、１５１２、１５１４、１５１６、及び１５１８）を生成する。各認識結果は、第１の認識単位に関する認識文字、及び第２の認識単位に関する認識文字を含む。図１５Ｃに示されるように、複数の認識結果１５１２、１５１４、１５１６、及び１５１８は、２つの認識文字をそれぞれ含む。
【０２５１】
この実施例では、ユーザは、実際には、この手書き入力が単一の文字として認識されることを意図していたが、その手書き文字（例えば、「
2019164801.tif 000108
」）の左部分（例えば、左の部首「
2019164801.tif 000109
」）と右部分（例えば、右の部首「
2019164801.tif 000110
」）との間に、過度に大きい空間を不用意に残したと想定する。候補表示区域８０６内に提示された結果（例えば、１５１２、１５１４、１５１６、及び１５１８）を視認して、ユーザは、ユーザデバイスが、現在の手書き入力を、誤って２つの認識単位へと分割していることを理解する。この分割は、客観的な基準に基づき得るものであるが、ユーザにとっては、現在の手書き入力を削除し、この文字全体を、左部分と右部分との距離をより小さくして再度書き直すことは、望ましいものではない。
【０２５２】
その代わりに、図１５Ｄに示されるように、ユーザは、手書きストローク１５０２及び１５１０の２つのクラスタの上で、ピンチジェスチャを使用して、それらの手書き入力モジュールによって特定された２つの認識単位が、単一の認識単位として融合されるべきであることを、手書き入力モジュールに示す。このピンチジェスチャは、互いに向けて移動する、タッチ感知面上での２つの接触１５２０及び１５２２によって示される。
【０２５３】
図１５Ｅは、ユーザのピンチジェスチャに応じて、ユーザデバイスが、現時点で蓄積されている手書き入力（例えば、ストローク１５０２及び１５１０）の分割を訂正し、それらの手書きストロークを、単一の認識単位へと融合させていることを示す。図１５Ｅに示されるように、ユーザデバイスは、訂正された認識単位に基づいた入力画像を、手書き認識モデルに提供し、その訂正された認識単位に関する、３つの新たな候補文字１５２４、１５２６、及び１５２８（例えば、「
2019164801.tif 000111
」、「
2019164801.tif 000112
」、及び「
2019164801.tif 000113
」）を取得している。一部の実施形態では、図１５Ｅに示されるように、ユーザデバイスは、任意選択的に、手書き入力区域８０６内の手書き入力のレンダリングを、手書きストロークの左クラスタと右クラスタとの距離が低減されるように調節する。一部の実施形態では、ユーザデバイスは、手書き入力区域６０８内に示される手書き入力のレンダリングを、ピンチジェスチャに応じて変更することがない。一部の実施形態では、ユーザデバイスは、手書き入力区域８０６内で検出される、（単一の接触とは対照的な）２つの同時接触に基づいて、ピンチジェスチャを入力ストロークから識別する。
【０２５４】
図１５Ｆに示されるように、ユーザは、従前に入力された手書き入力（すなわち、文字「
2019164801.tif 000114
」に関するストローク）の右に、更に２つのストローク１５３０を入力している。ユーザデバイスは、この新たに入力されたストローク１５３０が、新たな認識単位であることを判定し、その新たに特定された認識単位に関する候補文字（例えば、「
2019164801.tif 000115
」）を認識する。次いで、ユーザデバイスは、その新たに特定された文字（例えば、「
2019164801.tif 000116
」）を、以前に特定された認識単位に関する候補文字と組み合わせ、候補表示区域８０６内に、幾つかの異なる認識結果（例えば、結果１５３２及び１５３４）を提示する。
【０２５５】
手書きストローク１５３０の後に続けて、ユーザは、図１５Ｇに示されるように、ストローク１５３０の右に、更なるストローク１５３６（例えば、３つの更なるストローク）を継続して書き込む。ストローク１５３０とストローク１５３６との水平距離は、極めて小さいため、ユーザデバイスは、ストローク１５３０及びストローク１５３６が、同じ認識単位に属すると判定し、手書き認識モデルに、それらのストローク１５３０及び１５３６によって形成される入力画像を提供する。手書き認識モデルは、訂正された認識単位に関する、３つの異なる候補文字を特定し、現時点で蓄積されている手書き入力に関する、２つの訂正された認識結果１５３８及び１５４０を生成する。
【０２５６】
この実施例では、最後の２つのストローク１５３０及び１５３６のセットは、実際には、２つの別個の文字（例えば、「
2019164801.tif 000117
」及び「±」）として意図されていると想定する。ユーザは、ユーザデバイスが、２つのストローク１５３０及び１５３６のセットを、誤って単一の認識単位へと組み合わせていることを視認した後、ユーザは、続けて拡大ジェスチャを提供して、ユーザデバイスに、２つのストローク１５３０及び１５３６のセットが、２つの別個の認識単位へと分離されるべきであることを通知する。図１５Ｈに示されるように、ユーザは、ストローク１５３０及び１５３６の周りで、２つの接触１５４２及び１５４４を実施して、次いで、それらの２つの接触を、概して水平な方向で（すなわち、デフォルトの書き込み方向に沿って）互いから離れる方向に移動させる。
【０２５７】
図１５Ｉは、このユーザの拡大ジェスチャに応じて、ユーザデバイスが、現時点で蓄積されている手書き入力の従前の分割を訂正し、ストローク１５３０及びストローク１５３６を、２つの連続的な認識単位へと割り当てたことを示す。それらの２つの別個の認識単位に関して生成された入力画像に基づいて、ユーザデバイスは、ストローク１５３０に基づいた第１の認識単位に関して、１つ以上の候補文字を特定し、ストローク１５３６に基づいた第２の認識単位に関して、１つ以上の候補文字を特定する。次いで、ユーザデバイスは、それらの認識文字の種々の組み合わせに基づいて、２つの新たな認識結果１５４６及び１５４８を生成する。一部の実施形態では、ユーザデバイスは、任意選択的に、ストローク１５３６及び１５３６のレンダリングを、従前に特定された認識単位の分離を反映するように修正する。
【０２５８】
図１５Ｊ、図１５Ｋに示されるように、ユーザは、候補表示区域８０６内に表示された候補認識結果のうちの１つを、（接触１５５０によって示されるように）選択しており、その選択された認識結果（例えば、結果１５４８）が、ユーザインタフェースのテキスト入力区域８０８内に入力されている。選択された認識結果が、テキスト入力区域８０８内に入力された後、候補表示区域８０６及び手書き入力区域８０４は双方ともクリアされ、後続のユーザ入力を表示するための準備が整う。
【０２５９】
図１６Ａ、図１６Ｂは、ユーザが、既定のジェスチャ（例えば、ピンチジェスチャ及び／又は拡大ジェスチャ）を使用して、現在の手書き入力の既存の分割を、どのように分割又は訂正するかを通知する、例示的プロセス１６００の流れ図である。図１５Ｊ及び図１５Ｋは、一部の実施形態に係る、例示的プロセス１６００の図を提供する。
【０２６０】
一部の実施形態では、ユーザデバイスは、ユーザから手書き入力を受信する（１６０２）。この手書き入力は、デバイスに結合されたタッチ感知面内に提供される、複数の手書きストロークを含む。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの手書き入力区域（例えば、図１５Ａ〜図１５Ｋの手書き入力区域８０６）内に、それらの複数の手書きストロークをリアルタイムでレンダリングする（１６０４）。ユーザデバイスは、例えば、図１５Ｄ及び図１５Ｈに示されるように、それらの複数の手書きストロークの上での、ピンチジェスチャ入力及び拡大ジェスチャ入力のうちの一方を受信する。
【０２６１】
一部の実施形態では、ピンチジェスチャ入力を受信すると、ユーザデバイスは、例えば、図１５Ｃ〜図１５Ｅに示されるように、複数の手書きストロークを、単一の認識単位として処理することによって、それらの複数の手書きストロークに基づいた、第１の認識結果を生成する（１６０６）。
【０２６２】
一部の実施形態では、拡大ジェスチャ入力を受信すると、ユーザデバイスは、例えば、図１５Ｇ〜図１５Ｉに示されるように、複数の手書きストロークを、拡大ジェスチャ入力によって引き離された２つの別個の認識単位として処理することによって、それらの複数の手書きストロークに基づいた、第２の認識結果を生成する（１６０８）。
【０２６３】
一部の実施形態では、第１の認識結果及び第２の認識結果のうちの、それぞれの一方を生成すると、ユーザデバイスは、例えば、図１５Ｅ及び図１５Ｉに示されるように、生成された認識結果を、手書き入力インタフェースの候補表示区域内に表示する。
【０２６４】
一部の実施形態では、ピンチジェスチャ入力は、複数の手書きストロークによって占有される区域内で互いに向けて収束する、タッチ感知面上での２つの同時接触を含む。一部の実施形態では、拡大ジェスチャ入力は、複数の手書きストロークによって占有される区域内で互いに分散する、タッチ感知面上での２つの同時接触を含む。
【０２６５】
一部の実施形態では、ユーザデバイスは、これらの複数の手書きストロークから、２つの隣接する認識単位を特定する（例えば、１６１４）。ユーザデバイスは、例えば、図１５Ｃに示されるように、候補表示区域内に、２つの隣接する認識単位から認識されたそれぞれの文字を含む、初期の認識結果（例えば、図１５Ｃでの結果１５１２、１５１４、１５１６、及び１５１８）を表示する（１６１６）。一部の実施形態では、ピンチジェスチャに応じて、第１の認識結果（例えば、図１５Ｅでの結果１５２４、１５２６、又は１５２８）を表示する場合、ユーザデバイスは、候補表示区域内で、初期の認識結果を、その第１の認識結果で置き換える（１６１８）。一部の実施形態では、ユーザデバイスは、図１５Ｄに示されるように、初期の認識結果が候補表示区域内に表示されている間に、ピンチジェスチャ入力を受信する（１６２０）。一部の実施形態では、このピンチジェスチャ入力に応じて、ユーザデバイスは、例えば、図１５Ｅに示されるように、手書き入力区域内の、２つの隣接する認識単位間の距離を低減するように、複数の手書きストロークを再レンダリングする（１６２２）。
【０２６６】
一部の実施形態では、ユーザデバイスは、これらの複数の手書きストロークから、単一の認識単位を特定する（１６２４）。ユーザデバイスは、候補表示区域内に、その単一の認識単位から認識された文字（例えば、「
2019164801.tif 000118
」「
2019164801.tif 000119
」）を含む、初期の認識結果（例えば、図１５Ｇの結果１５３８又は１５４０）を表示する（１６２６）。一部の実施形態では、拡大ジェスチャに応じて、第２の認識結果（例えば、図１５Ｉでの結果１５４６又は１５４８）を表示する場合、ユーザデバイスは、例えば、図１５Ｈ、図１５Ｉに示されるように、候補表示区域内で、初期の認識結果（例えば、結果１５３８又は１５４０）を、その第２の認識結果（例えば、結果１５４６又は１５４８）で置き換える（１６２８）。一部の実施形態では、ユーザデバイスは、図１５Ｈに示されるように、初期の認識結果が候補表示区域内に表示されている間に、拡大ジェスチャ入力を受信する（１６３０）。一部の実施形態では、この拡大ジェスチャ入力に応じて、ユーザデバイスは、図１５Ｈ及び図１５Ｉに示されるように、手書き入力区域内の、第１の認識単位に割り当てられた、第１のストロークのサブセットと、第２の認識単位に割り当てられた、第２の手書きストロークのサブセットとの距離を増大させるように、複数の手書きストロークを再レンダリングする（１６３２）。
【０２６７】
一部の実施形態では、ユーザが、ストロークを提供して、それらのストロークが、標準的な分割プロセスに基づく正しい分割に対して、過度に散開している恐れがあることを理解した直後に、ユーザは、任意選択的に、ピンチジェスチャを提供して、それらの複数のストロークを単一の認識単位として処理するように、ユーザデバイスに通知する。ユーザデバイスは、ピンチジェスチャに存在する２つの同時接触に基づいて、ピンチジェスチャを正規のストロークから識別することができる。同様に、一部の実施形態では、ユーザが、ストロークを提供して、それらのストロークが、標準的な分割プロセスに基づく正しい分割に対して、過度に密集している恐れがあることを理解した直後に、ユーザは、任意選択的に、拡大ジェスチャを提供して、それらの複数のストロークを２つの別個の認識単位として処理するように、ユーザデバイスに通知する。ユーザデバイスは、ピンチジェスチャに存在する２つの同時接触に基づいて、拡大ジェスチャを正規のストロークから識別することができる。
【０２６８】
一部の実施形態では、ジェスチャの下でどのようにストロークを分割するかについての、更なる手引きを提供するために、ピンチジェスチャ又は拡大ジェスチャの動きの方向が、任意選択的に使用される。例えば、手書き入力区域に関して、複数行の手書き入力が有効である場合には、垂直方向に移動する２つの接触を有するピンチジェスチャは、手書き入力モジュールに、２つの隣接する行内で特定される２つの認識単位を、（例えば、上の部首及び下の部首として）単一の認識単位へと融合させるように通知することができる。同様に、垂直方向に移動する２つの接触を有する拡大ジェスチャは、手書き入力モジュールに、単一の認識単位を、２つの隣接する行内の２つの認識単位へと分離するように通知することができる。一部の実施形態では、ピンチジェスチャ及び拡大ジェスチャはまた、文字入力のサブ部分での分割の手引き、例えば、２つのサブ構成要素を融合させること、又は複合文字（
2019164801.tif 000120
など）内の単一の構成要素を、その複合文字の種々の部分（例えば、上、下、左、又は右の部分）に分離することの手引きも、提供することができる。このことは、複雑な複合文字を手で書き込む場合に、ユーザは正しい比率及びバランスを失う傾向があるため、複雑な複合中国文字を認識するために特に役立つ。手書き入力の完了後に、例えば、ピンチジェスチャ及び拡大ジェスチャによって、手書き入力の比率及びバランスを調節することが可能であることは、ユーザが、正しい比率及びバランスに到達するための幾つかの試みを実施することを必要とせずに、正しい文字を入力するために、特に役立つ。
【０２６９】
本明細書で説明されるように、手書き入力モジュールは、複数文字の手書き入力をユーザが入力することを可能にし、手書き入力区域内での、１つの文字内で、複数の文字にわたって、また更には、複数の語句、文、及び／又は行にわたって、それらの複数文字の手書き入力に関する順序外のストロークを可能にする。一部の実施形態では、手書き入力モジュールはまた、手書き入力区域内での、文字単位での削除も提供し、その文字削除の順序は、書き込みの逆方向であり、各文字に関するストロークが、いつ手書き入力区域内に提供されたかとは無関係である。一部の実施形態では、手書き入力区域内での各認識単位（例えば、文字又は部首）の削除は、任意選択的に、ストローク単位で実行され、ストロークは、それらのストロークが認識単位内に提供された、逆の時間的順序で削除される。図１７Ａ〜図１７Ｈは、ユーザからの削除入力に応じて、複数文字の手書き入力内に、文字単位での削除を提供するための、例示的ユーザインタフェースを示す。
【０２７０】
図１７Ａに示されるように、ユーザは、手書き入力ユーザインタフェース８０２の手書き入力区域８０４内に、複数の手書きストローク１７０２を提供している。これらの現時点で蓄積されているストローク１７０２に基づいて、ユーザデバイスは、候補表示区域８０６内に、３つの認識結果（例えば、結果１７０４、１７０６、及び１７０８）を提示する。図１７Ｂに示されるように、ユーザは、手書き入力区域８０６内に、更なる複数のストローク１７１０を提供している。ユーザデバイスは、３つの新たな出力文字を認識し、３つの従前の認識結果１７０４、１７０６、及び１７０８を、３つの新たな認識結果１７１２、１７１４、及び１７１６で置き換える。一部の実施形態では、図１７Ｂに示されるように、ユーザデバイスが、現在の手書き入力（例えば、ストローク１７０２及びストローク１７１０）から、２つの別個の認識単位を特定している場合であっても、ストローク１７１０のクラスタは、手書き認識モジュールのレパートリー内の、いずれの既知の文字とも良好に対応しない。結果として、ストローク１７１０を含む認識単位に関して特定された候補文字（例えば、「
2019164801.tif 000121
」、「
2019164801.tif 000122
」）は全て、既定の閾値を下回る認識信頼度を有する。一部の実施形態では、ユーザデバイスは、第１の認識単位に関する候補文字（例えば、「
2019164801.tif 000123
」）のみを含むが、第２の認識単位に関するいずれの候補文字も含まない、部分的認識結果（例えば、結果１７１２）を、候補表示区域８０６内に提示する。一部の実施形態では、ユーザデバイスは、認識信頼度が既定の閾値に合格しているか否かにかかわらず、双方の認識単位に関する候補文字を含む、完全認識結果（例えば、結果１７１４又は１７１６）を更に表示する。部分的認識結果を提供することは、その手書き入力のいずれの部分に訂正が必要であるかを、ユーザに通知する。更には、ユーザはまた、最初に、その手書き入力の正しく認識された部分を入力することを選択し、次いで、正しく認識されなかった部分を書き直すこともできる。
【０２７１】
図１７Ｃは、ユーザが、ストローク１７１０の左に、更なる手書きストローク１７１８を継続して提供していることを示す。ストローク１７１８の相対的場所及び距離に基づいて、ユーザデバイスは、この新たに追加されたストロークが、手書きストローク１７０２のクラスタと同じ認識単位に属していると判定する。この訂正された認識単位に基づいて、第１の認識単位に関する新たな文字（例えば、「
2019164801.tif 000124
」）が認識され、新たな認識結果１７２０、１７２２、及び１７２４のセットが生成される。この場合も、第１の認識結果１７２０は、ストローク１７１０に関して特定される候補文字のいずれもが、既定の信頼度閾値を満たさないため、部分的認識結果である。
【０２７２】
図１７Ｄは、ユーザが、この時点で、ストローク１７０２とストローク１７１０との間に、複数の新たなストローク１７２６を入力していることを示す。ユーザデバイスは、この新たに入力されたストローク１７２６を、ストローク１７１０と同じ認識単位に割り当てる。この時点で、ユーザは、２つの中国文字（例えば、「
2019164801.tif 000125
」）に関する手書きストロークの全ての入力を完了しており、正しい認識結果１７２８が、候補表示区域８０６内に示される。
【０２７３】
図２７Ｅは、ユーザが、例えば、削除ボタン１７３２上で軽い接触１７３０を実施することによって、削除入力の初期部分を入力していることを示す。ユーザが、削除ボタン１７３２との接触を維持する場合には、ユーザは、現在の手書き入力文字を、文字単位で（又は、認識単位ごとに）削除することができる。この削除は、全ての手書き入力に関して、同時には実行されない。
【０２７４】
一部の実施形態では、ユーザの指が、最初に、タッチ感知スクリーン上の削除ボタン１７３２にタッチすると、図１７Ｅに示されるように、デフォルトの（例えば、左から右への）書き込み方向での最後の認識単位（例えば、文字「
2019164801.tif 000126
」に関する認識単位）が、手書き入力区域８０４内で同時に表示されている他の認識単位に対して、視覚的に強調表示される（例えば、境界線１７３４又は明るい背景などで強調表示される）。
【０２７５】
一部の実施形態では、ユーザが、削除ボタン１７３２上での接触１７３０を、閾値持続時間を超えて維持していることを、ユーザデバイスが検出すると、ユーザデバイスは、図１７Ｆに示されるように、手書き入力区域８０６から、強調表示された（例えば、ボックス１７３４内の）認識単位を除去する。更には、ユーザデバイスはまた、図１７Ｆに示されるように、その削除された認識単位に基づいて生成された、いずれの出力文字も削除するように、候補表示区域６０８内に示される認識結果も訂正する。
【０２７６】
図１７Ｆは、手書き入力区域８０６内の最後の認識単位（例えば、文字「
2019164801.tif 000127
」に関する認識単位）が削除された後、ユーザが、削除ボタン１７３２上での接触１７３０を継続して維持する場合には、削除された認識単位に隣接する認識単位（例えば、文字「
2019164801.tif 000128
」に関する認識単位）が、削除される次の認識単位になることを更に示す。図１７Ｆに示されるように、この残存する認識単位は、（例えば、ボックス１７３６内で）視覚的に強調表示されており、削除される準備が整っている。一部の実施形態では、認識単位の視覚的な強調表示は、ユーザが、削除ボタンとの接触を継続して維持する場合には、削除されることになる認識単位のプレビューを提供する。閾値持続時間に到達する前に、ユーザが、削除ボタンとの接触を中断する場合には、視覚的な強調表示は、最後の認識単位から除去され、その認識単位は削除されない。当業者には認識されるように、接触の持続時間は、認識単位が削除されるたびに、毎回リセットされる。更には、一部の実施形態では、接触の強度（例えば、ユーザが、タッチ感知スクリーンとの接触１７３０に加えている圧力）を任意選択的に使用して、現在強調表示されている認識単位を削除するユーザの意図を確認するための、閾値持続時間を調節する。図１７Ｆ及び図１７Ｇは、閾値持続時間に到達する前に、ユーザが、削除ボタン１７３２との接触１７３０を中断しており、文字「
2019164801.tif 000129
」に関する認識単位が、手書き入力区域８０６内に保存されていることを示す。ユーザが、この認識単位に関する第１の認識結果（例えば、結果１７３８）を、（例えば、接触１７４０によって示されるように）選択すると、図１７Ｇ及び図１７Ｈに示されるように、その第１の認識結果１７３８内のテキストが、テキスト入力区域８０８内に入力される。
【０２７７】
図１８Ａ及び図１８Ｂは、ユーザデバイスが、複数文字の手書き入力内に、文字単位の削除を提供する、例示的プロセス１８００の流れ図である。一部の実施形態では、この手書き入力の削除は、その手書き入力から認識された文字が確認されて、ユーザインタフェースのテキスト入力区域内に入力される前に実行される。一部の実施形態では、手書き入力内の文字の削除は、その手書き入力から特定された認識単位の、逆の空間的順序に従って進行し、それらの認識単位が形成される時間的配列とは無関係である。図１７Ａ〜図１７Ｈは、一部の実施形態に係る、例示的プロセス１８００を示す。
【０２７８】
図１８Ａに示されるように、例示的プロセス１８００では、ユーザデバイスは、ユーザから手書き入力を受信し（１８０２）、この手書き入力は、手書き入力インタフェースの手書き入力区域（例えば、図１７Ｄでの区域８０４）内に提供される、複数の手書きストロークを含む。ユーザデバイスは、それらの複数の手書きストロークから、複数の認識単位を特定し（１８０４）、各認識単位は、それらの複数の手書きストロークのうちの対応のサブセットを含む。例えば、図１７Ｄに示されるように、第１の認識単位は、ストローク１７０２及び１７１８を含み、第２の認識単位は、ストローク１７１０及び１７２６を含む。ユーザデバイスは、それらの複数の認識単位から認識された、それぞれの文字を含む、複数文字の認識結果（例えば、図１７Ｄでの、結果１７２８）を生成する（１８０６）。一部の実施形態では、ユーザデバイスは、その複数文字の認識結果（例えば、図１７Ｄでの、結果１７２８）を、手書き入力インタフェースの候補表示区域内に表示する。一部の実施形態では、その複数文字の認識結果が、候補表示区域内に表示されている間に、ユーザデバイスは、例えば、図１７Ｅに示されるように、ユーザから削除入力（例えば、削除ボタン１７３２上での接触１７３０）を受信する（１８１０）。一部の実施形態では、この削除入力の受信に応じて、ユーザデバイスは、例えば、図１７Ｅ、図１７Ｆに示されるように、候補表示区域（例えば、候補表示区域８０６）内に表示された複数文字の認識結果（例えば、結果１７２８）から、最後の文字（例えば、空間的配列「
2019164801.tif 000130
」の最後に現れる文字「
2019164801.tif 000131
」を除去する（１８１２）。
【０２７９】
一部の実施形態では、ユーザデバイスは、例えば、図１７Ａ〜図１７Ｄに示されるように、複数の手書きストロークがユーザによって提供される際に、手書き入力インタフェースの手書き入力区域内に、それらの複数の手書きストロークをリアルタイムでレンダリングする（１８１４）。一部の実施形態では、削除入力の受信に応じて、ユーザデバイスは、手書き入力区域（例えば、図１７Ｅでの手書き入力区域８０４）から、その手書き入力区域内の、複数の認識単位によって形成された空間的配列内の、最後の認識単位（例えば、ストローク１７２６及び１７１０を含む認識単位）に対応する、複数の手書きストロークのうちの対応のサブセットを除去する（１８１６）。この最後の認識単位は、複数文字の認識結果（例えば、図１７Ｅでの、結果１７２８）内の、最後の文字（例えば、文字「
2019164801.tif 000132
」）に対応する。
【０２８０】
一部の実施形態では、この最後の認識単位は、ユーザによって提供された複数の手書きストロークの中の、時間的に最後の手書きストロークを含まない（１８１８）。例えば、ユーザが、ストローク１７２６及び１７１０を提供した後に、ストローク１７１８を提供している場合には、ストローク１７２６及び１７１０を含む最後の認識単位が、依然として最初に削除される。
【０２８１】
一部の実施形態では、削除入力の初期部分の受信に応じて、ユーザデバイスは、例えば、図１７Ｅに示されるように、最後の認識単位を、手書き入力区域内で特定された他の認識単位から、視覚的に識別する（１８２０）。一部の実施形態では、削除入力の初期部分は、手書き入力インタフェース内の削除ボタン上で検出される、初期の接触であり（１８２２）、この初期の接触が、既定の閾値時間量を超えて持続される場合に、削除入力が検出される。
【０２８２】
一部の実施形態では、最後の認識単位は、手書き中国文字に対応する。一部の実施形態では、手書き入力は、筆写体の書体で書き込まれる。一部の実施形態では、手書き入力は、筆写体の書体で書き込まれた、複数の中国文字に対応する。一部の実施形態では、それらの手書きストロークのうちの少なくとも１つは、複数の認識単位のうちの、２つの隣接する認識単位へと分離される。例えば、場合によっては、ユーザは、複数の文字へと続け書きされる、長いストロークを使用することができ、そのような場合には、手書き入力モジュールの分割モジュールは、任意選択的に、その長いストロークを、幾つかの認識単位へと分離する。手書き入力の削除が、文字単位で（又は、認識単位ごとに）実行される場合、この長いストロークの区分（例えば、対応する認識単位内の区分）のみが、一度に削除される。
【０２８３】
一部の実施形態では、削除入力は、手書き入力インタフェース内に提供される削除ボタン上での持続的接触であり（１８２４）、複数の手書きストロークのうちの対応のサブセットを除去することは、最後の認識単位内の手書きストロークのサブセットを、その手書きストロークのサブセットがユーザによって提供された逆の時間的順序で、手書き入力区域からストローク単位で除去することを更に含む。
【０２８４】
一部の実施形態では、ユーザデバイスは、例えば、図１７Ｂ及び図１７Ｃに示されるように、複数の認識単位から認識されたそれぞれの文字のサブセットを含む、部分的認識結果を生成し（１８２６）、それぞれの文字のサブセットのそれぞれは、既定の信頼度閾値を満たす。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、部分的認識結果（例えば、図１７Ｂでの結果１７１２、及び図１７Ｃでの結果１７２０）を、複数文字の認識結果（例えば、結果１７１４及び１７２２）と同時に表示する（１８２８）。
【０２８５】
一部の実施形態では、部分的認識結果は、複数文字の認識結果内の、少なくとも最後の文字を含まない。一部の実施形態では、部分的認識結果は、複数文字の認識結果内の、少なくとも最初の文字を含まない。一部の実施形態では、部分的認識結果は、複数文字の認識結果内の、少なくとも中間の文字を含まない。
【０２８６】
一部の実施形態では、削除の最小単位は部首であり、手書き入力は、部首が偶然に、手書き入力区域内に依然として残存する手書き入力内の、最後の認識単位となる場合は常に、一度に１つの部首が削除される。
【０２８７】
本明細書で説明されるように、一部の実施形態では、ユーザデバイスは、水平書き込みモード及び垂直書き込みモードの双方を提供する。一部の実施形態では、ユーザデバイスは、水平書き込みモードで、左から右への書き込み方向及び右から左への方向のうちの一方、若しくは双方で、ユーザがテキストを入力することを可能にする。一部の実施形態では、ユーザデバイスは、垂直書き込みモードで、上から下への書き込み方向及び下から上への方向のうちの一方、若しくは双方で、ユーザがテキストを入力することを可能にする。一部の実施形態では、ユーザデバイスは、現在の手書き入力に関する、それぞれの書き込みモード及び／又は書き込み方向を呼び出すための、様々なアフォーダンス（例えば、書き込みモード又は書き込み方向ボタン）を、ユーザインタフェース上に提供する。一部の実施形態では、テキスト入力区域内でのテキスト入力方向は、デフォルトで、手書き入力方向での手書き入力方向と同じである。一部の実施形態では、ユーザデバイスは、テキスト入力区域内での入力方向、及び手書き入力区域内での書き込み方向を、ユーザが手動で設定することを可能にする。一部の実施形態では、候補表示区域内でのテキスト表示方向は、デフォルトで、手書き入力区域内での手書き入力方向と同じである。一部の実施形態では、ユーザデバイスは、手書き入力区域内での手書き入力方向とは無関係に、テキスト入力区域内でのテキスト表示方向を、ユーザが手動で設定することを可能にする。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの書き込みモード及び／又は書き込み方向を、対応するデバイスの向きと関連付け、そのデバイスの向きの変化により、書き込みモード及び／又は書き込み方向の変化がトリガされる。一部の実施形態では、書き込み方向の変化により、最上ランクの認識結果の入力が、テキスト入力区域内に自動的に入力される。
【０２８８】
図１９Ａ〜図１９Ｆは、水平入力モード及び垂直入力モードの双方を提供する、ユーザデバイスの例示的ユーザインタフェースを示す。
【０２８９】
図１９Ａは、水平入力モードのユーザデバイスを示す。一部の実施形態では、水平入力モードは、図１９Ａに示されるように、ユーザデバイスが、横表示の向きにある場合に提供される。一部の実施形態では、水平入力モードは、任意選択的に、デバイスが縦表示の向きで操作される場合に関連付けられ、提供される。異なるアプリケーションでは、デバイスの向きと書き込みモードとの関連性は、異なる場合がある。
【０２９０】
水平入力モードでは、ユーザは、水平の書き込み方向で（例えば、左から右に進むデフォルトの書き込み方向、又は右から左に進むデフォルトの書き込み方向で）手書き文字を提供することができる。水平入力モードでは、ユーザデバイスは、この水平の書き込み方向に沿って、１つ以上の認識単位への、手書き入力の分割を実行する。
【０２９１】
一部の実施形態では、ユーザデバイスは、手書き入力区域内での、単一の行の入力のみを許容する。一部の実施形態では、図１９Ａに示されるように、ユーザデバイスは、手書き入力区域内での、複数行の入力（例えば、２つの行の入力）を可能にする。図１９Ａでは、ユーザは、手書き入力区域８０６内に、複数の手書きストロークを、幾つかの行で提供している。ユーザが提供した複数の手書きストロークの配列、並びに複数の手書きストロークの相対的場所、及びそれらのストローク間の距離に基づいて、ユーザデバイスは、２つの行の文字をユーザが入力していると判定する。この手書き入力を、２つの別個の行へと分割した後、デバイスは、各行内の認識単位を判定する。
【０２９２】
図１９Ａに示されるように、ユーザデバイスは、現在の手書き入力１９０２内で特定された各認識単位に関する、それぞれの文字を認識して、幾つかの認識結果１９０４及び１９０６を生成している。図１９Ａに更に示されるように、一部の実施形態では、特定の認識単位（例えば、初期のストロークによって形成された認識単位）のセットに関する出力文字（例えば、文字「Ｉ」）が低い場合には、ユーザデバイスは、十分な認識信頼度を有する出力文字のみを示す、部分的認識結果（例えば、結果１９０６）を、任意選択的に生成する。一部の実施形態では、ユーザは、認識モデルが正しい認識結果を作り出すために、第１のストロークを訂正するか、又は個別に削除することができることを、この部分的認識結果１９０６から理解することができる。この特定の実施例では、第１の認識単位１９０４は、第１の認識単位に関する所望の認識結果を示しているため、その第１の認識単位を編集することは、必要ではない。
【０２９３】
この実施例では、図１９Ａ、図１９Ｂに示されるように、ユーザは、（例えば、図１９Ｂに示される）縦表示の向きにデバイスを回転させている。このデバイスの向きの変化に対応して、手書き入力インタフェースは、図１９Ｂに示されるように、水平入力モードから垂直入力モードに変更される。垂直入力モードでは、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８のレイアウトは、水平入力モードで示されるものとは異なり得る。水平入力モード及び垂直入力モードの具体的なレイアウトは、種々のデバイスの形状及びアプリケーションの要求に適合するように、変化させることができる。一部の実施形態では、デバイスの向きの回転、及び入力モードの変化により、ユーザデバイスは、最上ランクの結果（例えば、結果１９０４）を、テキスト入力区域８０８内に、テキスト入力１９１０として自動的に入力する。カーソル１９１２の向き及び位置もまた、入力モード及び書き込み方向の変化を反映する。
【０２９４】
一部の実施形態では、入力モードの変化は、任意選択的に、特殊な入力モード選択アフォーダンス１９０８にユーザがタッチすることによって、トリガされる。一部の実施形態では、この入力モード選択アフォーダンスは、現在の書き込みモード、現在の書き込み方向、及び／又は現在のパラグラフ方向もまた示す、グラフィカルユーザインタフェース要素である。一部の実施形態では、入力モード選択アフォーダンスは、手書き入力インタフェース８０２によって提供される、全ての利用可能な入力モード及び書き込み方向を、循環して切り替えることができる。図１９Ａに示されるように、アフォーダンス１９０８は、現在の入力モードが、左から右への書き込み方向、及び上から下へのパラグラフ方向を有する、水平入力モードであることを示す。図１９Ｂでは、アフォーダンス１９０８は、現在の入力モードが、上から下への書き込み方向、及び右から左へのパラグラフ方向を有する、垂直入力モードであることを示す。書き込み方向とパラグラフ方向との他の組み合わせが、様々な実施形態に従って可能である。
【０２９５】
図１９Ｃに示されるように、ユーザは、垂直入力モードで、手書き入力区域８０４内に、複数の新たなストローク１９１４（例えば、２つの中国文字「
2019164801.tif 000133
」に関する手書きストローク）を入力している。この手書き入力は、垂直の書き込み方向で書き込まれる。ユーザデバイスは、この垂直方向での手書き入力を、２つの認識単位へと分割し、垂直方向でレイアウトされた２つの認識文字をそれぞれが含む、２つの認識結果１９１６及び１９１８を表示する。
【０２９６】
図１９Ｃ及び図１９Ｄは、ユーザが、表示された認識結果（例えば、結果１９１６）を選択すると、その選択された認識結果が、テキスト入力区域８０８内に垂直方向で入力されることを示す。
【０２９７】
図１９Ｅ及び図１９Ｆは、ユーザが、垂直の書き込み方向で、更なる手書き入力１９２０の行を入力していることを示す。これらの行は、伝統的な中国語の書き込みのパラグラフ方向に従って、左から右に進む。一部の実施形態では、候補表示区域８０６もまた、手書き入力区域に関する方向と同じ書き込み方向及びパラグラフ方向で、認識結果（例えば、結果１９２２及び１９２４）を示す。一部の実施形態では、ユーザデバイスに関連付けられる主要言語、又はユーザデバイス上にインストールされているソフトキーボードの言語（例えば、アラビア語、中国語、日本語、英語など）に従って、他の書き込み方向及びパラグラフ方向を、デフォルトで提供することができる。
【０２９８】
図１９Ｅ及び図１９Ｆはまた、ユーザが、認識結果（例えば、結果１９２２）を選択すると、その選択された認識結果のテキストが、テキスト入力区域８０８内に入力されることも示す。図１９Ｆに示されるように、テキスト入力区域８０８内に現在入力されているテキストは、それゆえ、左から右への書き込み方向を有する、水平モードで書き込まれたテキストと、上から下への書き込み方向を有する、垂直モードで書き込まれたテキストとの双方を含む。水平のテキストに関するパラグラフ方向は、上から下であり、その一方で、垂直のテキストに関するパラグラフ方向は、右から左である。
【０２９９】
一部の実施形態では、ユーザデバイスは、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８のそれぞれに関して、ユーザが、好ましい書き込み方向、パラグラフ方向を、別個に確立することを可能にする。一部の実施形態では、ユーザデバイスは、手書き入力区域８０４、候補表示区域８０６、及びテキスト入力区域８０８のそれぞれに関して、ユーザが、それぞれのデバイスの向きに関連付けられる、好ましい書き込み方向及びパラグラフ方向を確立することを可能にする。
【０３００】
図２０Ａ〜図２０Ｃは、ユーザインタフェースのテキスト入力方向及び手書き入力方向を変更するための、例示的プロセス２０００の流れ図である。図１９Ａ〜図１９Ｆは、一部の実施形態に係る、プロセス２０００を示す。
【０３０１】
一部の実施形態では、ユーザデバイスは、デバイスの向きを判定する（２００２）。デバイスの向き、及びデバイスの向きの変化は、そのユーザデバイス内の、加速度計及び／又は他の向き感知要素によって検出することができる。一部の実施形態では、ユーザデバイスは、そのデバイスが第１の向きにあることに従って、そのデバイス上に、手書き入力インタフェースを、水平入力モードで提供する（２００４）。この水平入力モードで入力される手書き入力のそれぞれの行は、水平の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される。一部の実施形態では、デバイスは、そのデバイスが第２の向きにあることに従って、そのデバイス上に、手書き入力インタフェースを、垂直入力モードで提供する（２００６）。この垂直入力モードで入力される手書き入力のそれぞれの行は、垂直の書き込み方向に沿って、１つ以上のそれぞれの認識単位へと分割される。
【０３０２】
一部の実施形態では、水平入力モードで動作している間に（２００８）、デバイスは、第１の向きから第２の向きへの、デバイスの向きの変化を検出する（２０１０）。一部の実施形態では、このデバイスの向きの変化に応じて、デバイスは、水平入力モードから垂直入力モードに切り替える（２０１２）。このことは、例えば、図１９Ａ及び図１９Ｂに示される。一部の実施形態では、垂直入力モードで動作している間に（２０１４）、ユーザデバイスは、第２の向きから第１の向きへの、デバイスの向きの変化を検出する（２０１６）。一部の実施形態では、このデバイスの向きの変化に応じて、ユーザデバイスは、垂直入力モードから水平入力モードに切り替える（２０１８）。一部の実施形態では、デバイスの向きと入力モードとの関連性は、上述のものとは反対にすることができる。
【０３０３】
一部の実施形態では、水平入力モードで動作している間に（２０２０）、ユーザデバイスは、ユーザから、第１の複数語の手書き入力を受信する（２０２２）。この第１の複数語の手書き入力に応じて、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、水平の書き込み方向に従って、第１の複数語の認識結果を提示する（２０２４）。このことは、例えば、図１９Ａに示される。一部の実施形態では、垂直入力モードで動作している間に（２０２６）、ユーザデバイスは、ユーザから、第２の複数語の手書き入力を受信する（２０２８）。この第２の複数語の手書き入力に応じて、ユーザデバイスは、候補表示区域内に、垂直の書き込み方向に従って、第２の複数語の認識結果を提示する（２０３０）。このことは、例えば、図１９Ｃ及び図１９Ｅに示される。
【０３０４】
一部の実施形態では、ユーザデバイスは、例えば、図１９Ａ、図１９Ｂに示されるように、第１の複数語の認識結果を選択する、第１のユーザ入力を受信し（２０３２）、この選択は、入力方向を変更するための入力（例えば、デバイスの回転、又はアフォーダンス１９０８の選択）を使用して、暗黙的に実施される。ユーザデバイスは、例えば、図１９Ｃ又は図１９Ｅに示されるように、第２の複数語の認識結果を選択する、第２のユーザ入力を受信する（２０３４）。ユーザデバイスは、手書き入力インタフェースのテキスト入力区域内に、第１の複数語の認識結果及び第２の複数語の認識結果の、対応のテキストを同時に表示し（２０３６）、第１の複数語の認識結果の対応のテキストは、水平の書き込み方向に従って表示され、第２の複数語の認識結果の対応のテキストは、垂直の書き込み方向に従って表示される。このことは、例えば、図１９Ｆでのテキスト入力区域８０８内に示される。
【０３０５】
一部の実施形態では、手書き入力区域は、水平の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの上から下へのパラグラフ方向を有する。一部の実施形態では、この水平の書き込み方向は、左から右である。一部の実施形態では、この水平の書き込み方向は、右から左である。一部の実施形態では、手書き入力区域は、垂直の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの左から右へのパラグラフ方向を有する。一部の実施形態では、手書き入力区域は、垂直の書き込み方向で複数行の手書き入力を受け入れ、デフォルトの右から左へのパラグラフ方向を有する。一部の実施形態では、この垂直の書き込み方向は、上から下である。一部の実施形態では、第１の向きは、デフォルトで横表示の向きであり、第２の向きは、デフォルトで縦表示の向きである。一部の実施形態では、ユーザデバイスは、デバイスの向きに関わりなく、水平入力モードと垂直入力モードとを手動で切り替えるために、手書き入力インタフェース内に、対応のアフォーダンスを提供する。一部の実施形態では、ユーザデバイスは、２つの代替的な書き込み方向を手動で切り替えるために、手書き入力インタフェース内に、対応のアフォーダンスを提供する。一部の実施形態では、ユーザデバイスは、２つの代替的なパラグラフ方向を手動で切り替えるために、手書き入力インタフェース内に、対応のアフォーダンスを提供する。一部の実施形態では、このアフォーダンスは、連続的に１回以上呼び出される場合に、入力方向とパラグラフ方向との利用可能な各組み合わせを巡って回転する、トグルボタンである。
【０３０６】
一部の実施形態では、ユーザデバイスは、ユーザから手書き入力を受信する（２０３８）。この手書き入力は、手書き入力インタフェースの手書き入力区域内に提供される、複数の手書きストロークを含む。この手書き入力に応じて、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、１つ以上の認識結果を表示する（２０４０）。それらの１つ以上の認識結果が、候補表示区域内に表示されている間に、ユーザデバイスは、現在の手書き入力モードから代替の手書き入力モードに切り替えるための、ユーザ入力を検出する（２０４２）。このユーザ入力に応じて（２０４４）、ユーザデバイスは、現在の手書き入力モードから代替の手書き入力モードに切り替える（２０４６）。一部の実施形態では、ユーザデバイスは、手書き入力区域内から、手書き入力を消去する（２０４８）。一部の実施形態では、ユーザデバイスは、候補表示区域内に表示された１つ以上の認識結果のうちの、最上ランクの認識結果を、手書き入力インタフェースのテキスト入力区域内に、自動的に入力する（２０５０）。このことは、例えば、図１９Ａ及び図１９Ｂに示され、現在の手書き入力モードは、水平入力モードであり、代替の手書き入力モードは、垂直入力モードである。一部の実施形態では、現在の手書き入力モードは、垂直入力モードであり、代替の手書き入力モードは、水平入力モードである。一部の実施形態では、現在の手書き入力モード及び代替の手書き入力モードは、任意の２つの異なる手書き入力方向又はパラグラフ方向が提供されるモードである。一部の実施形態では、このユーザ入力は、現在の向きから、異なる向きへの、デバイスの回転である（２０５２）。一部の実施形態では、このユーザ入力は、現在の手書き入力モードを、代替の手書き入力モードに手動で切り替えるための、アフォーダンスの呼び出しである。
【０３０７】
本明細書で説明されるように、手書き入力モジュールは、手書きストローク及び／又は文字を、ユーザが、任意の時間的順序で入力することを可能にする。それゆえ、複数文字の手書き入力内の、個別の手書き文字を削除すること、及び、削除された文字と同じ場所に、同じ手書き文字若しくは異なる手書き文字を書き直すことは、ユーザが、手書き入力の全体を削除することを必要とせずに、長い手書き入力を訂正する助けとなるため、有利である。
【０３０８】
図２０Ａ〜図２０Ｈは、手書き入力区域内に現時点で蓄積されている、複数の手書きストローク内で特定された認識単位を、視覚的に強調表示し、かつ／又は削除するための、例示的ユーザインタフェースを示す。複数の入力内で特定された複数の認識単位のうちの任意の１つを、ユーザが個別に選択し、見て、削除することを可能にすることは、複数文字の手書き入力、また更に、複数行の手書き入力が、ユーザデバイスによって許容される場合に、特に有用である。手書き入力の最初又は中間部の特定の認識単位を、ユーザが削除することを可能にすることによって、望ましくない認識単位の後に位置する全ての認識単位を、ユーザが削除することを必要とせずに、ユーザは、長い入力に対する修正を実施することが可能となる。
【０３０９】
図２１Ａ〜図２１Ｃに示されるように、ユーザは、手書き入力ユーザインタフェース８０２の手書き入力区域８０４内に、複数の手書きストローク（例えば、ストローク２１０２、２１０４、及び２１０６）を提供している。ユーザが、手書き入力区域８０４に、追加ストロークを継続して提供する間に、ユーザデバイスは、手書き入力区域内に現時点で蓄積されている手書き入力から特定される、認識単位を更新し、その更新された認識単位から認識される出力文字に従って、認識結果を訂正する。図２０Ｃに示されるように、ユーザデバイスは、現在の手書き入力から２つの認識単位を特定し、２つの中国文字をそれぞれが含む、３つの認識結果（例えば、２１０８、２０１０、及び２１１２）を提示している。
【０３１０】
この実施例では、ユーザが２つの手書き文字を書き込んだ後に、ユーザは、第１の認識単位が誤って書き込まれ、結果として、所望の認識結果を、ユーザデバイスが特定して候補表示区域内に提示していないことを理解する。
【０３１１】
一部の実施形態では、ユーザが、タッチ感知ディスプレイ上にタップジェスチャ（例えば、接触に続く、同じ場所での即座のリフトオフ）を提供すると、ユーザデバイスは、そのタップジェスチャを、手書き入力区域内で現在特定されている個別の認識単位の、視覚的な強調表示を引き起こすための入力として解釈する。一部の実施形態では、別の既定のジェスチャ（例えば、手書き入力区域の上での、複数の指でワイプするジェスチャ）を使用して、ユーザデバイスに、手書き入力区域８０４内の個別の認識単位を強調表示させる。タップジェスチャは、手書きストローク（通常、より長い持続時間持続的接触を伴い、手書き入力区域８０４内での接触の移動を有するもの）から識別することが比較的容易であるため、好ましい場合がある。マルチタップジェスチャは、手書きストローク（通常、手書き入力区域８０４内での単一の接触を伴うもの）から識別することが比較的容易であるため、好ましい場合がある。一部の実施形態では、ユーザデバイスは、個別の認識単位を、（例えば、ボックス２１０８及び２１１０によって示されるように）視覚的に強調表示させるための、ユーザによって（例えば、接触２１１４を介して）呼び出すことが可能なアフォーダンス２１１２を、ユーザインタフェース内に提供する。一部の実施形態では、このアフォーダンスは、そのようなアフォーダンスを収容するための、十分な画面空間が存在する場合に好ましい。一部の実施形態では、このアフォーダンスは、ユーザによって連続的に複数回呼び出すことができ、このことは、ユーザデバイスに、分割束内の異なる分割鎖に従って特定された認識単位を、視覚的に強調表示させ、また、その強調表示に関して、全ての分割鎖が示された場合に、オフにさせる。
【０３１２】
図２１Ｄに示されるように、ユーザが、手書き入力区域８０４内の個別の認識単位を強調表示するために、必要なジェスチャを提供している場合、ユーザデバイスは、強調表示された各認識単位の上に、それぞれの削除アフォーダンス（例えば、小さい削除ボタン２１１６及び２１１８）を更に表示する。図２１Ｅ及び図２１Ｆは、ユーザが、それぞれの認識単位の削除アフォーダンス（例えば、ボックス２１１８内の第１の認識単位に関する削除ボタン２１１６）に、（例えば、接触２１２０を介して）タッチすると、それぞれの（例えば、ボックス２１１８内の）認識単位が、手書き入力区域８０４から除去されることを示す。この特定の実施例では、削除される認識単位は、時間的に最後に入力された認識単位ではなく、書き込み方向に沿った、空間的に最後の認識単位でもない。換言すれば、ユーザは、任意の認識単位を、手書き入力区域内にその認識単位が提供された時間及び場所に関わりなく、削除することができる。図２１Ｆは、手書き入力区域内での、この第１の認識単位の削除に応じて、ユーザデバイスが、候補表示区域８０６内に表示される認識結果も更新することを示す。図２１Ｆに示されるように、ユーザデバイスはまた、削除された認識単位に対応する候補文字を、認識結果からも削除している。結果として、新たな認識結果２１２０が、候補表示区域８０６内に示される。
【０３１３】
図２１Ｇ及び図２１Ｈに示されるように、第１の認識単位が、手書き入力インタフェース８０４から除去された後、ユーザは、この削除された認識単位によって従前に占有されていた区域内に、複数の新たな手書きストローク２１２２を提供している。ユーザデバイスは、手書き入力区域８０４内の、現時点で蓄積されている手書き入力を、再分割している。この手書き入力から特定された認識単位に基づいて、ユーザデバイスは、候補表示区域８０６内に、認識結果（例えば、結果２１２４及び２１２６）を再生成している。図２１Ｇ及び図２１Ｈは、ユーザが、それらの認識結果のうちの１つ（例えば、結果２１２４）を、（例えば、接触２１２８を介して）選択しており、その選択された認識結果のテキストが、テキスト入力区域８０８内に入力されることを示す。
【０３１４】
図２２Ａ及び図２２Ｂは、現在の手書き入力内で特定された個別の認識単位が、視覚的に提示され、それらの認識単位が形成される時間的順序に関わりなく、個別に削除することが可能な、例示的プロセス２２００に関する流れ図である。図２１Ａ〜図２１Ｈは、一部の実施形態に係る、プロセス２２００を示す。
【０３１５】
例示的プロセス２２００では、ユーザデバイスは、ユーザから手書き入力を受信する（２２０２）。この手書き入力は、デバイスに結合されたタッチ感知面上に提供される、複数の手書きストロークを含む。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの手書き入力区域（例えば、手書き入力区域８０４）内に、それらの複数の手書きストロークをレンダリングする（２２０４）。一部の実施形態では、ユーザデバイスは、それらの複数の手書きストロークを、２つ以上の認識単位へと分割し（２２０６）、各認識単位は、それらの複数の手書きストロークのうちの対応のサブセットを含む。
【０３１６】
一部の実施形態では、ユーザデバイスは、ユーザから編集リクエストを受信する（２２０８）。一部の実施形態では、この編集リクエストは、手書き入力インタフェース内に提供された、既定のアフォーダンス（例えば、図２１Ｄでのアフォーダンス２１１２）の上で検出される、接触である（２２１０）。一部の実施形態では、この編集リクエストは、手書き入力インタフェース内の既定の区域の上で検出される、タップジェスチャである（２２１２）。一部の実施形態では、この既定の区域は、手書き入力インタフェースの手書き入力区域内に存在する。一部の実施形態では、この既定の区域は、手書き入力インタフェースの手書き入力区域の外側に存在する。一部の実施形態では、手書き入力区域の外側での、別の既定のジェスチャ（例えば、十字ジェスチャ、水平スワイプジェスチャ、垂直スワイプジェスチャ、傾斜スワイプジェスチャ）を、編集リクエストとして使用することができる。手書き入力区域の外側でのジェスチャは、手書き入力区域の外側に提供されるため、手書きストロークから容易に識別することができる。
【０３１７】
一部の実施形態では、この編集リクエストに応じて、ユーザデバイスは、例えば、図２１Ｄでのボックス２１０８及び２１１０を使用して、手書き入力区域内の２つ以上の認識単位を、視覚的に識別する（２２１４）。一部の実施形態では、２つ以上の認識単位を視覚的に識別することは、手書き入力区域内の２つ以上の認識単位間の、それぞれの境界線を強調表示することを更に含む（２２１６）。様々な実施形態では、現在の手書き入力内で特定された認識単位を視覚的に識別する、種々の方法を使用することができる。
【０３１８】
一部の実施形態では、ユーザデバイスは、手書き入力区域から、２つ以上の認識単位のうちのそれぞれを、個別に削除する手段を提供する（２２１８）。一部の実施形態では、２つ以上の認識単位のうちのそれぞれを、個別に削除する手段は、例えば、図２１Ｄでの削除ボタン２１１６及び２１１８によって示されるような、各認識単位の近位に表示される、それぞれの削除ボタンである。一部の実施形態では、２つ以上の認識単位のうちのそれぞれを、個別に削除する手段は、各認識単位の上での、既定の削除ジェスチャ入力を検出する手段である。一部の実施形態では、ユーザデバイスは、強調表示された認識単位の上に、個別の削除アフォーダンスを視覚的に表示しない。その代わりに、一部の実施形態では、ユーザは、削除ジェスチャを使用して、その削除ジェスチャの下の、それぞれの認識単位を削除することが可能となる。一部の実施形態では、ユーザデバイスが、視覚的に強調表示された方式で、認識単位を表示している際には、ユーザデバイスは、手書き入力区域内に、更なる手書きストロークを受け入れない。その代わりに、視覚的に強調表示された認識単位の上で検出される、既定のジェスチャ又は任意のジェスチャが、ユーザデバイスに、その認識単位を手書き入力区域から除去させ、候補表示区域内に表示される認識結果を、適宜に訂正させる。一部の実施形態では、タップジェスチャが、ユーザデバイスに、手書き認識区域内で特定された個別の認識単位を、視覚的に強調表示させ、次いで、ユーザは、削除ボタンを使用して、書き込みの逆方向で、個別の認識単位を１つずつ削除することができる。
【０３１９】
一部の実施形態では、ユーザデバイスは、例えば、図２１Ｅに示されるように、２つ以上の認識単位のうちの第１の認識単位を、手書き入力区域から個別に削除するための削除入力を、ユーザから、提供された手段を通じて受信する（２２２４）。この削除入力に応じて、ユーザデバイスは、例えば、図２１Ｆに示されるように、手書き入力区域から、第１の認識単位内の、手書きストロークのうちの対応のサブセットを除去する（２２２６）。一部の実施形態では、第１の認識単位は、２つ以上の認識単位内の、空間的に最初の認識単位である。一部の実施形態では、第１の認識単位は、例えば、図２１Ｅ及び図２１Ｆに示されるように、２つ以上の認識単位の中の、空間的に中間の認識単位である。一部の実施形態では、第１の認識単位は、２つ以上の認識単位の中の、空間的に最後の認識単位である。
【０３２０】
一部の実施形態では、ユーザデバイスは、複数の手書きストロークから、分割束を生成し（２２２８）、この分割束は、それぞれがそれらの複数の手書きストロークから特定される対応の認識単位のセットを表す、複数の代替的な分割鎖を含む。例えば、図２１Ｇは、認識結果２０２４及び２０２６を示し、認識結果２０２４は、２つの認識単位を有する１つの分割鎖から生成され、認識結果２０２６は、３つの認識単位を有する別の分割鎖から生成される。一部の実施形態では、ユーザデバイスは、ユーザから、２つ以上の連続的編集リクエストを受信する（２２３０）。例えば、それらの２つ以上の連続的編集リクエストは、図２１Ｇでのアフォーダンス２１１２上での、幾つかの連続的タップとすることができる。一部の実施形態では、２つ以上の連続的編集リクエストのそれぞれに応じて、ユーザデバイスは、手書き入力区域内で、複数の代替的な分割鎖のうちの異なる１つからの、対応の認識単位のセットを、視覚的に識別する（２２３２）。例えば、第１のタップジェスチャに応じて、手書き入力区域８０４内で、２つの（例えば、それぞれ、文字「
2019164801.tif 000134
」及び「
2019164801.tif 000135
」に関する）認識単位が強調表示され、第２のタップジェスチャに応じて、３つの（例えば、それぞれ、文字「
2019164801.tif 000136
」、「
2019164801.tif 000137
」、及び「
2019164801.tif 000138
」に関する）認識単位が強調表示される。一部の実施形態では、第３のタップジェスチャに応じて、視覚的な強調表示が、任意選択的に、全ての認識単位から除去され、手書き入力区域は、通常状態に戻り、更なるストロークを受け入れる準備が整う。一部の実施形態では、ユーザデバイスは、手書き入力区域内に現在表されている、対応の認識単位のセットのそれぞれを、個別に削除する手段を提供する（２２３４）。一部の実施形態では、この手段は、強調表示された各認識単位に関する、個別の削除ボタンである。一部の実施形態では、この手段は、強調表示された各認識単位の上での、既定の削除ジェスチャを検出し、及び、その既定の削除ジェスチャの下の強調表示された認識単位を、削除する機能を呼び出す手段である。
【０３２１】
本明細書で説明されるように、一部の実施形態では、ユーザデバイスは、手書き入力区域内での、継続的入力モードを提供する。手書き入力区域の面積は、ポータブルユーザデバイス上では限られているため、ユーザによって提供される手書き入力をキャッシュして、ユーザが、従前に提供されている手書き入力を確定することなく、画面空間を再使用することを可能にするための方法を提供することが、望ましい場合がある。一部の実施形態では、ユーザデバイスは、ユーザが手書き入力区域の終端部に十分に接近しつつある場合に、入力区域が特定の量（例えば、一度に１つの認識単位）で徐々に移行する、スクロールする手書き入力区域を提供する。一部の実施形態では、手書き入力区域内で既存の認識単位を移行させることは、ユーザの書き込みプロセスを妨げ、恐らくは、認識単位の正しい分割を妨げる可能性があるため、認識単位を動的に移行させることなく、その入力区域の従前に使用された領域を、再生利用することが有利な場合がある。一部の実施形態では、テキスト入力区域内に未だ入力されていない手書き入力によって占有される区域を、ユーザが再使用する場合、その手書き入力区域に関する最上位の認識結果が、テキスト入力区域内に自動的に入力されて、ユーザは、その最上ランクの認識結果を明示的に選択することなく、新たな手書き入力を継続して提供することができる。
【０３２２】
一部の従来システムでは、ユーザは、手書き入力区域内に依然として示されている、既存の手書き入力の上に、書き込むことが可能となる。そのようなシステムでは、時間的情報を使用して、新たなストロークが、以前の認識単位の一部であるか、又は新たな認識単位の一部であるかを判定する。そのような時間的情報に依存するシステムは、ユーザが手書き入力を提供する速度及び緩急に対して、厳格な要件を強いるものであり、多くのユーザには、その要件を満たすことは困難である。更には、その手書き入力の視覚的レンダリングは、ユーザにとって解読することが困難な、雑然としたものになる恐れがある。それゆえ、その書き込みプロセスは、ユーザにとって苛立たしく混乱したものとなり、劣悪なユーザエクスペリエンスをもたらす恐れがある。
【０３２３】
本明細書で説明されるように、従前に書き込まれた認識単位によって占有される区域を、ユーザがいつ再使用して、その手書き入力区域内での書き込みを継続することができるかを示すために、フェーディングプロセスが使用される。一部の実施形態では、このフェーディングプロセスは、閾値時間量にわたって手書き入力区域内に提供されている、各認識単位の視認性を徐々に低減して、その上に新たなストロークが書き込まれる場合に、既存のテキストが、その新たなストロークと視覚的に競合することがない。一部の実施形態では、フェードした認識単位の上に書き込むことにより、ユーザが書き込みを中断し、最上ランクの認識結果に関する選択入力を、明示的に提供することを必要とせずに、その認識単位に関する最上ランクの認識結果を、テキスト入力区域内に自動的に入力させる。最上ランクの認識結果の、この暗黙的かつ自動的な確認は、手書き入力インタフェースの入力の効率及び速度を向上させ、現在のテキスト構成の思考の流れを維持するための、ユーザに強いられる認知負担を軽減する。一部の実施形態では、フェードした認識単位の上に書き込むことにより、最上ランクの検索結果の自動的な選択は引き起こされない。その代わりに、フェードした認識単位は、手書き入力スタック内にキャッシュされ、現在の手書き入力として、新たな手書き入力と組み合わされる。ユーザは、手書き入力スタック内に蓄積された、それらの認識単位の全てに基づいて生成される認識結果を、選択を実施する前に視認することができる。
【０３２４】
図２３Ａ〜図２３Ｊは、手書き入力区域の異なる領域内に提供された認識単位が、例えば、既定の時間量の後に、それらの対応の領域から徐々にフェードアウトし、このフェードアウトが特定の領域内で生じた後、ユーザは、その領域内に新たな手書きストロークを提供することが可能となる、例示的なユーザインタフェース及びプロセスを示す。
【０３２５】
図２３Ａに示されるように、ユーザは、手書き入力区域８０４内に、複数の手書きストローク２３０２（例えば、大文字「Ｉ」に関する３つの手書きストローク）を提供している。手書きストローク２３０２は、ユーザデバイスによって、１つの認識単位として特定される。一部の実施形態では、手書き入力区域８０４内に現在示されている手書き入力は、ユーザデバイスの手書き入力スタック内の、第１の層内にキャッシュされる。この特定された認識単位に基づいて生成された、幾つかの認識結果が、候補表示区域８０４内に提供される。
【０３２６】
図２３Ｂは、ユーザが、ストローク２３０４の右に、１つ以上のストローク２３０２を継続して書き込むと、第１の認識単位内の手書きストローク２３０２が、手書き入力区域８０４内で、徐々にフェードアウトを開始することを示す。一部の実施形態では、この第１の認識単位の視覚的レンダリングの、徐々のフェーディング又は消失を模倣する、アニメーションが表示される。例えば、このアニメーションは、ホワイトボードからインクが蒸発する、視覚効果を作り出すことができる。一部の実施形態では、認識単位のフェーディングは、認識単位全体にわたって均一なものではない。一部の実施形態では、認識単位のフェーディングは、経時的に増大して、最終的に、その認識単位は、手書き区域内で完全に不可視となる。しかしながら、認識単位が、もはや手書き入力区域８０４内で可視ではない場合であっても、一部の実施形態では、その不可視の認識単位は、手書き入力スタックの最上位に維持され、その認識単位から生成された認識結果が、候補表示区域内に継続して表示される。一部の実施形態では、フェードした認識単位は、その上に新たな手書き入力が書き込まれるまで、完全にはビューから除去されない。
【０３２７】
一部の実施形態では、ユーザデバイスは、フェーディングアニメーションが開始すると即座に、新たな手書き入力が、フェードした認識単位によって占有されていた領域の上に提供されることを可能にする。一部の実施形態では、ユーザデバイスは、フェーディングが特定の段階に（例えば、最も微弱なレベルに、又は、その領域内で認識が完全に不可視となるまで）進行した後にのみ、新たな手書き入力が、フェードした認識単位によって占有されていた領域の上に提供されることを可能にする。
【０３２８】
図２３Ｃは、第１の認識単位（すなわち、ストローク２３０２）が、そのフェーディングプロセスを完了している（例えば、インクの色が、極めて微弱なレベルで安定化しているか、又は不可視になっている）ことを示す。ユーザデバイスは、ユーザによって提供された更なる手書きストロークから、更なる認識単位（例えば、手書き文字「ａ」及び「ｍ」に関する認識単位）を特定し、候補表示区域８０４内に提示される認識結果を更新している。
【０３２９】
図２２Ｄ〜図２２Ｆは、時間の経過と共に、ユーザが、手書き入力区域８０４内に、複数の更なる手書きストローク（例えば、２３０４及び２３０６）を提供していることを示す。同時に、従前に特定された認識単位は、手書き入力区域８０４から、徐々にフェードして消える。一部の実施形態では、各認識単位が、その認識単位が特定された後に、それ自体のフェーディングプロセス開始するためには、既定の時間量を要する。一部の実施形態では、各認識単位に関するフェーディングプロセスは、ユーザが、その認識単位の下流に、第２の認識単位を入力することを開始するまでは、開始されない。図２３Ｂ〜図２３Ｆに示されるように、手書き入力が筆写体で提供される場合、単一のストローク（例えば、ストローク２３０４又はストローク２３０６）は、手書き入力区域内で、複数の認識単位（例えば、語「ａｍ」又は「ｂａｃｋ」内の各手書き文字に関する認識単位）を経て続けられる場合がある。
【０３３０】
図２２Ｇは、認識単位が、そのフェーディングプロセスを開始した後であっても、ユーザは、既定の再生入力、例えば、削除ボタン２３１０上での（例えば、接触２３０８の後に続く即座のリフトオフによって示されるような）タップジェスチャによって、その認識単位を、非フェード状態に回復させることができることを示す。認識単位が再生されると、その外観は、通常の視認性レベルに戻る。一部の実施形態では、フェードした認識単位の再生は、手書き入力区域８０４内での書き込みの逆方向で、文字単位で実施される。一部の実施形態では、フェードした認識単位の再生は、手書き入力区域８０４内で、語単位で実施される。図２３Ｇに示されるように、語「ｂａｃｋ」に対応する認識単位は、フェード完了状態から、完全な非フェード状態に再生されている。一部の実施形態では、フェーディングプロセスを開始するためのクロックは、認識単位が非フェード状態に再生されると、各認識単位ごとにリセットされる。
【０３３１】
図２２Ｈは、削除ボタン上での持続的接触により、デフォルトの書き込み方向での最後の認識単位（例えば、語「ｂａｃｋ」内の文字「ｋ」に関する認識単位）が、手書き入力区域８０４から削除されることを示す。この削除入力が継続的に維持されると、より多くの認識単位（例えば、語「ｂａｃｋ」内の文字「ｃ」、「ａ」、「ｂ」に関する認識単位）が、書き込みの逆方向で、１つずつ削除される。一部の実施形態では、認識単位の削除は語単位であり、手書き入力区域８０４から削除される手書きの語「ｂａｃｋ」の全ての文字が、同時に除去される。図２２Ｈはまた、接触２３０８が、手書きの語「ｂａｃｋ」内の文字「ｂ」に関する認識単位の削除の後に、削除ボタン２３１０上で維持されると、従前にフェードした認識単位「ｍ」が、同様に再生されることも示す。
【０３３２】
図２３Ｉは、手書きの語「ａｍ」内の再生された認識単位「ｍ」の削除が実施される前に、削除入力が停止される場合には、その再生された認識単位が、再び徐々にフェードすることを示す。一部の実施形態では、各認識単位の状態（例えば、１つ以上のフェード状態及び非フェード状態のセットから選択される状態）が、手書き入力スタック内で維持及び更新される。
【０３３３】
図２３Ｊは、ユーザが、手書き入力区域内の、フェードした認識単位（例えば、文字「Ｉ」に関する認識単位）によって占有されていた区域の上に、１つ以上のストローク２３１２を提供している場合、一部の実施形態では、図２３Ｉ、図２３Ｊに示されるように、ストローク２３１２の前に実施された手書き入力に関する、最上ランクの認識結果（例えば、結果２３１４）のテキストが、テキスト入力区域８０８内に、自動的に入力されることを示す。図２３Ｊに示されるように、テキスト「Ｉ  ａｍ」は、もはや暫定的であるとして示されず、その代わりに、テキスト入力区域８０８内に確定されている。一部の実施形態では、完全にフェードした手書き入力又は部分的にフェードした手書き入力に関して、テキスト入力が実施されると、その手書き入力は、手書き入力スタックから除去される。新たに入力されたストローク（例えば、ストローク２３１２）が、手書き入力スタック内の現在の入力になる。
【０３３４】
図２３Ｊに示されるように、テキスト「Ｉ  ａｍ」は、もはや暫定的であるとして示されず、その代わりに、テキスト入力区域８０８内に確定されている。一部の実施形態では、完全にフェードした手書き入力又は部分的にフェードした手書き入力に関して、テキスト入力が実施されると、その手書き入力は、手書き入力スタックから除去される。新たに入力されたストローク（例えば、ストローク２３１２）が、手書き入力スタック内の現在の入力になる。
【０３３５】
一部の実施形態では、ストローク２３１２が、手書き入力区域内の、フェードした認識単位（例えば、文字「Ｉ」に関する認識単位）によって占有されていた区域の上に提供される場合、ストローク２３１２の前に実施された手書き入力に関する、最上ランクの認識結果（例えば、結果２３１４）のテキストは、テキスト入力区域８０８内に、自動的には入力されない。その代わりに、手書き入力区域８０４内の（フェード及び非フェードの双方の）現在の手書き入力が消去され、手書き入力スタック内にキャッシュされる。新たなストローク２３１２は、その手書き入力スタック内のキャッシュされた手書き入力に付加される。ユーザデバイスは、手書き入力スタック内に現時点で蓄積されている手書き入力の全体に基づいて、認識結果を判定する。それらの認識結果は、候補表示区域内に表示される。換言すれば、現時点で蓄積されている手書き入力の一部分のみが、手書き入力区域８０４内に示される場合であっても、認識結果は、手書き入力スタック内にキャッシュされた（可視の部分、及びもはや可視ではない部分の双方の）手書き入力全体に基づいて生成される。
【０３３６】
図２３Ｋは、ユーザが、手書き入力区域８０４内に、更なるストローク２３１６を入力しており、そのストロークが、経時的にフェードしていることを示す。図２３Ｌは、フェードしたストローク２３１２及び２３１６の上に書き込まれた、新たなストローク２３１８により、フェードしたストローク２３１２及び２３１６に関する最上位の認識結果２３２０のテキストが、テキスト入力区域８０８内に入力されていることを示す。
【０３３７】
一部の実施形態では、ユーザは、任意選択的に、複数の行で手書き入力を提供する。一部の実施形態では、複数行の入力が有効である場合に、同じフェーディングプロセスを使用して、新たな手書き入力のために、手書き入力区域をクリアすることができる。
【０３３８】
図２４Ａ及び図２４Ｂは、手書き入力インタフェースの手書き入力区域内に、フェーディングプロセスを提供するための、例示的プロセス２４００の流れ図である。図２３Ａ〜図２３Ｋは、一部の実施形態に係る、プロセス２４００を示す。
【０３３９】
一部の実施形態では、デバイスは、ユーザから第１の手書き入力を受信する（２４０２）。この第１の手書き入力は、複数の手書きストロークを含み、それらの複数の手書きストロークは、手書き入力インタフェースの手書き入力区域に関連付けられた、それぞれの書き込み方向に沿って分布する、複数の認識単位を形成する。一部の実施形態では、ユーザデバイスは、それらの手書きストロークがユーザによって提供される際に、手書き入力区域内に、それらの複数の手書きストロークのそれぞれをレンダリングする（２４０４）。
【０３４０】
一部の実施形態では、ユーザデバイスは、認識単位が完全にレンダリングされた後に、複数の認識単位のそれぞれに関する、それぞれのフェーディングプロセスを開始する（２４０６）。一部の実施形態では、それぞれのフェーディングプロセスの間に、第１の手書き入力内の認識単位のレンダリングが、フェードして消える。このことは、一部の実施形態では、図２３Ａ〜図２３Ｆに示される。
【０３４１】
一部の実施形態では、ユーザデバイスは、例えば、図２３Ｉ、図２３Ｊ、及び図２３Ｋ、図２３Ｌに示されるように、複数の認識単位のうちのフェードした認識単位によって占有されていた、手書き入力区域の領域の上に、ユーザから第２の手書き入力を受信する（２４０８）。一部の実施形態では、この第２の手書き入力の受信に応じて（２４１０）、ユーザデバイスは、手書き入力区域内に、その第２の手書き入力をレンダリングして（２４１２）、全てのフェードした認識単位を、手書き入力区域から消去する（２４１４）。一部の実施形態では、第２の手書き入力の前に手書き入力区域内に入力されていた、全ての認識単位は、その認識単位が、そのフェーディングプロセスを開始しているか否かにかかわらず、手書き入力区域から消去される。このことは、例えば、図２３Ｉ、図２３Ｊ、及び図２３Ｋ、図２３Ｌに示される。
【０３４２】
一部の実施形態では、ユーザデバイスは、第１の手書き入力に関する、１つ以上の認識結果を生成する（２４１６）。一部の実施形態では、ユーザデバイスは、手書き入力インタフェースの候補表示区域内に、それらの１つ以上の認識結果を表示する（２４１８）。一部の実施形態では、第２の手書き入力の受信に応じて、ユーザデバイスは、候補表示区域内に表示された最上ランクの認識結果を、ユーザ選択なしで、手書き入力インタフェースのテキスト入力区域内に、自動的に入力する（２４２０）。このことは、例えば、図２３Ｉ、図２３Ｊ、及び図２３Ｋ、図２３Ｌに示される。
【０３４３】
一部の実施形態では、ユーザデバイスは、第１の手書き入力及び第２の手書き入力を含む、入力スタックを記憶する（２４２２）。一部の実施形態では、ユーザデバイスは、第１の手書き入力と第２の手書き入力との連結から認識された、対応の空間的な文字の配列をそれぞれが含む、１つ以上の複数文字の認識結果を生成する（２４２４）。一部の実施形態では、ユーザデバイスは、第２の手書き入力のレンダリングが、手書き入力区域内で、第１の手書き入力のレンダリングを置き換えている間に、手書き入力インタフェースの候補表示区域内に、それらの１つ以上の複数文字の認識結果を表示する（２４２６）。
【０３４４】
一部の実施形態では、各認識単位に関するそれぞれのフェーディングプロセスは、その認識単位がユーザによって完了された後、既定の期間が経過している場合に開始される。
【０３４５】
一部の実施形態では、各認識単位に関するフェーディングプロセスは、その認識単位の後に、ユーザが次の認識単位に関するストロークの入力を開始している場合に開始される。
【０３４６】
一部の実施形態では、各認識単位に関するそれぞれのフェーディングプロセスの終了状態は、その認識単位に関して、既定の最小限の視認性を有する状態である。
【０３４７】
一部の実施形態では、各認識単位に関するそれぞれのフェーディングプロセスの終了状態は、その認識単位に関して、ゼロの視認性を有する状態である。
【０３４８】
一部の実施形態では、第１の手書き入力内の最後の認識単位がフェードした後、ユーザデバイスは、ユーザから、既定の再生入力を受信する（２４２８）。この既定の再生入力の受信に応じて、ユーザデバイスは、その最後の認識単位を、フェード状態から非フェード状態に復帰させる（２４３０）。このことは、例えば、図２３Ｆ〜図２３Ｈに示される。一部の実施形態では、この既定の再生入力は、手書き入力インタフェース内に提供された削除ボタン上で検出される、初期の接触である。一部の実施形態では、削除ボタン上で検出される持続的接触が、手書き入力区域から最後の認識単位を削除し、最後から２番目の認識単位を、フェード状態から非フェード状態に再生する。このことは、例えば、図２３Ｇ及び図２３Ｈに示される。
【０３４９】
本明細書で説明されるように、マルチスクリプト手書き認識モデルは、ストローク順序非依存式及びストローク方向非依存式の、手書き文字の認識を実行する。一部の実施形態では、この認識モデルは、手書き認識モデルの語彙内の種々の文字に対応する、書き込みサンプルのフラットな画像内に含まれる、空間的に導出される特徴のみについて訓練される。書き込みサンプルの画像は、それらの画像内に含まれる個別のストロークに関連する、いずれの時間的情報も含まないため、結果的に得られる認識モデルは、ストローク順序非依存式及びストローク方向非依存式である。
【０３５０】
上記で説明されるように、ストローク順序及びストローク方向非依存式の手書き認識は、文字の時間的な生成に関連する情報（例えば、それらの文字内のストロークの、時間的配列）に依存する従来の認識システムに勝る、多くの利点を提供する。しかしながら、リアルタイム手書き認識のシナリオでは、個別のストロークに関連する時間的情報が利用可能であり、手書き認識システムの認識精度を向上させるために、この情報を利用することが有益な場合がある。以下では、手書き認識モデルの空間的特徴の抽出に、時間的に導出されるストローク分布情報を統合する技術が説明されるが、この時間的に導出されるストローク分布情報の使用は、手書き認識システムのストローク順序及び／又はストローク方向非依存性を損なうものではない。種々の文字に関連するストローク分布情報に基づいて、明確に異なるストロークのセットで作り出される、類似した見た目の文字間の、曖昧性除去が可能となる。
【０３５１】
一部の実施形態では、手書き入力が、手書き認識モデル（例えば、ＣＮＮ）に関する入力画像（例えば、入力ビットマップ画像）に変換される場合、個別のストロークに関連付けられる時間的情報が失われる。例えば、中国文字「
2019164801.tif 000139
」に関しては、８つの（例えば、図２７で＃１〜＃８と標識される）ストロークを使用して、この文字を書き上げることができる。この文字に関するストロークの配列及び方向は、その文字に関連付けられる、幾つかの独自の特徴を提供する。認識システムのストローク順序及びストローク方向非依存性を損なうことなく、ストローク順序及びストローク方向の情報を捕捉するための素朴な方法は、訓練サンプル内に、ストローク順序及びストローク方向の全ての可能な順列を、明示的に列挙することである。しかしながら、単に適度の複雑性の文字に関してさえ、この順列は、１０億を超える可能性に及び、実際に実装することは、不可能ではないにせよ、非現実的なものとなる。本明細書で説明されるように、ストローク生成の時系列態様（すなわち、時間的情報）を抽象化する、ストローク分布プロファイルが、各書き込みサンプルに関して生成される。それらの書き込みサンプルのストローク分布プロファイルは、時間的に導出される特徴のセットを抽出するように訓練され、その時間的に導出される特徴のセットが、その後、（例えば、入力ビットマップ画像からの）空間的に導出される特徴と組み合わされて、手書き認識システムのストローク順序及びストローク方向非依存性に影響を及ぼすことなく、認識精度を向上させる。
【０３５２】
本明細書で説明されるように、１つの文字に関連付けられる時間的情報は、各手書きストロークを特徴付ける、様々なピクセル分布を計算することによって抽出される。１つの文字のあらゆる手書きストロークは、所定の方向上に投影される場合に、決定論的なパターン（又は、プロファイル）を生じさせる。このパターン自体は、そのストロークを明確に認識するためには不十分な場合があるが、他の同様のパターンと組み合わされると、この特定のストロークに固有の、特定の特性を捕捉するために適切となり得る。この種のストローク表現を、同様に、空間的特徴の抽出（例えば、ＣＮＮでの入力画像に基づく特徴の抽出）と共に統合して、手書き認識モデルのレパートリー内の、類似した見た目の文字間の曖昧性を除去するために有用となり得る、直交性の情報が提供される。
【０３５３】
図２５Ａ及び図２５Ｂは、手書き認識モデルの訓練の間に、手書きサンプルの、時間的に導出される特徴と空間的に導出される特徴とを統合するための、例示的プロセス２５００の流れ図であり、この場合、結果的に得られる認識モデルは、ストローク順序及びストローク方向非依存式のまま維持される。一部の実施形態では、例示的プロセス２５００は、訓練された認識モデルをユーザデバイス（例えば、ポータブルデバイス１００）に提供する、サーバデバイス上で実行される。一部の実施形態では、このサーバデバイスは、１つ以上のプロセッサ、及びメモリを含み、このメモリは、それらの１つ以上のプロセッサによって実行される場合にプロセス２５００を実行する、命令を含む。
【０３５４】
例示的プロセス２５００では、デバイスは、手書き認識モデルの、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを、別個に訓練し（２５０２）、空間的に導出される特徴のセットは、それぞれが、出力文字セットのそれぞれの文字に関する手書きサンプルの画像である、訓練画像のコーパスについて訓練され、時間的に導出される特徴のセットは、ストローク分布プロファイルのコーパスについて訓練され、各ストローク分布プロファイルは、出力文字セットのそれぞれの文字に関する手書きサンプル内での、複数のストロークの空間的分布を、数値的に特徴付ける。
【０３５５】
一部の実施形態では、空間的に導出される特徴のセットを別個に訓練することは、入力層、出力層、及び複数の畳み込み層を有する、畳み込みニューラルネットワークを訓練することを更に含み（２５０４）、この複数の畳み込み層は、最初の畳み込み層、最終畳み込み層、最初の畳み込み層と最終畳み込み層との間の０以上の中間畳み込み層、及び、最終畳み込み層と出力層との間の隠れ層を含む。例示的な畳み込みネットワーク２６０２が、図２６に示される。この例示的な畳み込みネットワーク２６０２は、図６に示される畳み込みネットワーク６０２と、実質的に同じ方式で実装することができる。畳み込みネットワーク２６０２は、入力層２６０６、出力層２６０８、及び複数の畳み込み層を含み、この複数の層畳み込み層は、最初の畳み込み層２６１０ａ、０以上の中間畳み込み層、及び最終畳み込み層２６１０ｎ、及び、最終畳み込み層と出力層２６０８との間の隠れ層２６１４を含む。畳み込みネットワーク２６０２はまた、図６に示される配置構成による、カーネル層２６１６及びサブサンプリング層２６１２も含む。この畳み込みネットワークの訓練は、訓練コーパス２６０４内の、書き込みサンプルの画像２６１４に基づく。空間的に導出される特徴が取得され、それらの種々の特徴に関連付けられるそれぞれの重みが、その訓練コーパス内の訓練サンプルに関する認識エラーを最小限に抑えることによって判定される。それらの同じ特徴及び重みは、訓練された後、訓練コーパス内に存在しない新たな手書きサンプルの認識のために使用される。
【０３５６】
一部の実施形態では、時間的に導出される特徴のセットを別個に訓練することは、複数のストローク分布プロファイルを統計モデルに提供して、出力文字セットのそれぞれの文字を分類するための、複数の時間的に導出されるパラメータ、及びそれらの複数の時間的に導出されるパラメータに関するそれぞれの重みを判定することを更に含む（２５０６）。一部の実施形態では、図２６に示されるように、ストローク分布プロファイル２６２０は、訓練コーパス２６２２内の各書き込みサンプルから導出される。訓練コーパス２６２２は、任意選択的に、コーパス２６０４と同じ書き込みサンプルを含むが、また、各書き込みサンプル内でのストローク生成に関連付けられる、時間的情報も含む。ストローク分布プロファイル２６２２は、統計モデル化プロセス２６２４に提供され、このプロセスの間に、時間的に導出される特徴が抽出され、それらの種々の特徴に関するそれぞれの重みが、統計モデル化方法（例えば、ＣＮＮ、Ｋ近傍法など）に基づいて、認識エラー又は分類エラーを最小限に抑えることによって判定される。図２６に示されるように、時間的に導出される特徴のセット及びそれぞれの重みは、特徴ベクトルのセット（例えば、特徴ベクトル２６２６又は特徴ベクトル２６２８）に変換され、畳み込みニューラルネットワーク２６０２内のそれぞれの層内に導入される。結果的に得られるネットワークは、それゆえ、空間的に導出されるパラメータ、及び時間的に導出されるパラメータを含み、それらのパラメータは、互いに直交して、文字の認識に一体となって寄与する。
【０３５７】
一部の実施形態では、デバイスは、手書き認識モデル内で、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを組み合わせる（２５０８）。一部の実施形態では、手書き認識モデル内で、空間的に導出される特徴のセットと時間的に導出される特徴のセットとを組み合わせることは、畳み込みニューラルネットワークの、畳み込み層のうちの１つ又は隠れ層内に、複数の空間的に導出されるパラメータ、及び複数の時間的に導出されるパラメータを導入することを含む（２５１０）。一部の実施形態では、複数の時間的に導出されるパラメータ、及びそれらの複数の時間的に導出されるパラメータに関するそれぞれの重みは、手書き認識に関する畳み込みニューラルネットワークの最終畳み込み層（例えば、図２６での最終畳み込み層２６１０ｎ）内に導入される。一部の実施形態では、複数の時間的に導出されるパラメータ、及びそれらの複数の時間的に導出されるパラメータに関するそれぞれの重みは、手書き認識に関する畳み込みニューラルネットワークの隠れ層（例えば、図２６での隠れ層２６１４）内に導入される。
【０３５８】
一部の実施形態では、デバイスは、この手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供する（２５１２）。
【０３５９】
一部の実施形態では、デバイスは、複数の書き込みサンプルから、ストローク分布プロファイルのコーパスを生成する（２５１４）。一部の実施形態では、それらの複数の手書きサンプルのそれぞれは、出力文字セット内の文字に対応し（２５１６）、手書きサンプルの各構成ストロークに関する、そのストロークが書き込まれた際のそれぞれの空間的情報を、別個に保存する。一部の実施形態では、ストローク分布プロファイルのコーパスを生成するために、デバイスは、以下のステップを実行する（２５１８）。
【０３６０】
複数の手書きサンプルのそれぞれに関して（２５２０）、デバイスは、その手書きサンプル内の構成ストロークを特定し（２５２２）、その手書きサンプルの特定されたストロークのそれぞれに関して、デバイスは、複数の既定の方向のそれぞれに沿った、それぞれの占有率を算出し（２５２４）、占有率は、その各ストローク方向の投影スパンと、その書き込みサンプルの最大投影スパンとの比率であり、その手書きサンプルの特定されたストロークのそれぞれに関して、デバイスはまた、その各ストローク内のそれぞれのピクセル数と、その書き込みサンプル内の総ピクセル数との比率に基づいて、その各ストロークに関するそれぞれの飽和率も算出する（２５２６）。次いで、ユーザデバイスは、その書き込みサンプルのストローク分布プロファイルとして、その手書きサンプルに関する特徴ベクトルを生成し（２５２８）、この特徴ベクトルは、その手書きサンプル内の少なくともＮ個のストロークの、それぞれの占有率及びそれぞれの飽和率を含み、Ｎは、既定の自然数である。一部の実施形態では、Ｎは、複数の書き込みサンプル内の、いずれの単一の書き込みサンプル内で観察される最大ストローク数よりも少ない。
【０３６１】
一部の実施形態では、複数の手書きサンプルのそれぞれに関して、デバイスは、既定の方向のそれぞれでの、特定されたストロークのそれぞれの占有率を、降順に並べ替え、Ｎ個の上位ランクの占有率及び飽和率の書き込みサンプルのみを、その書き込みサンプルの特徴ベクトル内に含める。
【０３６２】
一部の実施形態では、それらの複数の既定の方向は、書き込みサンプルの水平方向、垂直方向、正の４５度の方向、及び負の４５度の方向を含む。
【０３６３】
一部の実施形態では、この手書き認識モデルを使用して、ユーザの手書き入力に関するリアルタイム手書き認識を提供するために、デバイスは、ユーザの手書き入力を受信し、このユーザの手書き入力の受信に応じて、手書き認識出力を、その手書き入力の受信と実質的に同時に、ユーザに提供する。
【０３６４】
図２７に示される文字「
2019164801.tif 000140
」を使用して、説明の目的のために、例示的実施形態が本明細書で説明される。一部の実施形態では、手書き文字の各入力画像は、任意選択的に、正方形へと正規化される。この正方形の、水平、垂直、斜め＋４５度、及び斜め−４５度上に投影される場合の、個別の各手書きストローク（例えば、ストローク＃１、＃２．．．及び＃３）のスパンが測定される。各ストロークＳｉのスパンは、４つの投影方向に関して、それぞれ、ｘスパン（ｉ）、ｙスパン（ｉ）、ｃスパン（ｉ）、及びｄスパン（ｉ）として記録される。更には、画像全体にわたって観測された最大スパンもまた、記録される。この文字の最大スパンは、４つの投影方向に関して、それぞれ、ｘスパン、ｙスパン、ｃスパン、及びｄスパンとして記録される。説明の目的のために、本明細書では、４つの投影方向が任意選択的に考察されているが、原理的には、任意の恣意的な投影のセットを、様々な実施形態で使用することができる。最大スパン（例えば、ｘスパン、ｙスパン、ｃスパン、及びｄスパンとして示される）、及び４つの投影方向での、文字「
2019164801.tif 000141
」内のストロークのうちの１つ（例えば、ストローク＃４）のスパン（例えば、ｘスパン（４）、ｙスパン（４）、ｃスパン（４）、及びｄスパン（４）として示される）が、図２７に示される。
【０３６５】
一部の実施形態では、上記のスパンが、全てのストローク１〜５（５は、この入力画像に関連付けられる、個別の手書きストロークの数である）に関して測定されると、各投影方向に沿った、それぞれの占有率が計算される。例えば、ストロークＳｉに関する、ｘ方向に沿った対応の占有率Ｒｘ（ｉ）は、Ｒｘ（ｉ）＝ｘスパン（ｉ）／ｘスパンとして算出される。同様に、他の投影方向に沿った、対応の占有率を算出することができ、Ｒｙ（ｉ）＝ｙスパン（ｉ）／ｙスパン、Ｒｃ（ｉ）＝ｃスパン（ｉ）／ｃスパン、Ｒｄ（ｉ）＝ｄスパン（ｉ）／ｄスパンである。
【０３６６】
一部の実施形態では、各方向での全てのストロークの占有率は、降順で別個に並べ替えられ、それゆえ、その入力画像内の全てのストロークの、それぞれのランク付けが、各投影方向に関して、その方向でのそれらのストロークの占有率の観点から取得される。各投影方向でのストロークのランク付けは、関連する投影方向に沿った、各ストロークの相対的重要性を反映する。この相対的重要性は、そのストロークが、書き込みサンプル内で作り出された順序及び方向とは、無関係である。それゆえ、この占有率に基づくランク付けは、ストローク順序及びストローク方向非依存式の、時間的に導出される情報である。
【０３６７】
一部の実施形態では、文字全体に対するストロークの重要性を示す、相対的重みが、各ストロークに与えられる。一部の実施形態では、この重みは、文字内の総ピクセル数に対する、各ストローク内のピクセル数の比率によって測定される。この比率は、各ストロークに関連付けられる、飽和率と称される。
【０３６８】
一部の実施形態では、各ストロークの占有率及び飽和率に基づいて、各ストロークに関して特徴ベクトルを作り出すことができる。各文字に関して、５Ｓの数の特徴を含む、特徴ベクトルのセットが作り出される。この特徴のセットは、その文字のストローク分布プロファイルと称される。
【０３６９】
一部の実施形態では、既定数の上位ランクのストロークのみが、各文字のストローク分布プロファイルを構築する際に使用される。一部の実施形態では、この既定数のストロークは、１０個である。それらの上位の１０個のストロークに基づいて、ストロークから導出される５０の特徴が、各文字に関して生成される。一部の実施形態では、これらの特徴は、畳み込みニューラルネットワークの最終畳み込み層で、又は後続の隠れ層で導入される。
【０３７０】
一部の実施形態では、リアルタイム認識の間に、空間的に導出される特徴及び時間的に導出される特徴の双方で訓練されている手書き認識モードに、認識単位の入力画像が提供される。その入力画像は、図２６に示される手書き認識モデルの各層を通じて処理される。この入力画像の処理が、ストローク分布プロファイル入力が必要とされる層（例えば、最終畳み込み層又は隠れ層）に到達すると、その認識単位のストローク分布プロファイルが、その層内に導入される。この入力画像及びストローク分布プロファイルの処理は、出力分類（例えば、１つ以上の候補文字）が出力層２６０８で提供されるまで継続する。一部の実施形態では、全ての認識単位のストローク分布プロファイルが計算され、それらの認識単位の入力画像と共に、手書き認識モデルに入力として提供される。一部の実施形態では、認識単位の入力画像が、手書き認識モデルを（時間的に訓練された特徴の恩恵を受けることなく）最初に通過する。２つ以上の類似した見た目の候補文字が、近接した認識信頼度値で特定される場合、次いで、その認識単位のストローク分布プロファイルが、時間的に導出される特徴で訓練されている層（例えば、最終畳み込み層、又は隠れ層）で、手書き認識モデル内に導入される。その認識単位の入力画像及びストローク分布プロファイルが、手書き認識モデルの最終層を通過すると、２つ以上の類似した見た目の候補文字は、それらのストローク分布プロファイルの相違によって、より良好に区別することができる。それゆえ、個別の手書きストロークによって認識単位がどのように形成されるかに関する、時間的に導出される情報を使用して、手書き認識システムのストローク順序及びストローク方向非依存性を損なうことなく、認識精度が向上する。
【０３７１】
前述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は本発明を、開示される厳密な形態に限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。これらの実施形態は、本発明の原理、及びその実際の適用を最も良好に説明するために、またそれにより、他の当業者が、想到される具体的な用途に適するような様々な修正を使用して、本発明及び様々な実施形態を最も良好に利用することを可能にするために、選択及び説明されたものである。
【図１】
2019164801.tif 000142
【図２】
2019164801.tif 000143
【図３】
2019164801.tif 000144
【図４】
2019164801.tif 000145
【図５】
2019164801.tif 000146
【図６】
2019164801.tif 000147
【図７】
2019164801.tif 000148
【図８Ａ】
2019164801.tif 000149
【図８Ｂ】
2019164801.tif 000150
【図９Ａ】
2019164801.tif 000151
【図９Ｂ】
2019164801.tif 000152
【図１０Ａ】
2019164801.tif 000153
【図１０Ｂ】
2019164801.tif 000154
【図１０Ｃ】
2019164801.tif 000155
【図１１Ａ】
2019164801.tif 000156
【図１１Ｂ】
2019164801.tif 000157
【図１１Ｃ】
2019164801.tif 000158
【図１１Ｄ】
2019164801.tif 000159
【図１１Ｅ】
2019164801.tif 000160
【図１１Ｆ】
2019164801.tif 000161
【図１１Ｇ】
2019164801.tif 000162
【図１１Ｈ】
2019164801.tif 000163
【図１１Ｉ】
2019164801.tif 000164
【図１１Ｊ】
2019164801.tif 000165
【図１１Ｋ】
2019164801.tif 000166
【図１２Ａ】
2019164801.tif 000167
【図１２Ｂ】
2019164801.tif 000168
【図１３Ａ】
2019164801.tif 000169
【図１３Ｂ】
2019164801.tif 000170
【図１３Ｃ】
2019164801.tif 000171
【図１３Ｄ】
2019164801.tif 000172
【図１３Ｅ】
2019164801.tif 000173
【図１４】
2019164801.tif 000174
【図１５Ａ】
2019164801.tif 000175
【図１５Ｂ】
2019164801.tif 000176
【図１５Ｃ】
2019164801.tif 000177
【図１５Ｄ】
2019164801.tif 000178
【図１５Ｅ】
2019164801.tif 000179
【図１５Ｆ】
2019164801.tif 000180
【図１５Ｇ】
2019164801.tif 000181
【図１５Ｈ】
2019164801.tif 000182
【図１５Ｉ】
2019164801.tif 000183
【図１５Ｊ】
2019164801.tif 000184
【図１５Ｋ】
2019164801.tif 000185
【図１６Ａ】
2019164801.tif 000186
【図１６Ｂ】
2019164801.tif 000187
【図１７Ａ】
2019164801.tif 000188
【図１７Ｂ】
2019164801.tif 000189
【図１７Ｃ】
2019164801.tif 000190
【図１７Ｄ】
2019164801.tif 000191
【図１７Ｅ】
2019164801.tif 000192
【図１７Ｆ】
2019164801.tif 000193
【図１７Ｇ】
2019164801.tif 000194
【図１７Ｈ】
2019164801.tif 000195
【図１８Ａ】
2019164801.tif 000196
【図１８Ｂ】
2019164801.tif 000197
【図１９Ａ】
2019164801.tif 000198
【図１９Ｂ】
2019164801.tif 000199
【図１９Ｃ】
2019164801.tif 000200
【図１９Ｄ】
2019164801.tif 000201
【図１９Ｅ】
2019164801.tif 000202
【図１９Ｆ】
2019164801.tif 000203
【図２０Ａ】
2019164801.tif 000204
【図２０Ｂ】
2019164801.tif 000205
【図２０Ｃ】
2019164801.tif 000206
【図２１Ａ】
2019164801.tif 000207
【図２１Ｂ】
2019164801.tif 000208
【図２１Ｃ】
2019164801.tif 000209
【図２１Ｄ】
2019164801.tif 000210
【図２１Ｅ】
2019164801.tif 000211
【図２１Ｆ】
2019164801.tif 000212
【図２１Ｇ】
2019164801.tif 000213
【図２１Ｈ】
2019164801.tif 000214
【図２２Ａ】
2019164801.tif 000215
【図２２Ｂ】
2019164801.tif 000216
【図２３Ａ】
2019164801.tif 000217
【図２３Ｂ】
2019164801.tif 000218
【図２３Ｃ】
2019164801.tif 000219
【図２３Ｄ】
2019164801.tif 000220
【図２３Ｅ】
2019164801.tif 000221
【図２３Ｆ】
2019164801.tif 000222
【図２３Ｇ】
2019164801.tif 000223
【図２３Ｈ】
2019164801.tif 000224
【図２３Ｉ】
2019164801.tif 000225
【図２３Ｊ】
2019164801.tif 000226
【図２３Ｋ】
2019164801.tif 000227
【図２３Ｌ】
2019164801.tif 000228
【図２４Ａ】
2019164801.tif 000229
【図２４Ｂ】
2019164801.tif 000230
【図２５Ａ】
2019164801.tif 000231
【図２５Ｂ】
2019164801.tif 000232
【図２６】
2019164801.tif 000233
【図２７】
2019164801.tif 000234
【手続補正書】
【提出日】令和1年5月13日(2019.5.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
手書き認識を提供する方法であって、
ディスプレイを有する電子デバイスにおいて、
ユーザから手書き入力を受信することであって、前記手書き入力が、手書き入力インタフェースの手書き入力区域内に提供される複数の手書きストロークを含む、ことと、
前記複数の手書きストロークから、複数の認識単位を特定することであって、各認識単位が、前記複数の手書きストロークのうちの対応のサブセットを含む、ことと、
前記複数の認識単位から認識されたそれぞれの文字を含む、複数文字の認識結果を生成することと、
前記複数文字の認識結果を、前記手書き入力インタフェースの候補表示区域内に表示することと、
前記複数文字の認識結果が前記候補表示区域内に表示されている間に、前記ユーザから削除入力を受信することと、
前記削除入力の受信に応じて、前記候補表示区域内に表示された前記複数文字の認識結果から、最後の文字を除去することと、
を含むことを特徴とする、方法。
【請求項２】
前記複数の手書きストロークが前記ユーザによって提供される際に、前記手書き入力インタフェースの前記手書き入力区域内に、前記複数の手書きストロークをリアルタイムでレンダリングすることと、
前記削除入力の受信に応じて、前記手書き入力区域から、前記手書き入力区域内の前記複数の認識単位によって形成された空間的配列内の最後の認識単位に対応する、前記複数の手書きストロークのうちの前記対応のサブセットを除去することであって、前記最後の認識単位が、前記複数文字の認識結果内の前記最後の文字に対応する、ことと、
を更に含むを特徴とする、請求項１に記載の方法。
【請求項３】
前記最後の認識単位が、前記ユーザによって提供された前記複数の手書きストロークの中の、時間的に最後の手書きストロークを含まないことを特徴とする、請求項２に記載の方法。
【請求項４】
前記削除入力の初期部分の受信に応じて、前記最後の認識単位を、前記手書き入力区域内で特定された他の認識単位から視覚的に識別することを更に含むことを特徴とする、請求項２又は３に記載の方法。
【請求項５】
前記削除入力の前記初期部分が、前記手書き入力インタフェース内の削除ボタン上で検出される初期の接触であり、前記初期の接触が既定の閾値時間量を超えて持続される場合に、前記削除入力が検出されることを特徴とする、請求項４に記載の方法。
【請求項６】
前記最後の認識単位が、手書き漢字に対応することを特徴とする、請求項２乃至５の何れか１項に記載の方法。
【請求項７】
前記手書き入力が、続け書きの書体で書き込まれることを特徴とする、請求項２乃至６の何れか１項に記載の方法。
【請求項８】
前記手書き入力が、続け書きの書体で書き込まれた、複数の漢字に対応することを特徴とする、請求項２乃至７の何れか１項に記載の方法。
【請求項９】
前記手書きストロークのうちの少なくとも１つが、前記複数の認識単位のうちの、２つの隣接する認識単位へと分離されることを特徴とする、請求項２乃至８の何れか１項に記載の方法。
【請求項１０】
前記削除入力が、前記手書き入力インタフェース内に提供される削除ボタン上での持続的接触であり、前記複数の手書きストロークのうちの前記対応のサブセットを除去することが、
前記最後の認識単位内の前記手書きストロークのサブセットを、前記手書きストロークのサブセットが前記ユーザによって提供された逆の時間的順序で、前記手書き入力区域から、ストローク単位で除去することを更に含むことを特徴とする、請求項２乃至９の何れか１項に記載の方法。
【請求項１１】
前記複数の認識単位から認識された前記それぞれの文字のサブセットを含む部分的認識結果を生成することであって、前記それぞれの文字の前記サブセットのそれぞれが、既定の信頼度閾値を満たす、ことと、
前記手書き入力インタフェースの前記候補表示区域内に、前記部分的認識結果を、前記複数文字の認識結果と同時に表示することと、
を更に含むことを特徴とする、請求項１乃至１０の何れか１項に記載の方法。
【請求項１２】
前記部分的認識結果が、複数文字の認識結果内の少なくとも前記最後の文字を含まないことを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記部分的認識結果が、複数文字の認識結果内の少なくとも最初の文字を含まないことを特徴とする、請求項１１又は１２に記載の方法。
【請求項１４】
前記部分的認識結果が、複数文字の認識結果内の少なくとも中間の文字を含まないことを特徴とする、請求項１１乃至１３の何れか１項に記載の方法。
【請求項１５】
請求項１乃至１４の何れか１項に記載の方法を実行するための命令を含むコンピュータプログラム。
【請求項１６】
請求項１５に記載のコンピュータプログラムを格納するメモリと、
前記メモリに格納された前記命令を実行可能な１つ以上のプロセッサと、
を備える電子デバイス。
【外国語明細書】
2019164801000001.pdf