解码用于图形键盘的不准确手势的制作方法_2

文档序号:8435812阅读:来源:国知局
空间模型26包括用于每一键的双变量高斯模型。用于键的双变量高斯模型可以包括对应于呈现指定键的UI设备4的位置的坐标分布(例如(x,y)坐标对)。更具体地,在一些示例中,用于键的双变量高斯模型可以包括与当用户预期选择给定键时用户最频繁选择的UI设备4的位置相对应的坐标分布。用户输入的位置数据和空间模型26的较高密度区域之间的距离越短,已选择与空间模型26相关联的键的概率越高。用户输入的位置数据和空间模型26的较高密度区域之间的距离越大,已选择与空间模型26相关联的键的概率越低。
[0030]手势模块8可以使用空间模型26来将触摸事件序列中的一个或多个触摸事件的位置分量(例如坐标)与图形键盘16的一个或多个键的相应位置进行比较并且基于比较来生成所发生的对键的选择的概率。在一些示例中,手势模块8可以使用空间模型26来生成空间模型分值(例如空间模型概率)。至少部分地基于手势经过的UI设备4的位置,空间模型分值可以指示被选键的概率。在一些示例中,至少部分地基于手势经过的Π设备4的位置,空间模型分值可以指示一组被选键的组合概率。
[0031]例如,手势模块8可以使用空间模型26来将触摸事件序列中的每一触摸事件的位置分量与图形键盘16的特定键的键位置进行比较。序列中的每一触摸事件的位置分量可以包括Π设备4的一个位置。图形键盘16中的键的键位置(例如键的质心)可以包括Π设备4的不同位置。手势模块8可以使用空间模型26来确定两个位置之间的欧几里德距离并且基于欧几里德距离来生成选择该键的概率。空间模型26可以指示与一个或多个触摸事件共享较大欧几里德距离的键相比,对与一个或多个触摸事件共享较小欧几里德距离的键较大的概率。基于与每一键相关联的空间模型概率,手势模块8可以将具有最高空间模型概率的各个键选择汇编成时间排序的键序列,然后,手势模块8可以确定表示字符串。在一些示例中,当Π设备4检测到手势的每一部分时,手势模块8可以递增地确定不同键的概率。手势模块8可以进一步使用所确定的键和语言模型10来基于与所确定的键相关联的字符、由计算设备2确定的先前文本等等,确定可能的字符、字符串、词和/或字符串组和/或词组。
[0032]在一些示例中,计算设备2还包括语言模型10。语言模型10可以包括词典。在一些示例中,字典可以包括词的列表以及可以包括有关所列出的词的附加信息。词典可以由数据结构的范围表示,诸如阵列、列表和/或树。例如,语言模型10可以包括以Trie树数据结构存储的词典。词典Trie树数据结构可以包含多个节点,每一节点可以表示字母。词典Trie树中的第一节点可以称为可能不对应于字母的入口节点。在其他示例中,入口节点可以对应于字母。每一节点可以具有一个或多个子节点。例如,入口节点可以具有26个子节点,每个对应于英文字母表的字母。
[0033]词典Trie树中的节点的子集可以每个包括指示该节点是终端节点的标志。词典Trie树的每一终端节点可以指示完整词(例如候选词)。在一些示例中,由沿从入口节点到终端节点的节点路径的节点指示的一组字母可以拼写出由终端节点指示的词。在一些示例中,语言模型10可以是安装在计算设备2上的缺省词典。在其他示例中,语言模型10可以包括可以存储在计算设备2或存储在一个或多个远程计算设备并且可以经一个或多个通信信道由计算设备2访问的多个词典源。
[0034]在一些示例中,可以以计算设备2的固件实现语言模型10。语言模型10可以包括语言模型频率信息,诸如η元语言模型。基于序列中的先前项,η元语言模型可以对连续项序列中的项Xi(字母或词)提供概率分布(例如PUilxiK,...,^^。例如,二元语言模型(η元模型,其中η = 2)可以提供字母“w”在序列“no”后的概率。在一些示例中,语言模型10包括具有综合语言模型频率信息的词典Trie树。例如,词典Trie树的每一节点可以包括字母的表示和概率值。
[0035]手势模块8可以从UI模块6接收表示由UI模块6生成的触摸事件序列的数据。触摸事件可以包括表示Π设备4呈现图形键盘16的每一键的Π设备4的位置的数据。手势模块8可以基于键的位置来确定触摸事件序列表示对一个或多个键的选择。
[0036]手势模块8可以基于选择来生成字符串,其中字符串中的每一字符对应于该选择中的至少一个键。在一些示例中,手势模块8可以使用语言模型10来确定多个字符串,以识别语言模型10中包括手势模块8使用空间模型26确定的键指示的一部分或所有字符的一个或多个候选词。如图1所示,用户可以在Π设备4执行经过键1-m的手势8。因此,手势模块8可以执行字符串1-m的查找,以确定以1-m开始的一组候选词并且对每一相应候选词确定相应的空间和语言模型分值。手势模块8可以随着用户执行手势22而递增地执行这样的技术。手势模块8可以执行字符串1-m的查找,以基于用于每一相应候选词的空间和语言模型分值来确定以1-m开始的一组候选词。
[0037]在一些示例中,手势模块8至少部分地基于用于每一相应候选词的相应空间和语言模型分值,来确定用于每一候选词的组合分值。因此,用于候选词的组合概率可以表示基于语言上下文和手势准确度的候选词相对于一组键的概率。手势模块8可以按组合分值,以从最可能候选词到最不可能候选词的降序,排序一组候选词中的候选词。在一些示例中,手势模块8可以将使UI设备4在建议词区24A-24C中输出具有最高概率的一个或多个候选词作为建议词的数据发送到Π模块6。在其他示例中,可以在编辑区14中输出具有最高概率的一个或多个候选词。
[0038]本公开的技术可以提高用户能将文本输入到计算设备的速度和准确度。使用本公开的技术,用户可以执行用于选择图形键盘的一个或多个键的不准确手势。当用户执行手势时,计算设备可以递增地确定由用户选择的键,以及可选地由该手势指示的一个或多个词。计算设备可以确定手势的准确度以及相应地调整与键相关联的空间模型来提高由计算设备选择用户的预期键的准确度。现在,将参考图1的组件进一步描述本公开的技术。
[0039]如图1的示例中所示,UI模块6可以使UI设备显示⑶I 12。用户可能期望将例如词“I’m”的文本输入到文本输入区14。根据本公开的技术,用户可以在图形键盘16处执行手势。在一个示例中,手势可以是用户的手指移动成UI设备4接近使得在执行手势的整个中由Π设备4检测到由该手指执行的手势的连续运动。在不同的示例中,用户可以将他/她的手指移动成与UI设备4接近使得由UI设备临时检测到该手指并且然后用户的手指移离Π设备4使得不再检测到该手指。该手势可以包括多个部分。在一些示例中,手势可以被分成具有基本上相同持续时间的部分。在手势包括多个部分的情况下,手势可以包括其可以是在检测到该手势完成前检测的手势的部分。例如,可以将手势的一部分指定为用户将他/她的手指移出与UI设备4接近使得不再检测到该手指的最终部分。
[0040]当用户执行手势来选择多个键中的一组键时,UI模块6可以在Π设备4处检测到具有手势路径22的手势。如图1所示,用户通过跟踪经过或在与期望词的字符(例如由“I”键20Α和“Μ”键20C表示的字符相对应的键盘16的键附近的手势路径22,执行该手势。UI模块6可以将指示手势路径22的数据发送到手势模块8。例如,当由Π设备4检测并且由Π模块6接收到手势路径22时,UI模块6可以将指示手势路径22的触摸事件递增地发送到手势模块8。例如,当由Π设备检测并且由Π模块6接收到手势路径22时,UI模块6可以将包括指示手势路径22的坐标对的流触摸事件发送到手势模块8。
[0041]响应于从UI模块6接收指示手势路径22的数据,手势模块8可以确定一个或多个候选词。候选词可以是由手势路径22指示的一组键组成的词。键组可以基于手势路径22和词典确定。手势模块8可以通过确定手势路径22经过的一组对准点、确定用于多个键中的至少两个键中的每个的相应成本值、以及比较用于多个键中的至少两个中的至少每一个的相应成本值,来确定候选词,如下文进一步所述。在一些示例中,相应成本值可以包括至少部分地基于用于每个相应候选词的相应空间和语言模型分值的至少两个键中的每一个的组合分值。
[0042]对准点可以是可以指示多个键中的一个键的沿手势路径22的一个点。对准点可以包括对应于对准点的确定位置的一个或多个坐标。例如,对准点可以包括对应于GUI 12上的点的笛卡尔坐标。
[0043]在一些示例中,手势模块8基于与手势路径22相关联的多个特征,来确定手势路径22经过的对准点组。与手势路径22相关联的多个特征可以包括手势路径22的段的长度。例如,手势模块8可以确定沿从先前对准点和当前对准点的手势段的长度。为更好对准,长度将更紧密地接近两个相应的键盘字母之间的直线距离。
[0044]在另一示例中,手势模块8可以确定从手势路径22的第一点到第二点的段的方向来确定对准点组。为更好对准,该段的方向将更紧密地接近两个相应的键盘字母之间的直线的方向。
[0045]在一些示例中,手势路径22的段的曲率、表示检测路径22的段的速率的速度、以及指示检测手势路径22的速率的速度。如果手势模块8确定较慢速度或暂停当前速度,手势模块8可以确定该段上的点更可能是对准点。如果手势模块8确定快速绘制手势,手势模块8可以确定该手势更可能不准确,因此,与空间模型26相比,手势模块8可以增加语言模型(例如η元频率)10的权重。
[0046]如上所述,手势模块8可以使用空间模型26来确定用户已基于手势22的对准点选择图形键盘16的特定键的一个或多个概率。在一些示例中,空间模型包括用于特定键的双变量高斯模型。用于键的双变量高斯模型可以包括与显示指定键的UI设备4的位置相对应的坐标分布(例如(x,y)坐标对)。更具体地,在一些示例中,用于键的双变量高斯模型可以包括当用户想要选择指定键时由用户最频繁选择的UI设备4的位置相对应的坐标的分布。所观察的对准点出现离空间模型的较高密度区越近,已选择与空间模型相关联的键的概率越高。所观察的对准点离空间模型的较高密度区越远,已选择与空间模型相关联的键的概率越低。
[0047]在一个示例中,手势模块8可以基于手势路径22的具有高曲率值的段,确定一组对准点中的对准点。此外,手势模块8可以基于手势路径22的具有低局部速度(例如,用户手指在执行该手势段时慢下来)的段,确定该组对准点中的对准点。在图1的示例中,手势模块8可以确定在手势路径22的开始处的第一对准点、在手势路径22经历曲率的显著变化(例如大于阈值)的点处的第二对准点、以及在手势路径22的结束处的第三对准点。在其他示例中,本公开的技术能将手势的形状识别为特征并且基于手势的形状来确定对准点。在一些示例中,如图3B所示的具有宽曲率的手势可以指示比如图3A所示的紧曲率低的准确度的手势。
[0048]在一些示例中,手势模块8可以确定用于包括在键盘16中的多个键中的至少两个键中的每一个的相应成本值。例如,基于使用语言模型10和空间模型26的组合分值,相应成本值中的每一个可以表示对准点指示键的概率。在一些示例中,相应成本值可以基于手势路径的物理特征、对准点和/或键。例如,相应成本值可以基于对准点相对于键的物理位置的物理位置。
[0049]在一些示例中,相应成本值可以基于语言模型10。例如,相应成本值可以基于在第一键后将选择第二键的概率(例如,在“I”键后将选择“M”键的概率)。在一些示例中,至少部分地基于语言模型10来确定相应成本值所用于的键。在一些示例中,在对准点指示键具有较大可能性的情况下,成本值较低。在其他示例中,在对准点指示键具有较大可能性的情况下,成本值较高。
[0050]在图1的示例中,手势模块8可以确定表示第一对准点指示“ I ”键20A的概率的第一成本值以及表示第二对准点指示“N”键20B的概率的第二成本值。手势模块8还可以确定表示第三对准点指示“M”键20C的概率的第三成本值。
[0051]手势模块8可以比较用于多个键中的至少两个键的相应成本值来确定具有组合成本值的键组合。组合成本值可以表示手势路径22指示键的组合的概率。手势模块8可以比较用于多个键中的至少两个键的相应成本值来确定由对准点指示至少两个键中的哪一个。手势模块8可以通过确定每一对准点指示哪些键来确定键的组合。
[0052]在一些示例中,手势模块8确定对准点指示至少两个键的哪一个,而不关心由其他对准点指示哪些键。在其他示例中,手势模块8基于由其他对准点指示哪些键,确定由该对准点指示至少两个键中的哪一个。在这样的示例中,手势模块8可以基于用于当前对准点的相应成本值,修改由先前对准点指示哪一键的确定。
[0053]根据本公开的技术,手势模块8可以至少部分地基于与手势22相关联的一个或多个特征来确定手势22的准确度。例如,如图1所示,手势22近似与“N”键20B和“M”键20C之间的区域相交。在这样的示例中,因为手势未与“M”键20C的质心相交,用户可能未准确地执行手势22。为了确定手势22的准确度,手势模块8可以确定该手势经过的一组对准点。例如,手势模块8可以确定基本上包括在“N”键20B和“M”键20C之间的区域中的一组对准点。
[0054]手势模块8可以确定从对准点中的一个或多个到“N”键20B和“M”键20C中的至少一个的位置的距离。例如,手势模块8可以确定“M”键20C的质心与对准点中的一个或多个之间的距离。当“M”键20C的质心和对准点中的一个或多个之间的距离小于阈值距离时,手势模块8可以确定低准确度。当“M”键20C的质心与对准点中的一个或多个之间的距离大于阈值距离时,手势模块8可以确定高于低准确度的准确度。在其他示例中,当“M”键20C的质心和对准点中的一个或多个之间的距离与“N”键20B的质心和对准点中的一个或多个之间的距离基本
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1