虚拟键盘处的手势输入转让专利

申请号 : CN201380015777.9

文献号 : CN104246679B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 翟树民李锟

申请人 : 谷歌公司

摘要 :

计算设备被操作地耦合到与虚拟键盘相关联的存在敏感表面。计算设备在与虚拟键盘相关联的存在敏感表面的一部分上接收手势输入的指示。作为响应,计算设备定义一系列输入点,其表示跨虚拟键盘的手势输入的路径。另外,计算设备定义用于虚拟键盘的虚拟键的锚定点。计算设备然后基于输入点与锚定点之间的存在敏感表面上的距离来确定用于锚定点词的距离分值。计算设备基于用于锚定点的距离分值来识别对应于手势输入的词。

权利要求 :

1.一种方法,包括:

由设备接收在与虚拟键盘相关联的存在敏感表面的一部分处的手势输入的指示,所述虚拟键盘包括虚拟键集合,来自所述虚拟键集合的每个虚拟键与所述存在敏感表面的一个区域相关联;

由所述设备定义表示跨所述虚拟键盘的所述手势输入的路径的一系列输入点;

由所述设备定义对应于候选词集合中的相应词的相应锚定点集合,每个锚定点对应于与来自所述虚拟键集合的一个虚拟键相关联的所述存在敏感表面的一个位置;

由所述设备针对每个锚定点集合中的每个相应锚定点识别所述一系列输入点中的相应相关输入点;

由所述设备确定用于所述锚定点集合中的每个相应锚定点的相应距离分值,其中,针对所述锚定点集合中的每个相应锚定点,用于相应锚定点的相应距离分值是至少部分地基于在存在敏感表面上的所述相应锚定点与用于所述相应锚定点的相应相关输入点之间的距离,其中确定用于相应锚定点集合中的每个相应锚定点的相应距离分值包括:由所述设备响应于确定所述相应锚定点不是所述相应锚定点集合中的各个锚定点中与用于所述相应锚定点的所述相应相关输入点最接近的一个锚定点而调整用于所述相应锚定点的所述相应距离分值;以及由所述设备至少部分地基于用于相应锚定点的相应距离分值来识别对应于所述手势输入的候选词集合中的词。

2.根据权利要求1所述的方法,其中,所述锚定点对应于所述虚拟键盘中的虚拟键的中心。

3.根据权利要求1所述的方法,还包括:在识别所述词之后由所述设备输出所述词以供显示。

4.根据权利要求1所述的方法,

其中,所述方法还包括:由所述设备至少部分地基于用于对应于所述词的相应锚定点的相应距离分值来确定用于所述词的分值;以及其中,识别对应于所述手势输入的所述词包括:由所述设备至少部分地基于用于所述词的分值来识别所述词。

5.根据权利要求4所述的方法,

其中,用于所述词的分值是用于所述词的第一分值且所述方法还包括:由所述设备至少部分地基于所述手势输入的形状来确定用于所述词的第二分值;以及其中,识别所述词包括:由所述设备至少部分地基于用于所述词的所述第一分值和用于所述词的所述第二分值来识别所述词。

6.根据权利要求5所述的方法,其中,确定用于所述词的第二分值包括:由所述设备至少部分地基于所述输入点与用于所述词的形状模板上的最近点之间的距离来确定用于所述词的所述第二分值。

7.根据权利要求6所述的方法,还包括:

由所述设备对所述一系列输入点进行重新采样,其中,在重新采样之后,所述输入点沿着所述手势输入的路径在空间上均匀地分布;

由所述设备使所述形状模板缩放到边界框中,所述边界框具有等于所述手势输入的宽度的宽度;

由所述设备平移所述形状模板的位置,使得所述形状模板的质心位于所述一系列输入点的质心处;以及由所述设备在对所述形状模板进行缩放并对所述形状模板的位置进行平移之后确定用于所述词的所述第二分值。

8.根据权利要求1所述的方法,其中,所述词是第一词且所述方法包括:由所述设备确定用于所述候选词集合中的相应多个词的相应锚定分值,用于所述相应多个词的相应锚定分值至少部分地基于用于对应于所述相应多个词的锚定点的距离分值;

由所述设备至少部分地基于用于所述相应多个词的相应锚定分值从所述候选词集合削剪一个或多个词;

在至少部分地基于用于所述相应多个词的相应锚定分值而从所述候选词集合削剪所述一个或多个词之后,由所述设备确定用于剩余在所述候选词集合中的词的相应形状分值,用于剩余在所述候选词集合中的这些词的相应形状分值至少部分地基于所述输入点与用于剩余在所述候选词集合中的这些词的形状模板上的最近点之间的距离;以及由所述设备至少部分地基于所述相应锚定分值和剩余在所述候选词集合中的这些词的所述相应形状分值来识别所述第一词对应于所述手势输入。

9.根据权利要求1所述的方法,

其中,用于所述词的分值是用于所述词的第一分值,并且识别所述词包括:由所述设备确定用于所述词的锚定分值,用于所述词的锚定分值至少部分地基于用于对应于所述词的相应锚定点的相应距离分值;以及由所述设备确定用于所述词的第二分值,所述第二分值至少部分地基于所述词在给定一个或多个先前词时的条件概率;以及其中,识别所述词包括:由所述设备至少部分地基于用于所述词的锚定分值和用于所述词的所述第二分值从所述词集合中识别所述词。

10.根据权利要求1所述的方法,还包括:由所述设备至少部分地基于所述手势输入的初始输入点和所述手势输入的终止输入点来选择所述候选词集合。

11.根据权利要求1所述的方法,其中,定义所述一系列输入点包括:由所述设备确定所述一系列输入点中的输入点的数目超过阈值;以及在识别所述相应相关输入点之前,由所述设备响应于确定所述一系列输入点中的输入点的数目超过所述阈值而对所述一系列输入点进行下采样。

12.根据权利要求1所述的方法,

其中,所述方法还包括:由所述设备存储指示所述锚定点与所述输入点之间的距离的缓存;以及其中,确定用于所述锚定点集合中的每个相应锚定点的相应距离分值包括:由所述设备至少部分地基于所述缓存所指示的距离中的一个或多个来确定用于锚定点的距离分值。

13.根据权利要求1所述的方法,其中,接收所述手势输入的指示包括:如果所述存在敏感表面在与所述虚拟键盘相关联的位置处检测到输入对象的存在,则由所述设备检测所述手势输入的开始;以及如果所述存在敏感表面检测到所述输入对象到与所述手势输入的完成相关联的位置的移动,则由所述设备检测所述手势输入的完成。

14.根据权利要求1所述的方法,其中,识别用于每个锚定点集合中的每个相应锚定点的相应相关输入点包括:响应于确定所述相应锚定点是用于所述词的初始键的锚定点,由所述设备将所述一系列输入点中的初始输入点识别为用于所述相应锚定点的相应相关输入点;

响应于确定所述相应锚定点是用于所述词的终止键的锚定点,由所述设备将所述一系列输入点中的终止输入点识别为用于相应锚定点的相应相关输入点;以及响应于确定给定输入点与这些输入点中的任何其他一个输入点相比更接近于所述相应锚定点且所述相应锚定点不对应于所述词的所述初始键或所述终止键,由所述设备将所述给定输入点确定为用于所述相应锚定点的相应相关输入点。

15.一种计算设备,包括:

一个或多个处理器;以及

存储器,所述存储器存储指令,在所述指令被所述一个或多个处理器执行时将计算设备配置成:在存在敏感显示器处输出虚拟键盘以显示;

接收在与所述虚拟键盘相关联的所述存在敏感显示器的一部分处的手势输入的指示;

定义表示跨所述虚拟键盘的所述手势输入的路径的一系列输入点;

定义对应于候选词集合中的相应多个词的相应锚定点集合,每个锚定点对应于与来自所述虚拟键集合的一个虚拟键相关联的一个位置;

针对每个锚定点集合中的每个相应锚定点识别所述一系列输入点中的相应相关输入点;

确定用于所述锚定点集合中的每个相应锚定点的相应距离分值,其中,对于所述锚定点集合中的每个相应锚定点,用于所述相应锚定点的相应距离分值至少部分地基于在所述存在敏感表面上的所述相应锚定点与用于所述相应锚定点的相应相关输入点之间的距离;

对于每个相应锚定点集合中的每个相应锚定点,响应于确定所述相应锚定点不是所述相应锚定点集合中的各个锚定点中与用于所述相应锚定点的相应相关输入点最接近的一个锚定点而调整用于所述相应锚定点的相应距离分值;

至少部分地基于用于对应于所述相应多个词的所述相应锚定点的相应距离分值,确定用于来自所述候选词集合的第二多个词的相应分值;以及至少部分地基于用于所述第二多个词的相应分值,识别所述候选词集合中的一个给定词对应于所述手势输入。

说明书 :

虚拟键盘处的手势输入

背景技术

