CN104756062A - 解码用于图形键盘的不准确手势 - Google Patents

解码用于图形键盘的不准确手势 Download PDF

Info

Publication number
CN104756062A
CN104756062A CN201380054670.5A CN201380054670A CN104756062A CN 104756062 A CN104756062 A CN 104756062A CN 201380054670 A CN201380054670 A CN 201380054670A CN 104756062 A CN104756062 A CN 104756062A
Authority
CN
China
Prior art keywords
key
gesture
computing equipment
accuracy
probability
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
CN201380054670.5A
Other languages
English (en)
Other versions
CN104756062B (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
Priority to CN201711347237.7A priority Critical patent/CN107967112B/zh
Publication of CN104756062A publication Critical patent/CN104756062A/zh
Application granted granted Critical
Publication of CN104756062B publication Critical patent/CN104756062B/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/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

在一个示例中,一种方法包括由计算设备输出包括多个键的图形键盘以显示。该方法还可以包括由计算设备接收在存在敏感输入设备处检测的手势的指示。该方法还可以包括由计算设备基于与手势相关联的多个特征来确定手势的准确度。该方法还可以包括由计算设备至少部分地基于准确度来修改手势指示多个键中的至少一个键的概率。该方法还可以包括由计算设备输出至少部分地基于手势指示多个键中的至少一个键的概率的候选词以显示。

Description

解码用于图形键盘的不准确手势
背景技术
一些计算设备(例如移动电话、平板电脑等等)可以将图形键盘提供为用于撰写文本(例如使用存在敏感输入设备和/或显示器,诸如触摸屏)的图形用户界面的一部分。图形键盘可以使得计算设备的用户能够输入文本(例如电子邮件、文本消息或文档等等)。例如,计算设备的存在敏感显示器可以输出使得用户能够通过指示(例如轻击)在存在敏感显示器处显示的键来输入数据的图形(或“软”)键盘。
在一些情况下,计算设备可以呈现用户能通过在与图形键盘的键相关联的存在敏感显示器的区域上滑动他或她的手指来与其交互的连续手势图形键盘(有时称为“手势键盘”或“组合手势键盘”),由此基本上对词作手势以将其输入到计算设备。换句话说,用户可以通过跟踪存在敏感显示器处输出的词的字母来以单各手势输入整个词。以这种方式,连续手势图形键盘提供允许用户用手势输入词或词组的输入方法。这样,连续手势图形键盘可以允许用户获得某种程度的效率,尤其是与存在敏感显示器的单手轻击相比(例如,存在敏感屏可操作地耦接到计算设备或与计算设备集成)。
然而,连续手势键盘可能具有某些缺陷。例如,当用户在输出连续手势图形键盘的存在敏感屏处执行手势时,计算设备可以生成触摸事件。触摸事件可以包括当执行手势时由用户的手指经过的存在敏感输入设备的一个或多个不同位置的表示。在一些示例中,用户可能执行不准确的手势来输入预期词,由此产生不能紧密地对应于输入该词的预期键的位置的触摸事件。这样,连续手势键盘可能不正确地确定用户预期的词。因此,计算设备可能选择用户不预期输入的一个或多个词和/或字符,由此导致降低用户可以与计算设备交互的速度的不准确文本输入。
发明内容
在一个示例中,一种方法包括由计算设备输出包括多个键的图形键盘以显示。该方法还可以包括由计算设备接收在存在敏感输入设备处检测到的手势的指示。该方法还可以包括由计算设备基于与手势相关联的多个特征来确定手势的准确度。该方法还可以包括由计算设备至少部分地基于准确度来修改手势指示所述多个键中的至少一个键的概率。该方法还可以包括由计算设备输出至少部分地基于手势指示所述多个键中的至少一个键的概率的候选词以显示
在一个示例中,一种编码有指令的计算机可读存储介质,所述指令在被执行时使计算设备的一个或多个处理器执行包括由所述计算设备输出包括多个键的图形键盘以显示的操作。该计算机可读存储介质进一步编码有使计算设备的一个或多个处理器执行包括由所述计算设备接收在存在敏感输入设备处检测到的手势的指示的操作的指令。该计算机可读存储介质进一步编码有使计算设备的一个或多个处理器执行包括由所述计算设备基于与所述手势相关联的多个特征来确定所述手势的准确度的操作的指令。该计算机可读存储介质进一步编码有使计算设备的一个或多个处理器执行包括由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率的操作的指令。该计算机可读存储介质进一步编码有使计算设备的一个或多个处理器执行包括由所述计算设备输出至少部分地基于所述手势指示所述多个键中的至少一个键的概率的候选词以显示的操作的指令。
在一个示例中,一种计算设备包括至少一个处理器,其中,所述至少一个处理器可以被配置成输出包括多个键的图形键盘以显示。在一些示例中,至少一个处理器可以被配置成接收在存在敏感输入设备处检测到的手势的指示。在一些示例中,至少一个处理器可以被配置成基于与所述手势相关联的多个特征来确定所述手势的准确度。在一些示例中,至少一个处理器可以被配置成至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率。在一些示例中,至少一个处理器可以被配置成输出至少部分地基于所述手势指示所述多个键中的至少一个键的概率的候选词以显示。
在附图和下述说明书中阐述了本公开的一个或多个示例的细节。其他特征、目的和优点从说明书和附图以及权利要求将是显而易见的。
附图说明
图1是图示根据本公开的一个或多个技术的可以用来提高用于不准确手势的键选择的示例性计算设备的框图。
图2是图示根据本公开的一个或多个技术的如图1所示的计算设备的一个示例的进一步细节的框图。
图3A-B是图示根据本公开的一个或多个技术的图1中所示的计算设备的一个示例的进一步细节的框图。
图4是图示根据本公开的一个或多个技术的可以提高用于不准确手势的键选择的计算设备的示例性操作的流程图。
图5是图示根据本公开的一个或多个技术的输出图形内容以在远程设备处显示的示例性计算设备的框图。
具体实施方式
通常,本公开涉及依据本公开的技术的当使用连续手势图形键盘执行不准确手势时用于提高字符和词选择的准确度的技术。在一个示例中,存在敏感输入设备可以通过检测以在存在敏感输入设备处或附近执行的手势的形式的用户输入来接收由用户输入的文本。在一些示例中,用户可能期望通过在存在敏感显示器处或附近执行一个或多个手势来输入文本串,例如词。
不同于执行输入单个词的多个手势,本公开的技术可以提高用户能使用计算设备的图形键盘来输入文本的速度和准确度。例如,使用本公开的技术,用户可以执行指示预期词的不同字符的单个手势,代替执行用于词的每一键的离散手势。计算设备可以随着用户执行手势而递增地确定由手势指示的一个或多个候选词。通过递增地确定候选词,同时执行手势,计算设备可以在手势期间为用户呈现一个或多个候选词,同时减少手势后输入处理时间。为了确定候选词,递增确定可以包括由计算设备使用空间模型来搜索每个都与字母的给定键盘位置对准的手势的一个或多个点。搜索可以包括基于空间模型选择与键盘的字母最佳对准的手势的点。
基于搜索,本公开的技术可以通过并行地确定手势经过的位置和词典(例如字典)中的各种状态,来构成对应于该手势的一个或多个可能候选字符串。以这种方式,本公开的技术能递增地确定手势同时对应于词典Trie树(trie)中的一个或多个字、一个节点/字母的概率。在一些示例中,本公开的技术可以使用一个或多个空间和/或时间对准特征来提高递增确定的准确度。这样的技术还可以支持其他先进的手势交互,诸如双手手势和多词手势。
根据本公开的技术,计算设备可以确定手势的准确或不准确(例如,“凌乱”)并且调整空间模型概率来更准确地选择用户预期的键。为了确定手势的准确度,计算设备例如可以确定图形键盘的两个键之间的直线路径。此外,计算设备可以确定在存在敏感显示器处执行的手势的实际路径。通过比较手势的直线路线和实际路径的各种特征(例如距离、曲率等等),计算设备可以确定两个路径之间的偏差幅度。较大偏差幅度(例如,实际手势包括明显偏离两个键之间的直线路径的大弧)可以指示以较低准确度执行的手势。
响应于确定以较低准确度执行手势,计算设备可以调整对应于图形键盘的键的一个或多个空间模型概率。所调整的空间模型概率可以反映由于手势的较低准确度,各种可能键的预测中的较低和/或较高置信度。计算设备还可以使用其他特征,诸如手势的速度、手势相对于键区域的交点等等,如在此进一步所述来确定手势的准确度。通过基于所确定的手势的准确度来修改空间模型概率,当在连续手势图形键盘提供不准确手势时,本公开的技术可以提供改进的字符和/或词选择。
图1是图示根据本公开的一个或多个技术的可以用来改进用于不准确手势的键选择的示例性计算设备2的框图。在一些示例中,计算设备2可以与用户相关联。与计算设备2相关联的用户可以通过将各种用户输入提供到计算设备中,来与计算设备交互。
计算设备2的示例可以包括但不限于便携式或移动设备,诸如移动电话(包括智能电话)、膝上型计算机、台式计算机、平板电脑、智能电视平台、相机、个人数字助理(PDA)、服务器、大型机等等。如图1的示例中所示,计算设备2可以是平板电脑。在一些示例中,计算设备2能包括用户接口(UI)设备4、UI模块6、手势模块8和语言模型10。实现本公开的技术的计算设备2的其他示例可以包括图1中未示出的另外的组件。
计算设备2可以包括UI设备4。在一些示例中,UI设备4被配置成接收触觉、音频或视觉输入。如图1所示,UI设备4可以包括触摸敏感和/或存在敏感屏或任何其他类型的用于接收输入的设备。在一些示例中,UI设备4可以输出诸如图形用户界面(GUI)12的内容以显示。在图1的示例中,UI设备4可以是能显示图形用户界面并且使用在存在敏感显示器处或附近的电容、电感和/或光学检测来从用户接收输入的存在敏感显示器。在一些示例中,存在敏感显示器可以包括存在敏感输入设备和用于接收输入的设备以及用于输出内容的显示设备。在一个示例中,存在敏感输入设备和显示设备可以物理紧密集成,诸如在移动设备中。在其他示例中,存在敏感输入设备和显示设备可以包括在物理分离的设备中,如在图5的示例中进一步所述。
如图1所示,计算设备2可以包括UI模块6。UI模块6可以执行接收诸如用户输入或网络数据的输入以及将这样的输入发送到与计算设备相关联的诸如手势模块8的其他组件的一个或多个功能。例如,UI模块6可以确定用户在UI设备4处执行的手势。UI模块6还可以从与计算设备2相关联的诸如手势模块8的组件接收数据。使用该数据,UI模块6可以使与计算设备2相关联的诸如UI设备4的其他组件提供基于该数据的输出。例如,UI模块6可以从手势模块8接收使UI设备4在GUI 12的文本输入区14中显示信息的数据。
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 12。
计算设备10的手势模块8可以从UI模块6接收在UI设备4的存在敏感屏检测的用户输入的一个或多个指示。通常,每次UI设备4接收到在存在敏感屏的位置处检测的用户输入的指示时,手势模块8可以从UI模块6接收有关用户输入的信息。手势模块8可以将从UI设备4接收的信息汇编成指示手势的时间顺序事件集,诸如触摸事件序列。序列中的每一触摸事件可以包括表示表征存在敏感屏的输入的存在和/或移动的参数(例如何时、何地、发起方向)的数据或分量。序列中的每一触摸事件可以包括与UI设备4的位置相对应的位置分量、与UI设备4何时在该位置检测到用户输入有关的时间分量、以及与触摸事件对应于在该位置提离或按下有关的动作分量。此外,事件中的一个或多个可以具有并发时间分量,以及这样的事件仅为示例目的被描述为触摸事件并且可以指示以存在敏感输入设备的任何形式的手势。
手势模块8可以基于触摸事件序列来确定用户输入的一个或多个特性并且将有关这些一个或多个特性的信息包括在触摸事件序列中的每一触摸事件中。例如,手势模块8可以确定用户输入的起始位置、用户输入的结束位置、用户输入的一部分的密度、用户输入的一部分的速度、用户输入的一部分的方向和用户输入的一部分的曲率。触摸事件序列中的一个或多个触摸事件可以包括(除如上所述的时间、位置和动作分量外)包含有关用户输入的一个或多个特性的特性分量(例如密度、速度等等)。
如图1所示,GUI 12可以是通过UI模块6生成以显示的、允许用户与计算设备2交互的用户界面。GUI 12可以包括图形内容。通常,图形内容可以包括文本、图像、一组运动图像等等。如图1所示,图形内容可以包括图形键盘16、文本输入区14和词建议区24A-C(统称“词建议区24”)。图形键盘16可以包括多个键,诸如“I”键20A、“N”键20B和“M”键20C。在一些示例中,包括在图形键盘16中的多个键中的每一个表示单个字符。在其他示例中,包括在图形键盘16中的多个键中的一个或多个表示基于多个模式选择的一组字符。
在一些示例中,文本输入区14可以包括包含在例如文本消息、文档、电子邮件消息、Web浏览器或期望文本输入的任何其他情形的字符或其他图形内容。例如,文本输入区14可以包括经在UI设备4执行的手势由用户选择的字符或其他图形内容。在一些示例中,词建议区24可以每个显示词。UI模块6可以使UI设备4显示图形键盘16和检测具有由手势模块8根据在此进一步所述的本公开的技术递增地确定的手势路径22的手势。此外,UI模块6可以使UI设备4在词建议区24中显示从手势确定的候选词。
为了确定触摸事件序列表示对一个或多个键的选择,手势模块8可以包括空间模型26。通常,空间模型26可以生成基于与用户输入相关联的位置数据来选择图形键盘的多个键中的特定键的一个或多个概率。在一些示例中,空间模型26包括用于每一键的双变量高斯模型。用于键的双变量高斯模型可以包括对应于呈现指定键的UI设备4的位置的坐标分布(例如(x,y)坐标对)。更具体地,在一些示例中,用于键的双变量高斯模型可以包括与当用户预期选择给定键时用户最频繁选择的UI设备4的位置相对应的坐标分布。用户输入的位置数据和空间模型26的较高密度区域之间的距离越短,已选择与空间模型26相关联的键的概率越高。用户输入的位置数据和空间模型26的较高密度区域之间的距离越大,已选择与空间模型26相关联的键的概率越低。
手势模块8可以使用空间模型26来将触摸事件序列中的一个或多个触摸事件的位置分量(例如坐标)与图形键盘16的一个或多个键的相应位置进行比较并且基于比较来生成所发生的对键的选择的概率。在一些示例中,手势模块8可以使用空间模型26来生成空间模型分值(例如空间模型概率)。至少部分地基于手势经过的UI设备4的位置,空间模型分值可以指示被选键的概率。在一些示例中,至少部分地基于手势经过的UI设备4的位置,空间模型分值可以指示一组被选键的组合概率。
例如,手势模块8可以使用空间模型26来将触摸事件序列中的每一触摸事件的位置分量与图形键盘16的特定键的键位置进行比较。序列中的每一触摸事件的位置分量可以包括UI设备4的一个位置。图形键盘16中的键的键位置(例如键的质心)可以包括UI设备4的不同位置。手势模块8可以使用空间模型26来确定两个位置之间的欧几里德距离并且基于欧几里德距离来生成选择该键的概率。空间模型26可以指示与一个或多个触摸事件共享较大欧几里德距离的键相比,对与一个或多个触摸事件共享较小欧几里德距离的键较大的概率。基于与每一键相关联的空间模型概率,手势模块8可以将具有最高空间模型概率的各个键选择汇编成时间排序的键序列,然后,手势模块8可以确定表示字符串。在一些示例中,当UI设备4检测到手势的每一部分时,手势模块8可以递增地确定不同键的概率。手势模块8可以进一步使用所确定的键和语言模型10来基于与所确定的键相关联的字符、由计算设备2确定的先前文本等等,确定可能的字符、字符串、词和/或字符串组和/或词组。
在一些示例中,计算设备2还包括语言模型10。语言模型10可以包括词典。在一些示例中,字典可以包括词的列表以及可以包括有关所列出的词的附加信息。词典可以由数据结构的范围表示,诸如阵列、列表和/或树。例如,语言模型10可以包括以Trie树数据结构存储的词典。词典Trie树数据结构可以包含多个节点,每一节点可以表示字母。词典Trie树中的第一节点可以称为可能不对应于字母的入口节点。在其他示例中,入口节点可以对应于字母。每一节点可以具有一个或多个子节点。例如,入口节点可以具有26个子节点,每个对应于英文字母表的字母。
词典Trie树中的节点的子集可以每个包括指示该节点是终端节点的标志。词典Trie树的每一终端节点可以指示完整词(例如候选词)。在一些示例中,由沿从入口节点到终端节点的节点路径的节点指示的一组字母可以拼写出由终端节点指示的词。在一些示例中,语言模型10可以是安装在计算设备2上的缺省词典。在其他示例中,语言模型10可以包括可以存储在计算设备2或存储在一个或多个远程计算设备并且可以经一个或多个通信信道由计算设备2访问的多个词典源。
在一些示例中,可以以计算设备2的固件实现语言模型10。语言模型10可以包括语言模型频率信息,诸如n元语言模型。基于序列中的先前项,n元语言模型可以对连续项序列中的项xi(字母或词)提供概率分布(例如P(xi|xi-(n-1),...,xi-1)。例如,二元语言模型(n元模型,其中n=2)可以提供字母“w”在序列“no”后的概率。在一些示例中,语言模型10包括具有综合语言模型频率信息的词典Trie树。例如,词典Trie树的每一节点可以包括字母的表示和概率值。
手势模块8可以从UI模块6接收表示由UI模块6生成的触摸事件序列的数据。触摸事件可以包括表示UI设备4呈现图形键盘16的每一键的UI设备4的位置的数据。手势模块8可以基于键的位置来确定触摸事件序列表示对一个或多个键的选择。
手势模块8可以基于选择来生成字符串,其中字符串中的每一字符对应于该选择中的至少一个键。在一些示例中,手势模块8可以使用语言模型10来确定多个字符串,以识别语言模型10中包括手势模块8使用空间模型26确定的键指示的一部分或所有字符的一个或多个候选词。如图1所示,用户可以在UI设备4执行经过键i-m的手势8。因此,手势模块8可以执行字符串i-m的查找,以确定以i-m开始的一组候选词并且对每一相应候选词确定相应的空间和语言模型分值。手势模块8可以随着用户执行手势22而递增地执行这样的技术。手势模块8可以执行字符串i-m的查找,以基于用于每一相应候选词的空间和语言模型分值来确定以i-m开始的一组候选词。
在一些示例中,手势模块8至少部分地基于用于每一相应候选词的相应空间和语言模型分值,来确定用于每一候选词的组合分值。因此,用于候选词的组合概率可以表示基于语言上下文和手势准确度的候选词相对于一组键的概率。手势模块8可以按组合分值,以从最可能候选词到最不可能候选词的降序,排序一组候选词中的候选词。在一些示例中,手势模块8可以将使UI设备4在建议词区24A-24C中输出具有最高概率的一个或多个候选词作为建议词的数据发送到UI模块6。在其他示例中,可以在编辑区14中输出具有最高概率的一个或多个候选词。
本公开的技术可以提高用户能将文本输入到计算设备的速度和准确度。使用本公开的技术,用户可以执行用于选择图形键盘的一个或多个键的不准确手势。当用户执行手势时,计算设备可以递增地确定由用户选择的键,以及可选地由该手势指示的一个或多个词。计算设备可以确定手势的准确度以及相应地调整与键相关联的空间模型来提高由计算设备选择用户的预期键的准确度。现在,将参考图1的组件进一步描述本公开的技术。
如图1的示例中所示,UI模块6可以使UI设备显示GUI 12。用户可能期望将例如词“I'm”的文本输入到文本输入区14。根据本公开的技术,用户可以在图形键盘16处执行手势。在一个示例中,手势可以是用户的手指移动成UI设备4接近使得在执行手势的整个中由UI设备4检测到由该手指执行的手势的连续运动。在不同的示例中,用户可以将他/她的手指移动成与UI设备4接近使得由UI设备临时检测到该手指并且然后用户的手指移离UI设备4使得不再检测到该手指。该手势可以包括多个部分。在一些示例中,手势可以被分成具有基本上相同持续时间的部分。在手势包括多个部分的情况下,手势可以包括其可以是在检测到该手势完成前检测的手势的部分。例如,可以将手势的一部分指定为用户将他/她的手指移出与UI设备4接近使得不再检测到该手指的最终部分。
当用户执行手势来选择多个键中的一组键时,UI模块6可以在UI设备4处检测到具有手势路径22的手势。如图1所示,用户通过跟踪经过或在与期望词的字符(例如由“I”键20A和“M”键20C表示的字符相对应的键盘16的键附近的手势路径22,执行该手势。UI模块6可以将指示手势路径22的数据发送到手势模块8。例如,当由UI设备4检测并且由UI模块6接收到手势路径22时,UI模块6可以将指示手势路径22的触摸事件递增地发送到手势模块8。例如,当由UI设备检测并且由UI模块6接收到手势路径22时,UI模块6可以将包括指示手势路径22的坐标对的流触摸事件发送到手势模块8。
响应于从UI模块6接收指示手势路径22的数据,手势模块8可以确定一个或多个候选词。候选词可以是由手势路径22指示的一组键组成的词。键组可以基于手势路径22和词典确定。手势模块8可以通过确定手势路径22经过的一组对准点、确定用于多个键中的至少两个键中的每个的相应成本值、以及比较用于多个键中的至少两个中的至少每一个的相应成本值,来确定候选词,如下文进一步所述。在一些示例中,相应成本值可以包括至少部分地基于用于每个相应候选词的相应空间和语言模型分值的至少两个键中的每一个的组合分值。
对准点可以是可以指示多个键中的一个键的沿手势路径22的一个点。对准点可以包括对应于对准点的确定位置的一个或多个坐标。例如,对准点可以包括对应于GUI 12上的点的笛卡尔坐标。
在一些示例中,手势模块8基于与手势路径22相关联的多个特征,来确定手势路径22经过的对准点组。与手势路径22相关联的多个特征可以包括手势路径22的段的长度。例如,手势模块8可以确定沿从先前对准点和当前对准点的手势段的长度。为更好对准,长度将更紧密地接近两个相应的键盘字母之间的直线距离。
在另一示例中,手势模块8可以确定从手势路径22的第一点到第二点的段的方向来确定对准点组。为更好对准,该段的方向将更紧密地接近两个相应的键盘字母之间的直线的方向。
在一些示例中,手势路径22的段的曲率、表示检测路径22的段的速率的速度、以及指示检测手势路径22的速率的速度。如果手势模块8确定较慢速度或暂停当前速度,手势模块8可以确定该段上的点更可能是对准点。如果手势模块8确定快速绘制手势,手势模块8可以确定该手势更可能不准确,因此,与空间模型26相比,手势模块8可以增加语言模型(例如n元频率)10的权重。
如上所述,手势模块8可以使用空间模型26来确定用户已基于手势22的对准点选择图形键盘16的特定键的一个或多个概率。在一些示例中,空间模型包括用于特定键的双变量高斯模型。用于键的双变量高斯模型可以包括与显示指定键的UI设备4的位置相对应的坐标分布(例如(x,y)坐标对)。更具体地,在一些示例中,用于键的双变量高斯模型可以包括当用户想要选择指定键时由用户最频繁选择的UI设备4的位置相对应的坐标的分布。所观察的对准点出现离空间模型的较高密度区越近,已选择与空间模型相关联的键的概率越高。所观察的对准点离空间模型的较高密度区越远,已选择与空间模型相关联的键的概率越低。
在一个示例中,手势模块8可以基于手势路径22的具有高曲率值的段,确定一组对准点中的对准点。此外,手势模块8可以基于手势路径22的具有低局部速度(例如,用户手指在执行该手势段时慢下来)的段,确定该组对准点中的对准点。在图1的示例中,手势模块8可以确定在手势路径22的开始处的第一对准点、在手势路径22经历曲率的显著变化(例如大于阈值)的点处的第二对准点、以及在手势路径22的结束处的第三对准点。在其他示例中,本公开的技术能将手势的形状识别为特征并且基于手势的形状来确定对准点。在一些示例中,如图3B所示的具有宽曲率的手势可以指示比如图3A所示的紧曲率低的准确度的手势。
在一些示例中,手势模块8可以确定用于包括在键盘16中的多个键中的至少两个键中的每一个的相应成本值。例如,基于使用语言模型10和空间模型26的组合分值,相应成本值中的每一个可以表示对准点指示键的概率。在一些示例中,相应成本值可以基于手势路径的物理特征、对准点和/或键。例如,相应成本值可以基于对准点相对于键的物理位置的物理位置。
在一些示例中,相应成本值可以基于语言模型10。例如,相应成本值可以基于在第一键后将选择第二键的概率(例如,在“I”键后将选择“M”键的概率)。在一些示例中,至少部分地基于语言模型10来确定相应成本值所用于的键。在一些示例中,在对准点指示键具有较大可能性的情况下,成本值较低。在其他示例中,在对准点指示键具有较大可能性的情况下,成本值较高。
在图1的示例中,手势模块8可以确定表示第一对准点指示“I”键20A的概率的第一成本值以及表示第二对准点指示“N”键20B的概率的第二成本值。手势模块8还可以确定表示第三对准点指示“M”键20C的概率的第三成本值。
手势模块8可以比较用于多个键中的至少两个键的相应成本值来确定具有组合成本值的键组合。组合成本值可以表示手势路径22指示键的组合的概率。手势模块8可以比较用于多个键中的至少两个键的相应成本值来确定由对准点指示至少两个键中的哪一个。手势模块8可以通过确定每一对准点指示哪些键来确定键的组合。
在一些示例中,手势模块8确定对准点指示至少两个键的哪一个,而不关心由其他对准点指示哪些键。在其他示例中,手势模块8基于由其他对准点指示哪些键,确定由该对准点指示至少两个键中的哪一个。在这样的示例中,手势模块8可以基于用于当前对准点的相应成本值,修改由先前对准点指示哪一键的确定。
根据本公开的技术,手势模块8可以至少部分地基于与手势22相关联的一个或多个特征来确定手势22的准确度。例如,如图1所示,手势22近似与“N”键20B和“M”键20C之间的区域相交。在这样的示例中,因为手势未与“M”键20C的质心相交,用户可能未准确地执行手势22。为了确定手势22的准确度,手势模块8可以确定该手势经过的一组对准点。例如,手势模块8可以确定基本上包括在“N”键20B和“M”键20C之间的区域中的一组对准点。
手势模块8可以确定从对准点中的一个或多个到“N”键20B和“M”键20C中的至少一个的位置的距离。例如,手势模块8可以确定“M”键20C的质心与对准点中的一个或多个之间的距离。当“M”键20C的质心和对准点中的一个或多个之间的距离小于阈值距离时,手势模块8可以确定低准确度。当“M”键20C的质心与对准点中的一个或多个之间的距离大于阈值距离时,手势模块8可以确定高于低准确度的准确度。在其他示例中,当“M”键20C的质心和对准点中的一个或多个之间的距离与“N”键20B的质心和对准点中的一个或多个之间的距离基本上相同时(例如,指示基本上在两个键之间相交而不是通过两个键中的一个的手势),手势模块8可以定义低准确度。在其他示例中,当“M”键20C的质心和对准点中的一个或多个之间的距离与“N”键20B的质心和对准点中的一个或多个之间的距离明显不同时(例如,指示手势明显与两个键中的一个相交,并且明显不与两个键中的另一个相交的手势),手势模块8可以确定高于低准确度的准确度。
在当前示例中,在确定由低准确度表征手势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的准确度低。
响应于确定手势22的准确度低并且“in”和“I'm”的语言模型概率之间的差小于阈值差,手势模块8可以修改手势22指示“N”键20B和“M”键20C中的至少一个的概率。例如,在一些示例中,手势模块8可以基于空间模型概率和语言模型概率来确定手势指示键的组合概率。
响应于确定手势22的准确度低并且“in”和“I'm”的语言模型概率之间的差小于阈值差,手势模块8可以修改组合概率,诸如减小包括在手势指示键的组合概率中的语言模型概率和/或增加其空间模型概率。作为一个示例,手势模块8可以减小语言模型概率和/或增加空间模型概率来通过更依赖于空间模型概率来确定预定键,提高键选择的准确度。因为用户在执行不准确手势时很可能在预期键的方向中轻微做手势,手势模块8可能更依赖于可以准确地指示预期键的空间模型。将参考图2-5进一步描述用于修改诸如组合概率、空间模型概率和/或语言模型概率的概率的示例性技术。
在修改例如手势指示一个或多个键的组合概率后,手势模块8可以确定可以包括由语言模型10建模的候选词的前缀的一个或多个候选字符串。手势模块8可以选择与满足阈值的一组最高组合分值相关联的一个或多个候选词的组。例如,手势模块8可以选择具有比与具有第四最高组合分值的候选词大的一组最高组合分值相关联的3个候选词的组。在其他示例中,阈值可以指示候选词的数量。例如,阈值可以是3,因此手势模块8可以确定具有最高组合分值的3个候选词。响应于确定一个或多个候选词的组,手势模块8可以将使UI设备4输出一个或多个候选词的组中的每一个候选词的数据发送到UI模块6。例如,如图1所示,UI设备4可以分别在词建议区24A-24C内输出候选词“I'm”、“in”和“into”。以这种方式,计算设备2可以输出至少部分地基于该手势指示多个键中的至少一个键的修改概率的候选词以显示,其中,计算设备2可以至少部分地基于手势路径20C的准确度来修改手势20C指示多个键中的至少一个键的概率。
图2是图示根据本公开的一个或多个技术的图1中所示的计算设备2的一个示例的进一步细节的框图。图2图示了如图1所示的计算设备2的仅一个特定示例,并且在其他实例中可以使用计算设备2的许多其他示例。
如图2的特定示例中所示,计算设备2包括一个或多个处理器40、一个或多个输入设备42、一个或多个通信单元44、一个或多个输出设备46、一个或多个存储设备48和用户接口(UI)设备4。在一个示例中,计算设备2进一步包括可由计算设备2执行的UI模块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的其他组件传送信息。
在一个示例中,处理器40被配置成实现用于在计算设备2内执行的功能和/或过程指令。例如,处理器40可以能够处理在存储设备48中存储的指令。处理器40的示例可以包括微处理器、控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或等效的离散或集成逻辑电路中的任何一个或多个。尽管为示例目的在图1和2中示为独立的计算设备2,但计算设备可以是包括处理器40或用于执行软件指令的其他适当的计算环境的任何组件或系统,并且例如不一定包括UI设备4。
一个或多个存储设备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和Wi-Fi无线电计算设备以及通用串行总线(USB)。在一些示例中,计算设备2利用通信单元44来与诸如服务器的外部设备无线地通信。
在一个示例中,计算设备2还包括一个或多个输入设备42。在一些示例中,输入设备42被配置成通过触觉、音频或视频反馈来从用户接收输入。输入设备42的示例包括存在敏感显示器、鼠标、键盘、语音应答系统、视频相机、麦克风或用于检测来自用户的命令的任何其他类型的设备。在一些示例中,存在敏感显示器包括触摸敏感屏。
一个或多个输出设备46也可以包括在计算设备2中。在一些示例中,输出设备46被配置成使用触觉、音频或视频刺激来向用户提供输出。在一个示例中,输出设备46包括存在敏感显示器、声卡、视频图形适配卡或用于将信号转换成可由人或机器理解的适当形式的任何其他类型的设备。输出设备46的另外的示例包括扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或能生成用户能理解的输出的任何其他类型的设备。
在一些示例中,UI设备4可以包括输入设备42和/或输出设备46的功能。在图2的示例中,UI设备4可以是存在敏感显示器。在一些示例中,存在敏感显示器可以检测存在敏感显示器的屏幕处和/或附近的物体。作为一个示例范围,存在敏感显示器可以检测物体,诸如存在敏感显示器的物理屏的2英尺或更小内的手指或触笔。存在敏感显示器可以确定检测该物体的存在敏感显示器的位置(例如(x,y)坐标)。在另一示例范围中,存在敏感显示器可以检测离存在敏感显示器的物理屏6英尺或更少的物体6,其他范围也是可能的。存在敏感显示器可以使用电容、电感和/或光学识别技术来确定由用户的手指选择的显示器的位置。在一些示例中,存在敏感显示器使用触觉、音频或视频刺激将输出提供给用户,如参考输出设备46所述。
计算设备2可以包括操作系统58。在一些示例中,操作系统58控制计算设备2的组件的操作。例如,在一个示例中,操作系统58便于UI模块6和/或手势模块8与处理器40、通信单元44、存储设备48、输入设备42以及输出设备46的通信。UI模块6和手势模块8可以每个包括可由计算设备2执行的程序指令和/或数据。作为一个示例,UI模块6可以包括使计算设备2执行在本公开中所述的操作和动作中的一个或多个的指令。
计算设备2能包括为清楚起见在图2中未示出的另外的组件。例如,计算设备2能包括向计算设备2的组件供电的电池。类似地,在计算设备2的示例中,图2中所示的计算设备2的组件可能不必要。例如,在一些结构中,计算设备2可以不包括通信单元44。
根据本公开的技术,计算设备2可以在输出设备44处输出包括多个键的图形键盘。用户可以在输入设备42处执行用于选择多个键中的一组键的手势。响应于用户执行该手势,输入设备42可以将可由UI模块6接收的诸如图1的手势路径22的手势路径检测为手势路径数据。然后,UI模块6可以将诸如手势的一个或多个指示的手势路径数据发送到手势模块8。在一些示例中,当由输入设备42检测到手势路径22时,UI模块6将该手势路径数据递增地发送到手势模块8。
响应于接收手势路径数据,手势模块8可以在可以包括在语言模型10中的词典Trie树的入口节点处创建令牌。在一些示例中,语言模型10可以被实现为Trie树数据结构。每一可移动令牌可以表示词典中的节点(例如部分词)和沿手势的点之间的部分对准。当令牌前进到词典中的子节点(例如词中的下一字母)时,手势上的相应对准点也可以前进。当令牌前进到词中的下一字母时,本公开的技术可以确定令牌需要沿手势路径前进多远。例如,本公开的技术可以包括考虑如下所述的多个特征来搜索最对准键的字母的沿手势的对准点。
手势模块8可以将令牌推到数据结构中,诸如存储与图形键盘的键的不同可能组合相对应的词前缀的束或表。手势模块8可以在令牌的子节点中的每一个上创建令牌副本。在图1的示例中,手势模块8可以在表示字母“I”的子节点上创建第一令牌副本以及在表示字母“M”的子节点上创建第二令牌副本。
对于每一令牌副本,手势模块8可以基于与手势路径数据相关联的多个特征来确定由该手势经过的对准点。在图1的示例中,手势模块8可以确定第一对准点位于手势路径22的开始处。在一些示例中,手势模块8可以确定在沿手势路径的点处的路径的曲率。在这样的示例中,手势模块8可以确定该点更可能是具有高曲率的对准点(其中,手势路径在该点处突然改变方向)。在其他示例中,手势模块8可以确定中段曲率(沿手势的两个点之间的手势路径的最大曲率)。在另一示例中,手势模块8可以确定点不太可能是具有高中段曲率的下一对准点。在一些示例中,手势模块8可以基于检测手势路径的速度来确定点是对准点。在一些示例中,较慢的检测速率指示该点是对准点。在一些示例中,高中段曲率可以指示在第一点和第二点之间存在转角,表明第二点不太可能是下一对准点(例如中间错过的点)。
在一些示例中,对准点可以基于两个或更多点间的手势段间的最大距离以及从第一键到第二键的理想线。理想线可以是例如从第一键到第二键的最短距离路径。为了更好对准,最大距离可以小,指明手势段不偏离理想线。
对于每一对准点,手势模块8可以确定用于多个键中的至少两个键中的每一个的相应成本值。相应成本值中的每一个可以表示对准点指示多个键中的一个键的概率。在图1的示例中,手势模块8可以确定表示第一对准点指示表示包括在第一令牌中的字母“I”的节点的概率的第一成本值,以及表示第一对准点指示表示第二令牌中的字母“U”的节点的概率的第二成本值。在一些示例中,手势模块8可以用相应成本值更新每一令牌。在图1的示例中,手势模块8可以更新第一令牌副本中的第一成本值和第二令牌副本中的第二成本值。
在一些示例中,手势模块8通过将相应物理成本值(例如空间模型分值)与相应词典成本值(例如语言模型分值)进行比较,来确定相应成本值,如下进一步所述。不同于基于语言模型10的相应词典成本值,手势模块8可以对基于空间模型26的相应物理成本值加权。例如,手势模块8可以通过对将物理成本值乘以物理加权值的结果和将词典成本值乘以词典加权值求和来确定成本值。
在一些示例中,手势模块8可以确定应当加权词典成本值大于物理成本值。在存在物理成本值可能不准确的指示的情况下,诸如以高速度速率检测到手势路径的情况下,手势模块8可以确定应当加权词典成本值大于物理成本值。例如,手势模块8可以确定与特征(例如速度)相关联的值满足一个或多个阈值。例如,手势模块8可以确定手势的速度大于或等于阈值。在其他示例中,手势模块8可以确定手势的速度小于或等于阈值。在任一情况下,如果所确定的值满足阈值,手势模块8可以确定物理成本值不可靠。
在一些示例中,手势模块8可以确定应当加权物理成本值大于词典成本值。在存在词典成本值可能不准确的情况下,诸如在用户具有输入未包括在词典中的词的历史的情况下,手势模块8可以确定应当加权物理成本值大于词典成本值。
在一些示例中,手势模块8可以确定用于多个键中的至少两个键中的每一个的相应物理成本值。相应物理成本值中的每一个可以表示对准点组中的一个对准点的物理特征指示多个键中的一个键的物理特征。例如,手势模块8可以通过评价对准点组中的一个对准点与键的键盘位置之间的欧几里德距离,来确定相应物理成本值。多个键的物理特征可以包括在键区52中。例如,对多个键中的每一个,键区52可以包括与显示每一键的图形键盘16的位置和/或区域相对应的坐标集。在图1的示例中,手势模块8可以基于第一对准点和“I”键20A之间的欧几里德距离来确定第一物理成本值。在一些示例中,手势模块8可以通过将第一对准点和第二对准点之间的欧几里德距离与由第一对准点指示的第一字母和可以由第二对准点指示的第二字母之间的欧几里德距离进行比较,来确定物理成本值。手势模块8可以确定第二字母的成本值与距离之间的差成反比(例如,在距离非常类似的情况下,第二字母更可能)。例如,较小距离表明更好对准。
在一些示例中,手势模块8可以使用诸如空间模型26的一个或多个空间模型对多个键中的至少两个键中的每一个确定相应物理成本值(例如空间模型分值)。如在图3A-3B中进一步所示,手势模块8可以在确定对准点后确定用于接近对准点的第一键的第一空间模型分值和用于接近对准点的第二键的第二空间模型分值。手势模块8可以通过将对准点的位置与对应于第一键的空间模型进行比较,来确定第一空间分值。如在此所述,第一空间模型可以包括与对给定键最频繁选择的UI设备4的位置相对应的坐标的分布。手势模块8可以通过将对准点的位置与坐标的分布进行比较来确定第一空间模型分值。如果对准点的位置处于第一空间模型的较高密度区中,手势模块8可以确定用于第一键的较高空间模型分值,以及如果对准点的位置处于第一空间模型的坐标的较低密度区中,可以确定用于第一键的较低空间模型分值。手势模块8可以使用对应于第二键的第二空间模型以类似的方式确定第二空间模型分值。
根据本公开的技术,手势模块8可以确定该手势的准确度不满足阈值并且修改一个或多个空间模型分值。为了修改第一和第二空间模型分值,手势模块8可以增加和/或减小第一空间模型分值和/或第二空间模型分值中的一个或多个。例如,手势模块8可以确定第一空间模型分值大于第二空间模型分值。手势模块8可以通过第一权重来减小第一空间模型分值。手势模块8可以通过第二权重来增加空间模型分值。在一些示例中,第一权重和第二权重可以相同,而在其他示例中,权重可以不同。通过响应不准确手势而修改第一和第二空间模型分值,手势模块8可以增加第一和第二空间模型分值的均衡来反映用户可能想要第一键的较低置信度和可能用户想要第二键的增加的置信度。
手势模块8还可以通过确定用于多个键中的至少两个键中的每一个的相应词典成本值(例如语言模型分值),来确定相应成本值。相应词典成本值中的每一个可以表示由多个键中的一个键表示的字母包括在候选词中的概率。词典成本值可以基于语言模型10。例如,词典成本值可以表示基于包括在语言模型10中的可能词选择给定字母的可能性。在图1的示例中,手势模块8可以基于指示字母“I”是词中的第一字母的频率的语言模型10中的条目,来确定第一词典成本值。
手势模块8可以确定令牌是否在词典的终端节点处。响应于确定令牌在终端节点处,手势模块8可以将令牌(或其表示)添加到输出预测的列表。在一些情况中,手势模块8可以将用于从入口节点到终端节点的每一节点的相应成本值进行比较来确定用于由终端节点指示的词的组合成本值。在其他情况下,用于由终端节点指示的词的组合成本值可以由令牌的成本值反映。在任一情况下,然后,手势模块8可以丢弃该令牌。例如,在一个示例中,在令牌传递处理中,手势模块8可以仅保存一组前n个令牌,并且丢弃其余令牌。前n个令牌可以是具有最可能词或字符串的令牌。以这种方式,手势模块8可以有效地缩放到大词典。替选的实施例可以使用任何适当的搜索技术。
在一些示例中,诸如图1中所述,用于第一键和第二键的词典成本值可以类似(例如,两个词典成本值之间的差小于阈值)。例如,当在字母i后时,m和n可以具有类似的词典成本值。为更准确地判定用户想要键m和n中的哪一个,手势模块8可以修改与i-m和i-n相关联的词典成本值。例如,手势模块8可以减小与前缀i-m和i-n相关联的词典成本值,由此增加与n和m相关联的空间模型分值的重要性。也就是说,因为手势模块8可以基于每个与包括语言和空间模型分值的组合分值相关联的前缀,来确定候选词,减小语言模型分值可以增加用于给定前缀的空间模型分值的重要性。由于用户可以在预期字符的方向上做手势,因此具有增加重要性的用于n和m的空间模型分值可以提供用户想要哪一键的更准确指示。在一些示例中,手势模块8可以增加空间模型分值来增加词典成本值可能类似的这样示例中的空间模型分值的重要性。因此,通过修改用来生成与候选词相关联的组合概率的一个或多个空间和/或语言模型分值,手势模块8可以至少部分地基于手势的准确度来修改该手势指示多个键中的至少一个键的概率,并且输出至少部分地基于手势指示多个键中的至少一个键的概率的候选词。
手势模块8可以确定UI模块6是否已经完成接收手势路径数据。在UI模块6已经完成接收手势路径数据的情况下,手势模块8可以输出一个或多个候选词,以在存在敏感显示器处显示。在UI模块6还未完成接收手势路径数据的情况下,手势模块8可以继续递增地处理手势路径数据。在一些示例中,在UI模块6完成手势路径数据的接收前,手势模块8可以输出根据本公开的技术确定的一个或多个输出预测(例如候选词)。
图3A-3B是图示根据本公开的一个或多个技术的图1中所示的计算设备2的示例性操作的进一步细节的框图。具体地,图3A图示可以由计算设备2输出的图形键盘68和文本输入区70的一部分。图形键盘68包括包含“H”键64A、“B”键64B、“G”键64C、“Y”键64D、“U”键64E、和“J”键64F的多个键。在图3A的示例中,用户可以执行准确手势62来输入词“The”,如文本输入区70中所示。手势62通过从“T”键到“H”键到“E”键的基本上直线的路径来表征。直线路径可以是键之间的基本上最小的距离路径。此外,手势62的曲率可能高,指示从“H”键64A到“E”键的方向的决定性变化。此外,手势62在改变方向前基本上在“H”键64A的质心处相交。由此,用户可能执行了具有高准确度的手势62。
在图3A的示例中,对于在每一键的键边界内并且由虚线包围的键64A-64F中的每一个,图示空间模型概率。在图3A中为图示目的示出了每一空间模型概率,并且在GUI 70中可以不输出。当用户执行包括从“T”键到“H”键64A的手势路径的手势62时,手势模块8可以确定用于键64A-64F中的每一个的空间模型概率。手势模块8可以确定用于给定键中的每一个的空间模型概率,因为每个键均在键64A的区域内发生的手势22中的检测方向变化的阈值距离内。如图3A所示,“H”键64A相对于在“H”键64A处或附近的检测对准点的空间模型概率被确定为值“60”。基于手势62的检测对准点,手势模块8可以类似地确定用于“J”键64F的空间模型概率“8”。在一些示例中,手势模块8可以基于对准点来确定一个或多个特征(例如方向改变、曲率、与键中心的距离等等),以生成相应概率。因此,在图3A的示例中,用于“H”键64A的空间模型概率最高,因为较高曲率、较大速度变化、较大方向变化和离“H”键64A的中心的定向改变距离。概率分布66图示用于“H”键64A相对于手势62的对准点的空间模型概率。
与图3A相反,图3B的示例图示不准确手势。在图3B中,用户可以执行手势80来同样输出词“The”。然而,在图3B中,从“T”键到“H”键64A的手势82的手势路径的一部分可以是与从键“T”到“H”键64A的直线路径不同的距离。由此,在一些示例中,根据本公开的技术,手势模块8可以将从“T”键到“H”键64A的手势82的手势路径的一部分与直线路径进行比较,以确定手势82的准确度。对于明显偏离两个键之间的直线路径的手势,手势模块8可以确定较低准确度。相反,对基本上不偏离两个键之间的直线路径的手势,手势模块8可以确定较高准确度。在一些示例中,准确度可以是包括在准确度范围中的数值。如在本公开中所述,手势模块8可以至少部分地基于手势的准确度,来修改空间模型概率、语言模型概率和/或组合概率。在一些示例中,手势模块8可以与准确度成比例地修改一个或多个上述概率,而在其他示例中,手势模块8以不与准确度成比例的方式来修改一个或多个上述概率。
在其他示例中,手势模块8可以基于“T”键和“H”键64A之间的手势82的一部分的速度,来确定准确度。较高速度可以指示不太准确手势,而较慢速度可以指示更准确手势。由此,当将手势82的一部分的速度与例如阈值速度进行比较来确定手势82的该部分的速度大于阈值速度时,手势模块82可以确定手势82的准确度较低。相反,当手势82的该部分的速度低于阈值速度时也是成立的。
在其他示例中,手势模块8可以基于“T”键和“H”键64A之间的手势82的一部分的曲率,来确定准确度。较高曲率可以指示更准确手势,而较低曲率可以指示不太准确手势。由此,当例如将手势82的一部分的曲率与阈值曲率进行比较来确定手势82的该部分的曲率小于阈值曲率时,手势模块82可以确定手势82的准确度较低。相反,当手势82的该部分的曲率大于阈值速度时也成立。
响应于确定手势82的准确度小于阈值准确度,手势模块82可以减小手势82指示“H”键64A的概率。例如,当准确度较低时,手势模块82可以减小手势82指示“H”键64A的空间模型概率。由此,与图示准确手势62和用于“H”键64A的空间模型概率“60”的图3A相反,图3B图示用于“H”键64A的空间模型概率“40”。以这种方式,当用户执行不太准确(例如“较凌乱”)手势时,手势模块8修改用于“H”键64A的空间模型概率来指示用户将要选择“H”键64A的较低置信度。
在一些示例中,手势模块8还确定接近“H”键64A的一个或多个键。接近“H”键64A的键可以在“H”键64A的预定距离内,诸如“J”键64F。手势模块8可以确定用于接近“H”键64A的给定键中的每一个的空间模型概率,因为每个键均在键64A的区域内发生的手势82的检测方向变化的阈值距离内。响应于确定接近“H”键64A的一个或多个键,手势模块8可以修改“J”键64F的空间模型概率来反映指示用户想要选择“H”键64A的较低置信度以及用户想要选择“J”键64F的较高置信度。由此,如图3B所示,与图3A中与“J”键64F相关联的空间模型概率“8”相比,与“J”键64F相关联的空间模型概率为“20”。概率分布68图示用于“H”键64A相对于手势82的对准点的较低空间模型概率。因此,当手势模块8基于用于候选字符串的空间模型概率(例如空间模型分值)和/或语言模型概率来确定组合分值时,组合分值中用于H的空间模型概率可能小于在图3A中的。因此,在实现本公开的技术的手势模块8的一些示例中,手势模块8可以基于导致修改的空间模型分值的不准确(例如“凌乱”)手势,使不同候选词输出以显示。这样的不同的候选词可以是用户在执行该不准确手势时更可能想要的词。
图4是图示根据本公开的一个或多个技术的可以改进用于不准确手势的键选择的计算设备的示例性操作的流程图。
在图4的示例中,计算设备2可以初始地输出包括多个键的图形键盘以显示(100)。计算设备2可以接收在存在敏感输入设备处检测的手势的指示(102)。计算设备2还可以基于与手势相关联的多个特征来确定手势的准确度(104)。计算设备2还可以至少部分地基于准确度来修改手势指示多个键中的至少一个键的概率(106)。计算设备2可以进一步输出至少部分地基于手势指示多个键中的至少一个键的概率的候选词以显示(108)。
在一些示例中,操作可以包括由所述计算设备确定键组中的第一键和第二键之间的手势的一部分的第一距离;由所述计算设备确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及由所述计算设备比较所述第一距离和所述第二距离来确定所述手势的准确度。在一些示例中,操作可以包括由所述计算设备确定键组中的第一键和第二键之间的手势的一部分的速度;以及由所述计算设备将所述手势的该部分的速度与至少一个阈值速度进行比较来确定所述手势的准确度。
在一些示例中,操作可以包括由所述计算设备确定键组中的第一键和第二键之间的手势的一部分的曲率;以及由所述计算设备将所述手势的该部分的曲率与至少一个阈值曲率进行比较来确定所述手势的准确度。在一些示例中,操作可以包括响应于确定准确度小于阈值准确度,由所述计算设备减小所述手势指示所述多个键中的至少一个键的概率。在一些示例中,操作可以包括响应于确定准确度大于阈值准确度,由所述计算设备增加所述手势指示多个键中的至少一个键的概率。
在一些示例中,手势指示多个键中的至少一个键的概率包括可以至少部分地基于与所述多个键中的至少一个键相关联的空间模型概率。在一些示例中,操作可以包括由所述计算设备至少部分地基于所述准确度来修改与所述至少一个键相关联的空间模型的空间模型概率。在一些示例中,操作可以包括由计算设备确定接近第一键的多个键中的第二键,并且由计算设备至少部分地基于准确度来修改手势指示多个键中的第二键的第二概率。在一些示例中,多个键中的第二键在第一键的预定距离内。
在一些示例中,操作可以包括响应于确定准确度小于阈值准确度,由计算设备增加手势指示多个键中的第二键的第二概率。在一些示例中,操作可以包括由计算设备确定接近第一键的多个键中的第二键;由计算设备基于与手势相关联的多个特征来确定手势经过的一组对准点;由计算设备基于该组对准点来确定该组对准点中的至少一个与和第一键和第二键中的至少一个相关联的位置之间的距离;由计算设备至少部分地基于该距离来定义准确度。
在一些示例中,操作可以包括响应于确定准确度满足阈值准确度,由计算设备修改手势指示多个键中的至少一个键的概率。在一些示例中,操作可以包括响应于确定准确度小于阈值准确度,由计算设备减小手势指示多个键中的至少一个键的概率。在一些示例中,操作可以包括由计算设备确定接近第一键的多个键中的第二键;由计算设备确定至少部分地基于第一键和包括在词典中的候选词的第一语言模型概率;由计算设备确定至少部分地基于第二键和包括在词典中的候选词的第二语言模型概率;由计算设备至少部分地基于第一语言模型概率和第二语言模型概率之间的差来定义准确度。
在一些示例中,操作可以包括响应于确定准确度满足阈值差,由计算设备至少部分地基于准确度来修改与多个键中的至少一个键相关联的空间模型概率。在一些示例中,操作可以包括由计算设备确定准确度小于阈值准确度。在一些示例中,与手势相关联的多个特征包括下述中的至少一个:手势的段的长度,其中,该段包括在存在敏感显示器处由手势经过的路径;该手势的段的方向;该手势的段的曲率;表示检测该手势的段的速率的局部速度;以及表示检测该手势的速率的全局速度。
图5是图示根据本公开的一个或多个技术的在远程设备输出图形内容以显示的示例性计算设备的框图。图形内容通常可以包括可以用于输出以显示的任何可视信息,诸如文本、图像、一组运动图像等等。图5所示的示例包括计算设备120、存在敏感显示器122、通信单元124、投影仪126、投影屏128、移动设备130和视觉显示设备132。尽管为示例目的在图1和2中被示为独立的计算设备2,但诸如计算设备120的计算设备通常可以是包括处理器或用于执行软件指令的其他适当计算环境并且例如不需要包括存在敏感显示器的任何组件或系统。
如图5的示例中所示,计算设备120可以是包括如参考图2的处理器40所述的功能的处理器。在这样的示例中,计算设备120可以通过通信信道134A可操作地耦接到存在敏感显示器122,通信信道134A可以是系统总线或其他适当的连接。计算设备120还可以通过通信信道134B可操作地耦接到通信单元124,如下所述,通信信道134B也可以是系统总线或其他适当的连接。尽管在图5的示例中单独地示出,但计算设备120可以通过任何数目的一个或多个通信信道可操作地耦接到存在敏感显示器122和通信单元124。
在其他示例中,诸如先前通过图1-2中的计算设备2所示,计算设备可以是指便携式或移动设备,诸如移动电话(包括智能电话)、膝上型计算机等等。在一些示例中,计算设备可以是台式计算机、平板电脑、智能电视平台、相机、个人数字助理(PDA)、服务器、大型机等等。
存在敏感显示器122,如图1所示的UI设备4,可以包括显示设备136和存在敏感输入设备138。显示设备136可以例如从计算设备100接收数据并且显示图形内容。在一些示例中,存在敏感输入设备138可以使用电容、电感和/或光学识别技术来确定存在敏感显示器122处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等等),并且使用通信信道134A将这样的用户输入的指示发送到计算设备120。在一些示例中,存在敏感输入设备138可以物理地位于显示设备136的上方,使得当用户将输入单元定位显示设备136显示的图形元素上时,存在敏感输入设备138的位置对应于显示图形元素的显示设备136的位置。在其他示例中,存在敏感输入设备138可以物理地远离显示设备136,并且存在敏感输入设备138的位置可以对应于显示设备136的位置,使得能在存在敏感输入设备138进行输入,用于与在显示设备136的相应位置显示的图形元素交互。
如图5所示,计算设备120还可以包括和/或可操作地耦接通信单元124。通信单元124可以包括如图2所述的通信单元44的功能。通信单元124的示例可以包括网络接口卡、以太网卡、光收发器、射频收发器或能发送和接收信息的任何其他类型的设备。这样的通信单元的其他示例可以包括蓝牙、3G和WiFi无线电、通用串行总线(USB)接口等等。计算设备120还可以包括和/或可操作地耦接为简化和示例目的在图5中未示出的一个或多个其他设备,例如输入设备、输出设备、存储器、存储设备等等。
图5还图示了投影仪126和投影屏128。投影设备的其他这样示例可以包括电子白板、全息显示设备和用于显示图形内容的任何其他适当的设备。投影仪126和投影屏128可以包括使相应设备能够与计算设备120通信的一个或多个通信单元。在一些示例中,一个或多个通信单元可以使能投影仪126和投影屏128之间的通信。投影仪126可以从计算设备120接收包括图形内容的数据。响应于接收该数据,投影仪126可以将图形内容投影在投影屏128上。在一些示例中,投影仪126可以使用光学识别或其他适当的技术来确定投影屏处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等等),并且使用一个或多个通信单元将这样的用户输入的指示发送到计算设备120。在这样的示例中,投影屏128可以是不必要的,以及投影仪126可以将图形内容投影在任何适当的媒介上,并且使用光学识别或其他这样的适当技术来检测一个或多个用户输入。
投影屏128在一些示例中可以包括存在敏感显示器140。存在敏感显示器140可以包括如在本公开中所述的UI设备4的功能的子集或所有功能。在一些示例中,存在敏感显示器140可以包括另外的功能。投影屏128(例如电子白板)可以从计算设备120接收数据并且显示图形内容。在一些示例中,存在敏感显示器140可以使用电容、电感和/或光学识别技术来确定投影屏128处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等等),并且使用一个或多个通信单元将这样的用户输入的指示发送到计算设备120。
图5还图示了移动设备130和视觉显示设备132。移动设备130和视觉显示设备132可以每个包括计算和连接能力。移动设备130的示例可以包括电子阅读器设备、可转换笔记本设备、混合平板设备等等。视觉显示设备132的示例可以包括其他半静态设备,诸如电视、计算机监视器等等。如图5所示,移动设备130可以包括存在敏感显示器142。视觉显示设备132可以包括存在敏感显示器144。存在敏感显示器142、144可以包括如在本公开中所述的存在敏感显示器4的功能的子集或所有功能。在一些示例中,存在敏感显示器142、144可以包括另外的功能。在任一情况下,存在敏感显示器144例如可以从计算设备120接收数据并且显示图形内容。在一些示例中,存在敏感显示器144可以使用电容、电感和/或光学识别技术来确定投影屏处的一个或多个用户输入(例如连续手势、多触摸手势、单触摸手势等等),并且使用一个或多个通信单元将这样的用户输入的指示发送到计算设备120。
如上所述,在一些示例中,计算设备120可以输出图形内容以在通过系统总线或其他适当的通信信道耦接到计算设备120的存在敏感显示器122处显示。计算设备120也可以输出图形内容以在诸如投影仪126、投影屏128、移动设备130和视觉显示设备132的一个或多个远程设备处显示。例如,计算设备120可以执行一个或多个指令以根据本公开的技术来生成和/或修改图形内容。计算设备120可以将包括图形内容的数据输出到计算设备120的通信单元,诸如通信单元124。通信单元124可以将数据发送到诸如投影仪126、投影屏128、移动设备130和/或视觉显示设备132的远程设备中的一个或多个。以这种方式,计算设备120可以输出图形内容以在一个或多个远程设备处显示。在一些示例中,远程设备中的一个或多个可以在包括在相应远程设备中和/或可操作地与之耦接的存在敏感显示器处输出图形内容。
在一些示例中,计算设备120可以不在可操作地耦接到计算设备120的存在敏感显示器122处输出图形内容。在其他示例中,计算设备120可以输出图形内容以在通过通信信道134A耦接到计算设备120的存在敏感显示器122和一个或多个远程设备处显示。在这样的示例中,可以在每个相应设备处基本上同时显示图形内容。例如,可以由将包括图形内容的数据发送到远程设备的通信时延引入某个延迟。在一些示例中,由计算设备120生成并且输出以在存在敏感显示器122处显示的图形内容可以不同于用于在一个或多个远程设备处输出以显示的图形内容。
计算设备120可以使用任何适当的通信技术来发送和接收数据。例如,计算设备120可以使用网络链路148A可操作地耦接到外部网络146。图5所示的远程设备中的每一个可以通过相应网络链路148B、148C和148D中的一个可操作地耦接到外部网络146。外部网络146可以包括可操作地互耦由此在计算设备120和图5所示的远程设备之间交换信息的网络集线器、网络交换机、网络路由器等等。在一些示例中,网络链路148A-148D可以是以太网、ATM或其他网络连接。这样的连接可以是无线和/或有线连接。
在一些示例中,计算设备120可以使用直接设备通信150可操作地耦接到图5中包括的远程设备中的一个或多个。直接设备通信150可以包括计算设备120可以通过其使用有线或无线通信与远程设备直接发送和接收数据的通信。也就是说,在直接设备通信150的一些示例中,由计算设备120发送的数据可以在被远程设备接收前可以不被一个或多个另外的设备转发,并且反之亦然。直接设备通信150的示例可以包括蓝牙、近场通信、通用串行总线、WiFi、红外等等。图5所示的一个或多个远程设备可以通过通信链路154A-154D可操作地与计算设备120耦接。在一些示例中,通信链路154A-154D可以是使用蓝牙、近场通信、通用串行总线、红外等等的连接。这样的连接可以是无线和/或有线连接。
根据本公开的技术,计算设备120可以使用外部网络146可操作地耦接到视觉显示器132。计算设备120可以输出包括多个键的图形键盘以在存在敏感显示器144处显示。例如,计算设备120可以将包括图形键盘的表示的数据发送到通信单元124。通信单元124可以使用外部网络146将包括图形键盘的表示的数据发送到视觉显示设备132。视觉显示设备132响应于使用外部网络146接收数据而可以使存在敏感显示器144输出图形键盘。响应于用户在存在敏感显示器144处执行手势来选择图形键盘中的一组键(例如在存在敏感显示器144的输出图形键盘的区域),视觉显示设备132可以使用外部网络146将手势的指示发送到计算设备120。通信单元124可以接收手势的指示,并且将该指示发送到计算设备120。
响应于接收手势的指示,计算设备120可以基于与手势相关联的多个特征来确定手势的准确度。计算设备120可以至少部分地基于准确度来修改手势指示多个键中的至少一个键的概率。计算设备120可以输出至少部分地基于手势指示多个键中的至少一个键的概率的候选词以显示。例如,计算设备120可以将表示候选词的数据发送到通信单元124。通信单元124可以经外部网络146将数据发送到视觉显示设备132。视觉显示设备132可以使存在敏感显示器144输出由该数据表示的至少一个词。
示例1:一种方法,包括:由计算设备输出包括多个键的图形键盘以显示;由所述计算设备接收在存在敏感输入设备处检测的手势的指示;由所述计算设备基于与所述手势相关联的多个特征来确定所述手势的准确度;由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及由所述计算设备输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
示例2:如示例1所述的方法,其中,确定所述手势的所述准确度进一步包括:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;由所述计算设备确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及由所述计算设备将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
示例3:如示例1-2中的任何一个所述的方法,其中,确定所述手势的所述准确度进一步包括:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及由所述计算设备将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
示例4:如示例1-3中的任何一个所述的方法,其中,确定所述手势的所述准确度进一步包括:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及由所述计算设备将所述手势的所述部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
示例5:如示例1-4中的任何一个所述的方法,修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括:响应于确定所述准确度小于阈值准确度,由所述计算设备减小所述手势指示所述多个键中的所述至少一个键的所述概率。
示例6:如示例1-5中的任何一个所述的方法,其中,修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括:响应于确定所述准确度大于阈值准确度,由所述计算设备增加所述手势指示所述多个键中的所述至少一个键的所述概率。
示例7:如示例1-6中的任何一个所述的方法,其中,所述手势指示所述多个键中的所述至少一个键的所述概率至少部分地基于与所述多个键中的所述至少一个键相关联的空间模型概率,以及其中,由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括由所述计算设备至少部分地基于所述准确度来修改与所述至少一个键相关联的空间模型的空间模型概率。
示例8:如示例1-7中的任何一个所述的方法,其中,所述手势指示所述多个键中的至少一个键的概率至少部分地基于与所述多个键中的所述至少一个键相关联的空间模型概率和语言模型概率,其中所述语言模型概率至少部分地基于与所述至少一个键相关联的字符。
示例9:一种编码有指令的计算机可读存储介质,所述指令在被执行时使计算设备的一个或多个处理器执行包括以下的操作:由所述计算设备输出包括多个键的图形键盘以显示;由所述计算设备接收在存在敏感输入设备处检测的手势的指示;由所述计算设备基于与所述手势相关联的多个特征来确定所述手势的准确度;由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及由所述计算设备输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
示例10:如示例9所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;由所述计算设备确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及由所述计算设备将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
示例11:如示例9-10中的任何一个所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及
由所述计算设备将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
示例12:如示例9-11中的任何一个所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及由所述计算设备将所述手势的所述部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
示例13.一种计算设备,包括:至少一个处理器,其中,所述至少一个处理器被配置成:输出包括多个键的图形键盘以显示;接收在存在敏感输入设备处检测的手势的指示;基于与所述手势相关联的多个特征来确定所述手势的准确度;至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
示例14:如示例13所述的计算设备,其中,所述至少一个处理器被配置成:确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
示例15:如示例13-14中的任何一个所述的计算设备,其中,所述至少一个处理器被配置成:确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
示例16:如示例13-15中的任何一个所述的计算设备,其中,所述至少一个处理器被配置成:确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及将所述手势的所述一部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
在本公开中描述的技术至少部分地可以由硬件、软件、固件或其任意组合实现。例如,所述技术的各个方面可以被实现在一个或多个处理器内,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、或任何其他等同的集成或离散逻辑电路、以及这样的组件的任意组合。术语“处理器”或“处理电路”通常是指上述逻辑电路中的任何一个,单独或与其他逻辑电路组合、或任何其他等同的电路。包括硬件的控制单元也可以执行本公开的一个或多个技术。
可以在同一设备内或在分立的设备内实现这样的硬件、软件和固件来支持在本公开中所述的各种技术。此外,上述单元、模块或组件中的任何一个可以一起或单独地实现为离散但可互换的逻辑设备。将不同特征描述为模块或单元旨在突出不同的功能方面,而不一定暗指这样的模块或单元必须由分立的硬件、固件或软件组件实现。相反,与一个或多个模块或单元相关联的功能可以由单独分立的硬件、固件或软件组件实现,或集成在公用或分立的硬件、固件或软件组件内。
在本公开中所述的技术也可以体现或编码在包括编码有指令的计算机可读存储介质的制品中。在包括计算机可读存储介质的制品中实现或编码的指令可以使一个或多个可编程处理器或其他处理器实现在此所述的一个或多个技术,诸如当包括或编码在计算机可读存储介质中的指令由一个或多个处理器执行时。计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、光盘ROM(CD-ROM)、软盘、磁带、磁介质、光学介质或其他计算机可读介质。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非瞬时介质。术语“非瞬时”可以指示不是以载波或传播信号实现存储介质。在某些示例中,非瞬时存储介质可以存储能随时间改变的数据(例如在RAM或缓存中)。
将意识到,取决于实施例,在此所述的方法中的任何一个的某些动作或事件可以以不同顺序执行、可以添加、合并或一并省去(例如,不是所有所述的动作或事件对实践该方法均是必要的)。此外,在某些实施例中,可以同时执行动作或事件,例如,通过多线程处理、中断处理或多处理器,而不是顺序地。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。

