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

文档序号:8435812阅读:来源:国知局
上相同时(例如,指示基本上在两个键之间相交而不是通过两个键中的一个的手势),手势模块8可以定义低准确度。在其他示例中,当“M”键20C的质心和对准点中的一个或多个之间的距离与“N”键20B的质心和对准点中的一个或多个之间的距离明显不同时(例如,指示手势明显与两个键中的一个相交,并且明显不与两个键中的另一个相交的手势),手势模块8可以确定高于低准确度的准确度。
[0055]在当前示例中,在确定由低准确度表征手势22时,手势模块8可以确定用于组合“I’m”和“in”的语言模型概率。即,手势模块8可以基于“I”键20A和“N”键20B来确定语言模型概率。为了确定语言模型概率,手势模块8可以确定包括在语言模型10中的包括字符串“IN”的一个或多个候选词。在一个示例中,语言模型10可以包括用于候选词“in”的例如由值49表示的概率。手势模块8也可以确定包括在语言模型10中的包括字符串“IM”的一个或多个候选词。在当前示例中,语言模型10可以包括用于候选词“I’m”的概率,例如51。在当前示例中,手势模块8可以确定“in”和“I’m”的语言模型概率之间的差小于阈值差。此外,手势模块8可以确定用于手势22的准确度低。
[0056]响应于确定手势22的准确度低并且“in”和“I’m”的语言模型概率之间的差小于阈值差,手势模块8可以修改手势22指示“N”键20B和“M”键20C中的至少一个的概率。例如,在一些示例中,手势模块8可以基于空间模型概率和语言模型概率来确定手势指示键的组合概率。
[0057]响应于确定手势22的准确度低并且“in”和“I’m”的语言模型概率之间的差小于阈值差,手势模块8可以修改组合概率,诸如减小包括在手势指示键的组合概率中的语言模型概率和/或增加其空间模型概率。作为一个示例,手势模块8可以减小语言模型概率和/或增加空间模型概率来通过更依赖于空间模型概率来确定预定键,提高键选择的准确度。因为用户在执行不准确手势时很可能在预期键的方向中轻微做手势,手势模块8可能更依赖于可以准确地指示预期键的空间模型。将参考图2-5进一步描述用于修改诸如组合概率、空间模型概率和/或语言模型概率的概率的示例性技术。
[0058]在修改例如手势指示一个或多个键的组合概率后,手势模块8可以确定可以包括由语言模型10建模的候选词的前缀的一个或多个候选字符串。手势模块8可以选择与满足阈值的一组最高组合分值相关联的一个或多个候选词的组。例如,手势模块8可以选择具有比与具有第四最高组合分值的候选词大的一组最高组合分值相关联的3个候选词的组。在其他示例中,阈值可以指示候选词的数量。例如,阈值可以是3,因此手势模块8可以确定具有最高组合分值的3个候选词。响应于确定一个或多个候选词的组,手势模块8可以将使UI设备4输出一个或多个候选词的组中的每一个候选词的数据发送到UI模块6。例如,如图1所示,Π设备4可以分别在词建议区24A-24C内输出候选词“I’m”、“in”和“into”。以这种方式,计算设备2可以输出至少部分地基于该手势指示多个键中的至少一个键的修改概率的候选词以显示,其中,计算设备2可以至少部分地基于手势路径20C的准确度来修改手势20C指示多个键中的至少一个键的概率。
[0059]图2是图示根据本公开的一个或多个技术的图1中所示的计算设备2的一个示例的进一步细节的框图。图2图示了如图1所示的计算设备2的仅一个特定示例,并且在其他实例中可以使用计算设备2的许多其他示例。
[0060]如图2的特定示例中所示,计算设备2包括一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46、一个或多个存储设备48和用户接口(UI)设备4。在一个示例中,计算设备2进一步包括可由计算设备2执行的Π模块6、手势模块8和操作系统58。在一个示例中,计算设备2进一步包括语言模型10、键区52、有效束(beam) 54和下一束56。组件4、40、42、44、46和48中的每一个(物理、通信和/或操作地)用于组件间通信。在一些示例中,通信信道50可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。作为图2中的一个示例,组件4、40、42、44,46和48可以通过一个或多个通信信道50耦接。UI模块6和手势模块8也可以相互以及与计算设备2中的诸如语言模型10、键区52、有效束54和下一束56的其他组件传送信息。
[0061]在一个示例中,处理器40被配置成实现用于在计算设备2内执行的功能和/或过程指令。例如,处理器40可以能够处理在存储设备48中存储的指令。处理器40的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效的离散或集成逻辑电路中的任何一个或多个。尽管为示例目的在图1和2中示为独立的计算设备2,但计算设备可以是包括处理器40或用于执行软件指令的其他适当的计算环境的任何组件或系统,并且例如不一定包括UI设备4。
[0062]一个或多个存储设备48可以被配置成在操作期间存储计算设备2内的信息。在一些示例中,存储设备48被描述为计算机可读存储介质。在一些示例中,存储设备48是临时存储器,意指存储设备48的主要目的不是长期存储。在一些示例中,存储设备48被描述为易失性存储器,意指当计算机关机时存储设备48不保持所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和本领域中公知的其他形式的易失性存储器。在一些示例中,使用存储设备48来存储用于由处理器40执行的程序指令。在一个示例中,存储设备48可以由在计算设备2上运行的软件或应用(例如手势模块8)使用来临时地存储程序执行期间的信息。
[0063]在一些示例中,存储设备48还包括一个或多个计算机可读存储介质。存储设备48可以被配置成存储比易失性存储器更大量的信息。存储设备48可以进一步被配置成长期存储信息。在一些示例中,存储设备48包括非易失性存储元件。这样的非易失性存储元件的示例包括磁硬盘、光盘、软盘、闪存、或电可编程存储器(EPROM)或电可擦可编程存储器(EEPROM)的形式。
[0064]在一些示例中,计算设备2还包括一个或多个通信单元44。在一个示例中,计算设备2利用通信单元44来经诸如一个或多个无线网络的一个或多个网络与外部设备通信。通信单元44可以是网络接口卡,诸如以太网卡、光收发器、射频收发器或能发送和接收信息的任何其他类型的设备。这样的网络接口的其他示例可以包括蓝牙、3G和W1-Fi无线电计算设备以及通用串行总线(USB)。在一些示例中,计算设备2利用通信单元44来与诸如服务器的外部设备无线地通信。
[0065]在一个示例中,计算设备2还包括一个或多个输入设备42。在一些示例中,输入设备42被配置成通过触觉、音频或视频反馈来从用户接收输入。输入设备42的示例包括存在敏感显示器、鼠标、键盘、语音应答系统、视频相机、麦克风或用于检测来自用户的命令的任何其他类型的设备。在一些示例中,存在敏感显示器包括触摸敏感屏。
[0066]一个或多个输出设备46也可以包括在计算设备2中。在一些示例中,输出设备46被配置成使用触觉、音频或视频刺激来向用户提供输出。在一个示例中,输出设备46包括存在敏感显示器、声卡、视频图形适配卡或用于将信号转换成可由人或机器理解的适当形式的任何其他类型的设备。输出设备46的另外的示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或能生成用户能理解的输出的任何其他类型的设备。
[0067]在一些示例中,Π设备4可以包括输入设备42和/或输出设备46的功能。在图2的示例中,Π设备4可以是存在敏感显示器。在一些示例中,存在敏感显示器可以检测存在敏感显示器的屏幕处和/或附近的物体。作为一个示例范围,存在敏感显示器可以检测物体,诸如存在敏感显示器的物理屏的2英尺或更小内的手指或触笔。存在敏感显示器可以确定检测该物体的存在敏感显示器的位置(例如U,y)坐标)。在另一示例范围中,存在敏感显示器可以检测离存在敏感显示器的物理屏6英尺或更少的物体6,其他范围也是可能的。存在敏感显示器可以使用电容、电感和/或光学识别技术来确定由用户的手指选择的显示器的位置。在一些示例中,存在敏感显示器使用触觉、音频或视频刺激将输出提供给用户,如参考输出设备46所述。
[0068]计算设备2可以包括操作系统58。在一些示例中,操作系统58控制计算设备2的组件的操作。例如,在一个示例中,操作系统58便于UI模块6和/或手势模块8与处理器40、通信单元44、存储设备48、输入设备42以及输出设备46的通信。UI模块6和手势模块8可以每个包括可由计算设备2执行的程序指令和/或数据。作为一个示例,UI模块6可以包括使计算设备2执行在本公开中所述的操作和动作中的一个或多个的指令。
[0069]计算设备2能包括为清楚起见在图2中未示出的另外的组件。例如,计算设备2能包括向计算设备2的组件供电的电池。类似地,在计算设备2的示例中,图2中所示的计算设备2的组件可能不必要。例如,在一些结构中,计算设备2可以不包括通信单元44。
[0070]根据本公开的技术,计算设备2可以在输出设备44处输出包括多个键的图形键盘。用户可以在输入设备42处执行用于选择多个键中的一组键的手势。响应于用户执行该手势,输入设备42可以将可由UI模块6接收的诸如图1的手势路径22的手势路径检测为手势路径数据。然后,UI模块6可以将诸如手势的一个或多个指示的手势路径数据发送到手势模块8。在一些示例中,当由输入设备42检测到手势路径22时,UI模块6将该手势路径数据递增地发送到手势模块8。
[0071]响应于接收手势路径数据,手势模块8可以在可以包括在语言模型10中的词典Trie树的入口节点处创建令牌。在一些示例中,语言模型10可以被实现为Trie树数据结构。每一可移动令牌可以表示词典中的节点(例如部分词)和沿手势的点之间的部分对准。当令牌前进到词典中的子节点(例如词中的下一字母)时,手势上的相应对准点也可以前进。当令牌前进到词中的下一字母时,本公开的技术可以确定令牌需要沿手势路径前进多远。例如,本公开的技术可以包括考虑如下所述的多个特征来搜索最对准键的字母的沿手势的对准点。
[0072]手势模块8可以将令牌推到数据结构中,诸如存储与图形键盘的键的不同可能组合相对应的词前缀的束或表。手势模块8可以在令牌的子节点中的每一个上创建令牌副本。在图1的示例中,手势模块8可以在表示字母“I”的子节点上创建第一令牌副本以及在表示字母“M”的子节点上创建第二令牌副本。
[0073]对于每一令牌副本,手势模块8可以基于与手势路径数据相关联的多个特征来确定由该手势经过的对准点。在图1的示例中,手势模块8可以确定第一对准点位于手势路径22的开始处。在一些示例中,手势模块8可以确定在沿手势路径的点处的路径的曲率。在这样的示例中,手势模块8可以确定该点更可能是具有高曲率的对准点(其中,手势路径在该点处突然改变方向)。在其他示例中,手势模块8可以确定中段曲率(沿手势的两个点之间的手势路径的最大曲率)。在另一示例中,手势模块8可以确定点不太可能是具有高中段曲率的下一对准点。在一些示例中,手势模块8可以基于检测手势路径的速度来确定点是对准点。在一些示例中,较慢的检测速率指示该点是对准点。在一些示例中,高中段曲率可以指示在第一点和第二点之间存在转角,表明第二点不太可能是下一对准点(例如中间错过的点)。
[0074]在一些示例中,对准点可以基于两个或更多点间的手势段间的最大距离以及从第一键到第二键的理想线。理想线可以是例如从第一键到第二键的最短距离路径。为了更好对准,最大距离可以小,指明手势段不偏离理想线。
[0075]对于每一对准点,手势模块8可以确定用于多个键中的至少两个键中的每一个的相应成本值。相应成本值中的每一个可以表示对准点指示多个键中的一个键的概率。在图1的示例中,手势模块8可以确定表示第一对准点指示表示包括在第一令牌中的字母“I”的节点的概率的第一成本值,以及表示第一对准点指示表示第二令牌中的字母“U”的节点的概率的第二成本值。在一些示例中,手势模块8可以用相应成本值更新每一令牌。在图1的示例中,手势模块8可以更新第一令牌副本中的第一成本值和第二令牌副本中的第二成本值。
[0076]在一些示例中,手势模块8通过将相应物理成本值(例如空间模型分值)与相应词典成本值(例如语言模型分值)进行比较,来确定相应成本值,如下进一步所述。不同于基于语言模型10的相应词典成本值,手势模块8可以对基于空间模型26的相应物理成本值加权。例如,手势模块8可以通过对将物理成本值乘以物理加权值的结果和将词典成本值乘以词典加权值求和来确定成本值。
[0077]在一些示例中,手势模块8可以确定应当加权词典成本值大于物理成本值。在存在物理成本值可能不准确的指示的情况下,诸如以高速度速率检测到手势路径的情况下,手势模块8可以确定应当加权词典成本值大于物理成本值。例如,手势模块8可以确定与特征(例如速度)相关联的值满足一个或多个阈值。例如,手势模块8可以确定手势的速度大于或等于阈值。在其他示例中,手势模块8可以确定手势的速度小于或等于阈值。在任一情况下,如果所确定的值满足阈值,手势模块8可以确定物理成本值不可靠。
[0078]在一些示例中,手势模块8可以确定应当加权物理成本值大于词典成本值。在存在词典成本值可能不准确的情况下,诸如在用户具有输入未包括在词典中的词的历史的情况下,手势模块8可以确定应当加权物理成本值大于词典成本值。
[0079]在一些示例中,手势模块8可以确定用于多个键中的至少两个键中的每一个的相应
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1