[0001] 传统上,用户经由物理键盘向计算设备提供文本输入。物理键盘包括对应于不同字符和功能的物理、可按按钮。
[0002] 然而,许多类型的现代计算设备不具有物理键盘。例如,诸如智能电话和平板计算机的许多移动计算设备不具有物理键盘。替代地,计算设备可包括显示“虚拟”键盘的存在敏感显示器(例如,触摸屏)。虚拟键盘可包括对应于不同字符和功能的虚拟键。每个虚拟键可对应于存在敏感显示器的不同区域。
[0003] 在某些情况下,用户可通过在计算设备所显示的虚拟键盘的虚拟键上轻敲用户的手指或触针来向计算设备提供文本输入。因此,为了输入词语“text”,用户可在对应于字母“t”的虚拟键上轻敲,然后在对应于字母“e”的虚拟键上轻敲,然后在对应于字母“x”的虚拟键上轻敲,并且然后在对应于字母“t”的虚拟键上轻敲。
[0004] 通过轻敲虚拟键来向计算设备提供文本输入对于某些用户可能是有问题的。例如,用户可能发现难以准确地敲击正确的虚拟键,尤其是小的虚拟键盘。此外,由于用户不能感觉到虚拟键盘的虚拟键,所以用户的手指可能滑移到虚拟键盘之外,导致键入准确度的下降。

发明内容

[0005] 一般地,本公开描述了用于在计算设备处接收输入的技术。如本文所述,计算设备可在与虚拟键盘相关联的存在敏感表面的一部分处接收手势输入的指示。手势输入可对应于特定词。为了确定哪个词对应于手势输入,计算设备可定义一系列输入点,其表示跨虚拟键盘的手势输入的路径。另外,计算设备可定义用于不同词的锚定点的集合。用于词的锚定点可对应于与词相关联的不同虚拟键的位置。计算设备可确定用于每个锚定点的距离分值。该计算设备可基于锚定点与最接近于锚定点的输入点之间的在存在敏感表面上的距离来确定用于锚定点的距离分值。该计算设备可基于用于锚定点的距离分值来识别对应于手势输入的词。以这种方式来确定哪个词对应于手势输入可以增加用户可向计算设备输入文本的速度和准确度。
[0006] 在一方面,本公开描述了一种包括在设备处接收与虚拟键盘相关联的存在敏感表面的一部分处的手势输入的指示的方法。虚拟键盘包括虚拟键集合。来自虚拟键集合的每个虚拟键与存在敏感表面的区域相关联。该方法还包括在设备处定义一系列输入点,其表示跨虚拟键盘的手势输入的路径。另外,该方法包括在设备处定义对应于候选词集合中的不同词的锚定点集合。每个锚定点对应于与来自虚拟键集合的虚拟键相关联的存在敏感表面的位置。该方法还包括在设备处针对每个锚定点集合中的每个相应锚定点识别所述一系列输入点中的相关输入点。此外,该方法包括在设备处确定用于锚定点集合中的每个相应锚定点的距离分值。针对锚定点集合中的每个锚定点,用于相应锚定点的距离分值是基于相应锚定点与用于相应锚定点的相关输入点之间的在存在敏感表面上的距离。另外,该方法包括在设备处基于用于锚定点的距离分值来识别对应于手势的候选词集合中的词。
[0007] 在另一方面,本公开描述了一种计算设备,其包括存在敏感显示器、处理器以及存储指令的存储器,该指令在被处理器执行时将计算设备配置成在存在敏感显示器处输出虚拟键盘以显示。该指令还将计算设备配置成接收与虚拟键盘相关联的存在敏感显示器的一部分处的手势输入的指示。另外,该指令将计算设备配置成定义一系列输入点,其表示跨虚拟键盘的手势输入的路径。该指令还将计算设备配置成定义锚定点集合,其对应于候选词集合中的不同词。每个锚定点对应于与来自虚拟键集合的虚拟键相关联的存在敏感显示器的位置。此外,该指令将计算设备配置成针对每个锚定点集合中的每个相应锚定点而识别所述一系列输入点中的相关输入点。另外,该指令将计算设备配置成确定用于锚定点集合中的每个相应锚定点的距离分值。针对锚定点集合中的每个锚定点,用于各锚定点的距离分值是基于锚定点与用于锚定点的相关输入点之间的在存在敏感表面上的距离。该指令还将计算设备配置成基于用于对应于词的锚定点的距离分值来确定用于词的分值。另外,该指令将计算设备配置成基于用于词的分值来识别对应于手势输入的候选词集合中的给定词。
[0008] 在另一方面,本公开描述了一种计算机可读的存储介质,其包括用于促使计算设备的一个或多个处理器执行操作的指令,该操作包括在操作地耦合到计算设备的存在敏感显示器处输出虚拟键盘以显示,该虚拟键盘包括与字符相关联的虚拟键。该操作还包括:如果存在敏感显示器在与虚拟键盘相关联的位置处检测到输入对象的存在,、则接收手势输入开始的指示。另外,该操作包括响应于接收到输入对象移动至与输入手势完成相关联的位置的指示而接收手势输入完成的指示。此外,该操作包括定义表示跨虚拟键盘的手势输入的路径的一系列输入点。该操作还包括对所述一系列输入点进行下采样并定义锚定点集合,其对应于候选词集合中的不同词。每个锚定点对应于与虚拟键中的一个相关联的存在敏感显示器的位置。另外,所述操作包括针对每个锚定点集合中的每个相应锚定点而识别锚定点集合中的相关输入点。所述操作还包括确定用于锚定点集合中的每个相应锚定点的距离分值。针对锚定点集合中的每个锚定点,用于相应锚定点的距离分值是基于相应锚定点与用于相应锚定点的相关输入点之间的在存在敏感表面上的距离。所述操作还包括基于距离分值而确定用于词的分值。此外,所述操作包括基于用于词的分值而识别对应于手势输入的词。所述操作还包括在存在敏感显示器上输出词。
[0009] 在附图和下面的描述中阐述了一个或多个示例的细节。根据描述和附图以及根据权利要求,其他特征、目的以及优点将变得显而易见。

附图说明

[0010] 图1是图示出可实现本公开的一个或多个技术的示例性计算设备的概念图。
[0011] 图2是图示出手势输入的路径被叠加在虚拟键盘上的情况下的图1的示例性计算设备的概念图。
[0012] 图3是图示出图1的示例性计算设备的概念图,示出了处理对应于图2的手势输入的词的示例性结果。
[0013] 图4是图示出对应于图2的手势输入的示例性输入点系列的概念图。
[0014] 图5A是图示出第一词的示例性锚定点与图4的输入点之间的距离的概念图。
[0015] 图5B是图示出用于第二词的示例性锚定点与图4的输入点之间的距离的概念图。
[0016] 图6是图示出根据本公开的技术的用以接收文本输入的计算设备的示例性操作的流程图。
[0017] 图7是图示出由计算设备执行以使用输入点来识别对应于手势输入的词的示例性操作的流程图。
[0018] 图8是图示出由计算设备执行以计算用于锚定点的距离分值的示例性操作的第一部分的流程图。
[0019] 图9是图示出用以计算用于词的锚定点的距离分值的图8的示例性操作的第二部分的流程图。
[0020] 图10是图示出用以基于用于词的锚定分值和用于词的形状分值来识别对应于手势输入的词的计算设备的示例性操作的流程图。
[0021] 图11A是图示出示例性输入点与用于第一词的示例性形状模板之间的示例性距离的概念图。
[0022] 图11B是图示出示例性输入点与用于第二词的示例性形状模板之间的示例性距离的概念图。
[0023] 图12是图示出计算设备的示例性配置的框图。
[0024] 图13是图示出根据本公开的一个或多个技术的示例性操作的流程图。

具体实施方式