Claims (16)

1.一种方法,包括:
由计算设备输出包括多个键的图形键盘以显示;
由所述计算设备接收在存在敏感输入设备处检测的手势的指示;
由所述计算设备基于与所述手势相关联的多个特征来确定所述手势的准确度;
由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及
由所述计算设备输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
2.如权利要求1所述的方法,其中,确定所述手势的所述准确度进一步包括:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;
由所述计算设备确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及
由所述计算设备将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
3.如权利要求1-2中的任何一个所述的方法,其中,确定所述手势的所述准确度进一步包括:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及
由所述计算设备将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
4.如权利要求1-3中的任何一个所述的方法,其中,确定所述手势的所述准确度进一步包括:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及
由所述计算设备将所述手势的所述部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
5.如权利要求1-4中的任何一个所述的方法,其中,修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括:
响应于确定所述准确度小于阈值准确度,由所述计算设备减小所述手势指示所述多个键中的所述至少一个键的所述概率。
6.如权利要求1-5中的任何一个所述的方法,其中,修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括:
响应于确定所述准确度大于阈值准确度,由所述计算设备增加所述手势指示所述多个键中的所述至少一个键的所述概率。
7.如权利要求1-6中的任何一个所述的方法,
其中,所述手势指示所述多个键中的所述至少一个键的所述概率至少部分地基于与所述多个键中的所述至少一个键相关联的空间模型概率,以及
其中,由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的所述至少一个键的所述概率进一步包括由所述计算设备至少部分地基于所述准确度来修改与所述至少一个键相关联的空间模型的空间模型概率。
8.如权利要求1-7中的任何一个所述的方法,其中,所述手势指示所述多个键中的至少一个键的概率至少部分地基于与所述多个键中的所述至少一个键相关联的空间模型概率和语言模型概率,其中所述语言模型概率至少部分地基于与所述至少一个键相关联的字符。
9.一种编码有指令的计算机可读存储介质,所述指令在被执行时使计算设备的一个或多个处理器执行包括以下的操作:
由所述计算设备输出包括多个键的图形键盘以显示;
由所述计算设备接收在存在敏感输入设备处检测的手势的指示;
由所述计算设备基于与所述手势相关联的多个特征来确定所述手势的准确度;
由所述计算设备至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及
由所述计算设备输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
10.如权利要求9所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;
由所述计算设备确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及
由所述计算设备将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
11.如权利要求9-10中的任何一个所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及
由所述计算设备将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
12.如权利要求9-11中的任何一个所述的计算机可读存储介质,编码有指令,所述指令在被执行时使所述计算设备的一个或多个处理器执行包括以下的操作:
由所述计算设备确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及
由所述计算设备将所述手势的所述部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
13.一种计算设备,包括:
至少一个处理器,
其中,所述至少一个处理器被配置成:
输出包括多个键的图形键盘以显示;
接收在存在敏感输入设备处检测的手势的指示;
基于与所述手势相关联的多个特征来确定所述手势的准确度;
至少部分地基于所述准确度来修改所述手势指示所述多个键中的至少一个键的概率;以及
输出至少部分地基于所述手势指示所述多个键中的至少一个键的所述概率的候选词以显示。
14.如权利要求13所述的计算设备,其中,所述至少一个处理器被配置成:
确定一组键中的第一键和第二键之间的所述手势的一部分的第一距离;
确定所述第一键和所述第二键之间的第二距离,其中所述第二距离是所述第一键和所述第二键之间的直线路径的距离;以及
将所述第一距离和所述第二距离进行比较来确定所述手势的所述准确度。
15.如权利要求13-14中的任何一个所述的计算设备,其中,所述至少一个处理器被配置成:
确定一组键中的第一键和第二键之间的所述手势的一部分的速度;以及
将所述手势的所述一部分的速度与至少一个阈值速度进行比较来确定所述手势的所述准确度。
16.如权利要求13-15中的任何一个所述的计算设备,其中,所述至少一个处理器被配置成:
确定一组键中的第一键和第二键之间的所述手势的一部分的曲率;以及
将所述手势的所述一部分的曲率与至少一个阈值曲率进行比较来确定所述手势的所述准确度。
CN201380054670.5A 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势 Active CN104756062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711347237.7A CN107967112B (zh) 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261716456P 2012-10-19 2012-10-19
US61/716,456 2012-10-19
US13/871,876 US8994681B2 (en) 2012-10-19 2013-04-26 Decoding imprecise gestures for gesture-keyboards
US13/871,876 2013-04-26
PCT/US2013/065479 WO2014062937A1 (en) 2012-10-19 2013-10-17 Decoding imprecise gestures for gesture-keyboards

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN201711347237.7A Division CN107967112B (zh) 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势

