CN104798016A - 递增多触摸手势识别 - Google Patents

递增多触摸手势识别 Download PDF

Info

Publication number
CN104798016A
CN104798016A CN201380057887.1A CN201380057887A CN104798016A CN 104798016 A CN104798016 A CN 104798016A CN 201380057887 A CN201380057887 A CN 201380057887A CN 104798016 A CN104798016 A CN 104798016A
Authority
CN
China
Prior art keywords
gesture
sub
group
key
point
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380057887.1A
Other languages
English (en)
Other versions
CN104798016B (zh
Inventor
翟树民
毕小俊
欧阳瑜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN104798016A publication Critical patent/CN104798016A/zh
Application granted granted Critical
Publication of CN104798016B publication Critical patent/CN104798016B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0233Character input methods
    • G06F3/0237Character input methods using prediction or retrieval techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04808Several contacts: gestures triggering a specific function, e.g. scrolling, zooming, right-click, when the user establishes several contacts with the surface simultaneously; e.g. using several fingers or a combination of fingers and pen

Abstract

在一个示例中,一种方法包括由计算设备并且为了在输出设备处显示而输出包括多个键的图形键盘,并且由计算设备接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势。本示例方法进一步包括响应于检测到第一子手势和第二子手势而至少部分地基于第一组键和第二组键来确定候选单词,并且由计算设备并且为了在输出设备处显示而输出候选单词。

Description

递增多触摸手势识别
背景技术
计算设备(例如,移动电话、平板计算机等)可在存在敏感屏幕处提供图形键盘以促进文本录入。例如,计算设备可提供一种图形键盘,其允许用户通过敲击与图形键盘的键相关联的存在敏感屏幕的区域来录入数据。
此类键盘遭受准确度、速度和/或不能适应用户方面的限制。在某些情况下,这些键盘可要求来自用户的文本输入,其对于较长的单词而言是冗长、缓慢和/或容易产生错误的。较新的计算设备可提供允许用户通过执行使用多个手指的手势来输入文本的图形键盘。
发明内容
在一个示例中,一种方法包括由计算设备并且为了在输出设备处显示而输出包括多个键的图形键盘,并且由计算设备接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势。本示例方法还包括由计算设备并且响应于检测到第一子手势和第二子手势而至少部分地基于第一组键和第二组键来确定候选单词,其中,所述确定包括:由计算设备并且至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;由计算设备并且至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;由计算设备并且至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及由计算设备至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词。该示例方法还包括由计算设备并且为了在输出设备处显示而输出候选单词。
在一个示例中,一种计算设备包括至少一个处理器。所述至少一个处理器被配置成输出包括多个键的图形键盘以便在输出设备处显示,接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势,以及响应于检测到第一子手势和第二子手势而至少部分地基于所述第一组键和第二组键来确定候选单词。所述确定包括:至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词。所述至少一个处理器还被配置成输出候选单词以便在输出设备处显示。
在一个示例中,一种编码有指令的计算机可读存储介质,该指令在被执行时使至少一个处理器输出包括多个键的图形键盘以便在输出设备处显示,接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势,以及响应于检测到第一子手势和第二子手势而至少部分地基于所述第一组键和第二组键来确定候选单词。所述确定包括:至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词。所述计算机可读存储介质进一步编码有指令,该指令在被执行时使所述至少一个处理器输出候选单词以便在输出设备处显示。
在附图和以下描述中阐述了本公开的一个或多个示例的细节。根据本描述和附图以及根据权利要求,其他特征、目的以及优点将是显而易见的。
附图说明
图1图示出根据本公开的一个或多个技术的可用来根据多触摸手势而递增地确定文本的示例计算设备的概念图。
图2是图示出根据本公开的一个或多个技术的图1中所示的计算设备的一个示例的更多细节的框图。
图3A—3D是图示出根据本公开的一个或多个技术的图1中所示的图形键盘和多触摸手势输入的示例的概念图。
图4—7是图示出根据本公开的一个或多个技术的图形键盘和多触摸手势输入的其他示例的概念图。
图8是图示出根据本公开的一个或多个技术的用以根据多触摸手势来确定候选单词的计算设备的示例操作的流程图。
图9A—9B是图示出根据本公开的一个或多个技术的用以根据手势输入来确定候选单词的计算设备的示例操作的流程图。
具体实施方式
一般地,本公开针对用于基于用以选择包括在基于手势的图形键盘中的一组或多组键的所检测到的多触摸手势(例如,双手手势)而递增地确定一个或多个候选单词的技术。在某些示例中,存在敏感显示设备能够检测以在存在敏感显示器处或附近执行的多触摸手势的多个子手势的形式的用户输入。本公开的技术可改善计算设备能够基于用以选择包括在输出设备处显示的图形键盘中的键的此类用户输入而选择候选单词的速度和准确度。
例如,使用本公开的一个或多个技术,计算设备可递增地且实时地确定由用户执行的多触摸手势所指示的一个或多个候选单词。通过随着执行手势而递增地确定候选单词,计算设备可用潜在地减少的后手势录入处理时间来输出候选单词。为了确定候选单词,计算设备可递增地确定与包括在图形键盘中的键的给定位置对准的多触摸手势的每个子手势的一个或多个点。
基于此确定,计算设备可通过遍历相应的子手势和词典(例如,字典)中的各种状态来构造用于多触摸手势的每个子手势的一个或多个可能解释。这样,本公开的某些技术允许计算设备使用手势模型每次一个节点/字母地递增地使多触摸手势与词典特里(trie)中的单词匹配。在某些示例中,本公开的技术可允许计算设备使用一个或多个空间和/或时间对准特征来改善用于随着用户提供输入以录入文本而预测候选单词和/或执行自动完成功能的递增确定的准确度。
图1图示出根据本公开的一个或多个技术的可用来根据多触摸手势而递增地确定文本的示例计算设备2的概念图。在某些示例中,计算设备2可与用户18相关联。
计算设备2的示例可包括但不限于便携式或移动设备,诸如移动电话(包括智能电话)、膝上型计算机、台式计算机、平板计算机、智能电视平台、照相机、个人数字助理(PDA)等。如图1的示例中所示,计算设备2可以是平板计算机。在某些示例中,计算设备2可以包括用户界面(UI)设备4、UI模块6、手势模块8以及语言模型10。实现本公开的技术的计算设备2的其他示例可包括图1中未示出的附加组件。如图1的非限制性示例中所示,UI设备4、UI模块6、手势模块8以及语言模型10被示为可选地包括、存储或者另外实现于计算设备2中。然而,在某些示例中,可在与计算设备2分离且不同的一个或多个设备中包括、存储或者另外实现UI设备4、UI模块6、手势模块8以及语言模型10中的一个或多个。在这些示例中,与计算设备2分离且不同的一个或多个设备被耦接(在物理上、在通信上和/或在操作上)到计算设备2。
在某些示例中,UI模块4被配置成接收触觉、音频或视觉输入。如图1中所示,UI设备4可包括存在敏感显示器或用于接收输入的任何其他类型的设备。UI设备4可输出诸如图形用户界面(GUI)12之类的内容以用于显示。在图1的示例中,UI设备4可以是存在敏感显示器,其可以使用存在敏感显示器处或附近的电容、电感和/或光学检测从用户18接收输入。
如图1中所示,计算设备2可包括UI模块6。UI模块6可执行一个或多个功能以接收输入,诸如用户输入或网络数据,并且将此类输入发送到与计算设备2相关联的其他组件,诸如手势模块8。例如,UI模块6可确定由用户18在UI设备4处执行的手势。UI模块6还可从与计算设备2相关联的组件、诸如手势模块8接收数据。使用该数据,UI模块6可使与计算设备2相关联的其他组件、诸如UI设备4基于该数据来提供输出。例如,UI模块6可从手势模块8接收数据,其使UI设备4在GUI 12的文本录入区14中显示信息。在某些示例中,UI设备4提供输入和输出设备两者的组合功能。在某些示例中,UI设备4包括分离且不同的输入和输出设备。在某些示例中,计算设备2被操作耦接到输入和/或输出设备,其在计算设备2外部,但提供与UI设备4的输入和/或输出设备类似的功能。
可以各种方式来实现UI模块6。例如,可将UI模块6实现为可下载或预先安装的应用程序或“app”。在另一示例中,可将UI模块6实现为计算设备2的硬件单元的一部分。在另一示例中,可将UI模块6实现为计算设备2的操作系统的一部分。
在某些示例中,计算设备2包括手势模块8。手势模块8可包括将在计算设备2上执行任何种类的操作的功能。例如,手势模块8可包括根据这里所述技术的根据包括多个子手势的多触摸手势来递增地确定文本的功能。可以各种方式来实现手势模块8。例如,可将手势模块8实现为可下载或预先安装应用程序或“app”。在另一示例中,可将手势模块8实现为计算设备2的硬件单元的一部分。在另一示例中,可将手势模块8实现为计算设备2的操作系统的一部分。
手势模块8可从与计算设备2相关联的组件、诸如UI模块6接收数据。例如,手势模块8可从UI模块6接收使手势模块8根据手势数据来确定文本的手势数据。手势模块8还可向与计算设备2相关联的组件、诸如UI模块6发送数据。例如,手势模块8可将根据手势数据确定的文本发送到UI模块6,其使UI设备4显示GUI 10。
如图1中所示,GUI 12可以是由UI模块6生成的用户界面,其允许用户18与计算设备2相交互。GUI 12可包括图形内容。一般而言,图形内容包括文本、图像、一组活动图像等。如图1中所示,图形内容包括基于手势的图形键盘16、文本录入区14以及单词建议区24。图形键盘16可包括多个键,诸如“N”键20A、“O”键20B、“D”键20C以及“E”键20D。在某些示例中,包括在图形键盘16中的所述多个键中的每一个表示单个字符。在其他示例中,包括在图形键盘16中的所述多个键中的一个或多个表示基于多个模式选择的一组字符。
在某些示例中,文本录入区14可包括字符或其他图形内容,其包括在例如文本消息、文档、电子邮件消息、web浏览器或其中期望文本录入的任何其他情况中。例如,文本录入区14可包括由用户18经由在UI设备4处执行的手势选择的字符或其他图形内容。在某些示例中,单词建议区24可显示一个或多个所建议的单词或候选单词。UI模块6可使UI设备4显示图形键盘16并检测多触摸手势,所述多触摸手势具有与由用户18的第一手指25执行的子手势相关联的第一手势路径22,所述第一手势路径22由手势模块8根据这里进一步描述的本公开的技术而递增地确定。UI模块6可检测与由用户18的第二手指27执行的第二子手势相关联的第二手势路径21,所述第二手势路径21也可由手势模块8递增地确定。另外,UI模块6可使UI设备4显示根据单词建议区24中的多触摸手势的子手势确定的一个或多个候选单词。
一般地,用户18可利用多个手指25和27来执行多触摸手势。每个手指25、27可执行多触摸手势的子手势,并且任一子手势可包括一个或多个段或路径,如下面更详细描述。此外,根据某些示例,每个子手势可包括挥扫手势或敲击手势。手指25和27可包括在用户18的分开的手上,在这种情形下,多触摸手势可包括双手手势。在其他情况下,手指25和27可包括在用户18的单只手上。UI模块6可接收在存在敏感显示器处检测到的多触摸手势的指示。与多触摸手势的手指25相关联的子手势可滑过键盘16的多个键中的第一组键,并且与手指27相关联的子手势可滑过所述多个键中的第二组键。
在某些示例中,计算设备2包括语言模型10。语言模型10可包括词典。在某些示例中,词典可包括单词列表,并且可包括关于所列单词的附加信息。可用一定范围的数据结构来表示词典,诸如阵列、列表和/或树。例如,语言模型10可包括存储在特里数据结构中的词典。词典特里数据结构可包含多个节点,每个节点可表示字母。可将词典特里中的第一节点称为入口节点,其可不对应于字母。在其他示例中,入口节点可对应于字母。每个节点可具有一个或多个子节点。例如,入口节点可具有二十六个子节点,每个对应于英语字母表的字母。
词典特里中的节点的子集每个可包括指示该节点至终端节点的标志。词典特里的每个终端节点可指示完整单词(例如,候选单词)。沿着从入口节点到终端节点的节点路径的节点所指示的字母可拼写出终端节点所指示的单词。在某些示例中,语言模型10可以是安装在计算设备2上的默认字典。在其他示例中,语言模型10可包括多个词典源,其可存储在计算设备2处或者存储在一个或多个远程计算设备处且可被计算设备2经由一个或多个通信信道访问。
在某些示例中,可在计算设备2的固件中实现语言模型10。语言模型10可包括语言模型频率信息,诸如n-gram语言模型。n-gram语言模型可基于序列(例如,P(xi|xi-(n-1),...,xi-1))中的先前项目而提供用于项目的相邻序列中的项目xi(字母或单词)的概率分布。例如,bigram语言模型(n-gram模型,其中,n=2)可提供字母“D”在序列“NO”后面的概率。在某些示例中,语言模型10包括具有集成语言模型频率信息的词典特里。例如,词典特里的每个节点可包括字母的表示和概率值。
本公开的技术可改善用户可以向计算设备中录入文本的速度和准确度。使用本公开的技术,用户可不针对单词的每个键执行离散手势,而是执行指示单词的单个多触摸手势。如上所述,多触摸手势包括多个子手势,其中的每一个可由用户18的手指25和27连续地或同时地执行。在各种示例中,本公开的技术允许用户18在手势中间提起并移动任一手指25、27,同时其他手指保持与UI设备4的交互(例如,触摸、存在)。例如,用户18可用一个手指25、27来执行挥扫手势,同时用另一个来执行敲击手势。一般地,用户18可使用手指25和27来执行各种不同形式的子手势,诸如挥扫和敲击手势,以选择键盘16的不同键。
随着用户18使用手指25和27来执行多触摸手势的每个子手势,计算设备2可递增地确定手势所指示的候选单词。通过随着正在执行多触摸手指而递增地将多触摸手势解码,以潜在地最小后手势录入处理时间在建议区24中向用户18呈现候选单词。此外,通过使得用户18能够连续地或同时地使用两个手指25和27用多触摸手势来录入单词,本公开的技术使得用户18能够潜在地增加用来录入文本的速率。现在相对于图1的组件在这里进一步描述本公开的技术。
如图1的示例中所示,UI模块6可使UI设备4显示GUI 12。用户18可能期望向文本录入区14中录入文本,例如单词“NODE”。根据本公开的技术,用户18可在基于手势的图形键盘16处执行多触摸手势。在一个示例中,多触摸手势可以是一个或多个连续移动,其中,用户18的手指25、27移动至与UI设备4接近,使得该多触摸手势贯穿多触摸手势的手指25的子手势和手指27的子手势的执行而被UI设备4检测到。在不同的示例中,用户18可将他/她的手指25、27移动至与UI设备4接近,使得手指25、27临时地被UI设备4检测到,并且然后用户18的手指25、27从UI设备4移开且不再被检测到。
在用户18执行多触摸手势以在键盘16中选择所述多个键中的一组键的同时,UI模块6可在存在敏感显示器处检测到具有手势路径22的手指25的子手势。如图1中所示,用户18通过追踪通过或接近于与期望单词的字符(即,用“N”键20A和“O”键20B表示的字符)相对应的键盘16的键的手势路径22而执行手指25的子手势。UI模块6可向手势模块8发送指示手势路径22的数据。在某些示例中,UI模块6随着手势路径22被UI设备4检测到且被UI模块6接收到而递增地向手势模块8发送指示手势路径22的数据。例如,UI模块6可随着手势路径22被UI设备4检测到且被UI模块6接收到而向手势模块8发送指示手势路径22的一串坐标对。
同样地,UI模块6可在存在敏感显示器处检测到具有手势路径21的手指27的第二子手势。如图1中所示,用户18通过追踪通过或接近于与期望单词的字符(即,用“D”键20C和“E”键20D表示的字符)相对应的键盘16的键的手势路径21而执行手指27的子手势。UI模块6可向手势模块8发送指示手势路径21的数据。在某些示例中,UI模块6随着手势路径21被UI设备4检测到且被UI模块6接收到而递增地向手势模块8发送指示手势路径21的数据。
响应于从UI模块6接收到表示手势路径21和22的数据,手势模块8可确定候选单词。候选单词可以是向用户18建议的由手势路径21和22所指示的一组键组成的单词。可基于手势路径21和22和诸如语言模型10之类的词典/语言模型来确定该组键。在某些示例中,手势模块8可通过确定由手势路径21和22滑过的一组对准点、确定用于所述多个键中的至少两个键中的每一个的相应的成本值以及比较用于所述至少两个键的相应的成本值以确定具有满足阈值的组合成本值的键组合来确定候选单词,如下面进一步描述的。相应的成本值中的每一个可表示第一组点或第二组点中的点指示所述至少两个键中的对应键的概率。在某些示例中,确定用于所述至少两个键中的每一个的相应的词典成本值包括确定用于所述至少两个键中的每一个的相应的词典成本值,其中,所述相应的词典成本值中的每一个表示在候选单词中包括所述至少两个键中的对应键所表示的字母的概率,并且其中,确定用于所述至少两个键中的每一个的相应的词典成本值包括将所述至少两个键中的每一个与词典/语言模型、诸如语言模型10相比较。在某些示例中,手势模块8仅根据词典/语言模型来识别与形成有效单词的键相关联的字符或字母。
对准点是沿着手势路径21或22的可指示所述多个键中的键的点。对准点可包括对应于对准点的所确定的位置的一个或多个坐标。例如,对准点可包括对应于GUI 12上的点的笛卡尔坐标。
在某些示例中,手势模块8基于当例如实现可选空间模型时与手势路径21和22相关联的多个特征来确定由手势路径21和22滑过的该组对准点。与手势路径21或22相关联的所述多个特征可包括一段手势路径的长度。例如,手势模块8可确定从先前对准点和当前对准点开始沿着手势段的长度。为了更好的对准,该长度可更紧密地近似两个对应的键盘字母之间的直线距离。
在另一示例中,手势模块8可确定从手势路径21或22的第一点到第二点的一段的方向以确定该组对准点。为了更好的对准,该段的方向将更紧密地近似从两个对应的键盘字母之间开始的直线的方向。
在某些示例中,还可由手势模块8考虑到手势路径21或22的一段的曲率、表示检测到手势的一段的速率的局部速度以及表示检测到手势路径的速率的全局速度。如果手势模块8确定用于局部速度的较慢速度或暂停,则手势模块8可确定该段处的点更有可能是对准点。如果手势模块8确定手势是快速画出的,则手势模块8可确定该手势更有可能是不精确的,并且因此手势模块8可相比于空间模型增加对语言模块(即,n-gram频率)的权值。
在一个示例中,手势模块8可基于具有高曲率值的手势路径21、22的一段来确定该组对准点中的对准点。另外,手势模块8可基于具有低局部速度的手势路径21或22的一段(例如,用户18的手指25或27在执行该段子手势的同时减速)来确定该组对准点中的对准点。在图1的示例中,手势模块8可确定手势路径22的起始点处的第一对准点、其中手势路径22经历曲率的显著变化的点处的第二对准点以及手势路径22结尾处的第三对准点。在其他示例中,本公开的技术可以将子手势的形状识别为特征并基于该子手势的形状来确定对准点。
在某些示例中,手势模块8可确定用于包括在键盘16中的所述多个键中的至少两个键中的每一个的相应的成本值。相应的成本值中的每一个可表示对准点指示一个键的概率。在某些示例中,相应的成本值可基于手势路径、对准点和/或键的物理特征。例如,相应的成本值可基于参考键的物理位置而言的对准点的物理位置。
在某些示例中,相应的成本值可基于语言模型10。例如,相应的成本值可基于在第一键之后选择第二键的概率(例如,在“N”键之后将选择“O”键的概率)。在某些示例中,至少部分地基于语言模型10来选择对于其而言确定了相应的成本值的键。在某些示例中,在存在对准点指示一个键的较大可能性的情况下,成本值较低。在其他示例中,在存在对准点指示一个键的较大可能性的情况下,成本值较高。
在图1的示例中,手势模块8可针对与手指25相关联的子手势确定表示第一对准点指示“N”键20A的概率的第一成本值和表示第一对准点指示“B”键20D的概率的第二成本值。同样地,手势模块8可确定表示第二对准点指示"O"键20B的概率的第三成本值和表示第二对准点指示“P”键20E的概率的第四成本值。以类似方式,手势模块8可确定与关联于手指27的子手势相关联的成本值。
手势模块8可比较用于所述多个键中的至少两个键的相应的成本值以确定具有组合成本值的键组合。组合成本值可表示手势路径22例如指示键组合的概率。手势模块8可比较用于所述多个键中的至少两个键的相应的成本值以确定对准点指示所述至少两个键中的哪一个。手势模块8可通过确定每个对准点指示哪些键来确定键组合。在某些示例中,手势模块8在不考虑其他对准点指示哪些键的情况下确定对准点指示所述至少两个键中的哪一个。在其它示例中,手势模块8基于其他对准点指示哪些键来确定该对准点指示所述至少两个键中的哪一个。在此类示例中,手势模块8可基于用于当前对准点的相应的成本值来修订先前的对准点指示哪个键的确定。
在某些示例中,手势模块8可将所确定键组合的组合成本值与阈值值相比较。在某些示例中,该阈值值是不同的所确定的键组合的组合成本值。例如,手势模块8可确定具有第一组合成本值的第一键组合和具有第二组合成本值的第二键组合。在这种情况下,手势模块8可确定候选单词基于具有较低组合成本值的键组合。在图1的示例中,手势模块8可比较与手指25的子手势相关联的相应的成本值以确定具有组合成本值的键(例如,“N”和“O”)组合。同样地,手势模块8可比较与手指27的子手势相关联的所确定的相应的成本值以确定具有组合成本值的键(例如,“D”和“E”)组合。
在某些示例中,手势模块8在UI设备4完成检测手势路径21和22的时间之前开始确定候选单词。在图1的示例中,不是在UI设备4完成检测手势路径21和22之后确定候选单词的替代,而是手势模块8可随着检测到手势路径22而确定多个单词,诸如“NO”、“NOT”和“NOW”(仅举几个例子)。另外,在图1的示例中,手势模块8可随着检测到手势路径21而同时地修订所确定的多个单词,诸如将“NO”修订成“NOD”。此外,不是基于子手势的几何形状来确定候选单词,而是本公开的技术可基于手势所指示的一组字符来确定候选单词。手势模块8将所确定的单词发送到UI模块6,其然后可使UI设备4在GUI 12的文本录入区14中显示单词“NODE”。
在某些示例中,手势模块8利用语言模型10响应于UI模块6检测到与手指25相关联的第一子手势和与手指27相关联的第二子手势,至少部分地基于由第一子手势滑过的第一组键和由第二子手势滑过的第二组键来确定候选单词(例如,图1中的“NODE”)。(遍及本申请,提供术语“第一子手势”和“第二子手势”中的“第一”和“第二”的使用仅仅是为了将两个子手势相互区别开。除非另外说明,这些术语中的“第一”和“第二”的使用绝不意图要求在“第二子手势”的执行之前执行“第一子手势”。事实上,如遍及本申请概述的,用户18可根据各种不同的使用情况而基本上同时地或连续地执行这些子手势。)
为了确定候选单词,手势模块8可至少部分地基于手指25的第一子手势(例如,至少部分地基于第一子手势的一个特征,诸如一段的长度、与该段相关联的移动方向、该段的曲率、局部速度/全局速度,如在以上示例中所指示的)来确定由手指25的第一子手势滑过的第一组点。手势模块8可至少部分地基于手指27的第二子手势来进一步确定由手指27的第二子手势滑过的第二组点。手势模块8能够至少部分地基于第一和第二组点来确定包括在第一和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率。手势模块8然后可至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词(例如,图1中的“NODE”)。在某些示例中,手势模块8可通过进一步至少部分地基于包括在所定义的词典/语言模型、诸如语言模型10中的一个或多个单词来至少确定所述至少一个概率而确定至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率。可由手势模块8对鉴于词典/语言模型更有可能和/或具有更高候选分数的单词更高地加权和排名,并且可在建议区24中更明显地显示给用户18。
在某些示例中,手势模块8可至少通过确定在与第一子手势相关联的第一组键中包括所述至少一个键的第一概率来确定包括在第一和第二组键中的所述至少一个中的所述至少一个键与第一子手势(手指25)或第二子手势(手指27)相关联的所述至少一个概率。手势模块8可进一步确定在与第二子手势相关联的第二组键中包括所述至少一个键的第二概率。如果第一概率大于第二概率,则手势模块8确定在第一组键中包括所述至少一个键。然而,如果第二概率大于第一概率,则手势模块8确定在第二组键中包括所述至少一个键。
例如,手势模块8可确定存在在与手指25的第一子手势相关联的一组键中包括“N”键20A的第一概率,并且可确定存在在与手指27的第二子手势相关联的一组键中包括“N”键20A的第二概率。如果第一概率高于第二概率,则手势模块8如在图1中的情况那样确定在与手指25的第一子手势相关联的该组键中包括“N”键20A。手势模块8可使用类似的计算来确定“O”键20B与手指25的子手势相关联,并且“D”键20C和“E”键20D与手指27的子手势相关联。
在某些示例中,手势模块8可至少部分地基于与用于使手指25或27滑过的对准点关联到键盘16上的键的上文概述的那些类似的一个或多个特征来确定在与子手势相关联的一组键中包括键盘16中的给定键的概率。例如,手势模块8可基于以下特征中的一个或多个来确定给定键与手指25的子手势相关联的概率:与手指25的子手势相关联的段的长度,其中,该段包括由手指25的子手势滑过的路径;与手指25的子手势的该段相关联的移动方向;手指25的子手势的该段的曲率;表示检测到手指25的子手势的该段的速率的局部速度;表示检测到手指25的子手势的速率的全局速度;以及第一组点中的一个点和与所述至少一个键的至少一部分相关联的区域(例如,中心区域)之间的距离(诸如,欧几里德距离)。
同样地,手势模块8可基于以下特征中的一个或多个来确定给定键与手指27的子手势相关联的概率:与手指27的子手势相关联的段的长度,其中,该段包括由手指27的子手势滑过的路径;与手指27的子手势的该段相关联的移动方向;手指27的子手势的该段的曲率;表示检测到手指27的子手势的该段的速率的局部速度;以及表示检测到手指27的子手势的速率的全局速度。
在某些示例中,手势模块8可确定用于包括在分别地与手指25和27的子手势相关联的第一和第二组键中的至少一组中的至少两个键中的每一个的相应的成本值,其中,相应的成本值中的每一个表示由手指25的子手势滑过的第一组点或由手指27的子手势滑过的第二组点中的点指示包括在第一或第二组键中的键的概率。手势模块8比较用于至少两个键的相应的成本值以确定具有在某些情况下满足阈值的组合成本值的键组合,如下面更详细地描述的。
在某些替换实施例中,用户可以在做手势时在一键处暂停指定的持续时间以指示该键应被包括在手势路径中。在另一替换实施例中,不是使用如使用本公开的技术描述的基于特里的搜索,而是手势模块8可保持单独的手势特定单词列表或字典。
在某些示例中,本公开的技术在计算设备上提供高效的性能,例如在某些情况下,在少于100毫秒内识别手势。本公开的技术还可使用安装在移动设备上的默认字典,而不是使用可单独地维护并使用附加存储资源的专用手势字典。这样,本公开的技术可通过使用由默认录入条目系统已经存储的字典来降低存储要求。此外,可将字典高效地实现为紧凑式词典特里。根据本公开的技术,使用在计算设备上提供的默认字典还提供就绪支持外语、联系人姓名以及用户添加单词。通过使用例如词典特里和默认字典,本公开的技术可将语言模型频率(即,n-gram概率)集成到手势解释中,从而允许搜索技术基于多触摸的每个子手势的形状和正在考虑的单词的概率两者而集中于用于候选单词的潜在地有希望的路径。
通过使得用户18用包括子手势的多触摸手势来录入单词并执行递增确定以识别候选单词,本公开的一个或多个技术可进一步使得用户18能够增加录入文本的速率。本公开的一个或多个技术提供用于多手指手势的连续、实时的手势中预测反馈。在某些情况下,计算设备2随着用户18正在描绘而显示针对相应的子手势中的一个显示用于在用户18的手指上面的当前手势的不断更新的预测。此反馈可潜在地为用户18提供相对于手势识别过程的更大置信度,并且在正确地识别到预期单词时为用户18示出。
根据本公开的一个或多个技术,当基于来自用户18的多触摸手势输入而检测到字符输入时,手势模块8能够确定应将单词的每个字母对准或关联到多触摸手势输入的哪个笔划或子手势。例如,在图1中,计算设备2能够确定(例如,使用手势模块8)字母“N”和“O”应对准到经由手指25输入的右手子手势,而字母“D”和E”应对准到经由手指27的左手子手势。此过程可随着手势模块8处理候选单词中的每个字母而递增地发生,向路径分配导致最佳对准分数的每个字母,将许多空间特征考虑在内,在某些示例中,诸如与相应的子手势的手势路径21和22相关联的距离、方向、直线度及其他特征。手势模块8能够随着手指25和27跨键盘16的键滑动以映射出候选单词中的字母而独立地跟踪每个子手势的移动。每个子手势可以画出单词的任何部分,并且用户18可以同时地或连续地移动手指25和27两者。在某些示例中,一旦将手指25和27两者从键盘16提起并离开UI设备4,则候选单词(例如,图1中的“NODE”)被提交。在其他示例中,候选单词未被提交直至用户18采取进一步动作(例如,使用手指25或27中的一个来与键盘16的另一键、诸如空格键交互,或者手动地选择建议区24中的所建议的候选单词)为止。
由于计算设备2能够递增地识别多触摸手势,计算设备2能够随着用户18继续进行多触摸手势而存储和更新预测。结果,算法的性能是时间和存储器高效的,并且即使是针对选择多个键的非常长的多触摸手势而言,也不一定下降。此外,算法使得能够实现预测预览和浮动预览(在图4—7中示出)的实时连续更新。
本公开的一个或多个技术还可提供用于多触摸手势的部分手势自动完成的实现。结果,用户18不一定需要经由多触摸输入来输入单词的所有字母。在接收到用以仅选择前几个字母的输入之后,手势模块8能够预测可能的自动完成(例如,自动完成“ACKN”至“ACKNOWLEDGE”)。在图6和7中示出了此类功能的示例。在这里,用户18在某些示例中可以简单地从UI设备4提起他/她的手指以提交自动完成的单词。
此外,本公开的一个或多个技术利用字典词典特里数据结构。该递增识别可采用基于词典特里的搜索算法来预测用于给定多触摸手势输入的前几个单词候选。这些技术可与现有的设备上字典(包括外语、联系人姓名等)完全兼容,并且不一定招致任何附加存储成本。
图2是图示出根据本公开的一个或多个技术的如图1中所示的计算设备的一个示例的更多细节的框图。图2图示出如图1中所示的计算设备2的仅一个特定示例,并且在其他情况下可使用计算设备2的许多其他示例。虽然在图1和2中出于示例的目的而示为独立计算设备,但计算设备2可以是包括一个或多个处理器(例如,一个或多个处理器40)或用于执行软件指令的其他适当计算环境的任何组件或系统,并且不一定需要包括这些图中所示的元件中的一个或多个(例如,UI设备4、输入设备42、输出设备46)。
如图2的特定示例中所示,计算设备2包括一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46、一个或多个存储设备48和用户接口(UI)设备4。在一个示例中,计算设备2进一步包括UI模块6、手势模块8以及可由计算设备2执行的操作系统58。在一个示例中,计算设备2进一步包括语言模型10、键区52、活动射束(active beam)54以及下一射束(next beam)56。可将组件4、40、42、44、46和48中的每一个耦接(在物理上、在通信上和/或在操作上)以用于组件间通信。作为图2中的一个示例,可用一个或多个通信信道50将组件4、40、42、44、46和48耦接。在某些示例中,通信信道50可包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其他方法。UI模块6和手势模块8还可相互之间以及与计算设备2中的其他组件,诸如语言模型10、键区52、活动射束54以及下一射束56传送信息。
在图2的非限制性示例中,输入设备42、输出设备46、UI设备4、UI模块6、手势模块8、语言模型10、键区52、活动射束54以及下一射束56被示为被包括、存储或者另外实现于计算设备2中。然而,在某些示例中,输入设备42、输出设备46、UI设备4、UI模块6、手势模块8、语言模型10、键区52、活动射束54并且下一射束56中的一个或多个可被包括、存储或者另外实现于与计算设备2分离且不同的一个或多个设备中。在这些示例中,与计算设备2分离且不同的一个或多个设备被耦接(在物理上、在通信上和/或在操作上)到计算设备2。
在一个示例中,处理器40被配置成实现功能和/或处理指令以便在计算设备2内执行。例如,处理器40可能能够处理存储在存储设备48中的指令。处理器40的示例可包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效分立或集成逻辑电路中的任何一个或多个。
可将一个或多个存储设备48配置成在操作期间在计算设备2内存储信息。在某些示例中,将存储设备48描述为一个或多个计算机可读存储介质。在某些示例中,存储设备48可包括临时存储器,意味着存储设备48的主要目的并不是长期存储。在某些示例中,存储设备48可包括易失性存储器,意味着存储设备48在计算设备被关掉时不保持所存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域中已知的其他形式的易失性存储器。在某些示例中,使用存储设备48来存储程序指令以便由处理器40执行。在一个示例中,存储设备48被在计算设备2上运行的软件或应用程序(例如,手势模块8)用来在程序执行期间临时地存储信息。
在某些示例中,存储设备48还包括一个或多个计算机可读存储媒介。可将存储设备48配置成比易失性存储器存储更大量的信息。可将存储设备48进一步配置成用于信息的长期存储。在某些示例中,存储设备48可包括非易失性存储元件。此类非易失性存储元件的示例包括磁性硬盘、光盘、软盘、闪速存储器或电可编程存储器(EPROM)或电可擦可编程(EEPROM)存储器的形式。
在某些示例中,计算设备2还包括一个或多个通信单元44。在一个示例中,计算设备2利用通信单元44经由诸如一个或多个无线网络之类的一个或多个网络来与外部设备通信。通信单元44可以是网络接口卡(诸如以太网卡)、光学收发机、射频收发机或可以发送和接收信息的任何其他类型的设备。此类网络接口的其他示例可包括蓝牙、3G和WiFi无线电计算设备以及通用串行总线(USB)。在某些示例中,计算设备2利用通信单元44来与诸如服务器之类的外部设备无线地通信。
在一个示例中,计算设备2还包括一个或多个输入设备42。在某些示例中,输入设备42被配置成通过触觉、音频或视频反馈从用户接收输入。输入设备42的示例包括存在敏感显示器、鼠标、键盘、语音响应系统、摄像机、扩音器或用于检测来自用户的命令的任何其他类型的设备。在某些示例中,存在敏感显示器包括触摸敏感屏幕。
还可在计算设备2中包括一个或多个输出设备46。在某些示例中,输出设备46被配置成使用触觉、音频或视频刺激向用户提供输出。在一个示例中,输出设备46包括存在敏感显示器、声卡、视频图形适配卡或用于将信号转换成人类或机器可理解的适当形式的任何其他类型的设备。输出设备46的附加示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或可以向用户生成可理解输出的任何其他类型的设备。在某些示例中,输出设备46可进一步包括输入设备42和/或UI设备4的功能,使得输出设备46提供输入和输出功能两者。
在某些示例中,UI设备4可包括输入设备42和/或输出设备46的功能。在图2的示例中,UI设备4可以是存在敏感显示器。在图2的示例中,UI设备4可以是存在敏感显示器。在某些示例中,存在敏感显示器可检测存在敏感显示器的屏幕处和/或附近的对象。作为一个非限制性示例范围,存在敏感显示器可检测在存在敏感显示器的物理屏幕的2英寸或以下内的诸如手指或触针之类的对象。存在敏感显示器可确定在该处或附近检测到对象的存在敏感显示器的位置(例如,(x,y)坐标)。在另一非限制性示例范围内,存在敏感显示器可检测距离存在敏感显示器的物理屏幕6英寸或以下的对象,并且还可以有其他示例性范围。存在敏感显示器可确定由对象(例如,用户的手指)使用电容、电感和/或光学识别技术选择的位置。在某些示例中,存在敏感显示器使用触觉、音频或视频刺激来提供输出,如相对于输出设备46所述。
计算设备2可包括操作系统58。在某些示例中,操作系统58控制计算设备2的组件的操作。例如,在一个示例中,操作系统58促进UI模块6和/或手势模块8与处理器40、通信单元44、存储设备48、输入设备42以及输出设备46的通信。UI模块6和手势模块8每个可包括可由计算设备2执行的程序指令和/或数据。作为一个示例,UI模块6可包括使计算设备2执行在本文公开中所述的操作和动作中的一个或多个的指令。
计算设备2可包括活动射束54。在某些示例中,活动射束54被配置成存储由手势模块8创建的一个或多个令牌。可在存储设备48内包括活动射束54。在下面图3A—3D和图9A—9B的描述中进一步描述活动射束54的特定功能。
计算设备2还可包括下一射束56。在某些示例中,下一射束56被配置成存储由手势模块8创建的一个或多个令牌。可在存储设备58内包括下一射束56。在下面图3A—3D和图9A—9B的描述中进一步描述下一射束56的特定功能。
计算设备2可包括为了清楚起见在图2中未示出的附加组件。例如,计算设备2可以包括电源(例如,电池)以向计算设备2的组件提供电力。同样地,可并非在计算设备2的每个示例中都包括图2中所示的计算设备2的组件。例如,在某些配置中,计算设备2可不包括通信单元44。
根据本公开的技术,计算设备2可输出包括多个键的基于手势的图形键盘。用户18可在输入设备42处执行包括多个子手势的多触摸手势以选择所述多个键中的一组键。响应于用户18执行多触摸手势,输入设备42可检测到一个或多个手势路径,诸如图1的手势路径21和22,其可被UI模块6作为手势路径数据接收。UI模块6然后可将手势路径数据发送到手势模块8。在某些示例中,UI模块6随着手势路径21和22被输入设备42检测到而递增地向手势模块8发送手势路径数据。
响应于接收到用于手势路径21和22的手势路径数据,手势模块8可在可包括在语言模型10中的词典的入口节点处创建令牌。在某些示例中,可将语言模块10实现为特里数据结构。每个可移动令牌可表示词典中的节点(即,部分单词)与沿着多触摸手势的点之间的部分对准。随着令牌前进至词典中的子节点(即,单词中的接下来的字母),手势上的对应的对准点也可前进。随着令牌前进至单词中的下一字母,本公开的技术可确定令牌将沿着相应的手势路径前进多远。例如,本公开的技术可包括搜索与键的字母最佳地对准的沿着手势路径的对准点,考虑这里描述的许多特征。
如图1中所述,词典特里数据结构可包含多个节点,每个节点可表示字母。手势模块8可将令牌推入活动射束54中。手势模块8可在令牌的子节点中的每一个上创建令牌副本。在图1的示例中,手势模块8可在表示字母“N”的子节点上创建第一令牌副本和在表示字母“B”的子节点上创建第二令牌副本。
针对每个令牌副本,手势模块8可基于与手势路径数据相关联的多个特征来确定由手指25和27的子手势滑过的对准点。在图1的示例中,手势模块8可确定与手指25的子手势相关联的第一对准点位于手势路径22的起始点处。在某些示例中,手势模块8可确定沿着手势路径的点处的路径的曲率。在此类示例中,手势模块8可确定该点更有可能是在该处存在高曲率(其中手势路径在该点处突然改变方向)的对准点。在其他示例中,手势模块8可确定中间段曲率(例如,沿着手势的两个点之间的手势路径的最大曲率)。在另一示例中,手势模块8可确定一点不太可能是其中存在高中间段曲率的下一对准点。在某些示例中,手势模块8可基于检测到手势路径的速度来确定一点是对准点。在某些示例中,检测的较慢速率指示该点是对准点。在某些示例中,高中间段曲率可指示在第一点与第二点之间存在拐角,意味着第二点不太可能是下一对准点(例如,在中间错过了点)。
在某些示例中,对准点可基于两个或更多点之间的子手势段的点之间的最大距离和键盘16上的从第一键到第二键的理想线。理想线可以是例如从第一键到第二键的最短距离。为了更好的对准,该最大距离可以是小的,表示手势段并未背离理想线。
针对每个对准点,手势模块8可确定用于所述多个键中的至少两个键中的每一个的相应的成本值。相应的成本值中的每一个可表示对准点指示所述多个键中的键的概率。在图1的示例中,手势模块8可确定表示第一对准点指示表示字母“N”的节点的概率的第一成本值和表示第一对准点指示表示字母“B”的节点的概率的第二成本值。在某些示例中,手势模块8然后可用相应的对准点和/或成本值来更新令牌副本并将令牌副本推入下一射束56中。在图1的示例中,手势模块8可将第一成本值添加到第一令牌副本并将第二成本值添加到第二令牌副本。
在某些示例中,手势模块8通过将相应的物理成本值与相应的词典成本值相比较来确定相应的成本值,如下面进一步描述的。该物理成本值可基于与手势路径数据相关联的所述多个特征和/或由手指25和27的子手势滑过的对准点。在某些示例中,手势模块8可对相应的物理成本值与相应的词典成本值不同地加权。例如,手势模块8可通过将使物理成本值乘以物理加权值以及使词典成本值乘以词典加权值的结果加和来确定成本值。
在某些示例中,手势模块8可确定应大于物理成本值对词典成本值进行加权。手势模块8可确定应比其中存在物理成本值可能不可靠的指示、诸如其中以速度的高速率检测到手势路径的物理成本值更大地对词典成本值进行加权。例如,手势模块8可确定与特征(例如,速度)相关联的值满足一个或多个阈值。例如,手势模块8可确定手势的速度大于或等于阈值值。在其他示例中,手势模块8可确定手势的速度小于或等于阈值值。在任何情况下,如果所确定的值满足阈值,则手势模块8可确定物理成本值是不可靠的。
在某些示例中,手势模块8可使用统计机学习来适应用户18的风格并随时间推移而修改加权值。例如,手势模块8可响应于确定用户18在执行手势的时不准确而对词典成本值加权大于物理成本值。在某些示例中,手势模块8可确定应大于词典成本值对物理成本值进行加权。在存在词典成本值可能不可靠的指示的情况下,诸如在用户18具有录入未包括在词典中的单词的历史的情况下,手势模块8可确定应大于词典成本值对物理成本值进行加权。在某些示例中,可启发式地估计和优化加权值,诸如通过从多个计算设备测量准确度。
手势模块8可确定用于所述多个键中的至少两个键中的每一个的相应的物理成本值。相应的物理成本值中的每一个可表示一组对准点中的对准点的物理特征指示所述多个键中的键的物理特征的概率。例如,手势模块8可通过评估所述组对准点中的对准点与键的键盘位置之间的欧几里德距离来确定相应的物理成本值。可在键区52中包括所述多个键的物理特征(其在某些示例中可包括在手势模块8所利用的空间模型中或者为其一部分)。例如,键区52可针对所述多个键中的每一个包括坐标集合,其对应于其中显示每个键的图形键盘16的位置和/或区。在图1的示例中,手势模块8可基于第一对准点与跟“N”键20A相关联的区域(例如,键20A的中心)之间的欧几里德距离来确定第一物理成本值。在某些示例中,手势模块8可通过将第一对准点和第二对准点之间的欧几里德距离与第一对准点所指示的第一字母与第二对准点可表示的第二字母之间的欧几里德距离相比较来确定物理成本值。手势模块8可确定第二字母的成本值与距离之间的差成反比(即,在距离更加类似的情况下第二字母更有可能)。例如,较小距离可暗示更好的对准。
手势模块8还可通过确定用于所述多个键中的至少两个键中的每一个的相应的词典成本值来确定相应的成本值。相应的词典成本值中的一个可表示所述多个键中的键所表示的字母被包括在候选单词中的概率。词典成本值可基于语言模块10。例如,词典成本值可表示基于包括在语言模型10中的可能单词而选择给定字母的可能性。在图1的示例中,手势模块8可基于语言模型10中的指示字母“N”是单词中的第一字母的频率的条目来确定第一词典成本值。
手势模块8可确定该令牌是否在词典的终端节点处。响应于确定该令牌在终端节点处,手势模块8可将该令牌(或其表示)添加到输出预测列表。在某些情况下,手势模块8可将用于来自入口节点的每个节点的相应的成本值与终端节点相比较,以确定用于终端节点所指示的单词的组合成本值。在其他情况下,可由令牌的成本值来反映用于终端节点所指示的单词的组合成本值。在任一种情况下,手势模块8然后可丢弃令牌(例如,从活动射束54去除令牌)。例如,在一个示例中,在令牌传递过程中,手势模块8可仅保持一组前n个令牌,并且丢弃其余的。前n个令牌可以是具有最可能单词或字符串的令牌。这样,手势模块9可根据大的词典而高效地进行调整。替换实施例可使用任何适当的搜索技术。
手势模块8然后可确定UI模块6是否已完成接收手势路径数据(例如,用于图1中所示的手势路径21和22)。在UI模块6已完成接收手势路径数据的情况下,手势模块8可输出一个或多个候选单词(例如,“NODE”)以便在输出设备46处显示。在UI模块6尚未完成接收手势路径数据的情况下,手势模块8可继续递增地处理手势路径数据。在某些示例中,手势模块8可在UI模块6完成手势路径数据的接收之前输出一个或多个输出预测。下面在图3的描述中进一步描述该技术。
图3A—3D是图示出根据本公开的一个或多个技术的图1中所示的图形键盘16和多触摸手势输入的示例的概念图。(图9A—9B示出了根据某些示例技术的当基于用于多触摸手势的多个子手势输入来确定候选单词时的活动和下一射束的实施方式的附加细节。)
如在图3A的概念示例中所示,在时间70,计算设备2可包括GUI12、活动射束54A以及下一射束56A。GUI 12可包括图形键盘16,其可包括“N”键20A、“B”键20D、手势路径22A和对准点26A。虽然在图3A中示出,但手势路径22A和/或对准点26A在这里所述的技术的执行期间可能是不可见的。
如图1的示例中所示,用户可能期望通过在基于手势的图形键盘16处执行多触摸手势来向计算设备2中录入文本,所述多触摸手势包括与手指25和27相关联的多个子手势。如先前所讨论的,在用户18执行多触摸手势的同时,计算设备2可检测具有手势路径的子手势。在图3A的示例中,计算设备2被示为已检测到与手指25(在图1中示出)的子手势相关联的手势路径22A。
响应于检测到手势路径22A,计算设备2可确定沿着手势路径22A的对准点26A。另外,响应于检测到手势路径22A,计算设备2可创建令牌并将该令牌推入活动射束54A中。在时间70,可用下表1来表示活动射束54A上的内容。
表1
索引 父索引 当前节点的字母键 字母链 成本值
0 - - - 0
在表1中,每行表示单独令牌,索引列表示用于每个令牌的唯一标识符,父索引列表示所列令牌为其子的令牌的索引值,当前节点列的字母键表示令牌的当前节点所表示的字母键,字母链列表示从入口节点到令牌的当前节点的节点所表示的所有字母键,并且成本值列表示令牌的成本值。如表1中所示,创建的令牌具有0的索引(即,令牌0),无父索引、无当前节点的字母键、无字母链以及零的成本值。
为了递增地且动态地确定手势所指示的文本,计算设备2可在其子节点上创建每个令牌的副本。在某些示例中,入口节点可具有26个子节点,英语字母表中的每个字母一个。为了简单起见且仅仅出于图示的目的,在图3A的示例中,入口节点具有用于字母“B”和“N”的仅两个子节点。因此,计算设备2可在子节点“N”(即,令牌1)和子节点“B”(即,令牌2)上创建具有索引0的令牌的副本。针对每个所创建的令牌副本,计算设备2可如上所述确定成本值。计算设备2可将每个令牌副本推入下一射束56A中,可用下表2来表示其内容。
表2
索引 父索引 当前节点的字母键 字母链 成本值
1 0 N N CV1
2 0 B B CV2
表2中所示的条目在格式方面与表1中所示的条目相同。在表2中,令牌1具有成本值CV1且令牌2具有成本值CV2。在创建令牌副本之后,计算设备2可确定令牌0不是终端节点,并丢弃令牌0。计算设备2可随后确定活动射束54A是否是空的(即,不包含令牌)。响应于确定活动射束54A是空的,计算设备2可将下一射束56A的内容拷贝到图3B的活动射束54B,并且丢弃下一射束56A的内容。
在图3B的示例中,计算设备2被示为在时间72处已检测到手势路径22B。当执行与手指25相关联的子手势时,手指25(图1)滑过手势路径22B。如上所述,可用表2来表示活动射束54B的内容。计算设备2可确定沿着手势路径22B的对准点26B。计算设备2可针对活动射束54B的每个令牌在每个子节点上创建副本。在图3B的示例中,令牌1和令牌2每个具有子节点,其具有字母键“O”和“P”(仅仅出于说明的目的)。针对每个所创建的令牌副本,计算设备2可如上所述确定成本值。计算设备2可将每个令牌副本推入下一射束56B中,可用下表3来表示其内容。
表3
索引 父索引 当前节点的字母键 字母链 成本值
3 1 O NO CV1+CV3
4 1 P NP CV1+CV4
5 2 O BO CV2+CV5
6 2 P BP CV2+CV6
表3中所示的条目在格式方面与表1和表2中所示的条目相同。在表3中,用于每个令牌的成本值包括用于先前字母的成本值和用于当前字母的成本值。计算设备2可确定令牌中的哪些(如果有的话)在终端节点上。例如,计算设备2可确定令牌3在终端节点上,因为其字母链“NO”是单词。响应于确定令牌在终端节点上,计算设备2可将令牌拷贝到输出预测的列表。可用下表4来表示输出预测的列表。在某些示例中,计算设备2可仅将令牌的字母链拷贝到输出预测的列表。
表4
索引 父索引 当前节点的字母键 字母链 成本值
3 1 O NO CV1+CV3
计算设备2可随后确定活动射束54B是否是空的。响应于确定活动射束54B是空的,计算设备2可将下一射束56B的内容拷贝到图3C的活动射束54C,并且丢弃下一射束56B的内容。
在图3A的示例中,计算设备2被示为在时间74处已检测到手势路径21A。当执行与手指27(图1)相关联的子手势时,手指27滑过手势路径21A。如上所述,可用表3来表示活动射束54C的内容。计算设备2可确定沿着手势路径21A的对准点26C。计算设备2可针对活动射束54C的每个令牌在每个子节点上创建副本。在图3C的示例中,令牌3至令牌6每个具有子节点,其具有字母键“D”和“S”(在本示例中仅仅出于说明的目的)。针对每个所创建的令牌副本,计算设备2可如上所述确定成本值。计算设备2可将每个令牌副本推入下一射束56C中,可用下表5来表示其内容。
表5
索引 父索引 当前节点的字母键 字母链 成本值
7 3 D NOD CV1+CV3+CV7
8 3 S NOS CV1+CV3+CV8
9 4 D NPD CV1+CV4+CV9
10 4 S NPS CV1+CV4+CV10
11 5 D BOD CV2+CV5+CV11
12 5 S BOS CV2+CV5+CV12
13 6 D BPD CV2+CV6+CV13
14 6 S BPS CV2+CV6+CV14
表5中所示的条目在格式方面与表1–4中所示的条目相同。在表5中,用于每个令牌的成本值包括用于先前字母的成本值和用于当前字母的成本值。计算设备2可确定令牌中的哪些(如果有的话)在终端节点上。例如,计算设备2可确定令牌7在终端节点上,因为其相应的字母链“NOD”是单词。响应于确定令牌在终端节点上,计算设备2可将令牌7拷贝到输出预测的列表。可用下表6来表示输出预测的列表。
表6
索引 父索引 当前节点的字母键 字母链 成本值
3 1 O NO CV1+CV3
7 3 D NOD CV1+CV3+CV7
计算设备2可随后确定活动射束54C是否是空的。响应于确定活动射束54C是空的,计算设备2可确定用户18是否已完成执行多触摸手势。响应于确定用户18尚未完成与多触摸手势的手指27(图1)相关联的子手势,并且响应于确定活动射束54C是空的,计算设备2可将下一射束56C的内容拷贝到图3D的活动射束54D并丢弃下一射束56C的内容。
在图3D的示例中,计算设备2被示为在时间76处已检测到手势路径21B。当执行与手指27(图1)相关联的子手势时,手指27滑过手势路径21B。如上所述,可用表5来表示活动射束54D的内容。计算设备2可确定沿着手势路径21B的对准点26D。计算设备2可针对活动射束54D的每个令牌在每个子节点上创建副本。在图3D的示例中,令牌7至令牌14每个具有子节点,其具有字母键“E”和“W”(在本示例中仅仅出于说明的目的)。针对每个所创建的令牌副本,计算设备2可如上所述确定成本值。计算设备2可将每个令牌副本推入下一射束56D中,可用下表5来表示其内容。
表7
索引 父索引 当前节点的字母键 字母链 成本值
15 7 E NODE CV1+CV3+CV7+CV15
16 7 W NODW CV1+CV3+CV7+CV16
17 8 E NOSE CV1+CV3+CV8+CV17
18 8 W NOSW CV1+CV3+CV8+CV18
19 9 E NPDE CV1+CV4+CV9+CV19
20 9 W NPDW CV1+CV4+CV9+CV20
21 10 E NPSE CV1+CV4+CV10+CV21
22 10 W NPSW CV1+CV4+CV10+CV22
23 11 E BODE CV2+CV5+CV11+CV23
24 11 W BODW CV2+CV5+CV11+CV24
25 12 E BOSE CV2+CV5+CV12+CV25
26 12 W BOSW CV2+CV5+CV12+CV26
27 13 E BPDE CV2+CV6+CV13+CV27
28 13 W BPDW CV2+CV6+CV13+CV28
29 14 E BPSE CV2+CV6+CV14+CV29
30 14 W BPSW CV2+CV6+CV14+CV30
表7中所示的条目在格式方面与表1–6中所示的条目相同。在表7中,用于每个令牌的成本值包括用于先前字母的成本值和用于当前字母的成本值。计算设备2可确定令牌中的哪些(如果有的话)在终端节点上。例如,计算设备2可确定令牌15在终端节点上,因为其相应的字母链“NODE”是单词。计算设备2可确定令牌17在终端节点上,因为其相应的字母链“NOSE”是单词。计算设备2可进一步确定令牌23在终端节点上,因为其相应的字母链“BODE”是单词。响应于确定这些令牌在终端节点上,计算设备2可将令牌15、令牌17和令牌23拷贝到输出预测的列表。可用下表8来表示输出预测的列表。
表8
索引 父索引 当前节点的字母键 字母链 成本值
3 1 O NO CV1+CV3
7 3 D NOD CV1+CV3+CV7
15 7 E NODE CV1+CV3+CV7+CV15
17 8 E NOSE CV1+CV3+CV8+CV17
23 11 E BODE CV2+CV5+CV11+CV23
计算设备2可随后确定活动射束54D是否是空的。响应于确定活动射束54D是空的,计算设备2可确定用户18是否已完成执行多触摸手势。响应于确定多触摸手势完成,计算设备2可输出输出预测的列表。在某些示例中,计算设备2可确定具有最高成本值的输出预测(例如,具有最佳概率的预测)的列表的子集。另外,在某些示例中,计算设备2可在每个后续对准点处修订包含在输出预测的列表中的令牌的成本值。例如,计算设备2可响应于检测到手势路径21A来调整令牌3的成本值以使得令牌3不那么可能。计算设备2可响应于检测到手势路径21B而进一步调整令牌7的成本值以使得令牌7不那么可能。结果,手势模块8可在将由UI模块6输出的最后一组输出预测中选择令牌15、令牌17和令牌22,如建议区24中的图1的示例中所示。
在图3A—3D中所示的示例中,手势模块8能够基于由手势路径22A、22B、21A和21B滑过的对准点来确定键盘16的特定键与手指25的子手势或手指27的子手势相关联的至少一个概率。手势模块8然后可至少部分地基于键与这些子手势的关联来确定候选单词(例如,“NODE”)。
在某些示例中,手势模块8可至少通过确定该键与手指25的子手势相关联的第一概率和该键与手指27的子手势相关联的第二概率来确定键盘16的给定键与手指25的子手势或手指27的子手势相关联的所述至少一个概率。如果第一概率大于第二概率,则手势模块8确定该键被包括在与手指25的子手势相关联的该组键中。然而,如果第二概率大于第一概率,则手势模块8确定该键被包括在与手指27的子手势相关联的该组键中结果,手势模块8可确定键“N”和“O”与手指25的子手势相关联,并且键“D”和“E”与手指27的子手势相关联。
在某些示例中,手势模块8可至少部分地基于与子手势相关联的一个或多个特征和/或由子手势滑过的对准点来确定键盘16中的给定键包括在与给定子手势相关联的一组键中的概率,如先前所讨论的。例如,手势模块8可确定给定键与手指25或27的子手势相关联的概率是以一个或多个以下特征为基础的:与子手势相关联的段的长度,其中,该段包括由子手势滑过的路径;与子手势的该段相关联的移动的方向;子手势的该段的曲率;表示检测到子手势的该段的速率的局部速度;以及表示检测到该子手势的速率的全局速度。
图4—7是图示出根据本公开的一个或多个技术的图形键盘16和多触摸手势输入的其他示例的概念图。在图4的第一示例中,可经由UI设备4作为输出提供的GUI 12包括建议区59和图形键盘16。随着用户18跨键盘16移动手指25和27以选择各种键,手势模块8能够处理多触摸手势以预测或建议用于给用户18选择的候选单词。可在建议区59中显示这些候选单词。
在图4的特定示例中,用户18通过在手势模块8确定与键盘16的键“F”基本上对准或相关联的UI设备4的点处触摸手指25来开始多触摸手势(例如,多触摸挥扫或移动手势、敲击手势)的第一子手势。(在图4—7中仅仅出于说明的目的,将假设UI设备4包括存在敏感显示器。还假设手指25和27可以连续地或基本上同时地移动以选择键盘16的预期键。)
用户18还在UI设备4处将手指25移动至手势模块8确定与键盘16的键“I”基本上对准或相关联的UI设备4的点。用户18在UI设备4处将手指25移动至手势模块8确定与键盘16的键“N”基本上对准或相关联的点。
在用户18如上文所指示地移动手指25之后,用户18然后可通过在手势模块8确定与键盘16的键“G”基本上对准或相关联的UI设备4的点处触摸手指27来开始多触摸手势的第二子手势。用户18然后可将手指27移动至手势模块8确定与键盘16的键“E”基本上对准或相关联的UI设备4的点。用户18在UI设备4处将手指27移动至手势模块8确定与键盘16的键“R”基本上对准或相关联的点。在图4中指示用于与手指25相关联的第一子手势和与手指27相关联的第二子手势中的每一个的单独手势痕迹。
在用户18执行图4中所示的多触摸手势的这些第一和第二子手势的同时,手势模块8能够连续地且动态地、实时地执行手势识别以确定这些手势的哪些点被对准到键盘16的特定键,并且还在建议区59中向用户18确定/建议候选单词。为了这样做,在某些示例中,手势模块8可利用如前所述的空间和/或语言模型来确定候选单词。由手势模块8确定的候选单词可随着用户18跨UI设备4移动手指25和27而动态地改变或修改,并且UI模块6可因此而随着用户18递增地选择字符而动态地更新在建议区59中显示的候选单词。
如图4的示例中所示,分别地与手指25和27相关联的第一和第二子手势中的每一个可包括挥扫手势或敲击手势。可与接收到第一子手势和第二子手势中的至少一个同时地确定在建议区59中显示的候选单词。
如上所述,在基于来自用户18的多触摸手势输入而检测到字符输入时,手势模块8能够确定应将单词的每个字母对准或关联到多触摸手势输入的哪个笔划或子手势。例如,在图4中,手势模块8能够确定字母“FIN”应对准到与手指25相关联的右手子手势,而字母“GER”应对准到与手指27相关联的左手子手势。此过程可随着手势模块8处理候选单词中的每个字母而递增地发生,向路径分配导致最佳对准分数的每个字母,将许多空间特征考虑在内,在某些示例中,诸如与子手势和键盘16的键相关联的距离、方向、直线度及其他特征。手势模块8能够随着手指25和27跨键盘16的键滑动以映射出候选单词中的字母而独立地跟踪每个子手势的移动。每个子手势可以画出单词的任何部分,并且用户18可以同时地或连续地移动手指25和27两者。
在某些示例中,一旦将手指25和27两者从键盘16提起,则候选单词(例如,图4中的“FINGER”)被提交。例如,UI模块6可接收与手指25相关联的第一子手势的终止的第一指示和与手指27相关联的第二子手势的终止的第二指示。UI模块6可响应于接收到第一子手势的终止的第一指示和第二子手势的终止的第二指示而输出候选单词(例如,图1中所示的文本录入区14中的单词“FINGER”)。然而,在其他示例中,候选单词未被提交直至用户18采取进一步动作(例如,使用手指25或27中的一个来与键盘16的另一键、诸如空格键交互,手动地选择选择区59中或预览区57中的候选单词)为止。
如图4中所示,由UI模块6在GUI 12的建议区59内将由手势模块8确定的前几个候选单词显示给用户18。手势模块8可基于由与手指25和27相关联的子手势提供的递增反馈来动态地选择和改变建议区59中所示的一组候选单词。在图4的示例中,这些候选单词是“FIGMENT”、“FINGER”和“FINGERBOARD”。在建议区59内将这组候选单词的首个或最有可能的候选单词突出地显示给用户18,以在视觉上将此候选单词与包括在建议区59中的一个或多个其他所建议的单词区别开。在图4中,将首个候选单词“FINGER”划上下划线,并且还以粗体示出。手势模块8基于用户8意图基于由分别地与手指25和27相关联的第一和第二子手势提供的多触摸手势输入的识别而录入此首个候选单词的概率而选择此单词。手势模块8可至少部分地基于所述至少一个键与手指25的子手势和手指27的子手势中的至少一个相关联的所述至少一个键的概率来确定一个或多个其他所建议的单词。
在某些示例中,还随着用户18做手势而实时地在浮动预览区57中向用户18显示首个候选单词。浮动预览区57是可选的,但是可用来随着手指25和27移动而为用户18提供在键盘16上来回移动的预览区。
在某些情况下,浮动预览区57出现在多触摸手势的子手势的最新近输入点之上,诸如在图4的示例中,使得浮动预览区57看起来浮动在活动(当前移动)手指的顶部上。在图4中,包括首个候选单词“FINGER”的浮动预览区57出现在与来自手指27的子手势的字母“R”相关联的输入点之上。在其他情况下,浮动预览区57出现在多触摸手势的子手势的第一输入点之上。
在各种不同示例中,可在与由第一子手势(与手指25相关联)滑过的第一组点中的任何点或由第二子手势(与手指27相关联)滑过的第二组附加对准点相对应的位置处在浮动预览区57中输出候选单词“FINGER”。例如,在用户18已完成与手指25相关联的第一子手势以尝试选择字符“FIN”之后,用户18可开始与手指27相关联的第二子手势以开始选择附加字符。手势模块8可至少部分地基于与第一子手势和/或第二子手势相关联的一个或多个特征来确定附加点是否与第一子手势和/或第二子手势相关联。例如,如先前所述,手势模块8可基于诸如由第一子手势和/或第二子手势滑过的距离、方向以及直线度之类的特征来进行此类确定。UI模块6然后可在与附加点中的一个相对应的位置处在浮动预览区57中输出候选单词。在图4中,UI模块6在与键盘16中的键“R”对准的点之上的浮动预览区57中输出候选单词“FINGER”,其与跟手指27相关联的第二子手势相关联。一般地,第一子手势和/或第二子手势可包括一个或多个手势段,如前所述。
在某些示例中,UI模块6可基于由给定子手势滑过的哪些点更加接近于键盘16的边缘或边界、诸如图4中所示的边界53来确定将在该处输出浮动预览区57的位置。边界53包括GUI 12内的键盘16的最上边界。边界53充当GUI 12的键盘16与建议区59之间的边界。
例如,在图4中所示的由多触摸手势的第一子手势滑过的第一组点可包括第一序列的点。第一子手势由手指25执行,并且可滑过与键“F”、“I”和“N”相关联的点的第一序列的点。由手指27执行的第二子手势滑过第二组点可包括与键“G”、“E”和“R”相关联的第二序列的点。
手势模块8可确定由手指25的第一子手势滑过的第一序列的点的最终点与键盘16的边界53之间的第一距离。由第一子手势滑过的第一序列的点的最终点与“N”键相关联,如图4中所示。手势模块8还可确定由手指27的第二子手势滑过的第二序列的点的最终点与边界53之间的第二距离。UI模块6然后可至少部分地基于第一距离与第二距离的比较在与第一序列的点的最终点或第二序列的点的最终点相对应的UI设备4的位置处在浮动预览区57中输出候选单词“FINGER”。
在图4的示例中,由于“R”键与边界53之间的第二距离小于“N”键和边界53之间的第一距离,所以UI模块6在与由手指27的第二子手势滑过的第二序列的点中的最终点(例如,在“R”键之上)相对应的位置处在浮动预览区57中输出候选单词“FINGER”。然而,在其中第一距离小于第二距离的其他示例中,UI模块6将能够在与由手指25的第一子手势滑过的第一序列的点的最终点相对应的位置处在浮动预览区57中输出候选单词“FINGER”。通过以这种方式来输出浮动预览区57,可避免或最小化浮动预览区57被手指25或27中的一个遮挡。
在某些示例中,计算设备2可确定在UI设备4处更新近接收到的是第一序列的点的最终点还是第二序列的点的最终点。至少部分地基于此确定,UI模块6可在与第一序列的点的最终点和第二序列的点的最终点中的一个相对应的位置处输出候选单词。在图4的示例中,计算设备2确定与用于第一子手势(手指25)的第一序列的点的最终点(与键“N”相关联)相比在UI设备4处更新近接收到用于第二子手势(手指27)的第二序列的点的最终点(与键“R”相关联),UI模块在与关联于键“R”的点相对应的位置处在浮动预览区57中输出候选单词“FINGER”。
图5是图示出与图4的示例类似的示例的概念图。然而,在图5中所示的示例中,用户18已使用相应的手指25和27来提供多触摸手势的第一和第二子手势,以选择键“F”、“U”、“N”、“G”、“E”和“R”。手势模块8可将键“F”“U”和“N”关联或对准到手指25的第一子手势,同时其使键“G”“E”和“R”与手指27的第二子手势相关联。在本示例中,假设用户18意图输入单词“FINGER”,但是其已在手指25的第一子手势中意外地选择“U”键而不是“I”键。
然而,手势模块8能够递增地执行手势识别算法以在建议区59内提供所建议的或候选单词。通过一个或多个模型、诸如空间和语言模型的使用,手势模块8能够在用户18已使用手指27选择键“G”“E”和“R”之后确定一组候选单词。如图5中所示,首个候选单词是“FINGER”,其相对于建议区59中的其余所建议的单词被突出地显示,并且其进一步可选地在浮动预览区57中显示。基于此类模型的使用,手势模块8能够预测用户18意图输入单词“FINGER”,即使用户18可能已错误地选择“U”键而不是“I”键。以这种方式,手势模块8能够执行自动修正功能,其中,候选单词“FINGER”包括未包括在与由用户18选择的键相关联的任一组字符中的字符(使得手势模块8可执行自动修正功能)。由于用户18确实错误地选择了键“U”,建议区59中的一组潜在候选单词可以是略有不同的。例如,如图5中所示,在建议区59中包括一个候选单词“FUNGUS”。然而,在图4中此候选单词未被包括在建议区59中,在图4的示例中假定用户18未选择键“U”。
在图4和5的示例中,用户18可使用用于手指25和27的子手势的许多不同组合来录入单词,并且用户18可同时地或连续地移动手指25和27。例如,虽然用户18已经以图4中所示的方式录入了单词“FINGER”,但用户18可以以任何数目的不同方式使用多触摸手势(例如,挥扫手势)来录入此相同单词。
例如,在一个替换使用情况下,用户18可以使用手指25来执行跨UI设备4滑动的第一子手势,作为多触摸挥扫手势的一部分,以滑过与键“F”“I”“N”和“G”相关联的点。随后或者甚至基本上同时地,用户18可以使用手指27执行第二子手势以滑过与键“E”和“R”相关联的点。手势模块8将能够基于“F”“I”“N”“G”“E”和“R”的所识别的键使用手势识别算法来识别“FINGER”的首个候选单词,正如在图4的示例中一样,即使“G”键与手指25的子手势而不是手指27的子手势相关联。手势模块8能够动态地且递增地确定多点手势中的哪些已滑过的点与每个子手势相关联,并且因此手势模块8能够确定与键“G”相关联的已滑过的点与手指25的子手势相关联。通过处理多触摸手势的所有已滑过的点,手势模块8能够识别“FINGER”的首个候选单词。
在另一替换使用情况下,用户18可以使用手指27来滑过与键“F”相关联的点。随后或者甚至基本上同时地,用户18可以使用手指25执行第二子手势以滑过与键“I”和“N”相关联的点。用户18还可使用手指27滑过与键“G”“E”和“R”相关联的点。在本示例中,用户18可使用手指27开始多触摸手势,但是可使用手指25来滑过与用于预期单词“FINGER”的中间键相关联的点。类似于先前的示例,手势模块8能够递增地确定哪些已滑过的点与手指27的子手势或手指25的子手势相关联。然而,在任何情况下,手势模块8能够使用识别算法来识别首个候选单词“FINGER”,无论同时地还是连续地提供手指25和27的子手势。
图6是图示出其中假设用户18意图录入单词“KEYBOARD”的另一示例的概念图。在本示例中,用户18通过在手势模块8确定与键盘16的键“K”基本上对准或相关联的UI设备4的点处触摸手指25来开始多触摸手势(例如,多触摸挥扫或移动手势)的第一子手势。
用户18还在UI设备4处将手指27移动至手势模块8确定与键盘16的键“E”基本上对准或相关联的UI设备4的点。用户18移动手指27以滑过与键“Y”相关联的点。因此,在这里,用户18已滑过与键“K”“E”和“Y”相关联的键盘16的点。手势模块8确定与键“K”相关联的已滑过的点与手指25的子手势对准,并且手势模块8确定与键“E”和“Y”相关联的已滑过的点与手指27的子手势对准。如在本示例中所示,即使当手指25和27异步地移动时,手势模块8也能够进行此类确定。用户18进一步从与键“K”相关联的点移动手指25以滑过UI设备上的与键“B”和“O”相关联的附加点,手势模块8确定这些已滑过的点与手指25的子手势对准。
由手势模块8实施的递增识别算法能够预测用于部分手势输入的首个或最可能候选单词。作为自动完成过程的结果,用户18不一定需要输入完整或全单词。在图6中,在用户18已使用多触摸手势来提供手指25和27的子手势以选择键“K”“E”“Y”“B”和“O”之后,用户18可从键盘16提起手指25和27以提交首个所建议的候选单词“KEYBOARD”。结果,候选单词“KEYBOARD”包括比包括在与由用户18选择的键相关联的字符的组合中的更大数目的字符(使得手势模块8可执行自动完成功能)。此首个候选单词在建议区59中突出地示出,并且还可选地在浮动预览区57中示出。
在图6的示例中,UI模块6可在接收由手指27的第二子手势滑过的第二组一个或多个点的至少一部分的指示之前接收由手指25的第一子手势滑过的第一组一个或多个点的至少一部分的指示,并且UI模块6可在与由第一子手势滑过的第一组点中的点相对应的UI设备4的位置处输出候选单词“KEYBOARD”。在图6的示例中,由于在手指27的子手势滑过与键“E”和“Y”相关联的点之前手指25的子手势滑过与键“K”相关联的点,所以UI模块6在与关联于键“O”的由手指25的子手势滑过的点相对应的位置处在浮动预览区57中输出候选单词“KEYBOARD”。
在图7中,与图6的示例相比,用户18已将手指25从UI设备4提起。以这种方式,UI模块6可接收用于手指25的子手势的终止的指示,并且UI模块6响应于此指示而在与用于由手指27的子手势滑过的第二组点中的点相对应的位置处在浮动预览区57中输出候选单词“KEYBOARD”。因此,如在图7中所示,浮动预览区57位于与用于由手指27的子手势滑过的最终点相对应的键“Y”之上。以这种方式,UI模块6可以在手指25或27中的一个被UI设备4释放时修改浮动预览区57的显示位置。在某些其他情况下,浮动预览区57的位置可基于哪个子手势(例如,用于手指25或27的子手势)是当前活动子手势。
在某些情况下,用户18可潜在地使用手指25和27来不按顺序(在时间上)选择键盘16的键。例如,用户18可使用手指25来首先选择“K”和“B”键,并且然后可随后使用手指27来选择“E”键和“Y”键。最后,用户18可使用手指25来选择“O”键。结果,从手指25和27的子手势进行的键选择的排序可以是“K”“B”“E”“Y”“O”(而不是“K”“E”“Y”“B”和“O”)。虽然用户18可异步地使用手指25和27来潜在地(例如,错误地)在时间上不按顺序录入字符,如在本示例中,手势模块8能够使每个所选键与手指25的子手势或手指27的子手势相关联,并且使用手势识别算法和/或语言模型(例如,语言模型10)来确定候选单词(例如,“KEYBOARD”)。结果,本公开的技术可潜在地减轻用户18在执行相应的子手势以按特定顺序选择单词的字符时使手指25和27同步的一些负担。
图8是图示出根据本公开的一个或多个技术的用以根据多点手势来确定候选单词的计算设备的示例操作的流程图。仅仅出于说明的目的,下面在如图1和2中所示的计算设备2的背景内描述示例操作。
在图8的示例中,计算设备2可输出包括多个键的图形键盘(例如,图形键盘16)以便在输出设备(例如,输出设备46和/或UI设备4)处显示(61)。计算设备2接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势(62)。响应于检测到第一子手势和第二子手势,计算设备2至少部分地基于第一和第二组键来确定候选单词(63)。
计算设备2可至少通过至少部分地基于第一子手势来确定由第一子手势滑过的第一组点(64)且通过至少部分地基于第二子手势来确定由第二子手势滑过的第二组点(65)来确定候选单词。计算设备2可至少部分地基于第一和第二组点来确定包括在第一和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率(66),并且还可至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词(67)。在确定候选单词时,计算设备2输出候选单词以便在输出设备处显示(68)。在某些示例中,输出设备包括存在敏感显示器。
图9A—9B是图示出根据本公开的一个或多个技术的用以根据手势输入来确定候选单词的计算设备的示例操作的流程图。仅仅出于说明的目的,下面在如图1和2中所示的计算设备2的背景内描述示例操作。
在图9A—9B的示例中,计算设备2可最初在计算设备2的存在敏感显示器(例如,UI设备4)处输出包括多个键的图形键盘(例如,键盘16)(70)。计算设备2随后可在存在敏感显示器处检测与多触摸手势输入的特定子手势(例如,与手指25或手指27相关联的子手势)相关联的手势路径(例如,图3A—3D中所示的路径21A、21B、22A或22B)(72)。响应于检测到手势路径,计算设备2可在作为词典特里存储于计算设备2上的词典的入口节点处创建具有零的成本值的令牌(74)。计算设备2可将令牌推入活动射束中(76)。
计算设备2可处理用于子手势的每个手势路径的手势数据。例如,计算设备2可处理用于与手指25的子手势相关联的手势路径22A的手势数据、用于与手指25的子手势相关联的手势路径22B的手势数据、用于与手指27的子手势相关联的手势路径21A的手势数据以及用于与手指27的子手势相关联的手势路径21B的手势数据。针对每个手势路径,计算设备2可执行动作77至118,如图9A—9B中所示。
在77处,计算设备2可处理用于作为多触摸手势的一部分的子手势(例如,手势路径22A)的单独(下一)手势路径的手势数据。计算设备2随后可从活动射束中选择令牌(78),并且在令牌的每个子节点上创建令牌的副本(80)。计算设备2可选择令牌副本(82)并确定沿着手势的对准点(84)。计算设备2可确定成本值,该成本值表示对准点指示令牌副本位于其上面的节点的字母键的概率,并将该成本值添加到令牌副本(86)。计算设备2可将令牌副本推入下一射束中(88)并确定是否存在剩余的任何令牌副本(90)。如果存在剩余的令牌副本(94),则计算设备2可选择新的令牌副本(82)。
如果不存在剩余的令牌副本(92),则计算设备2可确定令牌是否在词典特里的终端节点处(96)。如果令牌在终端节点处(98),则计算设备2可将令牌所表示的单词拷贝到候选单词列表(102)。在将单词拷贝到候选单词列表之后,或者如果令牌不在终端节点处(100),则计算设备2可丢弃该令牌(104)。
计算设备2可随后确定在活动射束中是否仍有任何令牌(106)。如果在活动射束中存在剩余的令牌(110),则计算设备2可从活动射束中选择新的令牌(76)。如果在活动射束中不存在剩余的令牌(108),则计算设备2可确定在下一射束中是否仍有任何令牌(112)。如果在下一射束中存在剩余的令牌(114),则计算设备2可将下一射束拷贝到活动射束(118),处理用于子手势的下一手势路径(例如,手势路径22B)的手势数据(77),并从活动射束中选择新令牌(78)。如果在下一射束中不存在剩余的令牌(116),则计算设备2可在存在敏感显示器处输出候选单词列表(120)。可以这种方式来处理单独手势路径(例如,手势路径22A、22B、21A、21B)中的每一个的手势数据,以便在由用户18执行包括与手指25和27相关联的单独子手势的多触摸手势期间递增地检测手势输入。
在一个示例中,可使用以下示例伪代码来实现本公开的技术:
在上述示例伪代码中,active_beam可以是活动射束54,next_beam可以是下一射束56,并且词典可包括在语言模型10中。
示例1:一种方法,包括:由计算设备并且为了在输出设备处显示而输出包括多个键的图形键盘;由计算设备接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;由计算设备并且响应于检测到第一子手势和第二子手势而至少部分地基于第一组键和第二组键来确定候选单词,其中,所述确定包括:由计算设备并且至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;由计算设备并且至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;由计算设备并且至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及由计算设备至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词;以及由计算设备并且为了在输出设备处显示而输出候选单词。
示例2:示例1的方法,其中,输出候选单词包括:在与由第一子手势滑过的第一组点中的点或由第二子手势滑过的第二组对准点中的点相对应的存在敏感显示器的位置处输出候选单词。
示例3:权利要求1—2中的任一项的方法,其中,接收在存在敏感显示器处的手势的指示包括在接收由第二子手势滑过的第二组点的至少一部分的指示之前接收由第一子手势滑过的第一组点的至少一部分的指示,以及其中,输出候选单词包括在与由第一子手势滑过的第一组点中的点相对应的存在敏感显示器的位置处输出候选单词。
示例4:示例3的方法,其中,在接收由第二子手势滑过的第二组点的至少一部分的指示之前接收由第一子手势滑过的第一组点的至少一部分的指示包括在接收第二组点的所述至少一部分的指示之前接收第一组点中的多个点的指示。
示例5:示例4的方法,其中,在接收由第二子手势滑过的第二组点的至少一部分的指示之前接收由第一子手势滑过的第一组点中的多个点的指示包括在接收第二组点中的多个点的指示之前接收第一组点中的多个点的指示。
示例6:示例1—5中的任一项的方法,还包括:由计算设备接收由图形键盘的第一子手势和第二子手势中的至少一个滑过的附加点的指示;以及由计算设备确定附加点是否与第一子手势和第二子手势中的至少一个相关联,其中,输出候选单词包括在与附加点中的一个相对应的存在敏感显示器的位置处输出候选单词。
示例7:示例6的方法,其中,所述第一子手势和第二子手势中的至少一个包括一个或多个段。
示例8:示例6的方法,其中,确定候选单词进一步包括至少部分地基于附加点与第一子手势和第二子手势中的至少一个的关联来确定候选单词。
示例9:示例1—8中的任一项的方法,其中,由第一子手势滑过的第一组点包括第一序列的点,其中,由第二子手势滑过的第二组点包括第二序列的点,并且其中,所述方法进一步包括:由计算设备确定由第一子手势滑过的第一序列的点的最终点与图形键盘的边界之间的第一距离;以及由计算设备确定由第二子手势滑过第二序列的点的最终点与图形键盘的边界之间的第二距离,其中,输出候选单词包括至少部分地基于第一距离与第二距离的比较在与第一序列的点的最终点或第二序列的点的最终点相对应的存在敏感显示器的位置处输出候选单词。
示例10:示例9的方法,其中,输出候选单词包括当第一距离小于第二距离时在与由第一子手势滑过的第一序列的点的最终点相对应的存在敏感显示器的位置处输出候选单词。
示例11:示例9的方法,其中,输出候选单词包括当第二距离小于第一距离时在与由第二子手势滑过的第二序列的点的最终点相对应的存在敏感显示器的位置处输出候选单词。
示例12:示例9的方法,其中,图形键盘的边界包括图形键盘的最上边界。
示例13:示例1—12中的任一项的方法,其中,由第一子手势滑过的第一组点包括第一序列的点,其中,由第二子手势滑过的第二组点包括第二序列的点,并且其中,所述方法进一步包括:由计算设备确定在存在敏感显示器处更新近接收到的是第一序列的点的最终点还是第二序列的点的最终点,其中,输出候选单词包括至少部分地基于更新近接收到的是第一序列的点的最终点还是第二序列的点的最终点而在与第一序列的点的最终点和第二序列的点的最终点中的一个相对应的存在敏感显示器的位置处输出候选单词。
示例14:示例1—13中的任一项的方法,进一步包括:由计算设备接收在存在敏感显示器处的第一子手势的终止的指示,其中,输出候选单词包括响应于接收到第一子手势的终止的指示而在与由第二子手势滑过的第二组点中的点相对应的存在敏感显示器的位置处输出候选单词。
示例15:示例1—14中的任一项的方法,进一步包括:由计算设备接收在存在敏感显示器处的第一子手势的终止的第一指示和第二子手势的终止的第二指示,其中,输出候选单词包括响应于接收到第一子手势的终止的第一指示和第二子手势的终止的第二指示而输出候选单词。
示例16:示例1—15中的任一项的方法,其中,第一组键与第一组字符相关联,其中,第二组键与第二组字符相关联,并且其中,候选单词包括未包括在第一组字符或第二组字符中的字符,使得计算设备执行自动修正功能以输出候选单词。
示例17:示例1—16中的任一项的方法,其中,第一组键与第一组字符相关联,其中,第二组键与第二组字符相关联,并且其中,候选单词包括比包括在第一组字符和第二组字符的组合中的更大数目的字符,使得计算设备执行自动完成功能以输出候选单词。
示例18:示例1—17中的任一项的方法,其中,确定由第一子手势滑过的第一组点至少部分地基于以下各项中的一个或多个:与第一子手势相关联的一段的长度,其中,该段包括在存在敏感显示器处由第一子手势滑过的路径;与第一子手势的该段相关联的移动的方向;第一子手势的该段的曲率;表示检测到第一子手势的该段的速率的局部速度;以及表示检测到该第一子手势的速率的全局速度。
示例19:示例1—18中的任一项的方法,其中,确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率包括:确定所述至少一个键被包括在与第一子手势相关联的第一组键中的第一概率;确定所述至少一个键被包括在与第二子手势相关联的第二组键中的第二概率;如果第一概率大于第二概率,则确定在第一组键中包括所述至少一个键;以及如果第二概率大于第一概率,则确定在第二组键中包括所述至少一个键。
示例20:示例1—19中的任一项的方法,其中,确定第一概率至少部分地基于以下各项中的一个或多个:与第一子手势相关联的一段的长度,其中,该段包括在存在敏感显示器处由第一子手势滑过的路径;与第一子手势的该段相关联的移动的方向;第一子手势的该段的曲率;表示检测到第一子手势的该段的速率的局部速度;表示检测到该第一子手势的速率的全局速度;以及第一组点中的一个点和与所述至少一个键的至少一部分相关联的区域之间的距离。
示例21:示例1—20中的任一项的方法,其中,所述候选单词是与在存在敏感显示器处接收到第一子手势和第二子手势中的至少一个同时地确定的。
示例22:示例1—21中的任一项的方法,其中,确定候选单词进一步包括:由计算设备确定用于包括在第一组键和第二组键中的至少一组中的至少两个键中的每个的相应的成本值,其中,相应的成本值中的每一个表示第一组点或第二组点中的点指示所述至少两个键中的对应的键的概率;由计算设备比较用于所述至少两个键的相应的成本值,以确定具有满足阈值的组合成本值的键的组合。
示例23:示例1—22中的任一项的方法,其中,确定用于所述至少两个键中的每一个的相应的成本值包括确定用于所述至少两个键中的每一个的相应的词典成本值,其中,所述相应的词典成本值中的每一个表示在候选单词中包括所述至少两个键中的对应的键所表示的字母的概率,并且其中,确定用于所述至少两个键中的每一个的相应的词典成本值包括将所述至少两个键中的每一个与语言模型相比较。
示例24:示例1—23中的任一项的方法,其中,确定候选单词进一步包括至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词和一个或多个其他所建议的单词,以及其中,输出候选单词包括输出候选单词连同一个或多个其他所建议的单词,使得候选单词在视觉上与一个或多个其他所建议的单词区别开。
示例25:示例1—24中的任一项的方法,其中,第一子手势和第二子手势包括挥扫手势、敲击手势或其组合。
示例26:示例1—25中的任一项的方法,其中,确定包括在第一组键和第二组键中的至少一组中的所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率包括进一步至少部分地基于包括在语言模型中的一个或多个单词来确定所述至少一个概率。
示例27:示例1—26中的任一项的方法,其中,所述输出设备包括存在敏感显示器。
示例28:一种计算设备,包括:至少一个处理器,其中,所述至少一个处理器被配置成:输出包括多个键的图形键盘以便在输出设备处显示;接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;响应于检测到第一子手势和第二子手势而至少部分地基于第一组键和第二组键来确定候选单词,其中,所述确定包括:至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词;以及输出候选单词以便在输出设备处显示。
示例29:一种编码有指令的计算机可读存储介质,该指令在被执行时使至少一个处理器以:输出包括多个键的图形键盘以便在输出设备处显示;接收在存在敏感显示器处检测到的多触摸手势的指示,该多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;响应于检测到第一子手势和第二子手势而至少部分地基于第一组键和第二组键来确定候选单词,其中,所述确定包括:至少部分地基于第一子手势来确定由第一子手势滑过的第一组点;至少部分地基于第二子手势来确定由第二子手势滑过的第二组点;至少部分地基于第一组点和第二组点来确定包括在第一组键和第二组键中的至少一组中的至少一个键与第一子手势和第二子手势中的至少一个相关联的至少一个概率;以及至少部分地基于所述至少一个键与第一子手势和第二子手势中的至少一个相关联的所述至少一个概率来确定候选单词;以及输出候选单词以便在输出设备处显示。
可至少部分地用硬件、软件、固件或其任何组合来实施在本公开中所述的技术。例如,可在一个或多个处理器内实施所述技术的各种方面,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效集成或分立逻辑电路以及此类组件的任何组合。术语“处理器”或“处理电路”一般地可指的是单独地或与其他逻辑电路相组合的任何前述逻辑电路,或者任何其他等效电路。包括硬件的控制单元也可执行本公开的技术中的一个或多个。
可在同一设备内或在单独设备内实施此类硬件、软件以及固件以支持在本公开中所述的各种技术。另外,可将任何的所述单元、模块或组件一起或单独地实现为分立但可互操作的逻辑设备。作为模块或单元的不同特征的描述意图强调不同的功能方面而不一定暗示必须用单独的硬件、固件或软件组件来实现此类模块或单元。相反地,可用单独硬件、固件或软件组件来执行与一个或多个模块或单元相关联的功能,或者所述功能可以集成在公共或单独硬件、固件或软件组件内。
还可在包括编码有指令的计算机可读存储介质的一件制品中体现或编码在本公开中描述的技术。在包括已编码的计算机可读存储介质的一件制品中嵌入或编码的指令可使一个或多个可编程处理器或其他处理器实施本文所述的技术中的一个或多个,诸如当由一个或多个处理器来执行包括在计算机可读存储介质中或编码于其中的指令时。计算机可读存储媒介可包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪速存储器、硬盘、紧凑式盘ROM(CD-ROM)、软盘、卡带、磁媒介、光学媒介或其他计算机可读存储媒介。在某些示例中,一件制品可包括一个或多个计算机可读存储媒介。
在某些示例中,计算机可读存储介质可包括非临时介质。术语“非临时”可指示并未在载波或传播信号中体现存储介质。在某些示例中,非临时存储介质可存储可以随时间推移而改变的数据(例如,在RAM或高速缓存器中)。
已描述了各种示例。这些及其他示例在以下权利要求的范围内。

Claims (29)

1.一种方法,包括:
由计算设备并且为了在输出设备处显示而输出包括多个键的图形键盘;
由所述计算设备接收在存在敏感显示器处检测到的多触摸手势的指示,所述多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;
由所述计算设备并且响应于检测到所述第一子手势和所述第二子手势而至少部分地基于所述第一组键和所述第二组键来确定候选单词,其中,所述确定包括:
由所述计算设备并且至少部分地基于所述第一子手势来确定由所述第一子手势滑过的第一组点;
由所述计算设备并且至少部分地基于所述第二子手势来确定由所述第二子手势滑过的第二组点;
由所述计算设备并且至少部分地基于所述第一组点和所述第二组点来确定包括在所述第一组键和所述第二组键中的至少一组中的至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的至少一个概率;以及
由所述计算设备至少部分地基于所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率来确定所述候选单词;以及
由所述计算设备并且为了在所述输出设备处显示而输出所述候选单词。
2.根据权利要求1所述的方法,其中,输出所述候选单词包括:
在与由所述第一子手势滑过的所述第一组点中的点或由所述第二子手势滑过的所述第二组对准点中的点相对应的所述存在敏感显示器的位置处输出所述候选单词。
3.根据权利要求1—2中的任一项所述的方法,
其中,接收在所述存在敏感显示器处的所述手势的所述指示包括在接收由所述第二子手势滑过的所述第二组点的至少一部分的指示之前接收由所述第一子手势滑过的所述第一组点的至少一部分的指示,以及
其中,输出所述候选单词包括在与由所述第一子手势滑过的所述第一组点中的点相对应的所述存在敏感显示器的位置处输出所述候选单词。
4.根据权利要求3所述的方法,其中,在接收由所述第二子手势滑过的所述第二组点的至少一部分的所述指示之前接收由所述第一子手势滑过的所述第一组点的至少一部分的所述指示包括在接收所述第二组点的所述至少一部分的所述指示之前接收所述第一组点中的多个点的指示。
5.根据权利要求4所述的方法,其中,在接收由所述第二子手势滑过的所述第二组点的至少一部分的所述指示之前接收由所述第一子手势滑过的所述第一组点中的所述多个点的所述指示包括在接收所述第二组点中的多个点的指示之前接收所述第一组点中的所述多个点的所述指示。
6.根据权利要求1—5中的任一项所述的方法,进一步包括:
由所述计算设备接收由所述第一子手势和所述第二子手势中的至少一个跨所述图形键盘滑过的附加点的指示;以及
由所述计算设备确定所述附加点是否与所述第一子手势和所述第二子手势中的至少一个相关联,
其中,输出所述候选单词包括在与所述附加点中的一个相对应的所述存在敏感显示器的位置处输出所述候选单词。
7.根据权利要求6所述的方法,其中,所述第一子手势和所述第二子手势中的至少一个包括一个或多个段。
8.根据权利要求6所述的方法,其中,确定所述候选单词进一步包括至少部分地基于所述附加点与所述第一子手势和所述第二子手势中的至少一个的关联来确定所述候选单词。
9.根据权利要求1—8中的任一项所述的方法,其中,由所述第一子手势滑过的所述第一组点包括第一序列的点,其中,由所述第二子手势滑过的所述第二组点包括第二序列的点,并且其中,所述方法进一步包括:
由所述计算设备确定由所述第一子手势滑过的所述第一序列的点的最终点与所述图形键盘的边界之间的第一距离;以及
由所述计算设备确定由所述第二子手势滑过的所述第二序列的点的最终点与所述图形键盘的所述边界之间的第二距离,
其中,输出所述候选单词包括至少部分地基于所述第一距离与所述第二距离的比较在与所述第一序列的点的所述最终点或所述第二序列的点的所述最终点相对应的所述存在敏感显示器的位置处输出所述候选单词。
10.根据权利要求9所述的方法,其中,输出所述候选单词包括当所述第一距离小于所述第二距离时在与由所述第一子手势滑过的所述第一序列的点的所述最终点相对应的所述存在敏感显示器的位置处输出所述候选单词。
11.根据权利要求9所述的方法,其中,输出所述候选单词包括当所述第二距离小于所述第一距离时在与由所述第二子手势滑过的所述第二序列的点的所述最终点相对应的所述存在敏感显示器的位置处输出所述候选单词。
12.根据权利要求9所述的方法,其中,所述图形键盘的所述边界包括所述图形键盘的最上边界。
13.根据权利要求1—12中的任一项所述的方法,其中,由所述第一子手势滑过的所述第一组点包括第一序列的点,其中,由所述第二子手势滑过的所述第二组点包括第二序列的点,并且其中,所述方法进一步包括:
由所述计算设备确定在所述存在敏感显示器处更新近接收到的是所述第一序列的点的最终点还是所述第二序列的点的最终点,
其中,输出所述候选单词包括至少部分地基于更新近接收到的是所述第一序列的点的所述最终点还是所述第二序列的点的所述最终点而在与所述第一序列的点的所述最终点和所述第二序列的点的所述最终点中的所述一个相对应的所述存在敏感显示器的位置处输出所述候选单词。
14.根据权利要求1—13中的任一项所述的方法,进一步包括:
由所述计算设备接收在所述存在敏感显示器处的所述第一子手势的终止的指示,
其中,输出所述候选单词包括响应于接收到所述第一子手势的所述终止的所述指示而在与由所述第二子手势滑过的所述第二组点中的点相对应的所述存在敏感显示器的位置处输出所述候选单词。
15.根据权利要求1—14中的任一项所述的方法,进一步包括:
由所述计算设备接收在所述存在敏感显示器处的所述第一子手势的终止的第一指示和所述第二子手势的终止的第二指示,
其中,输出所述候选单词包括响应于接收到所述第一子手势的所述终止的所述第一指示和所述第二子手势的所述终止的所述第二指示而输出所述候选单词。
16.根据权利要求1—15中的任一项所述的方法,其中,所述第一组键与第一组字符相关联,其中,所述第二组键与第二组字符相关联,并且其中,所述候选单词包括未包括在所述第一组字符或所述第二组字符中的字符,使得所述计算设备执行自动修正功能以输出所述候选单词。
17.根据权利要求1—16中的任一项所述的方法,其中,所述第一组键与第一组字符相关联,其中,所述第二组键与第二组字符相关联,并且其中,所述候选单词包括比包括在所述第一组字符和所述第二组字符的组合中的更大数目的字符,使得所述计算设备执行自动完成功能以输出所述候选单词。
18.根据权利要求1—17中的任一项所述的方法,其中,确定由所述第一子手势滑过的所述第一组点至少部分地基于以下各项中的一个或多个:
与所述第一子手势相关联的一段的长度,其中,所述段包括在所述存在敏感显示器处由所述第一子手势滑过的路径;
与所述第一子手势的所述段相关联的移动的方向;
所述第一子手势的所述段的曲率;
表示检测到所述第一子手势的所述段的速率的局部速度;以及
表示检测到所述第一子手势的速率的全局速度。
19.根据权利要求1—18中的任一项所述的方法,其中,确定包括在所述第一组键和所述第二组键中的所述至少一组中的所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率包括:
确定所述至少一个键被包括在与所述第一子手势相关联的所述第一组键中的第一概率;
确定所述至少一个键被包括在与所述第二子手势相关联的所述第二组键中的第二概率;
如果所述第一概率大于所述第二概率,则确定在所述第一组键中包括所述至少一个键;以及
如果所述第二概率大于所述第一概率,则确定在所述第二组键中包括所述至少一个键。
20.根据权利要求1—19中的任一项所述的方法,其中,确定所述第一概率至少部分地基于以下各项中的一个或多个:
与所述第一子手势相关联的一段的长度,其中,所述段包括在所述存在敏感显示器处由所述第一子手势滑过的路径;
与所述第一子手势的所述段相关联的移动的方向;
所述第一子手势的所述段的曲率;
表示检测到所述第一子手势的所述段的速率的局部速度;
表示检测到所述第一子手势的速率的全局速度;以及
所述第一组点中的一个点和与所述至少一个键的至少一部分相关联的区域之间的距离。
21.根据权利要求1—20中的任一项所述的方法,其中,所述候选单词是与在所述存在敏感显示器处接收到所述第一子手势和所述第二子手势中的至少一个同时被确定的。
22.根据权利要求1—21中的任一项所述的方法,其中,确定所述候选单词进一步包括:
由所述计算设备确定用于包括在所述第一组键和所述第二组键中的至少一组中的至少两个键中的每一个的相应的成本值,其中,所述相应的成本值中的每一个表示所述第一组点或所述第二组点中的点指示所述至少两个键中的对应的键的概率;
由所述计算设备比较用于所述至少两个键的相应的成本值,以确定具有满足阈值的组合成本值的键的组合。
23.根据权利要求1—22中的任一项所述的方法,其中,确定用于所述至少两个键中的每一个的相应的成本值包括确定用于所述至少两个键中的每一个的相应的词典成本值,其中,所述相应的词典成本值中的每一个表示在所述候选单词中包括所述至少两个键中的所述对应的键所表示的字母的概率,并且其中,确定用于所述至少两个键中的每一个的所述相应的词典成本值包括将所述至少两个键中的每一个与语言模型相比较。
24.根据权利要求1—23中的任一项所述的方法,
其中,确定所述候选单词进一步包括至少部分地基于所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率来确定所述候选单词和一个或多个其他所建议的单词,以及
其中,输出所述候选单词包括连同所述一个或多个其他所建议的单词输出所述候选单词,使得所述候选单词在视觉上与所述一个或多个其他所建议的单词区别开。
25.根据权利要求1—24中的任一项所述的方法,其中,所述第一子手势和所述第二子手势包括挥扫手势、敲击手势或其组合。
26.根据权利要求1—25中的任一项所述的方法,其中,确定包括在所述第一组键和所述第二组键中的至少一组中的所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率包括进一步至少部分地基于包括在语言模型中的一个或多个单词来确定所述至少一个概率。
27.根据权利要求1—16中的任一项所述的方法,其中,所述输出设备包括所述存在敏感显示器。
28.一种计算设备,包括:
至少一个处理器,
其中,所述至少一个处理器被配置成:
输出包括多个键的图形键盘以便在输出设备处显示;
接收在存在敏感显示器处检测到的多触摸手势的指示,所述多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;
响应于检测到所述第一子手势和所述第二子手势而至少部分地基于所述第一组键和所述第二组键来确定候选单词,其中,所述确定包括:
至少部分地基于所述第一子手势来确定由所述第一子手势滑过的第一组点;
至少部分地基于所述第二子手势来确定由所述第二子手势滑过的第二组点;
至少部分地基于所述第一组点和所述第二组点来确定包括在所述第一组键和所述第二组键中的至少一组中的至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的至少一个概率;以及
至少部分地基于所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率来确定所述候选单词;以及
输出所述候选单词以便在所述输出设备处显示。
29.一种编码有指令的计算机可读存储介质,所述指令在被执行时使至少一个处理器以:
输出包括多个键的图形键盘以便在输出设备处显示;
接收在存在敏感显示器处检测到的多触摸手势的指示,所述多触摸手势包括滑过所述多个键中的第一组键的第一子手势和滑过所述多个键中的第二组键的第二子手势;
响应于检测到所述第一子手势和所述第二子手势而至少部分地基于所述第一组键和所述第二组键来确定候选单词,其中,所述确定包括:
至少部分地基于所述第一子手势来确定由所述第一子手势滑过的第一组点;
至少部分地基于所述第二子手势来确定由所述第二子手势滑过的第二组点;
至少部分地基于所述第一组点和所述第二组点来确定包括在所述第一组键和所述第二组键中的至少一组中的至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的至少一个概率;以及
至少部分地基于所述至少一个键与所述第一子手势和所述第二子手势中的至少一个相关联的所述至少一个概率来确定所述候选单词;以及
输出所述候选单词以便在所述输出设备处显示。
CN201380057887.1A 2012-10-05 2013-10-03 递增多触摸手势识别 Active CN104798016B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/646,521 2012-10-05
US13/646,521 US9021380B2 (en) 2012-10-05 2012-10-05 Incremental multi-touch gesture recognition
PCT/US2013/063267 WO2014055762A1 (en) 2012-10-05 2013-10-03 Incremental multi-touch gesture recognition

Publications (2)

Publication Number Publication Date
CN104798016A true CN104798016A (zh) 2015-07-22
CN104798016B CN104798016B (zh) 2016-10-05

Family

ID=49484428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380057887.1A Active CN104798016B (zh) 2012-10-05 2013-10-03 递增多触摸手势识别

Country Status (3)

Country Link
US (1) US9021380B2 (zh)
CN (1) CN104798016B (zh)
WO (1) WO2014055762A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406514A (zh) * 2015-07-29 2017-02-15 福特全球技术公司 用于基于手势控制车门的系统和方法
CN108701123A (zh) * 2016-04-04 2018-10-23 谷歌有限责任公司 图形键盘的动态键映射

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US20150113468A1 (en) * 2012-09-24 2015-04-23 Richard Lawrence Clark System and method of inputting time on an electronic device having a touch screen
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US8850350B2 (en) 2012-10-16 2014-09-30 Google Inc. Partial gesture text entry
US8843845B2 (en) 2012-10-16 2014-09-23 Google Inc. Multi-gesture text input prediction
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US20140160029A1 (en) * 2012-12-06 2014-06-12 Jenny Yuen Systems and Methods for a Trackpad Within a Keyboard
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models
US9348429B2 (en) 2013-03-15 2016-05-24 Blackberry Limited Method and apparatus for word prediction using the position of a non-typing digit
US9063576B1 (en) * 2013-04-04 2015-06-23 Amazon Technologies, Inc. Managing gesture input information
JP2014211701A (ja) * 2013-04-17 2014-11-13 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
US8887103B1 (en) 2013-04-22 2014-11-11 Google Inc. Dynamically-positioned character string suggestions for gesture typing
US9081500B2 (en) 2013-05-03 2015-07-14 Google Inc. Alternative hypothesis error correction for gesture typing
JP6199824B2 (ja) * 2013-10-29 2017-09-20 京セラドキュメントソリューションズ株式会社 表示装置、画像形成装置、及び表示制御方法
USD810115S1 (en) 2013-11-22 2018-02-13 Apple Inc. Display screen or portion thereof with graphical user interface
JP2015114976A (ja) * 2013-12-13 2015-06-22 株式会社東芝 電子機器及び方法
KR102177607B1 (ko) * 2014-05-16 2020-11-11 엘지전자 주식회사 이동 단말기 및 이의 제어방법
US10204096B2 (en) * 2014-05-30 2019-02-12 Apple Inc. Device, method, and graphical user interface for a predictive keyboard
USD771112S1 (en) 2014-06-01 2016-11-08 Apple Inc. Display screen or portion thereof with graphical user interface
US9477653B2 (en) * 2014-06-26 2016-10-25 Blackberry Limited Character entry for an electronic device using a position sensing keyboard
USD780798S1 (en) * 2014-09-02 2017-03-07 Samsung Electronics Co., Ltd. Display screen or portion thereof with graphical user interface
CN104571585B (zh) * 2014-12-30 2017-07-28 北京奇虎科技有限公司 输入法光标操作方法和装置
WO2016141306A1 (en) * 2015-03-04 2016-09-09 The Trustees Of The University Of Pennsylvania User interface input method and system for handheld and mobile devices
US9678664B2 (en) 2015-04-10 2017-06-13 Google Inc. Neural network for keyboard input decoding
US20180018086A1 (en) * 2016-07-14 2018-01-18 Google Inc. Pressure-based gesture typing for a graphical keyboard
US10884610B2 (en) 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US11188158B2 (en) 2017-06-02 2021-11-30 Samsung Electronics Co., Ltd. System and method of determining input characters based on swipe input
US20190034069A1 (en) * 2017-07-26 2019-01-31 Microsoft Technology Licensing, Llc Programmable Multi-touch On-screen Keyboard
US10148525B1 (en) 2018-04-13 2018-12-04 Winshuttle, Llc Methods and systems for mitigating risk in deploying unvetted data handling rules
US11321965B2 (en) * 2018-07-10 2022-05-03 Dell Products, L.P. Scalable gesture and eye-gaze tracking in virtual, augmented, and mixed reality (xR) applications
US11194467B2 (en) 2019-06-01 2021-12-07 Apple Inc. Keyboard management user interfaces
US11416136B2 (en) 2020-09-14 2022-08-16 Apple Inc. User interfaces for assigning and responding to user inputs
US20230045610A1 (en) * 2021-08-03 2023-02-09 Dell Products, L.P. Eye contact correction in a communication or collaboration session using a platform framework

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390039A (zh) * 2006-01-05 2009-03-18 苹果公司 用于便携式电子设备的键盘
CN102411477A (zh) * 2011-11-16 2012-04-11 鸿富锦精密工业(深圳)有限公司 电子设备及其文本导读方法
CN102508553A (zh) * 2011-11-23 2012-06-20 赵来刚 电子产品手持输入数据和指令的技术
CN102541304A (zh) * 2010-11-19 2012-07-04 微软公司 姿势识别

Family Cites Families (207)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4534261A (en) * 1983-03-30 1985-08-13 Raymond Fabrizio Vent key modification for flute
US4833610A (en) 1986-12-16 1989-05-23 International Business Machines Corporation Morphological/phonetic method for ranking word similarities
US4988981B1 (en) * 1987-03-17 1999-05-18 Vpl Newco Inc Computer data entry and manipulation apparatus and method
US4847766A (en) 1988-01-05 1989-07-11 Smith Corona Corporation Dictionary typewriter with correction of commonly confused words
US5307267A (en) * 1990-03-27 1994-04-26 Yang Gong M Method and keyboard for input of characters via use of specified shapes and patterns
EP0450196B1 (en) * 1990-04-02 1998-09-09 Koninklijke Philips Electronics N.V. Data processing system using gesture-based input data
US5604897A (en) 1990-05-18 1997-02-18 Microsoft Corporation Method and system for correcting the spelling of misspelled words
US6094188A (en) * 1990-11-30 2000-07-25 Sun Microsystems, Inc. Radio frequency tracking system
US5848187A (en) * 1991-11-18 1998-12-08 Compaq Computer Corporation Method and apparatus for entering and manipulating spreadsheet cell data
FR2689290B1 (fr) * 1992-03-26 1994-06-10 Aerospatiale Procede et dispositif de communication multimodes et multifonctions entre un operateur et un ou plusieurs processeurs.
CA2089784C (en) * 1992-04-15 1996-12-24 William Joseph Anderson Apparatus and method for disambiguating an input stream generated by a stylus-based user interface
JP3367116B2 (ja) * 1992-09-02 2003-01-14 ヤマハ株式会社 電子楽器
US5502803A (en) * 1993-01-18 1996-03-26 Sharp Kabushiki Kaisha Information processing apparatus having a gesture editing function
US5677710A (en) * 1993-05-10 1997-10-14 Apple Computer, Inc. Recognition keypad
US5606494A (en) * 1993-11-25 1997-02-25 Casio Computer Co., Ltd. Switching apparatus
US6008799A (en) 1994-05-24 1999-12-28 Microsoft Corporation Method and system for entering data using an improved on-screen keyboard
JPH0844719A (ja) 1994-06-01 1996-02-16 Mitsubishi Electric Corp 辞書アクセスシステム
US5761689A (en) 1994-09-01 1998-06-02 Microsoft Corporation Autocorrecting text typed into a word processing document
WO1996009579A1 (en) * 1994-09-22 1996-03-28 Izak Van Cruyningen Popup menus with directional gestures
US5521986A (en) * 1994-11-30 1996-05-28 American Tel-A-Systems, Inc. Compact data input device
FI97508C (fi) * 1995-01-09 1996-12-27 Nokia Mobile Phones Ltd Pikavalinta henkilökohtaisessa matkaviestimessä
US5748512A (en) 1995-02-28 1998-05-05 Microsoft Corporation Adjusting keyboard
US5797098A (en) 1995-07-19 1998-08-18 Pacific Communication Sciences, Inc. User interface for cellular telephone
JPH0981364A (ja) * 1995-09-08 1997-03-28 Nippon Telegr & Teleph Corp <Ntt> マルチモーダル情報入力方法及び装置
US6061050A (en) * 1995-10-27 2000-05-09 Hewlett-Packard Company User interface device
US6041292A (en) 1996-01-16 2000-03-21 Jochim; Carol Real time stenographic system utilizing vowel omission principle
USRE37654E1 (en) * 1996-01-22 2002-04-16 Nicholas Longo Gesture synthesizer for electronic sound device
US6115482A (en) * 1996-02-13 2000-09-05 Ascent Technology, Inc. Voice-output reading system with gesture-based navigation
JP3280559B2 (ja) * 1996-02-20 2002-05-13 シャープ株式会社 ジョグダイアルの模擬入力装置
US5917493A (en) * 1996-04-17 1999-06-29 Hewlett-Packard Company Method and apparatus for randomly generating information for subsequent correlating
US5905246A (en) * 1996-10-31 1999-05-18 Fajkowski; Peter W. Method and apparatus for coupon management and redemption
JP3889466B2 (ja) 1996-11-25 2007-03-07 ソニー株式会社 文章入力装置及び方法
US5953541A (en) * 1997-01-24 1999-09-14 Tegic Communications, Inc. Disambiguating system for disambiguating ambiguous input sequences by displaying objects associated with the generated input sequences in the order of decreasing frequency of use
US6047300A (en) 1997-05-15 2000-04-04 Microsoft Corporation System and method for automatically correcting a misspelled word
US6686931B1 (en) * 1997-06-13 2004-02-03 Motorola, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6278453B1 (en) * 1997-06-13 2001-08-21 Starfish Software, Inc. Graphical password methodology for a microprocessor device accepting non-alphanumeric user input
US6141011A (en) * 1997-08-04 2000-10-31 Starfish Software, Inc. User interface methodology supporting light data entry for microprocessor device having limited user input
US6160555A (en) * 1997-11-17 2000-12-12 Hewlett Packard Company Method for providing a cue in a computer system
US6057845A (en) * 1997-11-14 2000-05-02 Sensiva, Inc. System, method, and apparatus for generation and recognizing universal commands
WO1999028811A1 (en) * 1997-12-04 1999-06-10 Northern Telecom Limited Contextual gesture interface
US8479122B2 (en) * 2004-07-30 2013-07-02 Apple Inc. Gestures for touch sensitive input devices
US7614008B2 (en) 2004-07-30 2009-11-03 Apple Inc. Operation of a computer with touch screen interface
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US6438523B1 (en) * 1998-05-20 2002-08-20 John A. Oberteuffer Processing handwritten and hand-drawn input and speech input
US6424983B1 (en) 1998-05-26 2002-07-23 Global Information Research And Technologies, Llc Spelling and grammar checking system
US6131102A (en) 1998-06-15 2000-10-10 Microsoft Corporation Method and system for cost computation of spelling suggestions and automatic replacement
US6150600A (en) * 1998-12-01 2000-11-21 Buchla; Donald F. Inductive location sensor system and electronic percussion system
GB2347247A (en) 1999-02-22 2000-08-30 Nokia Mobile Phones Ltd Communication terminal with predictive editor
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
CA2392446C (en) 1999-05-27 2009-07-14 America Online Incorporated Keyboard system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
US6904405B2 (en) 1999-07-17 2005-06-07 Edwin A. Suominen Message recognition using shared language model
US6396523B1 (en) * 1999-07-29 2002-05-28 Interlink Electronics, Inc. Home entertainment device remote control
US6512838B1 (en) * 1999-09-22 2003-01-28 Canesta, Inc. Methods for enhancing performance and data acquired from three-dimensional image systems
US6789231B1 (en) 1999-10-05 2004-09-07 Microsoft Corporation Method and system for providing alternatives for text derived from stochastic input sources
US7798417B2 (en) 2000-01-03 2010-09-21 Snyder David M Method for data interchange
DE60025901T2 (de) 2000-01-11 2006-08-24 International Business Machines Corp. Verfahren und Vorrichtung zur Markierung eines Textdokuments mit einem Muster von zusätzlichen Leerstellen zum Zweck der Authentifizierung
US6573844B1 (en) 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US7028259B1 (en) 2000-02-01 2006-04-11 Jacobson Robert L Interactive legal citation checker
US6630924B1 (en) * 2000-02-22 2003-10-07 International Business Machines Corporation Gesture sensing split keyboard and approach for capturing keystrokes
US7047493B1 (en) 2000-03-31 2006-05-16 Brill Eric D Spell checker with arbitrary length string-to-string transformations to improve noisy channel spelling correction
US7035788B1 (en) 2000-04-25 2006-04-25 Microsoft Corporation Language model sharing
AU2001270420A1 (en) 2000-07-21 2002-02-05 Raphael Bachmann Method for a high-speed writing system and high-speed writing device
US20020015064A1 (en) 2000-08-07 2002-02-07 Robotham John S. Gesture-based user interface to multi-level and multi-modal sets of bit-maps
US6606597B1 (en) 2000-09-08 2003-08-12 Microsoft Corporation Augmented-word language model
WO2002033582A2 (en) 2000-10-16 2002-04-25 Text Analysis International, Inc. Method for analyzing text and method for builing text analyzers
EP1887451A3 (en) 2000-10-18 2009-06-24 602531 British Columbia Ltd. Data entry method and system for personal computer, and corresponding computer readable medium
AU2002230766A1 (en) 2000-11-08 2002-05-21 New York University System, process and software arrangement for recognizing handwritten characters
US6570557B1 (en) * 2001-02-10 2003-05-27 Finger Works, Inc. Multi-touch system and method for emulating modifier keys via fingertip chords
CA2340531C (en) 2001-03-12 2006-10-10 Ibm Canada Limited-Ibm Canada Limitee Document retrieval system and search method using word set and character look-up tables
US7035794B2 (en) 2001-03-30 2006-04-25 Intel Corporation Compressing and using a concatenative speech database in text-to-speech systems
FI116591B (fi) * 2001-06-29 2005-12-30 Nokia Corp Menetelmä ja laite toiminnon toteuttamiseksi
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
US7610189B2 (en) 2001-10-18 2009-10-27 Nuance Communications, Inc. Method and apparatus for efficient segmentation of compound words using probabilistic breakpoint traversal
US7296019B1 (en) 2001-10-23 2007-11-13 Microsoft Corporation System and methods for providing runtime spelling analysis and correction
US7362243B2 (en) 2001-11-16 2008-04-22 International Business Machines Corporation Apparatus and method using color-coded or pattern-coded keys in two-key input per character text entry
US6765556B2 (en) 2001-11-16 2004-07-20 International Business Machines Corporation Two-key input per character text entry apparatus and method
US7075520B2 (en) 2001-12-12 2006-07-11 Zi Technology Corporation Ltd Key press disambiguation using a keypad of multidirectional keys
US7231343B1 (en) 2001-12-20 2007-06-12 Ianywhere Solutions, Inc. Synonyms mechanism for natural language systems
US7175438B2 (en) 2002-03-01 2007-02-13 Digit Wireless Fast typing system and method
US7170430B2 (en) 2002-03-28 2007-01-30 Michael Goodgoll System, method, and computer program product for single-handed data entry
US7151530B2 (en) 2002-08-20 2006-12-19 Canesta, Inc. System and method for determining an input selected by a user through a virtual interface
DE60212976T2 (de) 2002-11-20 2006-11-16 Nokia Corp. Verfahren und Benutzerschnittstelle zur Zeicheneingabe
US7199786B2 (en) 2002-11-29 2007-04-03 Daniel Suraqui Reduced keyboards system using unistroke input and having automatic disambiguating and a recognition method using said system
US7251367B2 (en) 2002-12-20 2007-07-31 International Business Machines Corporation System and method for recognizing word patterns based on a virtual keyboard layout
US7453439B1 (en) * 2003-01-16 2008-11-18 Forward Input Inc. System and method for continuous stroke word-based text input
US7382358B2 (en) * 2003-01-16 2008-06-03 Forword Input, Inc. System and method for continuous stroke word-based text input
US7098896B2 (en) 2003-01-16 2006-08-29 Forword Input Inc. System and method for continuous stroke word-based text input
SG135918A1 (en) 2003-03-03 2007-10-29 Xrgomics Pte Ltd Unambiguous text input method for touch screens and reduced keyboard systems
NZ529518A (en) 2003-11-13 2005-03-24 Andy Zheng Song Input method, system and device
US20050114115A1 (en) 2003-11-26 2005-05-26 Karidis John P. Typing accuracy relaxation system and method in stylus and other keyboards
DE10357475A1 (de) 2003-12-09 2005-07-07 Siemens Ag Kommunikationsvorrichtung und Verfahren zum Eingeben und Vorhersagen von Text
US7250938B2 (en) 2004-01-06 2007-07-31 Lenovo (Singapore) Pte. Ltd. System and method for improved user input on personal computing devices
US7706616B2 (en) * 2004-02-27 2010-04-27 International Business Machines Corporation System and method for recognizing word patterns in a very large vocabulary based on a virtual keyboard layout
EP2017696A1 (en) 2004-06-02 2009-01-21 2012244 Ontario Inc. Handheld electronic device with text disambiguation
US20060004638A1 (en) 2004-07-02 2006-01-05 Royal Eliza H Assisted electronic product design
JP4284531B2 (ja) 2004-07-06 2009-06-24 オムロン株式会社 実装用基板及びそれを使用した駆動装置
US7207004B1 (en) 2004-07-23 2007-04-17 Harrity Paul A Correction of misspelled words
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US20060055669A1 (en) 2004-09-13 2006-03-16 Mita Das Fluent user interface for text entry on touch-sensitive display
JP4843505B2 (ja) 2004-12-24 2011-12-21 独立行政法人科学技術振興機構 ナノ黒鉛構造体−金属ナノ粒子複合体
US8552984B2 (en) 2005-01-13 2013-10-08 602531 British Columbia Ltd. Method, system, apparatus and computer-readable media for directing input associated with keyboard-type device
US7487461B2 (en) 2005-05-04 2009-02-03 International Business Machines Corporation System and method for issuing commands based on pen motions on a graphical keyboard
US20060256139A1 (en) 2005-05-11 2006-11-16 Gikandi David C Predictive text computer simplified keyboard with word and phrase auto-completion (plus text-to-speech and a foreign language translation option)
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US7886233B2 (en) 2005-05-23 2011-02-08 Nokia Corporation Electronic text input involving word completion functionality for predicting word candidates for partial word inputs
US20070016862A1 (en) 2005-07-15 2007-01-18 Microth, Inc. Input guessing systems, methods, and computer program products
GB0516246D0 (en) 2005-08-08 2005-09-14 Scanlan Timothy A data entry device and method
US7542029B2 (en) 2005-09-20 2009-06-02 Cliff Kushler System and method for a user interface for text editing and menu selection
US20070094024A1 (en) 2005-10-22 2007-04-26 International Business Machines Corporation System and method for improving text input in a shorthand-on-keyboard interface
US7657526B2 (en) 2006-03-06 2010-02-02 Veveo, Inc. Methods and systems for selecting and presenting content based on activity level spikes associated with the content
US7831911B2 (en) 2006-03-08 2010-11-09 Microsoft Corporation Spell checking system including a phonetic speller
ITRM20060136A1 (it) * 2006-03-10 2007-09-11 Link Formazione S R L Sistema multimediale interattivo
EP1860576A1 (en) 2006-05-23 2007-11-28 Harman/Becker Automotive Systems GmbH Indexing big world lists in databases
US7831423B2 (en) 2006-05-25 2010-11-09 Multimodal Technologies, Inc. Replacing text representing a concept with an alternate written form of the concept
WO2008013658A2 (en) 2006-07-03 2008-01-31 Cliff Kushler System and method for a user interface for text editing and menu selection
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US20080172293A1 (en) 2006-12-28 2008-07-17 Yahoo! Inc. Optimization framework for association of advertisements with sequential media
US8074172B2 (en) 2007-01-05 2011-12-06 Apple Inc. Method, system, and graphical user interface for providing word recommendations
US7907125B2 (en) 2007-01-05 2011-03-15 Microsoft Corporation Recognizing multiple input point gestures
US7957955B2 (en) 2007-01-05 2011-06-07 Apple Inc. Method and system for providing word recommendations for text input
US8225203B2 (en) 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US7809719B2 (en) 2007-02-08 2010-10-05 Microsoft Corporation Predicting textual candidates
US20080229255A1 (en) * 2007-03-15 2008-09-18 Nokia Corporation Apparatus, method and system for gesture detection
US20080232885A1 (en) 2007-03-19 2008-09-25 Giftventure Studios, Inc. Systems and Methods for Creating Customized Activities
US7895518B2 (en) 2007-04-27 2011-02-22 Shapewriter Inc. System and method for preview and selection of words
US8059101B2 (en) * 2007-06-22 2011-11-15 Apple Inc. Swipe gestures for touch screen keyboards
TW200905538A (en) 2007-07-31 2009-02-01 Elan Microelectronics Corp Touch position detector of capacitive touch panel and method of detecting the touch position
US20090058823A1 (en) 2007-09-04 2009-03-05 Apple Inc. Virtual Keyboards in Multi-Language Environment
US20090100383A1 (en) 2007-10-16 2009-04-16 Microsoft Corporation Predictive gesturing in graphical user interface
US20090119376A1 (en) 2007-11-06 2009-05-07 International Busness Machines Corporation Hint-Based Email Address Construction
US8232973B2 (en) 2008-01-09 2012-07-31 Apple Inc. Method, device, and graphical user interface providing word recommendations for text input
US8456425B2 (en) 2008-01-30 2013-06-04 International Business Machines Corporation Self-adapting keypad
US8280886B2 (en) 2008-02-13 2012-10-02 Fujitsu Limited Determining candidate terms related to terms of a query
WO2010011972A1 (en) 2008-07-24 2010-01-28 Headsprout, Inc. Teaching reading comprehension
US8619048B2 (en) 2008-08-08 2013-12-31 Moonsun Io Ltd. Method and device of stroke based user input
EA201100347A1 (ru) * 2008-08-12 2011-10-31 Килесс Системз Лтд. Система ввода данных
US20100070908A1 (en) 2008-09-18 2010-03-18 Sun Microsystems, Inc. System and method for accepting or rejecting suggested text corrections
US20100079382A1 (en) 2008-09-26 2010-04-01 Suggs Bradley N Touch-screen monitoring
US8788261B2 (en) 2008-11-04 2014-07-22 Saplo Ab Method and system for analyzing text
US7996369B2 (en) 2008-11-14 2011-08-09 The Regents Of The University Of California Method and apparatus for improving performance of approximate string queries using variable length high-quality grams
US20100131447A1 (en) 2008-11-26 2010-05-27 Nokia Corporation Method, Apparatus and Computer Program Product for Providing an Adaptive Word Completion Mechanism
US20100141484A1 (en) 2008-12-08 2010-06-10 Research In Motion Limited Optimized keyboard for handheld thumb-typing and touch-typing
US20100199226A1 (en) 2009-01-30 2010-08-05 Nokia Corporation Method and Apparatus for Determining Input Information from a Continuous Stroke Input
RU2011134935A (ru) * 2009-02-04 2013-03-10 Кейлесс Системз Лтд. Система ввода данных
US20100235780A1 (en) 2009-03-16 2010-09-16 Westerman Wayne C System and Method for Identifying Words Based on a Sequence of Keyboard Events
US9311112B2 (en) * 2009-03-16 2016-04-12 Apple Inc. Event recognition
US8566045B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US8566044B2 (en) * 2009-03-16 2013-10-22 Apple Inc. Event recognition
US20100238125A1 (en) 2009-03-20 2010-09-23 Nokia Corporation Method, Apparatus, and Computer Program Product For Discontinuous Shapewriting
KR101844366B1 (ko) 2009-03-27 2018-04-02 삼성전자 주식회사 터치 제스처 인식 장치 및 방법
US9189472B2 (en) * 2009-03-30 2015-11-17 Touchtype Limited System and method for inputting text into small screen devices
GB0905457D0 (en) 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
US20120046544A1 (en) 2009-04-16 2012-02-23 Shimadzu Corporation Radiation tomography apparatus
US20100315266A1 (en) 2009-06-15 2010-12-16 Microsoft Corporation Predictive interfaces with usability constraints
DE102010031878A1 (de) 2009-07-22 2011-02-10 Logitech Europe S.A. System und Verfahren zur entfernten virtuellen auf-einen-Schirm-Eingabe
DE212009000220U1 (de) 2009-08-04 2012-05-07 Google, Inc. Erzeugung von Suchanfrage-Vorschlägen
US9317116B2 (en) 2009-09-09 2016-04-19 Immersion Corporation Systems and methods for haptically-enhanced text interfaces
US20110063231A1 (en) 2009-09-14 2011-03-17 Invotek, Inc. Method and Device for Data Input
US8341558B2 (en) 2009-09-16 2012-12-25 Google Inc. Gesture recognition on computing device correlating input to a template
US8135582B2 (en) 2009-10-04 2012-03-13 Daniel Suraqui Keyboard system and method for global disambiguation from classes with dictionary database from first and last letters
US8386574B2 (en) 2009-10-29 2013-02-26 Xerox Corporation Multi-modality classification for one-class classification in social networks
US8365059B2 (en) 2009-11-03 2013-01-29 Oto Technologies, Llc E-reader semantic text manipulation
US8884872B2 (en) * 2009-11-20 2014-11-11 Nuance Communications, Inc. Gesture-based repetition of key activations on a virtual keyboard
US8358281B2 (en) * 2009-12-15 2013-01-22 Apple Inc. Device, method, and graphical user interface for management and manipulation of user interface elements
US8587532B2 (en) 2009-12-18 2013-11-19 Intel Corporation Multi-feature interactive touch user interface
US8782556B2 (en) 2010-02-12 2014-07-15 Microsoft Corporation User-centric soft keyboard predictive technologies
US9417787B2 (en) 2010-02-12 2016-08-16 Microsoft Technology Licensing, Llc Distortion effects to indicate location in a movable data collection
US9965165B2 (en) 2010-02-19 2018-05-08 Microsoft Technology Licensing, Llc Multi-finger gestures
US8515969B2 (en) 2010-02-19 2013-08-20 Go Daddy Operating Company, LLC Splitting a character string into keyword strings
KR101557358B1 (ko) 2010-02-25 2015-10-06 엘지전자 주식회사 문자열 입력 방법 및 그 장치
US20110210850A1 (en) 2010-02-26 2011-09-01 Phuong K Tran Touch-screen keyboard with combination keys and directional swipes
KR101477530B1 (ko) * 2010-03-12 2014-12-30 뉘앙스 커뮤니케이션즈, 인코포레이티드 이동 전화의 터치 스크린과 함께 사용하기 위한 다중 모드 문자 입력 시스템
US8542195B2 (en) 2010-03-30 2013-09-24 International Business Machines Corporation Method for optimization of soft keyboards for multiple languages
US8266528B1 (en) 2010-06-24 2012-09-11 Google Inc. Spelling suggestions based on an input sequence including accidental “delete”
US8918734B2 (en) * 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US20120036468A1 (en) 2010-08-03 2012-02-09 Nokia Corporation User input remapping
US20120036485A1 (en) 2010-08-09 2012-02-09 XMG Studio Motion Driven User Interface
US8898586B2 (en) 2010-09-24 2014-11-25 Google Inc. Multiple touchpoints for efficient text input
GB201200643D0 (en) 2012-01-16 2012-02-29 Touchtype Ltd System and method for inputting text
US8810581B2 (en) 2010-10-20 2014-08-19 Blackberry Limited Character input method
US20120113008A1 (en) 2010-11-08 2012-05-10 Ville Makinen On-screen keyboard with haptic effects
US9235828B2 (en) * 2010-11-17 2016-01-12 Z124 Email client display transition
EP2641145A4 (en) 2010-11-20 2017-05-03 Nuance Communications, Inc. Systems and methods for using entered text to access and process contextual information
US20120166428A1 (en) 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
US8730188B2 (en) 2010-12-23 2014-05-20 Blackberry Limited Gesture input on a portable electronic device and method of controlling the same
US8922489B2 (en) * 2011-03-24 2014-12-30 Microsoft Corporation Text input using key and gesture information
US8914275B2 (en) 2011-04-06 2014-12-16 Microsoft Corporation Text prediction
US8570372B2 (en) * 2011-04-29 2013-10-29 Austin Russell Three-dimensional imager and projection device
US8587542B2 (en) 2011-06-01 2013-11-19 Motorola Mobility Llc Using pressure differences with a touch-sensitive display screen
US9471560B2 (en) 2011-06-03 2016-10-18 Apple Inc. Autocorrecting language input for virtual keyboards
US20130212515A1 (en) 2012-02-13 2013-08-15 Syntellia, Inc. User interface for text input
US8751972B2 (en) 2011-09-20 2014-06-10 Google Inc. Collaborative gesture-based input language
US20130082824A1 (en) 2011-09-30 2013-04-04 Nokia Corporation Feedback response
US8490008B2 (en) 2011-11-10 2013-07-16 Research In Motion Limited Touchscreen keyboard predictive display and generation of a set of characters
US9310889B2 (en) 2011-11-10 2016-04-12 Blackberry Limited Touchscreen keyboard predictive display and generation of a set of characters
US9122672B2 (en) * 2011-11-10 2015-09-01 Blackberry Limited In-letter word prediction for virtual keyboard
US8436827B1 (en) 2011-11-29 2013-05-07 Google Inc. Disambiguating touch-input based on variation in characteristic such as speed or pressure along a touch-trail
WO2013119712A1 (en) 2012-02-06 2013-08-15 Colby Michael K Character-string completion
US8667414B2 (en) 2012-03-23 2014-03-04 Google Inc. Gestural input at a virtual keyboard
US9021380B2 (en) 2012-10-05 2015-04-28 Google Inc. Incremental multi-touch gesture recognition
US8782549B2 (en) 2012-10-05 2014-07-15 Google Inc. Incremental feature-based gesture-keyboard decoding
US8701032B1 (en) 2012-10-16 2014-04-15 Google Inc. Incremental multi-word recognition
US8819574B2 (en) 2012-10-22 2014-08-26 Google Inc. Space prediction for text input
US8832589B2 (en) 2013-01-15 2014-09-09 Google Inc. Touch keyboard using language and spatial models

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101390039A (zh) * 2006-01-05 2009-03-18 苹果公司 用于便携式电子设备的键盘
CN102541304A (zh) * 2010-11-19 2012-07-04 微软公司 姿势识别
CN102411477A (zh) * 2011-11-16 2012-04-11 鸿富锦精密工业(深圳)有限公司 电子设备及其文本导读方法
CN102508553A (zh) * 2011-11-23 2012-06-20 赵来刚 电子产品手持输入数据和指令的技术

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106406514A (zh) * 2015-07-29 2017-02-15 福特全球技术公司 用于基于手势控制车门的系统和方法
CN108701123A (zh) * 2016-04-04 2018-10-23 谷歌有限责任公司 图形键盘的动态键映射

Also Published As

Publication number Publication date
US20140098023A1 (en) 2014-04-10
WO2014055762A1 (en) 2014-04-10
CN104798016B (zh) 2016-10-05
US9021380B2 (en) 2015-04-28

Similar Documents

Publication Publication Date Title
CN104798016A (zh) 递增多触摸手势识别
US10489508B2 (en) Incremental multi-word recognition
US11379663B2 (en) Multi-gesture text input prediction
US9552080B2 (en) Incremental feature-based gesture-keyboard decoding
US9417710B2 (en) System and method for implementing sliding input of text based upon on-screen soft keyboard on electronic equipment
US9304595B2 (en) Gesture-keyboard decoding using gesture path deviation
CN105074643B (zh) 非词典字符串的手势键盘输入
CN105009064A (zh) 使用语言和空间模型的触摸键盘
CN105164616A (zh) 一致文本建议输出
US8994681B2 (en) Decoding imprecise gestures for gesture-keyboards
JP6599504B2 (ja) タッチエラー校正方法およびそのシステム
JP2012098891A (ja) 情報処理システムおよび情報処理方法
JP2017062584A (ja) 電子機器及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: American California

Patentee after: Google limited liability company

Address before: American California

Patentee before: Google Inc.

CP01 Change in the name or title of a patent holder