[0025] 附图图示了示例。在附图中用附图标记指示的元素对应于在以下描述中用相同的附图标记指示的元素。在附图中,附图中的堆叠元素指示一个或多个类似元素的存在。在本公开中,具有以序数词(例如,“第一”、“第二”、“第三”等)开始的名称的元素不一定意指该元素具有特定顺序。相反,此类序数词可仅仅用来参考相同或类似类型的不同元素。
[0026] 如下面详细地描述的,可将计算设备操作地耦合到与虚拟键盘相关联的存在敏感表面。该虚拟键盘可包括虚拟键集合。在某些示例中,虚拟键盘可包括对应于字母或字符的虚拟键。例如,第一虚拟键可对应于字母“q”,第二虚拟键可对应于字母“w”,第三虚拟键可对应于字母“e”等。来自虚拟键集合的每个虚拟键可对应于存在敏感表面的不同区或区域。
[0027] 当用户向计算设备输入词时,计算设备可在与虚拟键盘相关联的存在敏感表面的一部分处接收手势输入的指示。当计算设备接收到手势输入的指示时,计算设备可确定诸如手指或触针之类的输入对象已移动至与输入词所需的虚拟键相对应的存在敏感表面区域。计算设备可在整个移动期间检测输入对象的存在。例如,当用户输入词“hat”时,计算设备可检测在对应于与字母“h”相对应的虚拟键的区域处的输入对象。在继续检测输入对象的存在的同时,计算设备可检测输入对象到对应于字母“a”的区域的滑动。在本示例中,在继续检测输入对象的存在的同时,计算设备然后可检测输入对象到对应于字母“t”的区域的进一步滑动。在本示例中,当计算设备确定输入对象已移动至与手势输入的完成相关联的位置时,计算设备可确定手势输入完成。例如,当计算设备停止能够检测到存在敏感表面处的输入对象的存在时,诸如当用户将输入对象从存在敏感表面提升时,计算设备可确定手势输入完成。
[0028] 根据本公开的技术,计算设备可在与虚拟键盘相关联的存在敏感表面的一部分处接收手势输入的指示。作为响应,计算设备可定义一系列“输入”点。该输入点可表示跨虚拟键盘的手势输入的路径。为了便于说明,本公开可将跨虚拟键盘的手势输入路径称为“所检测的路径”。计算设备可定义用于候选词集合中的不同词的锚定点集合。换言之,计算设备可定义对应于候选词集合中的不同词的锚定点集合。
[0029] 每个锚定点可对应于与来自虚拟键集合的虚拟键相关联的存在敏感表面上的位置。例如,第一锚定点可对应于与用于字母“q”的虚拟键相关联的存在敏感表面上的位置,第二锚定点可对应于与用于字母“w”的虚拟键相关联的存在敏感表面上的位置等等。
[0030] 用于词的锚定点可对应于用来输入词的虚拟键。例如,用于词“hat”的锚定点可包括对应于用于字母“h”的虚拟键的锚定点、对应于用于字母“a”的虚拟键的锚定点以及对应于用于字母“t”的虚拟键的锚定点。
[0031] 计算设备然后可识别用于每个锚定点集合中的每个相应锚定点的相关输入点。在某些情况下,用于锚定点的相关输入点可以是最接近于锚定点的输入点。计算设备然后可确定用于锚定点集合中的每个相应锚定点的距离分值。用于锚定点的距离分值可基于锚定点与用于相应锚定点的相关输入点之间的在存在敏感表面上的距离。接下来,计算设备可基于用于锚定点的距离分值而识别来自对应于手势输入的候选词集合的词。
[0032] 本公开的技术可使得用户能够比其中用户在对应于分立虚拟键的存在敏感表面的区域上执行离散轻敲手势输入的系统更快且更准确地输入词。此外,本公开的技术可使得计算设备能够比其中用户通过跨与虚拟键相关联的存在敏感表面的区域滑动输入对象(例如,手指或触针)而不将输入对象移动至其中存在敏感表面不能检测输入对象的位置的其他系统更快且更准确地识别词。
[0033] 图1是图示出可实现本公开的一个或多个技术的示例性计算设备10的概念图。在图1的示例中,计算设备10被示为移动电话或平板计算机。然而,其他类型的计算设备可实现本公开的技术。例如,本公开的技术可由台式计算机、膝上型计算机、车载计算机、家用电器、商用或工业机器、零售店设备、个人媒体播放器、便携式视频游戏设备、视频游戏控制台、游戏设备及其他类型的计算设备实现。
[0034] 可将计算设备10操作地耦合到显示器12。显示器12可以是存在敏感显示器(例如,触摸屏)。计算设备10可在显示器12处输出虚拟键盘14以显示。虚拟键盘14可包括虚拟键16集合。每个虚拟键16可对应于显示器12的不同区域。
[0035] 可以各种方式将显示器12操作地耦合到计算设备10。在图1的示例中,显示器12被集成到计算设备10的外壳中。在其他示例中,显示器12可在物理上与计算设备10分离,但是可经由一个或多个有线和/或无线通信信道将其操作地耦合到计算设备10。
[0036] 在其他示例中,实现本公开的技术的计算设备不一定在存在敏感显示器上输出虚拟键盘以显示。相反地,计算设备可在可以是也可以不是存在敏感显示器的存在敏感表面处接收手势输入的指示。例如,可将计算设备操作地耦合到能够检测一个或多个输入对象的存在的存在敏感表面。在本示例中,可将指示对应于虚拟键的区域的物理标记在物理上施加于存在敏感表面。例如,计算设备10可以是装配有封盖的平板计算机,该封盖在平板计算机不使用时覆盖平板计算机的显示屏。在本示例中,当平板计算机在使用中时,封盖可水平地停靠在平板计算机前面。此外,在本示例中,封盖可包括存在敏感表面,并且可将指示对应于虚拟键的区域的物理标记施加于扩该的内表面。在本示例中,平板计算机的用户可以能够使用封盖的内表面作为键盘。
[0037] 除在显示器12处输出虚拟键盘14以显示之外,计算设备10可在显示器12处输出文本输入区18。文本输入区18可包括显示器12的区域,在该处计算设备10可检测来自用户的文本输入。在图1的示例中,文本输入区18包含计算设备10的用户与名为“Jill”的另一用户之间的会话的文本。该会话可以是经由即时消息应用、经由文本消息发送应用(例如,短消息服务(SMS))或者经由另一通信应用。在图1的示例中,计算设备10的用户正在输入文本以答复来自另一用户的消息。
[0038] 在其他示例中,计算设备的用户可由于除执行与另一用户的会话之外的原因输入文本。例如,计算设备的用户可输入文本以进行记录、输入命令、制作列表、撰写文档、准备编程语言代码、准备web内容、向社交联网服务发帖以及执行涉及文本输入的其他任务。
[0039] 当用户向计算设备10输入词时,计算设备10可在对应于虚拟键盘14的显示器12的一部分处接收手势输入的指示。当计算设备10接收到手势输入的指示时,计算设备10可在对应于与词相对应的虚拟键16中的一些的显示器12的区域处检测输入对象的存在。在某些示例中,输入对象可以是手指或拇指。在其他示例中,输入对象可以是触针。计算设备10可随着计算设备10接收到手势输入的指示而继续检测输入对象的存在。例如,在某些示例中,用户将输入对象移动至与手势输入的完成相关联的位置直至用户已将手指或触针移动至对应于用于词的最后字母的虚拟键的显示器12的区域为止。
[0040] 在其中针对用字母文字所写的诸如英语和俄语之类的语言设计虚拟键盘14的示例中,计算设备10可在对应于与词中的字母相关联的虚拟键16中的一些的显示器12的区域处检测输入对象的存在。在其中针对用语标和/或拼音文字所写的诸如中文之类的语言设计虚拟键盘14的示例中,计算设备10可在对应于与词或音节的语音或组成部分相关联的虚拟键16中的一些的显示器12的区域处检测输入对象的存在。当使用虚拟键来输入词时,虚拟键可与词相关联。
[0041] 图2是图示出手势输入的所检测的路径30被叠加在虚拟键盘14的情况下的计算设备10的概念图。所检测的路径30可对应于显示器12的区域,在该处计算设备10在用户执行手势输入时检测到输入对象的存在。在图2的示例中,用户正在尝试输入词“first”。相应地,用户首先将诸如手指或指针之类的输入对象定位于对应于用于字母“f”的虚拟键的显示器12的区域处,然后将输入对象滑动到对应于用于字母“i”、“r”、“s”和“t”的虚拟键的显示器12的区域,同时将输入对象保持在其中显示器12能够检测输入对象的存在的空间内。在用户将输入对象移动至对应于用于字母“t”的虚拟键的显示器12的区域之后,用户可将输入对象移动至与手势输入完成相关联的位置。例如,用户可将输入对象移动至其中显示器12不再能够检测到输入对象的存在的位置。在另一示例中,用户可将输入对象移动至在虚拟键盘14外面的显示器12上的位置。在典型示例中,计算设备10不输出所检测的路径30以在显示器12上显示。
[0042] 当用户执行手势输入时,计算设备10可在对应于虚拟键盘14的显示器12的一部分处接收手势输入的指示。响应于接收到手势输入的指示,计算设备10可识别对应于手势输入的词。例如,在图2的示例中,当计算设备10接收到与所检测的路径30相关联的手势输入的指示时,计算设备10可将词“first”识别为对应于手势输入的词。
[0043] 在某些情况下,用户可执行其中用户并不精确地将输入对象移动至与期望词相关联的每个虚拟键的手势输入。在这种情况下,计算设备10可以仍能够确定手势输入对应于期望词。例如,如果用户执行其中用户将输入对象移动至相对接近与期望词相关联的虚拟键的显示器12的区域的手势输入,则计算设备10可以仍能够确定手势输入对应于期望词。在本示例中,如果用户想要输入词“first”,则计算设备10可仍能够确定手势输入对应于词“first”,即使用户实际上没有将输入对象移动至用于字母“f”、“i”、“r”、“s”和“t”的虚拟键。
[0044] 在识别对应于手势输入的词之后,计算设备10可以各种方式来处理词。例如,计算设备10可将表示词的数据存储到数据存储介质、输出词的发声、将表示词的数据发送到另一计算设备或者以另外方式处理词。在某些示例中,计算设备10可以输出词以便在显示器12上显示。如上面关于图2所述,用户可执行对应于词“first”的手势输入。图3是图示出计算设备10的概念图,示出了处理词“first”的示例性结果。在图3的示例中,计算设备10可在显示器12的文本输入区18中输出词“first”,从而完成短语“Are we getting dinner first”。
[0045] 为了识别对应于手势输入的词,计算设备10可定义表示跨虚拟键盘14的手势输入的路径的一系列输入点。每个输入点可表示显示器12上的离散点,在该处计算设备10检测到输入对象的存在。例如,每个输入点可表示用户在执行手势输入时触摸的显示器12上的离散点。每个输入点可具有不同的(x,y)坐标。这样,计算设备10可将手势输入的连续滑动表示为一系列离散点。
[0046] 图4是图示出对应于图2的手势输入的示例性输入点50系列的概念图。为了明了起见,图4不包括用于每个输入点50的附图标记。输入点50在沿着所检测的路径30的位置处发生。如上面所讨论的,所检测的路径30可对应于显示器12的区域,在该处计算设备10检测到输入对象的存在。在典型示例中,计算设备10不输出输入点50以在显示器12上显示。
[0047] 另外,计算设备10可定义用于候选词集合中的不同词的锚定点集合。每个锚定点可对应于与虚拟键16中的一个相关联的显示器12上的位置。例如,一个锚定点可对应于用于字母“q”的虚拟键,另一锚定点可对应于用于字母“w”的虚拟键等等。为了便于说明,本公开可将对应于用于给定字母的虚拟键的锚定点称为用于给定字母的锚定点。
[0048] 用于词的锚定点集合中的每个锚定点可对应于与词相关联的虚拟键。例如,用于词“first”的锚定点集合可包括用于字母“f”、“i”、“r”、“s”和“t”的锚定点。在另一示例中,用于词“ghost”的锚定点集合可包括用于字母“g”、“h”、“o”、“s”和“t“的锚定点。
[0049] 计算设备10可针对每个锚定点集合中的每个相应锚定点识别所述一系列输入点中的相关输入点。例如,用于词“first”的锚定点集合可包括用于字母“f”、“i”、“r”、“s”和“t”的锚定点。在本示例中,计算设备10可将输入点50(图4)中的一个识别为用于字母“f”的锚定点的相关输入点,将输入点50中的一个识别为用于字母“i”的锚定点的相关输入点,将输入点50中的一个识别为用于字母“r”的锚定点的相关输入点等等。如下所述,计算设备10可以各种方式来识别用于锚定点的相关输入点。例如,计算设备10可将最接近锚定点的输入点识别为用于锚定点的相关输入点。
[0050] 在识别用于词的锚定点的相关输入点之后,计算设备10可确定用于词的每个锚定点的距离分值。用于锚定点的距离分值可基于锚定点与用于锚定点的相关输入点之间的在显示器12上的距离。例如,第一锚定点可对应于字母“f”,第二锚定点可对应于字母“i”等等。在本示例中,用于第一锚定点的距离分值可基于第一锚定点与用于第一锚定点的相关输入点之间的距离,用于第二锚定点的距离分值可基于第二锚定点与用于第二锚定点的相关输入点之间的距离等等。
[0051] 图5A是图示出用于词“first”的示例性锚定点与输入点50之间的距离的概念图。图5B是图示出用于词“ghost”的示例性锚定点与输入点50之间的在存在敏感表面上的距离的概念图。在图5A和5B的示例中,用虚拟键16内的灰点来指示锚定点。在图5A和5B的示例中,细黑线指示锚定点与用于锚定点的相关输入点之间的距离。为了明了起见,图5A和5B省略了用于某些输入点50的附图标记。
[0052] 计算设备10可基于用于词的锚定点的距离分值来生成用于词的锚定分值。例如,计算设备10可基于用于第一词的锚定点的距离分值来生成用于第一词的锚定分值,可基于用于第二词的锚定点的距离分值来生成用于第二词的锚定分值等等。
[0053] 计算设备10可以各种方式生成用于词的锚定分值。例如,计算设备10可基于用于词的锚定点的距离分值的和来生成用于词的锚定分值。在本示例中,用于锚定点的距离分值可基于锚定点与用于锚定点的相关输入点之间的在显示器12上的距离。通过比较图5A和5B,读者可看到图5A中的用于词“first”的锚定点的距离分值的总和小于图5B中的用于的词“ghost”的锚定点的距离分值的总和。在这里,在本示例中,用于词“first”的锚定分值可小于用于词“ghost”的锚定分值。
[0054] 计算设备10可至少部分地基于锚定分值(和因此的用于锚定点的距离分值)来确定特定词对应于手势输入。计算设备10可以各种方式来确定该特定词对应于手势输入。例如,当特定词具有最低或最高锚定分值时,计算设备10可确定该特定词对应于手势输入。
[0055] 这样,计算设备10可在与虚拟键盘14相关联的存在敏感表面(例如显示器12)的一部分处接收手势输入的指示。另外,计算设备10可定义一系列输入点,其表示跨虚拟键盘14的手势输入的路径。计算设备10还可定义用于候选词集合中的不同词的锚定点集合。每个锚定点可对应于与来自该虚拟键集合的虚拟键相关联的存在敏感表面的位置。计算设备10还可针对每个锚定点集合中的每个相应锚定点识别所述一系列输入点中的相关输入点。计算设备还可确定用于锚定点集合中的每个相应锚定点的距离分值。针对锚定点集合中的每个锚定点,用于相应锚定点的距离分值可基于相应锚定点与用于相应锚定点的相关输入点之间的在存在敏感表面上的距离。计算设备10可基于用于锚定点的距离分值而识别对应于手势输入的候选词集合中的词。
[0056] 图6是图示出根据本公开的技术的用以接收文本输入的计算设备的示例性操作100的流程图。在某些示例中,计算设备10(图1)可执行操作100。
[0057] 在其他示例中,计算设备可执行不同的操作以接收文本输入。例如,计算设备可执行包括比操作100的那些更多、更少或不同的步骤的操作以识别对应于手势输入的词。此外,在某些情况下,操作100或用以识别对应于手势输入的词的其他操作的步骤中的一个或多个可串行地或并行地执行。
[0058] 在计算设备开始操作100之后,计算设备可定义对应于候选词集合中的不同词的锚定点集合(102)。每个锚定点可对应于与来自虚拟键集合的虚拟键相关联的位置。在某些示例中,计算设备可定义锚定点,使得该锚定点对应于虚拟键盘中的虚拟键的中心。在其他示例中,锚定点不一定对应于虚拟键的中心。相反,计算设备可将锚定点定义成对应于虚拟键内的其他位置。在某些情况下,可将锚定点定义成在不同虚拟键内的不同位置处。
[0059] 此外,计算设备可在与虚拟键盘相关联的存在敏感表面的一部分处接收手势输入的指示(104)。在某些示例中,如果存在敏感表面在与虚拟键盘相关联的位置处检测到输入对象的存在,则计算设备可接收手势输入的开始的指示。在此类示例中,如果存在敏感表面检测到输入对象到与手势输入的完成相关联的位置的移动,则计算设备可接收手势输入完成的指示。例如,如果存在敏感表面检测到输入对象已移动至其中存在敏感表面不再能够检测输入对象的存在的位置,则计算设备可接收手势输入完成的指示。
[0060] 响应于接收到手势输入的指示,计算设备可定义一系列输入点,其表示跨虚拟键盘的手势输入的路径(106)。在某些示例中,计算设备可周期性地确定输入对象的在存在敏感表面上的当前位置。每个时间段一次,计算设备可定义指示输入对象的在存在敏感表面上的位置的输入点。例如,计算设备可每秒五十次定义新的输入点。因此,输入点可在时间上沿着所检测的路径均匀地分布。
[0061] 计算设备然后可使用输入点来识别对应于手势输入的候选词集合中的词(108)。计算设备可以各种方式使用输入点来识别对应于手势输入的词。例如,计算设备可执行图7的示例性操作以识别对应于手势输入的词。在其他示例中,计算设备执行不同于图7的示例性操作的操作。
[0062] 在识别对应于手势输入的词之后,计算设备可处理所识别的词(110)。例如,计算设备可在识别词之后在诸如显示器12(图1)的显示器处输出词以显示。在另一示例中,计算设备可存储或发送表示词的数据。
[0063] 图7是图示出由计算设备执行以使用输入点来识别对应于手势输入的词的示例性操作150的流程图。在某些示例中,计算设备10(图1)执行操作150。
[0064] 在其他示例中,计算设备可执行不同操作以识别对应于手势输入的词。例如,计算设备可执行包括比操作150的那些更多、更少或不同的步骤的操作以识别对应于手势输入的词。此外,在某些情况下,操作150或用以识别对应于手势输入的词的其他操作的步骤中的一个或多个可串行地或并行地执行。
[0065] 在计算设备开始操作150之后,计算设备可对输入点进行下采样(152)。当计算设备接收到手势输入的指示时,计算设备可定义输入点的初始系列,其表示跨虚拟键盘的手势输入的路径。在定义输入点的初始系列之后,计算设备可确定输入点的初始系列中的输入点的数目超过阈值。计算设备可响应于确定输入点的初始系列中的输入点的数目超过阈值而对输入点的初始系列进行下采样以定义输入点的下采样系列。对输入点进行下采样可去除冗余信息并加速对应于手势输入的词的识别。
[0066] 例如,计算设备可确定输入点的初始系列中的输入点的数目是否超过一百个。响应于输入点的初始系列中的输入点数目超过一百个,计算设备可从输入点的初始系列消除一个或多个输入点直至存在仅一百个剩余输入点。例如,计算设备可根据比int(/num/100)+1:1来消除点,其中,num是输入点的初始系列中的输入点的数目。被消除的输入点可沿着所检测的路径近似均匀地分布。在本示例中,如果输入点的初始系列中的输入点的数目没有超过一百个,则计算设备可不消除任何输入点。
[0067] 由于人运动的本质,用户的手指或触针的移动随着用户的手指或触针接近于其中用户意图改变移动方向的点而趋向于缓慢。该移动随着用户的手指或触针移动远离其中用户意图改变移动方向的点趋向于加速。在许多情况下,用户在跟与期望词相关联的虚拟键相关联的位置处改变移动方向。例如,在图5A和5B的示例中,用户意图输入词“first”。因此,用户的移动在用于字母“f”、“i”、“s”和“t”的虚拟键附近是相对缓慢的,并在中间有时加速。用户可以不需要在用于字母“r”的虚拟键处进行急转弯。因此,用户的移动在用于字母“r”的虚拟键附近可仍保持相对快的。
[0068] 由于输入点在时间上沿着所检测的路径均匀地分布,并且由于移动在与期望词相关联的虚拟键附近可缓慢,所以输入点可在与期望词相关联的虚拟键附近集群。此类集群可在对输入点进行下采样之前和之后发生。
[0069] 在对输入点进行下采样之后,计算设备可对候选词集合进行削剪(prune)(154)。可用候选词的大型词汇来配置计算设备。例如,可用90,000或更多候选词的词汇来配置计算设备。计算用于此大型词汇中的每个词的锚定分值可能是不切实际的。相应地,计算设备可削剪(即,消除)不太可能是正确词的词。
[0070] 计算设备可基于用于候选词的一个或多个度量而对候选词集合进行削剪。计算用于候选词的这些度量所需要的计算强度与计算用于候选词的锚定分值相比可以是相对小的。
[0071] 例如,计算设备可将第一虚拟键识别为与手势输入的开始相关联,并且可将第二虚拟键识别为与手势输入的结束相关联。在本示例中,计算设备可削剪不是以与第一虚拟键相关联的字母开始以及不是以与第二虚拟键相关联的字母结束的所有词。例如,计算设备可确定手势输入在与用于字母“f”的虚拟键相关联的点处开始并在与用于字母“t”的虚拟键相关联的点处结束。在这种情况下,计算设备可削剪不是以字母“f”开始以及以字母“t”结束的所有候选词。因此,如果候选词集合最初包括词“Tokyo”,则计算设备可将词“Tokyo”从考虑中消除,因为“Tokyo”不是以字母“f”开始或以字母“t”结束。然而,词“first”、“fat”、“fist”、“fest”、“fort”、“fight”、“fast”、“fervent”、“ferret”、“foretopgallant”等可仍在候选词集合中。这样,计算设备可基于手势输入的初始输入点和手势输入的终止输入点来选择候选词集合。手势输入的初始输入点可以是沿着手势输入的所检测的路径的时间上最早输入点。手势输入的终止输入点可以是沿着手势输入的所检测的路径的时间上最后输入点。
[0072] 某些用户可能对手势输入的开始和结束位置不准确。相应地,在某些示例中,计算设备可保持(即,不削剪)不是以对应于计算设备检测到输入对象的第一虚拟键的字母开始以及以对应于计算设备检测到输入对象的最后虚拟键的字母结束的某些词。相反,当用于词的初始和终止键在初始和终止输入点的特定距离内时,计算设备可保持词。用于词的初始键可以是当用户正在输入词时计算设备检测到输入对象的存在的第一虚拟键。用于词的终止键可以是当用户正在输入词时计算设备检测到输入对象的存在的最后虚拟键。
[0073] 例如,计算设备可保持以与在初始输入点的1.5键宽度内的虚拟键相关联的字母开始以及以与在终止输入点的1.5键宽度内的虚拟键相关联的字母结束的候选词。因此,在图5A和5B的示例中,用户可意图输入词“first”且初始输入点在用于字母“f”的虚拟键内,但计算设备可保持词“ghost”,因为用于字母“g”的虚拟键在初始输入点的1.5键宽度内。然而,计算设备可削剪词“belt”,因为用于字母“b”的虚拟键与初始输入点相距大于1.5键宽度。键宽度可以是虚拟键的宽度。
[0074] 与和期望词相关联的第一虚拟键相比,某些用户更有可能关于与期望词相关联的最后虚拟键是不准确的。相应地,在某些示例中,计算设备可保持以与在终止输入点的2.5键宽度内的键相关联的字母结束的候选词。因此,在图5A和5B的示例中,计算设备可保持词“fish”,因为用于字母“h”的虚拟键在终止输入点的2.5键宽度内。
[0075] 在另一示例中,计算设备可响应于确定对应于一个词的任何一个锚定点与最接近该锚定点的输入点相距大于给定距离而从候选词集合削剪该词。例如,计算设备可响应于确定对应于一个词的锚定点与最接近该锚定点的输入点相距超过1.5键宽度而从候选词集合削剪该词。
[0076] 在某些示例中,计算设备可将虚拟键盘划分成单元网格。该单元网格可以是三十二单元宽乘十六单元高的。对于每个单元,计算设备可计算单元的中心与每个虚拟键的边界之间的距离。如果该距离在特定阈值以下,则计算设备可包括用于该单元的近邻阵列中的虚拟键。可基于键宽度和可配置的搜索距离来计算该阈值。为了从候选词集合削剪词,计算设备可确定哪个单元包含所检测的路径的初始输入点。计算设备然后可从候选词集合削剪其初始键不在用于单元的近邻阵列中的所有词。类似地,计算设备可确定哪个单元包含所检测的路径的终止输入点。计算设备然后可从候选词集合削剪其终止键不在用于单元的近邻阵列中的所有词。
[0077] 在另一示例中,可将计算设备配置成确定与候选词集合中的词相关联的理想路径的长度。用于词的理想路径可以是按照输入词所需的顺序通过与词相关联的每个虚拟键的中心的路径。在本示例中,计算设备可基于所检测的路径的长度和与候选词相关联的理想路径的长度的比较来对候选词集合进行削剪。如果所检测的路径的长度和与候选词相关联的理想路径的长度之间的差相差超过特定量(例如,长度的比超过给定阈值),则计算设备可消除该候选词。例如,如果与候选词相关联的理想路径的长度超过所检测的路径的长度的1.5倍或小于其0.6倍,则计算设备可从候选词集合削剪该候选词。
[0078] 例如,与词“fat”相关联的理想路径的长度比用于词“foretopgallant”的理想路径的长度短得多。因此,如果所检测的路径的长度与到与词“fat”相关联的理想路径的长度相比更接近于与词“foretopgallant”相关联的理想路径的长度,则计算设备可从候选词集合削剪词“fat”。
[0079] 在某些示例中,计算设备可将候选词存储在二维阵列中。假设虚拟键盘具有二十六个虚拟键,则阵列可在第一维度上具有676(26*26)个条目。676是两个字母的所有可能组合的数目。第一字母可对应于词的首字母且第二字母可对应于词的终止字母。阵列的第二维度中的条目可对应于具有各种尺寸的词。因此,阵列可具有以下结构,其中,*指示二十六个可能字母中的任何一个:
[0080] [[a*a,a**a,a***a,...],[a*b,a**b,a***b,...],...,[z*z,z**z,z***z,...]][0081] 在某些示例中,计算设备可允许每个词的第一字母与终止字母之间的多达四十八个字母。计算设备可基于用于词的理想路径的长度而将每个第一维条目内的词分类。通过将词存储在此类已分类阵列中,计算设备可以能够基于词的起始和终止键以及基于其理想路径的长度而快速地削剪词。在某些情况下,计算设备可以能够在O(n)时间的最坏情况下基于词的起始和终止键以及其理想路径的长度来削剪词。
[0082] 在对候选词集合进行削剪之后,计算设备可以确定在候选词集合中是否存在对于其尚未确定锚定分值的至少一个词(156)。用于词的锚定分值是基于用于对应于词的锚定点的距离分值的分值。
[0083] 响应于确定在候选词集合中存在对于其尚未确定锚定分值的至少一个词(156的“是”),计算设备可选择候选词集合中的对于其尚未确定锚定分值的词中的一个(158)。计算设备然后可确定用于对应于所选词的每个锚定点的距离分值(160)。计算设备可以各种方式来确定用于锚定点的距离分值。例如,计算设备可执行图8和9中所示的示例性操作以确定用于锚定点的距离分值。
[0084] 计算设备可根据用户将使用相应虚拟键来输入所选词的顺序来确定用于所选词的锚定点的距离分值。例如,如果所选词是“first”,则计算设备可确定用于虚拟键“f”的锚定点的距离分值,然后确定用于虚拟键“i”的锚定点的距离分值,然后确定用于虚拟键“r”的锚定点的距离分值等等。
[0085] 在确定用于对应于所选词的锚定点的距离分值之后,计算设备可基于用于对应于所选词的锚定点的距离分值来确定用于所选词的锚定分值(162)。计算设备可以各种方式来确定用于所选词的锚定分值。例如,计算设备可通过将用于所选词的锚定点的距离分值相加或相乘来确定用于所选词的锚定分值。
[0086] 在确定用于所选词的锚定分值之后,计算设备可再次确定在候选词集合中是否存在对于其尚未确定锚定分值的至少一个词(156)。如果是这样,则计算设备可重复步骤158、160和162以确定用于候选词集合中的另一词的锚定分值。在计算设备已确定用于候选词集合中的词中的至少某些的锚定分值之后,计算设备可至少部分地基于用于词的锚定分值来识别对应于手势输入的候选词集合中的特定词(164)。计算设备可以各种方式来识别特定词。例如,计算设备可执行图10中所示的示例性操作以识别特定词。
[0087] 图8是图示出由计算设备执行以计算用于词的锚定点的距离分值的示例性操作200的第一部分的流程图。在某些示例中,计算设备10(图1)可执行操作200。为了便于说明,图8和9的以下描述将计算设备正在为其计算距离分值的锚定点称为“当前锚定点”并将词称为“当前词”。
[0088] 在其他示例中,计算设备可执行不同操作以确定用于锚定点的距离分值。例如,计算设备可执行包括与操作200的那些相比更多、更少或不同的步骤的操作以确定用于锚定点的距离分值。此外,在某些情况下,用以确定用于锚定点的距离分值的操作200或其他操作的步骤中的一个或多个可串行地或并行地执行。
[0089] 在计算设备开始操作200之后,计算设备可确定当前锚定点是否是当前词的初始键的锚定点(202)。响应于确定当前锚定点是当前词的初始键的锚定点(202的“是”),计算设备可将输入点系列中的初始输入点识别为用于当前锚定点的相关输入点(204)。在其他示例中,计算设备可将最接近当前输入点的输入点识别为用于当前输入点的相关输入点。
[0090] 计算设备然后可确定用于当前锚定点的距离分值等于当前锚定点与相关输入点之间的距离(206)。计算设备可以各种方式来确定锚定点与输入点之间的距离。例如,计算设备可使用算法来计算锚定点与输入点之间的欧几里德距离。在本示例中,计算设备可在不计算平方根的情况下使用用于确定欧几里德的多个已知方法中的任何一个。在另一示例中,在计算设备确定锚定点与输入点之间的距离之后,计算设备可将该距离存储在缓存中。在本示例中,如果计算设备需要在确定用于不同词的锚定分值时确定锚定点与输入点之间的距离,则计算设备可通过查找缓存中的距离来确定锚定点与输入点之间的距离。这样,计算设备可基于缓存所指示的距离中的一个或多个来确定用于锚定点的距离分值。
[0091] 在某些示例中,可将缓存实现为二维阵列。该二维阵列可具有用于虚拟键盘的每个虚拟键的一行和用于每个输入点的一列。在本示例中,如果计算设备确定给定锚定点与给定输入点之间的距离,则计算设备可将该距离输入到阵列中的在用于该给定锚定点的行和用于该给定输入点的列处的位置中。因此,如果计算设备需要确定给定锚定点与给定输入点之间的距离,则计算设备可从阵列中检索距离。
[0092] 另一方面,响应于确定当前锚定点不是当前词的初始键的锚定点(202的“否”),计算设备可确定当前锚定点是否是当前词的终止键的锚定点(208)。响应于确定当前锚定点不是当前词的终止键的锚定点(208的“否”),计算设备可执行图9中所示的操作200的一部分。
[0093] 然而,响应于确定当前锚定点是当前词的终止键的锚定点(202的“是”),计算设备可将输入点系列中的终止输入点识别为用于当前锚定点的相关输入点(210)。在其他示例中,计算设备可将最接近当前锚定点的输入点识别为用于当前锚定点的相关输入点。计算设备然后可确定用于当前锚定点的距离分值等于当前锚定点与相关输入点之间的距离(212)。
[0094] 图9是图示出操作200的第二部分的流程图。响应于确定当前锚定点不是当前词的初始键的锚定点以及当前锚定点不是当前词的终止键的锚定点,计算设备可确定是否存在与任何其他锚定点相比更接近当前锚定点的一个或多个可用输入点的集合(250)。如果该输入点在用于当前词的先前键的锚定点的相关输入点之后发生,则该输入点可以是可用输入点。同样地,如果输入点是用于当前词的先前键的锚定点的相关输入点,则输入点可以不可用。如果所检测的路径上的输入点的位置在用于当前词的先前键的锚定点的相关输入点的所检测路径上的位置之前,则输入点也可以是不可用的。
[0095] 响应于确定存在与任何其他锚定点相比更接近当前锚定点的一个或多个可用输入点的集合(250的“是”),计算设备可从与任何其他锚定点相比更接近当前锚定点的可用输入点之中识别最接近当前锚定点的输入点(252)。这样,计算设备可识别用于当前锚定点的相关输入点,使得相关输入点与任何其他可用输入点相比更接近当前锚定点,并且当前锚定点与任何其他锚定点相比更接近相关输入点。
[0096] 在识别用于当前锚定点的相关输入点之后,计算设备可确定当前锚定点与用于当前锚定点的相关输入点之间的距离(254)。计算设备可基于当前锚定点与相关输入点之间的距离来确定用于当前锚定点的距离分值(256)。计算设备可以各种方式基于该距离来确定用于当前锚定点的距离分值。例如,计算设备可将用于当前锚定点的距离分值确定为等于该距离。在另一示例中,计算设备可通过使用该距离来在查找表中超找距离分值来确定用于当前锚定点的距离分值。在另一示例中,计算设备可通过对距离执行一个或多个数学运算来确定用于当前锚定点的距离分值。
[0097] 另外,计算设备可将较早的输入点标记为不可用(258)。较早输入点可包括相关输入点和在所检测的路径上具有在相关输入点的所检测的路径上的位置之前的位置的输入点。在计算设备将输入点标记为不可用之后,输入点可在计算设备确定用于当前词的下一键的锚定点的距离分值时保持不可用。这样,计算设备可确保同一输入点不被识别为用于当前词的多个锚定点的相关输入点。
[0098] 计算设备可以各种方式将输入点标记为不可用。例如,计算设备可保持指示输入点的可用性的一个或多个数据结构。在本示例中,计算设备可修改所述一个或多个数据结构中的一个或多个值以指示特定输入点不可用。在另一示例中,计算设备可保持识别沿着所检测的路径的第一可用输入点的数据。在本示例中,计算设备可通过修改数据以识别在给定输入点之后在所检测的路径上发生的输入点来将给定输入点标记为不可用。
[0099] 另一方面,响应于确定不存在与任何其他锚定点相比更接近当前锚定点的可用输入点(250的“否”),计算设备可将所有输入点标记为可用(260)。在某些情况下,当给定输入点潜在地应是用于当前锚定点的相关输入点时,计算设备可能先前已将给定输入点识别为用于当前词的较早键的锚定点的相关输入点。这种情况可在所检测的路径接近当前锚定点通过多次时出现。例如,当用户正在尝试输入词“before”时,所检测的路径可接近于字母“e”通过多次。在本示例中,当前锚定点可以是第二字母“e”且计算设备可将在所检测的路径的末端处的输入点识别为用于第一字母“e”的锚定点的相关输入点。因此,早于针对用于第一字母“e”的锚定点所识别的输入点的所有输入点可能是不可用的。通过在步骤260中将所有输入点标记为可用,计算设备可以能够正确地识别用于当前锚定点的相关输入点。相应地,如果对应于当前词的锚定点接近于所检测的路径,则计算设备可以不一定滤出当前词,如果计算设备错误识别用于对应于当前词的锚定点中的一个的输入点的话。
[0100] 在将所有输入点标记为可用之后,计算设备然后可确定是否存在与任何其他锚定点相比更接近于当前锚定点的一个或多个可用输入点的集合(262)。响应于确定存在比任何其他锚定点更接近于当前锚定点的一个或多个可用输入点(262的“是”),计算设备可从比任何其他锚定点更接近于当前锚定点的可用输入点之中识别最接近于当前锚定点的输入点(264)。这样,计算设备可识别用于当前锚定点的相关输入点,使得相关输入点比任何其他锚定点更接近于当前锚定点,并且当前锚定点比任何其他可用输入点更接近于相关输入点。
[0101] 在识别用于当前锚定点的相关输入点之后,计算设备可确定当前锚定点与相关输入点之间的距离(266)。计算设备然后可基于该距离来确定用于当前锚定点的距离分值(268)。此外,计算设备可将相关输入点和较早输入点标记为不可用(270)。计算设备可以任何上述方式或以其他方式来确定距离,确定距离分值,并将输入点标记为不可用。
[0102] 然而,响应于确定仍不存在与任何其他锚定点相比更接近于当前锚定点的可用输入点(262的“否”),计算设备可识别最接近于当前锚定点的可用输入点(272)。计算设备然后可将所识别的输入点和较早输入点标记为不可用(274)。此外,计算设备可确定当前锚定点与所识别的输入点之间的距离(276)。
[0103] 在确定该距离之后,计算设备可基于该距离和惩罚值来确定用于当前锚定点的距离分值(278)。在其中用于锚定点的高距离分值与对应于当前词的锚定点的虚拟键的低可能性相关联的示例中,惩罚值可增加用于锚定点的距离分值。在其中用于锚定点的低距离分值与锚定点的虚拟键对应于当前词的低可能性相关联的示例中,惩罚值可减小用于锚定点的距离分值。
[0104] 通过基于该距离和惩罚值来确定用于当前锚定点的距离分值,计算设备可响应于确定当前锚定点不是锚定点中的最接近于用于当前锚定点的相关输入点的一个而调整用于锚定点的距离分值。在各种示例中,计算设备可以各种量来调整距离分值。例如,计算设备可以1.3键宽度来调整距离分值。
[0105] 图10是图示出用以基于用于词的锚定分值和用于词的形状分值来识别对应于手势输入的词的计算设备的示例性操作300的流程图。在某些示例中,计算设备10(图1)可执行操作300。在其他示例中,计算设备可基于锚定分值和形状分值来执行用于识别词的不同操作。例如,计算设备可执行包括比操作300的那些更多、更少或不同的步骤的操作以基于锚定分值和形状分值来识别词。此外,在某些情况下,操作300或用以基于锚定分值和形状分值来识别词的其他操作的步骤中的一个或多个可串行地或并行地执行。
[0106] 计算设备可在计算设备确定用于组候选集合中的词的锚定分值之后开始操作300。如上所述,用于词的锚定分值可基于用于对应于与词相关联的虚拟键的锚定点的距离分值。在计算设备开始操作300之后,计算设备可基于用于候选词的锚定分值而从候选词集合削剪候选词(302)。
[0107] 计算设备可以各种方式基于其锚定分值而削剪候选词。例如,计算设备可根据其锚定分值而将候选词排名。在本示例中,候选设备可削剪不在n个最高排名候选词之中的所有候选词。例如,在本示例中,计算设备可在候选词不在排名在前两百个的候选词之中时削剪候选词。在另一示例中,如果用于候选词的锚定分值在特定阈值以上或以下,则计算设备可削剪候选词。
[0108] 此外,计算设备可对针对所检测的路径定义的输入点的初始或下采样集合进行重新采样,使得输入点沿着所检测的路径在空间上均匀分布(304)。换言之,计算设备可对输入点进行重新采样,使得在每个输入点之间存在沿着所检测的路径的相等距离。对输入点进行重新采样可涉及消除某些输入点并内插其他输入点。在某些示例中,计算设备可以只需每个手势输入对输入点重新采样一次。换言之,计算设备可能没必要对用于候选词集合中的每个词的输入点进行重新采样。
[0109] 另外,计算设备可存储或确定形状模板。每个形状模板可对应于不同词。用于词的形状模板可表示用以输入词的虚拟键盘上的理想路径。例如,用于词“bat”的形状模板可包括从用于字母“b”的虚拟键的中心到用于字母“a”的虚拟键的中心的直线和从用于字母“a”的虚拟键的中心到用于字母“t”的虚拟键的中心的另一直线。
[0110] 由于不同虚拟键盘可具有不同尺寸,所以计算设备可对候选词的形状模板进行缩放,使得形状模板的宽度和/或高度等于所检测的路径的宽度和/或高度(306)。这样,计算设备可将用于给定词的形状模板缩放成具有等于手势输入的宽度和/或高度的宽度和/或高度的边界框中。计算设备可根据缩放比对形状模板进行缩放,其中s=L/max(W,H),其中W和H是形状模板的原始宽度和高度且L是手势输入的宽度。
[0111] 另外,计算设备可使形状模板的位置平移,使得形状模板在对应于输入点的位置上(308)。在某些示例中,计算设备可将形状模板的质心平移至输入点系列的质心。例如,如果输入点的质心在具有坐标(25,76)的位置处,则计算设备可平移形状模板的位置,使得形状模板的质心在具有坐标(25,76)的位置处。在其他示例中,计算设备可对输入点进行缩放和/或平移而不是对形状模板进行缩放和平移。
[0112] 因此,计算设备可确定是否存在任何剩余候选词(310)。如果计算设备尚未确定用于候选词的形状分值,则计算设备可将候选词视为剩余候选词。响应于确定存在一个或多个剩余候选词(310的“是”),计算设备可选择剩余候选词中的一个(312)。计算设备然后可确定用于所选候选词的形状分值(314)。为了确定用于所选候选词的形状分值,计算设备可针对每个重新采样的输入点确定输入点与形状模板上的最接近输入点的点之间的距离。计算设备然后可通过将所确定的距离加在一起来计算用于候选词的形状分值。这样,计算设备可在对用于候选词的形状模板进行缩放之后以及在对用于候选词的形状模板的位置进行平移之后计算用于候选词的第二分值(即,形状分值)。
[0113] 在某些示例中,计算设备可使用以下公式来确定用于词s的形状分值xs:
[0114]
[0115] 在此公式中,N指示输入点的数目,ui指示输入点i的位置,并且ti指示路径模板上的最接近输入点i的点的位置。
[0116] 在确定用于候选词的形状分值之后,计算设备可再次确定是否存在任何剩余候选词(310)。如果存在一个或多个剩余候选词,则计算设备可关于另一剩余候选词执行步骤312和314。这样,计算设备可确定用于剩余在候选词集合中的词的形状分值。
[0117] 响应于确定不存在剩余候选词,计算设备可至少部分地基于其锚定分值及其形状分值而对候选词进行排名(316)。在对候选词进行排名之后,计算设备可将最高排名的候选词识别为对应于手势输入的词(318)。计算设备可以各种方式基于其锚定分值和形状分值对候选词进行排名。例如,计算设备可通过将用于候选词的锚定分值和形状分值加在一起而确定用于候选词的最后分值。在本示例中,计算设备可基于候选词的最后分值对候选词进行排名。此外,在本示例中,可在确定最后分值时对锚定分值或形状分值施加权值。在本示例中,相对低的最后分值可对应于相对高的排名。在其他示例中,相对高的最后分值可对应于相对高的排名。
[0118] 这样,计算设备可基于用于词的锚定点的距离分值(即,锚定分值)来确定用于词的第一分值,并且可基于手势输入的形状(即,形状分值)来确定用于词的第二分值。如上面所讨论的,计算设备可基于输入点与形状模板上的用于词的最近点之间的距离来确定用于词的第二分值。计算设备然后可基于用于词的第一分值和用于词的第二分值将来自候选词集合之中的词识别为对应于手势输入的词。
[0119] 在某些示例中,计算设备可确定用于候选词的一个或多个附加分值。计算设备然后可基于用于词的锚定分值、用于词的形状分值以及用于词的所述一个或多个附加分值确定用于词的最后分值。作为确定形状分值的替代或除此之外,计算设备可确定这些附加分值。
[0120] 例如,计算设备可基于语法或语言模型来确定用于候选词的分值。在本示例中,计算设备可存储n元模型,其指示词相对于n个先前输入的词的概率。例如,在本示例中,计算设备可基于词相对于一个或多个先前词的条件概率来确定用于词的分值。词的条件概率可以是词相对于先前n(例如,两)个词的对数条件概率。在本示例中,计算设备可使用以下公式来确定用于词f的最后分值。
[0121] Sf=SLM+BSs+CSa
[0122] 在此公式中,SLM指示基于语言模型(n元模型)的词f的分值,SS指示用于词f的形状分值且Sa指示用于词的锚定分值。此外,B是在理论上或凭经验从手势输入分布相对于对应于词f的形状模板的标准偏差导出的系数。C是在理论上或凭经验从手势输入分布相对于对应于词f的锚定点的标准偏差导出的系数。在某些示例中,计算设备可根据用户的拖动速度动态地更新B和C。随着用户更快地拖动,计算设备可对锚定分值和形状分值给定较小权值。
[0123] 在某些示例中,计算设备可以能够在O(LNi)时间确定用于词的锚定分值,其中,L是词中的锚定点的数目且Ni是下采样之后的输入点的数目。此外,在某些示例中,计算设备可以能够在最坏情况下在O(NS2)时间确定用于词的形状分值,其中,Ns至少等于重新采样输入点的数目。
[0124] 图11A是图示出示例性输入点350与用于词“first”的示例性形状模板352之间的示例性距离的概念图。为了明了起见,图11A不包括用于每个输入点350的附图标记。输入点350沿着所检测的路径354在空间上均匀地分布。在图11A的示例中,计算设备可通过将输入点350与形状模板352上的最近点之间的距离求和来计算用于词“first”的形状分值。图11A将输入点350与形状模板352上的最近点之间的距离示为细黑线。
[0125] 图11B是图示出示例性输入点350与用于词“ghost”的示例性形状模板360之间的示例性距离的概念图。图11B中的输入点350在与图11A中的输入点350相同的位置上并遵循相同的所检测的路径354。如通过比较图11A和11B能够看到的,输入点350与形状模板360之间的距离的和大于输入点350与形状模板352之间的距离的和。相应地,词“first”可具有比词“ghost”小的形状分值。结果,词“first”可排名高于词“ghost”。
[0126] 图12是计算设备400的示例性配置的框图。计算设备400可以是处理信息的物理设备。在某些示例中,可将计算设备10实现为具有与计算设备400的配置类似的配置的一个或多个计算设备。
[0127] 计算设备400可包括数据存储系统402、存储器404、辅助存储系统406、处理系统408、输入接口410、显示接口412、通信接口414以及一个或多个通信介质416。通信介质416可使得能够实现处理系统408、输入接口410、显示接口412、通信接口414、存储器404以及辅助存储系统406之间的数据通信。计算设备400可包括除图12的示例中所示的那些之外的部件。此外,某些计算设备不包括图12的示例中所示的所有部件。
[0128] 计算机可读介质可以是处理系统408可以从其读取数据的介质。计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质可包括存储数据以用于后续检索的物理设备。计算机存储介质是非临时性的。例如,计算机存储介质不独有地包括传播信号。计算机存储介质可包括易失性存储介质和非易失性存储介质。计算机存储介质的示例性类型可包括随机存取存储器(RAM)单元、只读存储器(ROM)设备、固态存储器设备、光盘(例如,压缩盘、DVD、BluRay盘等)、磁盘驱动器、电可擦可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁带驱动器、磁盘以及存储数据以用于后续检索的其他类型的设备。通信介质可包括一个设备能够向另一设备传送数据的介质。通信介质的示例性类型可包括通信网络、通信电缆、无线通信链路、通信总线以及一个设备能够向另一设备传送数据的其他介质。
[0129] 数据存储系统402可包括存储数据以用于后续检索的系统。在图7的示例中,数据存储系统402包括存储器404和辅助存储系统406。存储器404和辅助存储系统406可存储数据以用于稍后检索。在图7的示例中,存储器404存储计算机可执行指令418和程序数据420。辅助存储系统406可存储计算机可执行指令422和程序数据424。在物理上,存储器404和辅助存储系统406每个可使用一个或多个计算机存储介质来实现。
[0130] 可将处理系统408耦合到数据存储系统402。处理系统408可从数据存储系统402读取计算机可执行指令且可执行计算机可执行指令。由处理系统408进行的计算机可执行指令的执行可配置和/或促使计算设备400执行计算机可执行指令所指示的动作。例如,由处理系统408进行的计算机可执行指令的执行可配置和/或促使计算设备400提供基本输入/输出系统、操作系统、系统程序、应用程序,或者可配置和/或促使计算设备400提供其他功能。
[0131] 处理系统408可从一个或多个计算机可读介质读取计算机可执行指令。例如,处理系统408可读取并执行存储在存储器404和辅助存储系统406上的计算机可执行指令418和422。在某些示例中,计算设备400可执行各种操作以在存在敏感表面上接收手势输入的指示并识别对应于手势输入的词。
[0132] 处理系统408可包括一个或多个处理单元426。可将处理单元426实现为执行计算机可执行指令的物理设备。在各种示例中,可将处理单元426实现为执行计算机可执行指令的各种类型的物理设备。例如,可将处理单元426中的一个或多个实现为微处理器、微处理器内的处理核、数字信号处理器、图形处理单元或执行计算机可执行指令的另一类型的物理设备。
[0133] 输入接口410可使得计算设备400能够从存在敏感表面428接收输入。可将存在敏感表面428实现为检测诸如手指和触针之类的一个或多个输入对象的存在的设备。在某些示例中,将存在敏感表面428集成到计算设备400的外壳中。在其他示例中,存在敏感表面428在计算设备400的外壳外面。
[0134] 显示接口412可使得计算设备400能够在显示器430上显示数据。显示器430可包括显示输出的设备。显示器的示例性类型可包括监视器、触摸屏、显示屏、电视以及显示数据的其他类型的设备。在某些示例中,将显示器430集成到计算设备400的外壳中。在其其他示例中,显示器430在计算设备400的外壳之外。
[0135] 通信接口414可使得计算设备400能够通过一个或多个通信介质来发送和接收数据。可将通信接口414实现为各种类型的设备。例如,可将通信接口414实现为网络接口卡(NIC)、无线网络适配器、通用串行总线(USB)端口或使得计算设备400能够通过一个或多个通信介质来发送和接收数据的另一类型的设备。
[0136] 图13是图示出根据本公开的一个或多个技术的示例性操作500的流程图。在某些示例中,计算设备10(图1)可执行操作500。在其他示例中,其他计算设备可执行操作500。
[0137] 在设备开始操作500之后,设备可在与虚拟键盘相关联的存在敏感表面的一部分处接收手势输入的指示(502)。虚拟键盘可包括虚拟键集合,来自该虚拟键集合的每个虚拟键与存在敏感表面的区域相关联。另外,设备可定义一系列输入点,其表示跨虚拟键盘的手势输入的路径(504)。此外,该设备可定义对应于候选词集合中的不同词的锚定点集合(506)。每个锚定点可对应于与来自该虚拟键集合的虚拟键相关联的存在敏感表面的位置。另外,该设备可针对每个锚定点集合中的每个相应锚定点识别输入点系列中的相关输入点(508)。该设备可确定用于锚定点集合中的每个相应锚定点的距离分值(510)。针对锚定点集合中的每个锚定点,用于相应锚定点的距离分值可基于相应锚定点与用于相应锚定点的相关输入点之间的在存在敏感表面上的距离。该设备可基于用于锚定点的距离分值来识别对应于手势输入的候选词集合中的词(512)。
[0138] 可至少部分地用硬件、软件、固件或其任何组合来实现在本公开中描述的技术。例如,可在一个或多个处理器内实现所述技术的各种方面,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或离散逻辑电路以及此类部件的任何组合。术语“处理器”或“处理电路”可一般地指的是任何前述逻辑电路,单独的或与其他逻辑电路组合,或者是任何其他等效电路。包括硬件的控制单元也可执行本公开的技术中的一个或多个。
[0139] 可在同一设备内或在单独设备内实现此类硬件、软件以及固件以支持在本公开中所述的各种技术。另外,可一起或者单独地作为分立但可互操作逻辑器件来实现任何所述单元、模块或部件。作为模块或单元的不同特征的描述意图突出不同的功能方面,并且不一定暗指必须用单独硬件、固件或软件部件来实现此类模块或单元。相反地,与一个或多个模块或单元相关联的功能可由单独硬件、固件或软件部件执行或者集成在公共或单独硬件、固件或软件部件内。
[0140] 还可在包含指令的计算机可读介质、诸如计算机可读存储介质中体现或编码在本公开中所述的技术。在计算机可读介质、包括计算机可读存储介质中嵌入或编码的指令可促使一个或多个可编程处理器或其他处理器实现本文所述的技术中的一个或多个,诸如当在计算机可读介质中包括或编码的指令被一个或多个处理器执行时。计算机可读存储介质可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(RPOM)、可擦可编程序只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器、硬盘、压缩磁盘ROM(CD-ROM)、软盘、盒式磁带、磁介质、光学介质或其他计算机可读介质。在某些示例中,制品可包括一个或多个计算机可读存储介质。
[0141] 已描述了各种示例。这些及其他示例在所附权利要求的范围内。