Publications (2)

Publication Number Publication Date
CN104756062A true CN104756062A (zh) 2015-07-01
CN104756062B CN104756062B (zh) 2018-01-12

Family

ID=50486560

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380054670.5A Active CN104756062B (zh) 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势
CN201711347237.7A Active CN107967112B (zh) 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201711347237.7A Active CN107967112B (zh) 2012-10-19 2013-10-17 解码用于图形键盘的不准确手势

Country Status (3)

Country Link
US (1) US8994681B2 (zh)
CN (2) CN104756062B (zh)
WO (1) WO2014062937A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9690478B2 (en) * 2014-03-04 2017-06-27 Texas Instruments Incorporated Method and system for processing gestures to cause computation of measurement of an angle or a segment using a touch system
USD771646S1 (en) * 2014-09-30 2016-11-15 Apple Inc. Display screen or portion thereof with graphical user interface
US10282089B2 (en) * 2015-02-03 2019-05-07 Google Llc User state-adaptive text input
US10884610B2 (en) 2016-11-04 2021-01-05 Myscript System and method for recognizing handwritten stroke input
US11609692B2 (en) * 2017-04-07 2023-03-21 Hewlett-Packard Development Company, L.P. Cursor adjustments
US11227176B2 (en) * 2019-05-16 2022-01-18 Bank Of Montreal Deep-learning-based system and process for image recognition

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030207250A1 (en) * 1999-12-15 2003-11-06 Medispectra, Inc. Methods of diagnosing disease
CN1864204A (zh) * 2002-09-06 2006-11-15 语音信号技术有限公司 用来完成语音识别的方法、系统和程序
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
CN102141889A (zh) * 2010-02-12 2011-08-03 微软公司 用于编辑的打字辅助
US20110238257A1 (en) * 2010-03-23 2011-09-29 Gm Global Technology Operations, Inc. System and method for predicting vehicle energy consumption

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100327209B1 (ko) 1998-05-12 2002-04-17 윤종용 첨펜의자취를이용한소프트웨어키보드시스템및그에따른키코드인식방법
US7293231B1 (en) 1999-03-18 2007-11-06 British Columbia Ltd. Data entry for personal computing devices
US7750891B2 (en) 2003-04-09 2010-07-06 Tegic Communications, Inc. Selective input system based on tracking of motion parameters of an input device
WO2000074240A1 (en) 1999-05-27 2000-12-07 America Online Keyboard system with automatic correction
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
EP1303805B1 (de) 2000-07-21 2010-02-10 Speedscript AG Verfahren für ein schnellschreibsystem und schnellschreibgerät
US7042443B2 (en) 2001-10-11 2006-05-09 Woodard Scott E Speed Writer program and device with Speed Writer program installed
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
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
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
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
US20060176283A1 (en) 2004-08-06 2006-08-10 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
US7508324B2 (en) 2004-08-06 2009-03-24 Daniel Suraqui Finger activated reduced keyboard and a method for performing text input
KR100687225B1 (ko) * 2004-12-06 2007-02-27 엘지전자 주식회사 다수의 키가 요구되는 단말기에서의 키인식 정확도 향상장치 및 그 방법
US8036878B2 (en) 2005-05-18 2011-10-11 Never Wall Treuhand GmbH Device incorporating improved text input mechanism
US8225203B2 (en) * 2007-02-01 2012-07-17 Nuance Communications, Inc. Spell-check for a keyboard system with automatic correction
US8028230B2 (en) * 2007-02-12 2011-09-27 Google Inc. Contextual input method
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
CN100545792C (zh) * 2007-08-24 2009-09-30 上海汉翔信息技术有限公司 电子设备屏幕上实现智能软件键盘输入的方法
GB0905457D0 (en) * 2009-03-30 2009-05-13 Touchtype Ltd System and method for inputting text into electronic devices
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
US9104312B2 (en) * 2010-03-12 2015-08-11 Nuance Communications, Inc. Multimodal text input system, such as for use with touch screens on mobile phones
US8918734B2 (en) 2010-07-28 2014-12-23 Nuance Communications, Inc. Reduced keyboard with prediction solutions when input is a partial sliding trajectory
US9262076B2 (en) * 2011-09-12 2016-02-16 Microsoft Technology Licensing, Llc Soft keyboard interface
CN102339129B (zh) * 2011-09-19 2013-12-25 北京航空航天大学 一种基于语音和手势的多通道人机交互方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030207250A1 (en) * 1999-12-15 2003-11-06 Medispectra, Inc. Methods of diagnosing disease
CN1864204A (zh) * 2002-09-06 2006-11-15 语音信号技术有限公司 用来完成语音识别的方法、系统和程序
US20070040813A1 (en) * 2003-01-16 2007-02-22 Forword Input, Inc. System and method for continuous stroke word-based text input
CN102141889A (zh) * 2010-02-12 2011-08-03 微软公司 用于编辑的打字辅助
US20110238257A1 (en) * 2010-03-23 2011-09-29 Gm Global Technology Operations, Inc. System and method for predicting vehicle energy consumption

Also Published As

Publication number Publication date
US20140115521A1 (en) 2014-04-24
US8994681B2 (en) 2015-03-31
CN104756062B (zh) 2018-01-12
WO2014062937A1 (en) 2014-04-24
CN107967112A (zh) 2018-04-27
CN107967112B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
US11727212B2 (en) Touch keyboard using a trained model
US10140284B2 (en) Partial gesture text entry
US10489508B2 (en) Incremental multi-word recognition
US9552080B2 (en) Incremental feature-based gesture-keyboard decoding
US9304595B2 (en) Gesture-keyboard decoding using gesture path deviation
US8701050B1 (en) Gesture completion path display for gesture-based keyboards
CN104756061A (zh) 多手势文本输入预测
CN104756062A (zh) 解码用于图形键盘的不准确手势
CN105308551A (zh) 用于连续手势输入的多图形键盘

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
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.