管理实时手写识别的制作方法

文档序号:15666042发布日期:2018-10-16 17:04阅读:199来源:国知局
管理实时手写识别的制作方法

本说明书涉及在计算设备上提供手写输入功能,并且更具体地涉及在计算设备上提供实时、多文字、与笔画顺序无关的手写识别和输入功能。



背景技术:

手写输入方法是一种用于装备有触敏表面(例如,触敏显示屏或触摸板)的计算设备的重要另选输入方法。许多用户尤其是一些亚洲或阿拉伯国家/地区的用户习惯于以草书风格书写,并且与在键盘上打字相比,可能感到以普通写法书写要舒服些。

对于某些语标书写系统诸如中文字符或日本中文字符(也称为中国字),尽管有另选的音节输入方法(例如拼音或假名)可用于输入对应语标书写系统的字符,但在用户不知道如何在语音方面拼写语标字符并且使用语标字符进行不正确的语音拼写时,此类音节输入方法就显得不足。因此,能够在计算设备上使用手写输入对于不能很好或根本不会拼读相关语标书写系统的字词的用户而言变得至关重要。

尽管在世界的某些地区中已普及了手写输入功能,但仍然需要改进。具体地,人的手写字体是高度不一的(例如,在笔画顺序、大小、书写风格等方面),并且高质量的手写识别软件是复杂的并且需要广泛的训练。这样,在具有有限的存储器和计算资源的移动设备上提供高效率实时手写识别已成为一种挑战。

此外,在如今的多元文化世界中,许多国家的用户会多种语言,并且可能频繁需要书写多于一种文字(例如,用中文书写提到英文电影名称的消息)。然而,在书写期间将识别系统手动切换到期望的文字或语言是繁琐且低效率的。此外,常规多文字手写识别技术的实用性严重受限,因为提高设备的识别能力以同时处理多种文字大大增加了识别系统的复杂性和对计算机资源的需求。

此外,常规手写技术严重依赖于特定于语言或文字的特殊性以实现识别精确性。此类特殊性不容易移植到其他语言或文字。因此,为新的语言或文字添加手写输入能力是一项不容易被软件和设备的供应商接受的艰难任务。因而,许多种语言的用户缺少用于其电子设备的重要的另选输入方法。

用于提供手写输入的常规用户界面包括用于从用户接受手写输入的区域和用于显示手写识别结果的区域。在具有小外形的便携式设备上,仍然需要对用户界面进行显著的改进,以总体上改善效率、精确性和用户体验。



技术实现要素:

本说明书描述了一种用于使用通用识别器来提供多文字手写识别的技术。使用针对不同语言和文字中的字符的书写样本的大的多文字语料库来训练该通用识别器。通用识别器的训练独立于语言、独立于文字、独立于笔画顺序并且独立于笔画方向。因此,同一识别器能够识别混合语言、混合文字手写输入,而不需要在使用期间在输入语言之间进行手动切换。此外,通用识别器足够轻,以在移动设备上用作独立的模块,从而使得在全世界的不同地区中使用的不同语言和文字中能够进行手写输入。

此外,因为针对与笔画顺序无关以及与笔画方向无关并且不需要笔画层次上的时间或顺序信息的空间导出特征来训练通用识别器,所以通用识别器相对于常规基于时间的识别方法(例如,基于隐马尔可夫方法(HMM)的识别方法)提供了许多附加特征和优点。例如,允许用户按照任何顺序输入一个或多个字符、短语和句子的笔画,并且仍然获取相同的识别结果。因此,现在可能进行无序的多字符输入以及对先前输入的字符进行无序的更正(例如,添加或重写)。

此外,通用识别器用于实时手写识别,其中针对每个笔画的时间信息可用,并任选地用于在由通用识别器执行字符识别之前对手写输入消歧或分割。本文所述的与笔画顺序无关的实时识别与常规的离线识别方法(例如,光学字符识别(OCR))不同,并且可提供比常规离线识别方法更好的性能。此外,本文所述的通用识别器能够处理个体书写习惯的高度变化(例如,速度、节奏、笔画顺序、笔画方向、笔画连续性等的变化),而没有在识别系统中明确嵌入不同变化(例如,速度、节奏、笔画顺序、笔画方向、笔画连续性等的变化)的区分性特征,由此降低了识别系统的总体复杂性。

如本文所述,在一些实施例中,任选地将时间导出的笔画分布信息重新引入到通用识别器中,以增强识别精确性并且在针对同一输入图像的外观相似的识别输出之间进行消歧。重新引入时间导出的笔画分布信息不会破坏独立于通用识别器的笔画顺序和笔画方向,因为时间导出特征和空间导出特征是通过独立的训练过程获取的,并且仅在完成独立训练之后才在手写识别模型中进行组合。此外,认真设计时间导出的笔画分布信息,使其捕获外观相似的字符的区分性时间特性,而不依赖于对外观相似的字符的笔画顺序的差异的明确了解。

本文还描述了一种用于提供手写输入功能的用户界面。

在一些实施例中,一种提供多文字手写识别的方法包括:基于多文字训练语料库的空间导出特征来训练多文字手写识别模型,该多文字训练语料库包括与至少三种不重叠文字的字符对应的相应手写样本;以及使用已针对多文字训练语料库的空间导出特征被训练的多文字手写识别模型来为用户的手写输入提供实时手写识别。

在一些实施例中,一种提供多文字手写识别的方法包括:接收多文字手写识别模型,该多文字识别模型已针对多文字训练语料库的空间导出特征被训练,该多文字训练语料库包括与至少三种不重叠文字的字符对应的相应手写样本;从用户接收手写输入,该手写输入包括在耦接到用户设备的触敏表面上提供的一个或多个手写笔画;以及响应于接收到手写输入,基于已针对多文字训练语料库的空间导出特征被训练的多文字手写识别模型来向用户实时提供一个或多个手写识别结果。

在一些实施例中,一种提供实时手写识别的方法包括:从用户接收多个手写笔画,该多个手写笔画对应于手写字符;基于多个手写笔画生成输入图像;向手写识别模型提供输入图像以对手写字符执行实时识别,其中手写识别模型提供与笔画顺序无关的手写识别;以及当接收到多个手写笔画时,实时显示相同的第一输出字符,而不考虑已从用户已接收到的多个手写笔画的相应顺序。

在一些实施例中,该方法进一步包括:从用户接收第二多个手写笔画,该第二多个手写笔画对应于第二手写字符;基于第二多个手写笔画来生成第二输入图像;向手写识别模型提供第二输入图像,以对第二手写字符执行实时识别;以及当接收到第二多个手写笔画时,实时显示与第二多个手写笔画对应的第二输出字符,其中第一输出字符和第二输出字符同时显示在空间序列中,与已由用户提供的第一多个手写输入和第二多个手写输入的相应顺序无关。

在一些实施例中,其中沿用户设备的手写输入界面的默认书写方向,第二多个手写笔画在空间上在第一多个手写笔画之后,并且沿默认书写方向,第二输出字符在空间序列中在第一输出字符之后,并且该方法进一步包括:从用户接收第三手写笔画,以修正手写字符,该第三手写笔画在第一多个手写笔画和第二多个手写笔画之后被暂时接收;响应于接收到第三手写笔画基于第三手写笔画与第一多个手写笔画的相对邻近性来向同一识别单元分配手写笔画作为第一多个手写笔画;基于第一多个手写笔画和第三手写笔画来生成所修正的输入图像;向手写识别模型提供所修正的输入图像以对所修正的手写字符执行实时识别;以及响应于接收到第三手写输入来显示与所修正的输入图像的第三输出字符,其中第三输出字符替换第一输出字符并沿默认书写方向在空间序列中与第二输出字符同时被显示。

在一些实施例中,该方法进一步包括:在手写输入界面的候选显示区域中将第三输出字符和第二输出字符同时显示为识别结果的同时,从用户接收删除输入;以及响应于删除输入,在所述识别结果中保持第三输出字符的同时,从识别结果删除第二输出字符。

在一些实施例中,当由用户提供手写笔画中的每个手写笔画时,在手写输入界面的手写输入区域中实时渲染第一多个手写笔画、第二多个手写笔画和第三手写笔画;以及响应于接收到删除输入,在手写输入区域中保持对第一多个手写笔画和第三手写笔画的相应渲染的同时,从手写输入区域删除对第二多个手写笔画的相应渲染。

在一些实施例中,一种提供实时手写识别的方法包括:从用户接收手写输入,该手写输入包括在手写输入界面的手写输入区域中提供的一个或多个手写笔画;基于手写识别模型来为手写输入识别多个输出字符;基于预先确定的分类标准来将多个输出字符分成两个或更多个类别;在手写输入界面的候选显示区域的初始视图中显示两个或更多个类别中的第一类别的相应输出字符,其中候选显示区域的初始视图与用于调用候选显示区域的扩展视图的示能表示被同时提供;接收用于选择用于调用扩展视图的示能表示的用户输入;以及响应于该用户输入,在候选显示区域的扩展视图中显示先前未在候选显示区域的初始视图中显示的两个或更多个类别中的第一类别的相应输出字符以及至少第二类别的相应输出字符。

在一些实施例中,一种提供实时手写识别的方法包括:从用户接收手写输入,该手写输入包括在手写输入界面的手写输入区域中提供的多个手写笔画;基于手写识别模型来从手写输入中识别多个输出字符,该多个输出字符包括来自自然人类语言的文字的至少第一表情符号字符和至少第一字符;以及在手写输入界面的候选显示区域中显示包括来自自然人类语言的文字所述第一表情符号字符和的第一字符的识别结果。

在一些实施例中,一种提供手写识别的方法包括:从用户接收手写输入,该手写输入包括在耦接到设备的触敏表面中提供的多个手写笔画;在手写输入界面的手写输入区域中实时渲染述多个手写笔画;在多个手写笔画上方接收夹捏手势输入和扩展手势输入中的一者;当接收到夹捏手势输入时,通过将多个手写笔画作为单个识别单元进行处理而基于多个手写笔画生成第一识别结果;当接收到扩展手势输入时,通过将多个手写笔画作为由扩展手势输入拉开的两个独立识别单元进行处理而基于多个手写笔画生成第二识别结果;以及当生成第一识别结果和第二识别结果中的相应的一个识别结果时,在手写输入界面的候选显示区域中显示所生成的识别结果。

在一些实施例中,一种提供手写识别的方法包括:从用户接收手写输入,该手写输入包括在手写输入界面的手写输入区域中提供的多个手写笔画;从多个手写笔画中识别多个识别单元,每个识别单元包括多个手写笔画的相应子集;生成包括从多个识别单元中识别的相应字符的多字符识别结果;在手写输入界面的候选显示区域中显示多字符识别结果;在候选显示区域中显示多字符识别结果的同时,从用户接收删除输入;以及响应于接收到删除输入,从在候选显示区域中显示的多字符识别结果去除末尾字符。

在一些实施例中,一种提供实时手写识别的方法包括:确定设备的取向;根据设备处于第一取向来在水平输入模式中在设备上提供手写输入界面,其中将水平输入模式中输入的相应一行手写输入沿水平书写方向分割成一个或多个相应识别单元;以及根据设备处于第二取向来在垂直输入模式中在设备上提供手写输入界面,其中将垂直输入模式中输入的相应一行手写输入沿垂直书写方向分割成一个或多个相应识别单元。

在一些实施例中,一种提供实时手写识别的方法包括:从用户接收手写输入,该手写输入包括在耦接到设备的触敏表面上提供的多个手写笔画;在手写输入界面的手写输入区域中渲染多个手写笔画;将多个手写笔画分割成两个或更多个识别单元,每个识别单元包括多个手写笔画的相应子集;从用户接收编辑请求;响应于编辑请求,在视觉上区分手写输入区域中的两个或更多个识别单元;以及提供用于从手写输入区域独立删除两个或更多个识别单元中的每个识别单元的装置。

在一些实施例中,一种提供实时手写识别的方法包括:从用户接收第一手写输入,该第一手写输入包括多个手写笔画,并且多个手写笔画形成沿与手写输入界面的手写输入区域相关联的相应书写方向分布的多个识别单元;当由用户提供手写笔画时,在手写输入区域中渲染多个手写笔画中的每个手写笔画;在完全渲染识别单元之后,针对多个识别单元中的每个识别单元来开始相应的淡出过程,其中在相应的淡出过程期间,对第一手写输入中的识别单元的渲染逐渐淡出;从用户接收由多个识别单元中的淡出的识别单元占据的手写输入区域的区域上方的第二手写输入;以及响应于接收到第二手写输入:在手写输入区域中渲染第二手写输入;以及从手写输入区域清除所有淡出的识别单元。

在一些实施例中,一种提供手写识别的方法包括:独立训练手写识别模型的一组空间导出特征和一组时间导出特征,其中:针对训练图像的语料库来训练一组空间导出特征,该训练图像的语料库中的每个图像为针对输出字符集中的相应字符的手写样本的图像,以及针对笔画分布概况的语料库来训练一组时间导出特征,每个笔画分布概况以数字方式表征针对输出字符集中的相应字符的手写样本中的多个笔画的空间分布;以及组合手写识别模型中的一组空间导出特征和一组时间导出特征;以及使用手写识别模型来为用户的手写输入提供实时手写识别。

在附图以及下文的描述中阐述了本说明书中所述的主题的一个或多个实施例的细节。根据说明书、附图和权利要求书,该主题的其他特征、方面和优点将变得显而易见。

附图说明

图1是示出了根据一些实施例的具有触敏显示器的便携式多功能设备的框图。

图2示出了根据一些实施例的具有触敏显示器的便携式多功能设备。

图3是根据一些实施例的具有显示器和触敏表面的示例性多功能设备的框图。

图4示出了根据一些实施例的用于具有与显示器分开的触敏表面的多功能设备的示例性用户界面。

图5是示出了根据一些实施例的手写输入系统的操作环境的框图。

图6是根据一些实施例的多文字手写识别模型的框图。

图7是根据一些实施例的用于训练多文字手写识别模型的示例性过程的流程图。

图8A-图8B示出了根据一些实施例的在便携式多功能设备上显示实时多文字手写识别和输入的示例性用户界面。

图9A-图9B是用于在便携式多功能设备上提供实时多文字手写识别和输入的示例性过程的流程图。

图10A-图10C是根据一些实施例的用于在便携式多功能设备上提供实时的与笔画顺序无关的手写识别和输入的示例性过程的流程图。

图11A-图11K示出了根据一些实施例的用于在候选显示区域的正常视图中选择性地显示一种类别的识别结果以及在候选显示区域的扩展视图中选择性地显示其他类别的识别结果的示例性用户界面。

图12A-图12B是根据一些实施例的用于在候选显示区域的正常视图中选择性地显示一种类别的识别结果以及在候选显示区域的扩展视图中选择性地显示其他类别的识别结果的示例性过程的流程图。

图13A-图13E示出了根据一些实施例的用于通过手写输入来输入表情符号字符的示例性用户界面。

图14是根据一些实施例的用于通过手写输入来输入表情符号字符的示例性过程的流程图。

图15A-图15K示出了根据一些实施例的用于使用夹捏手势或扩展手势来通知手写输入模块如何将当前累积的手写输入分成一个或多个识别单元的示例性用户界面。

图16A-图16B是根据一些实施例的用于使用夹捏手势或扩展手势来通知手写输入模块如何将当前累积的手写输入分成一个或多个识别单元的示例性过程的流程图。

图17A-图17H示出了根据一些实施例的用于对用户的手写输入提供逐个字符删除的示例性用户界面。

图18A-图18B是根据一些实施例的用于对用户的手写输入提供逐个字符删除的示例性过程的流程图。

图19A-图19F示出了根据一些实施例的用于在垂直书写模式和水平书写模式之间切换的示例性用户界面。

图20A-图20C示出了根据一些实施例的用于在垂直书写模式和水平书写模式之间切换的示例性过程的流程图。

图21A-图21H示出了根据一些实施例的用于提供用于显示并选择性地删除在用户的手写输入中识别的单个识别单元的装置的用户界面。

图22A-图22B是根据一些实施例的用于提供用于显示并选择性地删除在用户手写输入中识别的单个识别单元的装置的示例性过程的流程图。

图23A-图23L示出了根据一些实施例的用于利用在手写输入区域中的现有手写输入上方提供的新的手写输入作为暗示确认输入,以用于输入针对现有手写输入显示的识别结果的示例性用户界面。

图24A-图24B是根据一些实施例的用于利用在手写输入区域中的现有手写输入上方提供的新的手写输入作为暗示确认输入,以用于输入针对现有手写输入显示的识别结果的示例性过程的流程图。

图25A-图25B是根据一些实施例的用于基于空间导出特征将时间导出笔画分布信息集成到手写识别模型中,而不破坏手写识别模型的笔画顺序和笔画方向独立性的示例性过程的流程图。

图26是示出了根据一些实施例的独立进行训练并且随后对示例性手写识别系统的空间导出特征和时间导出特征进行集成的框图。

图27是示出了用于计算字符的笔画分布概况的示例性方法的框图。

在整个附图中,类似的参考标号是指对应的部件。

具体实施方式

许多电子设备具有图形用户界面,该图形用户界面具有用于字符输入的软键盘。在一些电子设备上,用户还可能能够安装或启用手写输入界面,该手写输入界面允许用户在耦接到设备的触敏显示屏或触敏表面上通过手写来输入字符。常规手写识别输入方法和用户界面具有若干个问题和缺点。例如,

·通常,常规手写输入功能是逐个语言或逐个文字来启用的。每种附加输入语言需要安装占用独立存储空间和存储器的独立手写识别模型。通过组合用于不同语言的手写识别模型几乎不能提供协同作用,并且混合语言或混合文字手写识别由于复杂的歧义消除过程通常要花费很长的时间。

·此外,因为常规的手写识别系统严重依赖于特定于语言的特性或特定于文字的特性以用于字符识别。所以识别混合语言手写输入的精确性很差。此外,所识别的语言的可用组合非常有限。大部分系统需要用户在每种非默认语言或文字中提供手写输入之前手动指定期望的特定于语言的手写识别器。

·许多现有的实时手写识别模型需要关于逐个笔画层级的时间信息或顺序信息,在处理如何可书写字符的高度可变性(例如,由于书写风格和个人习惯,笔画的形状、长度、节奏、分割、顺序和方向有高度的可变性)时,这将产生不精确的识别结果。一些系统还需要用户在提供手写输入时遵守严格的空间标准和时间标准(例如,其中对每个字符输入的大小、顺序和时间帧有内置的假设)。与这些标准有任何偏差都会导致难以改正的不精确的识别结果。

·当前,大部分实时手写输入界面仅允许用户一次输入几个字符。长短语或句子的输入被分解成短的句段并被独立输入。这种不自然的输入不仅给用户保持写作的流畅带来了认知负担,而且使用户难以校正或校订早前输入的字符或短语。

下文所述的实施例解决了这些问题和相关问题。

以下图1-图4提供了对示例性设备的描述。图5、图6和图26-图27示出了示例性手写识别和输入系统。图8A-图8B、图11A-图11K、图13A-图13E、图15A-图15K、图17A-图17H、图19A-图19F、图21A-图21H和图23A-图12L示出了用于手写识别和输入的示例性用户界面。图7、图9A-图9B、图10A-图10C、图12A-图12B、图14、图16A-图16B、图18A-图18B、图20A-图20C、图22A-图22B、图24A-图24B和图25是示出了在用户设备上实现手写识别和输入的方法的流程图,该方法包括训练手写识别模型、提供实时手写识别结果、提供用于输入和修正手写输入的装置,以及提供用于输入识别结果作为文本输入的装置。图8A-图8B、图11A-图11K、图13A-图13E、图15A-图15K、图17A-图17H、图19A-图19F、图21A-图21H、图23A-图12L中的用户界面用于示出图7、图9A-图9B、图l0A-图l0C、图12A-图12B、图14、图16A-图16B、图18A-图18B、图20A-图20C、图22A-图22B、图24A-图24B和图25中的过程。

示例性设备

现在将详细参考实施例,这些实施例的实例在附图中被示出。在下面的详细描述中阐述了许多具体细节,以便提供对本发明的彻底理解。然而,对本领域技术人员将显而易见的是本发明可在没有这些具体细节的情况下被实施。在其他情况下,没有详细地描述熟知的方法、过程、部件、电路和网络,以便不会不必要地模糊实施例的各个方面。

还应当理解,虽然术语“第一”、“第二”等可能在本文中用于描述各种元件,但是这些元件不应当被这些术语限定。这些术语只是用于将一个元件与另一个元件区分开。例如,第一接触可被命名为第二接触,并且类似地第二接触可被命名为第一接触,而不脱离本发明的范围。第一接触和第二接触均为接触,但它们不是同一个接触。

在本文中对本发明的描述中所使用的术语只是为了描述特定实施例,而并非旨在限制本发明。如本发明说明书和所附权利要求书中所用的,单数形式“一个”(“a”,“an”)和“该”旨在也涵盖复数形式,除非上下文清楚地以其他方式进行指示。还应当理解,本文中所使用的术语“和/或”是指并且涵盖相关联地列出的项目中的一个或多个项目的任何和全部可能的组合。还应当理解,术语“包括”(includes”“including”“comprises”和/或“comprising”)在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或它们的分组。

如本文中所用,根据上下文,术语“如果”可被解释为意思是“当……时”(when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定”或“如果检测到[所陈述的条件或事件]”可被解释为意指“当确定……时”或“响应于确定”或“当检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。

描述了电子设备、用于此类设备的用户界面和用于使用此类设备的相关联的过程的实施例。在一些实施例中,该设备是还包含其他功能诸如PDA和/或音乐播放器功能的便携式通信设备诸如移动电话。便携式多功能设备的示例性实施例包括但不限于来自Apple Inc.(Cupertino,California)的iPod和设备。也可使用其他便携式电子设备,诸如具有触敏表面(例如,触摸屏显示器和/或触摸板)的膝上型电脑或平板电脑。还应当理解,在一些实施例中,设备不是便携式通信设备,而是具有触敏表面(例如,触摸屏显示器和/或触摸板)的台式计算机。

在下面的论述中,描述了一种包括显示器和触敏表面的电子设备。然而,应当理解,电子设备可包括一个或多个其他物理用户界面设备,诸如物理键盘、鼠标和/或操纵杆。

该设备通常支持各种应用程序,诸如以下各项中的一者或多者:绘图应用程序、呈现应用程序、文字处理应用程序、网站创建应用程序、盘编辑应用程序、电子表格应用程序、游戏应用程序、电话应用程序、视频会议应用程序、电子邮件应用程序、即时消息应用程序、健身支持应用程序、照片管理应用程序、数字相机应用程序、数码相机应用程序、web浏览应用程序、数字音乐播放器应用程序和/或数字视频播放器应用程序。

可在设备上执行的各种应用程序可使用至少一个共用的物理用户界面设备,诸如触敏表面。触敏表面的一种或多种功能以及显示在设备上的相应信息可从一种应用程序调整和/或变化至下一种应用程序和/或在相应应用程序内调整和/或变化。这样,设备的共用物理架构(诸如触敏表面)可利用对于用户而言直观且清楚的用户界面来支持各种应用程序。

现在将注意力转向具有触敏显示器的便携式设备的实施例。图1是示出了根据一些实施例的具有触敏显示器112的便携式多功能设备100的框图。触敏显示器112有时为了方便被称为“触摸屏”,并且也可被称为或者被叫做触敏显示器系统。设备100可包括存储器102(其可包括一个或多个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU)120、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入或控制设备116、以及外部端口124。设备100可包括一个或多个光学传感器164。这些部件可通过一条或多条通信总线或信号线103进行通信。

应当理解,设备100只是便携式多功能设备的一个实例,并且设备100可具有比所示出的部件更多或更少的部件,可组合两个或更多个部件,或者可具有这些部件的不同配置或布置。图1中所示的各种部件可以硬件、软件或软硬件组合来实施,该各种部件包括一个或多个信号处理电路和/或专用集成电路。

存储器102可包括高速随机存取存储器,并且也可包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。由设备100的其他部件(诸如CPU 120和外围设备接口118)对存储器102的访问可由存储器控制器122来控制。

外围设备接口118可被用于将设备的输入外围设备和输出外围设备耦接到CPU 120和存储器102。该一个或多个处理器120运行或执行存储在存储器102中的各种软件程序和/或指令集以执行用于设备100的各种功能并处理数据。

在一些实施例中,外围设备接口118、CPU 120、以及存储器控制器122可在单个芯片诸如芯片104上实现。在其他一些实施例中,它们可在单独的芯片上实现。

RF(射频)电路108接收和发送也被叫做电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。

音频电路110、扬声器111和麦克风113提供用户与设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人耳可听的声波。音频电路110还接收由麦克风113根据声波转换来的电信号。音频电路110将电信号转换为音频数据,并将音频数据传输到外围设备接口118以用于进行处理。音频数据可由外围设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施例中,音频电路110还包括耳麦插孔(例如,图2中的212)。

I/O子系统106将设备100上的输入/输出外围设备诸如触摸屏112和其他输入控制设备116耦接到外围设备接口118。I/O子系统106可包括显示控制器156和用于其他输入或控制设备的一个或多个输入控制器160。该一个或多个输入控制器160从其他输入或控制设备116接收电信号/将电信号发送到其他输入或控制设备116。其他输入控制设备116可包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等等。在一些另选的实施例中,一个或多个输入控制器160可耦接到或不耦接到以下各项中的任一者:键盘、红外线端口、USB端口和指针设备诸如鼠标。该一个或多个按钮(例如,图2中的208)可包括用于扬声器111和/或麦克风113的音量控制的增大/减小按钮。该一个或多个按钮可包括下压按钮(例如,图2中的206)。

触敏显示器112提供设备与用户之间的输入接口和输出接口。显示控制器156从触摸屏112接收电信号和/或向触摸屏112发送电信号。触摸屏112向用户显示视觉输出。视觉输出可包括图形、文本、图标、视频及它们的任何组合(统称为“图形”)。在一些实施例中,一些视觉输出或全部视觉输出可对应于用户界面对象。

触摸屏112具有用于基于触觉和/或触觉接触从用户接受输入的触敏表面、传感器或传感器组。触摸屏112和显示控制器156(与存储器102中的任何相关联的模块和/或指令集一起)检测触摸屏112上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与显示在触摸屏112上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在一个示例性实施例中,触摸屏112与用户之间的接触点对应于用户的手指。

触摸屏112可使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施例中可使用其他显示技术。触摸屏112和显示控制器156可以利用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触摸屏112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施例中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的iPod和发现那些技术。

触摸屏112可具有超过100dpi的视频分辨率。在一些实施例中,触摸屏具有约160dpi的视频分辨率。用户可使用任何合适的对象或附加物诸如触笔、手指等等来与触摸屏112接触。在一些实施例中,将用户界面设计用于主要与基于手指的接触和手势工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施例中,设备将基于手指的粗略输入转换为精确的指针/光标位置或命令以用于执行用户所期望的动作。可经由基于手指的接触或基于触笔的接触的位置和运动来在触摸屏112上提供手写输入。在一些实施例中,触摸屏112将基于手指的输入或基于触笔的输入渲染为对当前手写输入的即时视觉反馈,并利用书写器具(例如,笔)提供在书写表面(例如,一张纸)上进行实际书写的视觉效果。

在一些实施例中,除了触摸屏之外,设备100可包括用于激活或去激活特定功能的触摸板(未示出)。在一些实施例中,触摸板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触摸板可以是与触摸屏112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。

设备100还包括用于为各种部件供电的电力系统162。电力系统162可包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率变换器或逆变器、电力状态指示器(例如,发光二极管(LED))和与便携式设备中的电力的生成、管理和分配相关联的任何其他部件。

设备100也可包括一个或多个光学传感器164。图1示出了耦接到I/O子系统106中的光学传感器控制器158的光学传感器。光学传感器164可包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器164从环境接收通过一个或多个透镜投射的光,并且将光转换为表示图像的数据。结合成像模块143(也称为相机模块),光学传感器164可捕获静态图像或视频。

设备100还可包括一个或多个接近传感器166。图1示出了耦接到外围设备接口118的接近传感器166。作为另外一种选择,接近传感器166可耦接到I/O子系统106中的输入控制器160。在一些实施例中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏112。

设备100还可包括一个或多个加速度计168。图1示出了耦接到外围设备接口118的加速度计168。作为另外一种选择,加速度计168可耦接到I/O子系统106中的输入控制器160。在一些实施例中,信息基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图被显示。设备100任选地除了一个或多个加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),以用于获取关于设备100的位置和取向(例如,纵向或横向)的信息。

在一些实施例中,存储在存储器102中的软件部件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135以及应用程序(或指令集)136。此外,在一些实施例中,存储器102存储手写输入模块157,如图1和图3中所示的。手写输入模块157包括手写识别模型,并向设备100(或设备300)的用户提供手写识别和输入功能。相对于图5-图27及其伴随描述提供了手写输入模块157的更多细节。

操作系统126(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种软件部件和/或驱动器,并且有利于各种硬件部件和软件部件之间的通信。

通信模块128有利于通过一个或多个外部端口124来与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适用于直接耦接到其他设备或者间接地通过网络(例如,互联网、无线LAN等)进行耦接。

接触/运动模块130可检测与触摸屏112(结合显示控制器156)和其他触敏设备(例如,触摸板或物理点击轮)的接触。接触/运动模块130包括多个软件部件以用于执行与接触的检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定是否存在接触的移动并在整个触敏表面上跟踪该移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已终止(例如,检测手指抬起事件或者接触中断)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动可包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),接触点的移动由一系列接触数据来表示。这些操作可被应用于单点接触(例如,一个手指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施例中,接触/运动模块130和显示控制器156检测触摸板上的接触。

接触/运动模块130可检测用户的手势输入。触敏表面上的不同手势具有不同的接触图案。因此,可通过检测具体接触图案来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测手指抬起(抬离)事件。又如,在触敏表面上检测到手指轻扫手势包括检测到手指按下事件、然后检测到一个或多个手指拖动事件、并且随后检测到手指抬起(抬离)事件。

接触/运动模块130任选地由手写输入模块157用于在触敏显示屏112上显示的手写输入界面的手写输入区域内(或与图3中显示器340上显示的手写输入区域对应的触摸板355的区域内)对准手写笔画的输入。在一些实施例中,将与初始手指按下事件、最终手指抬起事件、两者之间的任何时间期间的接触相关联的位置、运动路径和强度记录作为手写笔画。基于此类信息,可在显示器上渲染手写笔画作为对用户输入的反馈。此外,可基于由接触/运动模块130对准的手写笔画来生成一个或多个输入图像。

图形模块132包括用于在触摸屏112或其他显示器上渲染和显示图形的各种已知的软件部件,该各种已知的软件部件包括用于改变被显示的图形的强度的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,其非限制性地包括文本、网页、图标(诸如用户界面对象包括软键)、数字图像、视频、动画等等。

在一些实施例中,图形模块132存储待使用的数据表示图形。每个图形可分配有对应的代码。图形模块132从应用程序等接收指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据以输出到显示控制器156。

可作为图形模块132的部件的文本输入模块134提供用于在各种应用程序(例如,联系人137、电子邮件140、IM141、浏览器147、和需要文本输入的任何其他应用程序)中输入文本的软键盘。在一些实施例中,任选地通过文本输入模块134的用户界面例如通过键盘选择示能表示来调用手写输入模块157。在一些实施例中,还在手写输入界面中提供相同的或类似的键盘选择示能表示以调用文本输入模块134。

GPS模块135确定设备的位置并且提供该信息以在各种应用程序中使用(例如,提供给电话138以用于基于位置的拨号、提供给相机143作为图片/视频元数据,以及提供给用于提供基于位置的服务的应用程序诸如天气桌面小程序、本地黄页桌面小程序、以及地图/导航桌面小程序)。

应用程序136可包括以下模块(或指令集)或其子集或超集:联系人模块137(有时称为地址簿或联系人列表);电话模块138;视频会议模块139;电子邮件客户端模块140;即时消息(IM)模块141;健身支持模块142;用于静止图像和/或视频图像的相机模块143;图像管理模块144;浏览器模块147;日历模块148;桌面小程序模块149,该桌面小程序模块可包括以下各项中的一者或多者:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4、词典桌面小程序149-5和由用户获取的其他桌面小程序、以及用户创建的桌面小程序149-6;用于制作用户创建的桌面小程序149-6的桌面小程序创建器模块150;搜索模块151;可由视频播放器模块和音乐播放器模块构成的视频和音乐播放器模块152;记事本模块153;地图模块154;和/或在线视频模块155。

可被存储在存储器102中的其他应用程序136的实例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持JAVA的应用程序、加密、数字权益管理、声音识别和声音复制。

结合触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,联系人模块137可用于管理地址簿或联系人列表(例如,存储于存储器102或存储器370中的联系人模块137的应用程序内部状态192中),包括:向地址簿添加一个或多个姓名;从地址簿删除一个或多个姓名;将一个或多个电话号码、一个或多个电子邮件地址、一个或多个物理地址或其他信息与姓名相关联;将图像与姓名相关联;对姓名进行分类并排序;提供电话号码或电子邮件地址以通过电话138、视频会议139、电子邮件140或IM 141发起和/或促进通信;等等。

结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,电话模块138可被用于输入与电话号码对应的字符序列、访问地址簿137中的一个或多个电话号码、修改已被输入的电话号码、拨打相应的电话号码、进行通话以及当通话完成时断开连接或挂断。如上所述,无线通信可使用多个通信标准、协议和技术中的任一者。

结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、光学传感器164、光学传感器控制器158、接触模块130、图形模块132、手写输入模块157、文本输入模块134、联系人列表137和电话模块138,视频会议模块139包括用于根据用户指令发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,电子邮件客户端模块140包括用于响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具有由相机模块143拍摄的静态图像或视频图像的电子邮件。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,即时消息模块141包括用于输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或IMPS一用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息的可执行指令。在一些实施例中,所传输和/或接收的即时消息可包括图形、照片、音频文件、视频文件和/或MMS和/或增强消息服务(EMS)中所支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)两者。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134、GPS模块135、地图模块154和音乐播放器模块146,健身支持模块142包括用于以下各项的可执行指令:创建健身计划(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监测健身的传感器;选择并播放用于健身的音乐;以及显示、存储和传送健身数据。

结合触摸屏112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132、和图像管理模块144,相机模块143包括用于以下各项的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器102中;修改静态图像或视频的特性;或从存储器102删除静态图像或视频。

结合触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134和相机模块143,图像管理模块144包括用于排列、修改(例如,编辑)、或以其他方式操控、标记、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,浏览器模块147包括用于根据用户指令浏览互联网(包括搜索、链接到、接收和显示网页或其部分、以及链接到网页的附件和其他文件)的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134、电子邮件客户端模块140和浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134和浏览器模块147,桌面小程序模块149是可以由用户下载并使用的微型应用程序(例如,天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4和词典桌面小程序149-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序149-6)。在一些实施例中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施例中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134和浏览器模块147,桌面小程序创建器模块150可被用户用于创建桌面小程序(例如,将网页的用户指定的部分转到桌面小程序中)。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,搜索模块151包括用于根据用户指令来搜索匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的存储器102中的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏112上或在经由外部端口124连接的外部显示器上)的可执行指令。在一些实施例中,设备100可包括MP3播放器的功能,诸如iPod(Apple Inc.的商标)。

结合触摸屏112、显示控制器156、接触模块130、图形模块132、手写输入模块157和文本输入模块134,记事本模块153包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、手写输入模块157、文本输入模块134、GPS模块135和浏览器模块147,地图模块154可用于根据用户指令接收、显示、修改、和存储地图以及与地图相关联的数据(例如,驾车路线;关于特定位置处或附近的商店或其他感兴趣点的数据;以及其他基于位置的数据)。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108、手写输入模块157、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括指令,该指令允许用户访问、浏览、接收(例如,通过流媒体和/或下载)、回放(例如在触摸屏上或经由外部端口124所连接的外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频。在一些实施例中,即时消息模块141而不是电子邮件客户端模块140用于发送至特定在线视频的链接。

上述所识别的模块和应用程序中的每一者对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文中所述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即指令集)不必被实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可在各种实施例中被组合或以其他方式重新布置。在一些实施例中,存储器102可存储上述所识别的模块和数据结构的子集。此外,存储器102可存储上面没有描述的另外的模块和数据结构。

在一些实施例中,设备100是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触摸板来执行的设备。通过使用触摸屏和/或触摸板作为用于设备100的操作的主要输入控制设备,可减少设备100上的物理输入控制设备(诸如下压按钮、拨号盘等等)的数量。

图2示出了根据一些实施例的具有触摸屏112的便携式多功能设备100。触摸屏可在用户界面(UI)200内显示一个或多个图形。在该实施例中,以及在下文中描述的其他实施例中,用户可通过例如利用一根或多根手指202(在附图中没有按比例绘制)或者用一个或多个触笔203(在附图中没有按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施例中,当用户中断与一个或多个图形的接触时发生对一个或多个图形的选择。在一些实施例中,手势可包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备100接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些实施例中,与图形无意地接触不会选择该图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势不会选择对应的应用程序。

设备100还可包括一个或多个物理按钮,诸如“home”按钮或菜单按钮204。如前所述,菜单按钮204可被用于导航到可在设备100上执行的一组应用程序中的任何应用程序136。另选地,在一些实施例中,菜单按钮被实现为显示在触摸屏112上的GUI中的软键。

在一个实施例中,设备100包括触摸屏112、菜单按钮204、用于对设备开关机和锁定设备供电的下压按钮206、一个或多个音量调节按钮208、用户身份模块(SIM)卡槽210、耳麦插孔212、对接/充电外部端口124。下压按钮206可用于通过按下按钮并将按钮保持在按下状态中预定义的时间段来打开/关闭设备;通过按下按钮并在过去的预定义的时间段之前释放按钮来锁定设备;和/或对设备解锁或发起解锁过程。在一个另选的实施例中,设备100还可通过麦克风113来接受用于激活或去激活某些功能的言语输入。

图3是根据一些实施例的具有显示器和触敏表面的示例性多功能设备的框图。设备300不必是便携式的。在一些实施例中,设备300是膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统、电话设备或控制设备(例如,家用或工业用控制器)。设备300通常包括一个或多个处理单元(CPU)310、一个或多个网络或其他通信接口360、存储器370和用于使这些部件互连的一条或多条通信总线320。通信总线320可包括将系统部件互连并且控制系统部件之间的通信的电路(有时称为芯片组)。设备300包括具有显示器340的输入/输出(I/O)接口330,该显示器通常是触摸屏显示器。I/O接口330还可包括键盘和/或鼠标(或其他指向设备)350和触摸板355。存储器370包括高速随机存取存储器诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备;并且可包括非易失性存储器诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。任选地,存储器370可包括从一个或多个CPU 310远程定位的一个或多个存储设备。在一些实施例中,存储器370存储与便携式多功能设备100(图1)的存储器102中所存储的程序、模块和数据结构类似的程序、模块和数据结构,或它们的子集。此外,存储器370可存储在便携式多功能设备100的存储器102中不存在的附加程序、模块和数据结构。例如,设备300的存储器370可存储绘图模块380、呈现模块382、文字处理模块384、网站创建模块386、盘编辑模块388和/或电子表格模块390,而便携式多功能设备100(图1)的存储器102可不存储这些模块。

图3中的上述所识别的元件中的每一个元件可被存储在一个或多个前面提到的存储器设备中。上述所识别的模块中的每一个所识别的模块对应于用于执行上述功能的一组指令。上述所识别的模块或程序(即,指令集)不必被实现为单独的软件程序、过程或模块,并且因此这些模块的各种子集可在各种实施例中被组合或以其他方式重新布置。在一些实施例中,存储器370可存储上述识别的模块和数据结构的子集。此外,存储器370可存储上面没有描述的附加模块和数据结构。

图4示出了具有与显示器450(例如,触摸屏显示器112)分开的触敏表面451(例如,图3中的平板电脑或触摸板355)的设备(例如,图3中的设备300)上的示例性用户界面。尽管后面的许多实例将参考触摸屏显示器112(其中触敏表面和显示器合并)上的输入给定,但是在一些实施例中,该设备检测与显示器分开的触敏表面上的输入,如图4中所示。在一些实施例中,触敏表面(例如,图4中的451)具有与显示器(例如,450)上的主轴(例如,图4中的453)对应的主轴(例如,图4中的452)。根据这些实施例,设备检测在与显示器上的相应位置对应的位置(例如,在图4中,460对应于468并且462对应于470)处与触敏表面451的接触(例如,图4中的460和462)。这样,在触敏表面(例如,图4中的451)与多功能设备的显示器(图4中的450)分开时,由设备在触敏表面上检测到的用户输入(例如,接触460和462以及它们的移动)被该设备用于操控显示器上的用户界面。应当理解,类似的方法可用于本文所述的其他用户界面。

现在将注意力转到可在多功能设备(例如,设备100)上实现的手写输入方法和用户界面(“UI”)的实施例。

图5是示出了根据一些实施例的示例性手写输入模块157的框图,该示例性手写输入模块157与I/O接口模块500(例如,图3中的I/O接口330或图1中的I/O子系统106)进行交互,以在设备上提供手写输入能力。如图5中所示,手写输入模块157包括输入处理模块502、手写识别模块504和结果生成模块506。在一些实施例中,输入处理模块502包括分割模块508和归一化模块510。在一些实施例中,结果生成模块506包括字根群集模块512和一个或多个语言模型514。

在一些实施例中,输入处理模块502与I/O接口模块500(例如,图3中的I/O接口330或图1中的I/O子系统106)进行通信,以从用户接收手写输入。手写经由任何合适的装置输入,该合适的装置诸如图1中的触敏显示器系统112和/或图3中的触摸板355。手写输入包括表示用户在手写输入UI内的预先确定的手写输入区域内提供的每个笔画的数据。在一些实施例中,表示手写输入的每个笔画的数据包括诸如如下数据:开始位置和结束位置、强度分布和手写输入区域内的所保持的接触(例如,用户手指或触笔和设备的触敏表面之间的接触)的运动路径。在一些实施例中,I/O接口模块500向输入处理模块502实时传送与时间信息和空间信息相关联的手写笔画516的序列。同时,I/O接口模块还在手写输入用户界面的手写输入区域内提供手写笔画的实时渲染518作为对用户输入的视觉反馈。

在一些实施例中,在由输入处理模块502接收表示每个手写笔画的数据时,还记录与多个连续笔画相关联的时间信息和序列信息。例如,该数据任选地包括示出具有相应笔画序号的各个笔画的形状、尺寸、空间饱和度的堆栈,以及笔画沿整个手写输入的书写方向的相对空间位置等。在一些实施例中,输入处理模块502提供返回到I/O接口模块500的指令,以在设备的显示器518(例如,图3中的显示器340或图1中的触敏显示器112)上渲染所接收的笔画。在一些实施例中,所接收的笔画被渲染为动画,以提供模仿书写器具(例如,笔)在书写表面(例如,一张纸)上书写的实际过程的视觉效果。在一些实施例中,任选地允许用户指定所渲染的笔画的笔尖样式、颜色、纹理等。

在一些实施例中,输入处理模块502处理手写输入区域中当前累积的笔画以向一个或多个识别单元中分配笔画。在一些实施例中,每个识别单元对应于待由手写识别模型504识别的字符。在一些实施例中,每个识别单元对应于待由手写识别模型504识别的输出字符或字根。字根是在多个合成语标字符中发现的反复出现的成分。合成语标字符可包括根据常见布局(例如,左右布局、上下布局等)布置的两个或更多个字根。在一个实例中,单个中文字符“听”使用两个字根即左字根“口”和右字根“斤”来构造。

在一些实施例中,输入处理模块502依赖于分割模块将当前累积的手写笔画分配或划分到一个或多个识别单元中。例如,在针对手写字符“听”分割笔画时,分割模块508任选地将手写输入的左侧群集的笔画分配到一个识别单元(即,用于左字根“口”),并将手写输入的右侧群集的笔画分配到另一个识别单元(即,用于右字根“斤”)。另选地,分割模块508还可将所有笔画分配到单个识别单元(即,用于字符“听”)。

在一些实施例中,分割模块508通过几种不同的方式将当前累积的手写输入(例如,一个或多个手写笔画)分割到一组识别单元中,以创建分割栅格520。例如,假设到现在为止在手写输入区域中已累积了总共九个笔画。根据分割栅格520的第一分割链来将笔画1,2,3分组到第一识别单元522中,并且将笔画4,5,6分组到第二识别单元526中。根据分割栅格520的第二分割链,将所有笔画1-9分组到一个识别单元526中。

在一些实施例中,为每个分割链赋予分割分数,以度量特定分割链为当前手写输入的正确分割的可能性。在一些实施例中,任选地用于计算每个分割链的分割分数的因素包括:笔画的绝对尺寸和/或相对尺寸、笔画在各个方向(例如x、y和z方向)上的相对跨度和/或绝对跨度、笔画饱和水平的平均值和/或变化、与相邻笔画的绝对距离和/或相对距离、笔画的绝对位置和/或相对位置、输入笔画的顺序或次序、每个笔画的持续时间、输入每个笔画的速度(或节奏)的平均值和/或变化、每个笔画沿笔画长度的强度分布等等。在一些实施例中,任选地向这些因素中的一个或多个因素应用一种或多种函数或变换以生成分割栅格520中的不同分割链的分割分数。

在一些实施例中,在分割模块508分割从用户所接收的当前手写输入516之后,分割模块508将分割栅格520传送到归一化模块510。在一些实施例中,归一化模块510针对分割栅格520中所指定的每个识别单元(例如,识别单元522、524和526)生成输入图像(例如,输入图像528)。在一些实施例中,归一化模块向输入图像执行必要或期望的归一化(例如,拉伸、截取、下采样或上采样),从而可向手写识别模型504提供输入图像作为输入。在一些实施例中,每个输入图像528包括分配给一个相应识别单元的笔画,并对应于待由手写识别模块504识别的一个字符或字根。

在一些实施例中,由输入处理模块502生成的输入图像不包括与各个笔画相关联的任何时间信息,并且在输入图像中仅保留空间信息(例如,由输入图像中的像素的位置和密度表示的信息)。纯粹在训练书写样本的空间信息方面训练的手写识别模型能够仅基于空间信息进行手写识别。因而,手写识别模型与笔画顺序和笔画方向无关,而不穷举针对训练期间其词汇表(即,所有输出类别)中的所有字符笔画顺序和笔画方向的所有可能的排列。实际上,在一些实施例中,手写识别模块502未区分属于一个笔画与属于输入图像内的另一个笔画的像素。

如稍后将要更详细描述的(例如,相对于图25A-图27),在一些实施例中,向纯空间手写识别模型中重新引入一些时间导出的笔画分布信息,以提高识别精确性,而不影响独立于识别模型的笔画顺序和笔画方向。

在一些实施例中,由输入处理模块502针对一个识别单元生成的输入图像不与同一分割链中的任何其他识别单元的输入图像重叠。在一些实施例中,针对不同识别单元生成的输入图像可具有某些重叠。在一些实施例中,允许输入图像之间有某些重叠以用于识别以草书书写风格书写的手写输入和/或包括连接字符(例如,连接两个相邻字符的一个笔画)。

在一些实施例中,在分割之前进行某种归一化。在一些实施例中,可由同一模块或两个或更多个其他模块来执行分割模块508和归一化模块510的功能。

在一些实施例中,在向手写识别模型504提供每个识别单元的输入图像528作为输入时,手写识别模型504产生输出,该输出由识别单元是手写识别模型504的字汇或词汇表(即,可由手写识别模型504识别的所有字符和字根的列表)中的相应输出字符的不同可能性构成。如稍后将要更详细解释的,已训练了手写识别模型504以识别多种文字中的大量字符(例如,已通过Unicode标准来编码的至少三种不重叠文字)。不重叠文字的实例包括拉丁文字、中文字符、阿拉伯字母、波斯语、西里尔字母和人造文字诸如表情符号字符。在一些实施例中,手写识别模型504针对每个输入图像(即,针对每个识别单元)产生一个或多个输出字符,并基于与字符识别相关联的置信度水平来针对每个输出字符分配相应的识别分数。

在一些实施例中,手写识别模型504根据分割栅格520来生成候选栅格530,其中将分割栅格520中的分割链(例如,对应于相应的识别单元522,524,526)中的每个弧扩展到候选栅格530内的一个或多个候选弧(例如,各自对应于相应输出字符的弧532,534,536,538,540)。根据候选链下方的分割链的相应分割分数以及与字符链的中输出字符相关联的识别分数来为候选栅格530内的每个候选链打分。

在一些实施例中,在手写识别模型504从识别单元的输入图像528产生输出字符之后,将候选栅格530传送到结果生成模块506以针对当前累积的手写输入516生成一个或多个识别结果。

在一些实施例中,结果生成模块506利用字根群集模块512来将候选链中的一个或多个字根组合成复合字符。在一些实施例中,结果生成模块506使用一个或多个语言模型514来确定候选栅格530中的字符链是否是由语言模型表示的特定语音中的可能序列。在一些实施例中,结果生成模块506通过消除特定的弧或组合候选栅格530中的两个或更多个弧来生成所修正的候选栅格542。

在一些实施例中,结果生成模块506基于由字根群集模块512和语言模型514修改(例如,加强或消除)的字符序列中的输出字符的识别分数来针对仍然保留在修正候选栅格542中的每个字符序列(例如,字符序列544和546)生成经积分的识别分数。在一些实施例中,结果生成模块506基于其经积分的识别分数对所修正的候选栅格542中保留的不同字符序列进行排序。

在一些实施例中,结果生成模块506向I/O接口模块500发送排序最靠前的字符序列作为经排序的识别结果548,以向用户进行显示。在一些实施例中,I/O接口模块500在手写输入界面的候选显示区域中显示所接收的识别结果548(例如,“中国”和“帼”)。在一些实施例中,I/O接口模块为用户显示多个识别结果(例如,“中国”和“帼”),并允许用户选择识别结果以作为针对相关应用程序的文本输入来进行输入。在一些实施例中,I/O接口模块响应于其他输入或用户确认识别结果的指示来自动输入排序最靠前的识别结果(例如,“帼”)。有效地自动输入排序最靠前的结果可改善输入界面的效率并提供更好的用户体验。

在一些实施例中,结果生成模块506使用其他因素来改变候选链的经积分的识别分数。例如,在一些实施例中,结果生成模块506任选地为特定用户或多个用户维护最常使用的字符的日志。如果在最常使用的字符或字符序列的列表中找到了特定候选字符或字符序列,则结果生成模块506任选地提高该特定候选字符或字符序列的经积分的识别分数。

在一些实施例中,手写输入模块157针对向用户显示的识别结果提供实时更新。例如,在一些实施例中,对于用户输入的每个附加笔画,输入处理模块502任选地重新分割当前累积的手写输入,并修正向手写识别模型504提供的分割栅格和输入图像。继而,手写识别模型504任选地修正向结果生成模块506提供的候选栅格。因而,结果生成模块506任选地更新向用户呈现的识别结果。如在本说明书中所使用的,实时手写识别是指立即或在短时间内(例如,在几十毫秒到几秒内)向用户呈现手写识别结果的手写识别。实时手写识别与离线识别(例如,像在离线光学字符识别(OCR)应用中那样)的不同之处在于,立刻发起识别并与接收手写输入基本上同时地执行识别,而不是在保存所记录的图像以供以后检索的当前用户会话之后的某个时间处执行识别。此外,执行离线字符识别不需要关于各个笔画和笔画顺序的任何时间信息,并且因此不需要利用此类信息来执行分割。外观相似的候选字符之间的进一步区分也未利用此类时间信息。

在一些实施例中,将手写识别模型504实现为卷积神经网络(CNN)。图6示出了针对多文字训练语料库604训练的示例性卷积神经网络602,该多文字训练语料库604包含针对多个不重叠文字中的字符的书写样本。

如图6中所示,卷积神经网络602包括输入平面606和输出平面608。在输入平面606和输出平面608之间的是多个卷积层610(例如,包括第一卷积层610a、零个或更多个中间卷积层(未示出)和最后卷积层610n)。每个卷积层610之后都是相应的子采样层612(例如,第一子采样层612a、零个或更多个中间子采样层(未示出)和最后子采样层612n)。在卷积层和子采样层之后并且恰好在输出平面608之前的是隐藏层614。隐藏层614是输出平面608之前的最后一层。在一些实施例中,内核层616(例如,包括第一内核层616a、零个或更多个中间内核层(未示出)和最后内核层612n)在每个卷积层610之前被插入,以提高计算效率。

如图6中所示,输入平面606接收手写识别单元(例如,手写字符或字根)的输入图像614,并且输出平面608输出指示该识别单元属于相应输出类别的可能性的一组概率(例如,神经网络被配置为待识别的输出字符集中的特定字符)。神经网络的输出类别作为整体(或神经网络的输出字符集)也被称为手写识别模型的字汇或词汇表。可训练本文所述的卷积神经网络以具有几万个字符的字汇。

在通过神经网络的不同层来处理输入图像614时,由卷积层610提取输入图像614中嵌入的不同空间特征。每个卷积层610也称为一组特征图并充当用于在输入图像614中选出特定特征部的过滤器,以用于在与不同字符对应的图像之间进行区分。子采样层612确保从输入图像614捕获越来越大尺寸的特征部。在一些实施例中,使用最大池化技术来实现子采样层612。最大池化层在更大本地区域上方创建位置不变性,并对之前卷积层的输出图像沿每个方向进行倍数为Kx和Ky的下采样,Kx和Ky是最大池化矩形的尺寸。最大池化通过选择改善归一化性能的优质不变特征来实现更快的收敛速率。在一些实施例中,使用其他方法来实现子采样。

在一些实施例中,在最后一组卷积层610n和子采样层612n之后并且在输出平面608之前的是完全连接层即隐藏层614。完全连接隐藏层614是多层感知器,其完全连接最后子采样层612n中的节点和输出平面608中的节点。隐藏层614在逻辑回归到达输出层608中的输出字符中的一个输出字符之前和过程中获取从该层接收的输出图像。

在训练卷积神经网络602期间,调谐卷积层610中的特征部以及与该特征部相关联的相应权重以及与隐藏层614中的参数相关联的权重,使得对于训练语料库604中的具有已知输出类别的书写样本该分类误差被最小化。一旦训练了卷积神经网络602并且将为网络中的不同层建立参数和相关联的权重的最优参数集,则可将卷积神经网络602用于识别不是训练语料库604的一部分的新的书写样本618,诸如基于从用户所接收的实时手写输入而生成的输入图像。

如本文中所述,使用多文字训练语料库来训练手写输入界面的卷积神经网络,以实现多文字或混合文字手写识别。在一些实施例中,训练卷积神经网络以识别3万个字符到超过6万个字符的大字汇(例如,通过Unicode标准来编码的所有字符)。大部分现有手写识别系统基于取决于笔画顺序的隐马尔可夫方法(HMM)。此外,大部分现有的手写识别模型是特定于语言的,并且包括几十个字符(例如,英语字母表、希腊语字母表、全部十个数字等的字符)直到几千个字符(例如,一组最常用的中文字符)的小字汇。这样一来,本文所述的通用识别器可处理比大部分现有系统多几个数量级的字符。

一些常规手写系统可包括几种逐个训练的手写识别模型,每个手写识别模型针对特定语言或小字符集来进行定制。通过不同的识别模型来传播书写样本,直到可进行分类。例如,可向一系列相连的特定于语言的字符识别模型或特定于文字的字符识别模型提供手写样本,如果不能由第一识别模型对手写样本最终进行分类,则将其提供到下一个识别模型,其尝试在其自身的字汇内对手写样本进行分类。用于分类的方式是耗时的,并且存储器需求会随着需要采用的每个附加识别模型而迅速增加。

其他现有模型需要用户指定优选语言,并使用所选择的手写识别模型来对当前输入进行分类。此类具体实施不仅使用起来麻烦且消耗很大的内存,而且不能用于识别混合语言输入。要求用户在输入混合语言或混合文字输入中途切换语言偏好是不切实际的。

本文所述的多文字识别器或通用识别器解决了常规识别系统的以上问题中的至少一些问题。图7是用于使用大的多文字训练语料库来训练手写识别模块(例如卷积神经网络)的示例性过程700的流程图,使得可接下来将手写识别模块用于为用户的手写输入提供实时多语言手写识别和多文字手写识别。

在一些实施例中,在服务器设备上执行手写识别模型的训练,并且然后向用户设备提供所训练的手写识别模型。手写识别模型任选地在用户设备上本地执行实时手写识别,而无需来自服务器的其他辅助。在一些实施例中,训练和识别两者在同一设备上提供。例如,服务器设备可从用户设备接收用户的手写输入、执行手写识别、并向用户设备实时发送识别结果。

在示例性过程700中,在具有存储器和一个或多个处理器的设备处,该设备基于多文字训练语料库的空间导出特征(例如,与笔画顺序无关的特征)来训练(702)多文字手写识别模型。在一些实施例中,多文字训练语料库的空间导出特征是(704)与笔画顺序无关的并且是与笔画方向无关的。在一些实施例中,多文字手写识别模型的训练(706)独立于手写样本中的与相应笔画相关联的时间信息。具体地,将手写样本的图像归一化成预先确定的大小,并且图像不包括关于输入各个笔画以形成图像的顺序的任何信息。此外,图像还不包括关于输入各个笔画以形成图像的方向的任何信息。实际上,在训练期间,从手写图像提取特征而不考虑如何由各个笔画来暂时形成图像。因此,在识别期间,不需要与各个笔画相关的任何时间信息。因而,尽管手写输入中有延迟、无序的笔画,以及任意的笔画方向,但识别稳健地提供了一致的识别结果。

在一些实施例中,多文字训练语料库包括与至少三个不重叠文字的字符的对应手写样本。如图6中所示,多文字训练语料库包括从许多用户收集的手写样本。每个手写样本对应于手写识别模型中表示的相应文字的一个字符。为了充分训练手写识别模型,训练语料库包括针对手写识别模型中表示的文字的每个字符的大量书写样本。

在一些实施例中,至少三个不重叠文字包括(708)中文字符、表情符号字符和拉丁文字。在一些实施例中,多文字手写识别模型具有(710)至少三万个输出类别,该三万个输出类别表示跨越至少三种不重叠文字的三万个字符。

在一些实施例中,多文字训练语料库包括用于在Unicode标准中进行编码的所有中文字符的每个字符的相应书写样本(例如,所有CJK(中日韩)统一表意文字的全部或大部分表意文字)。Unicode标准定义了总共大约七万四千个CJK统一表意文字。CJK统一表意文字的基本块(4E00-9FFF)包括20,941个用于汉语以及日语、韩语和越南语的基本中文字符。在一些实施例中,多文字训练语料库包括用于CJK统一表意文字的基本块中的所有字符的书写样本。在一些实施例中,多文字训练语料库进一步包括用于CJK字根的书写样本,该CJK字根可用于在结构方面编写一个或多个复合中文字符。在一些实施例中,多文字训练语料库进一步包括用于较少使用的中文字符的书写样本,诸如在CJK统一表意文字扩展集中的一个或多个表意文字中进行编码的中文字符。

在一些实施例中,多文字训练语料库进一步包括用于通过Unicode标准进行编码的拉丁文字中的所有字符中的每个字符的相应书写样本。基本拉丁文字中的字符包括大写拉丁字母和小写拉丁字母,以及在标准拉丁文字键盘上常用的各种基本符号和数字。在一些实施例中,多文字训练语料库进一步包括扩展拉丁文字(例如,基本拉丁字母的各种重音形式)中的字符。

在一些实施例中,多文字训练语料库包括与不和任何自然人类语言相关联的人造文字的每个字符对应的书写样本。例如,在一些实施例中,在表情符号文字中任选地定义一组表情符号字符,并与每个表情符号字符对应的书写样本被包括在多文字训练语料库中。例如,手绘的心形符号是用于训练语料库中的表情符号字符的手写样本。类似地,手绘笑脸(例如,上弯弧上方的两个点)是用于训练语料库中的表情符号字符的手写样本。其他表情符号字符包括显示不同情绪(例如,愉快、难过、生气、难堪、惊讶、大笑、哭泣、沮丧等)、不同对象和字符(例如,猫、狗、兔子、心、水果、眼睛、嘴唇、礼品、花、蜡烛、月亮、星星等)以及不同动作(例如,握手、亲吻、跑步、跳舞、跳跃、睡觉、吃饭、约会、恋爱、喜欢、投票等)的图标类别。在一些实施例中,与表情符号字符对应的手写样本中的笔画是形成对应表情符号字符的实际线条的简化线条和/或程式化线条。在一些实施例中,每个设备或应用程序可针对同一个表情符号字符来使用不同的设计。例如,即使从两个用户所接收的手写输入基本相同,但是向女性用户呈现的笑脸表情符号字符也可与向男性用户呈现的笑脸表情符号字符不同。

在一些实施例中,多文字训练语料库还包括用于其他文字中的字符的书写样本,该其他文字诸如希腊文字(例如,包括希腊字母和符号)、西里尔文字、希伯来文字和根据Unicode标准进行编码的一种或多种其他文字。在一些实施例中,被包括在多文字训练语料库中的至少三种不重叠的文字包括中文字符、表情符号字符和拉丁文字中的字符。中文字符、表情符号字符和拉丁文字中的字符是天然不重叠的文字。许多其他文字可能对于至少一些字符而言是彼此重叠的。例如,可能会在许多其他文字(例如希腊和西里尔文)中发现拉丁文字中的一些字符(例如,A、Z)。在一些实施例中,多文字训练语料库包括中文字符、阿拉伯文字和拉丁文字。在一些实施例中,多文字训练语料库包括重叠和/或不重叠文字的其他组合。在一些实施例中,多文字训练语料库包括用于由Unicode标准进行编码的所有字符的书写样本。

如图7中所示,在一些实施例中,为了训练多文字手写识别模型,该设备向具有单一输入平面和单一输出平面的单个卷积神经网络提供(712)多文字训练语料库的手写样本。该设备使用卷积神经网络来确定(714)手写样本的空间导出特征(例如,与笔画顺序无关的特征)以及针对空间导出特征的相应权重,以用于区分多文字训练语料库中表示的至少三种不重叠文字的字符。多文字手写识别模型与常规多文字手写识别模型的不同之处在于,使用多文字训练语料库中的所有样本来训练具有单一输入平面和单一输出平面的单个手写识别模型。训练单个卷积神经网络以区分多文字训练语料库中表示的所有字符,而不依赖于各自处理训练语料库的小子集的各个子网络(例如,子网络各自针对特定文字的字符或识别特定语言中使用的字符进行训练)。此外,训练单个卷积神经网络以区分跨越多种不重叠文字的大量字符而不是若干个重叠文字的字符,诸如拉丁文字和希腊文字(例如,具有重叠的字母A、B、E、Z等)。

在一些实施例中,该设备使用已针对多文字训练语料库的空间导出特征被训练的多文字手写识别模型来为用户的手写输入提供(716)实时手写识别。在一些实施例中,为用户的手写输入提供实时手写识别包括在用户继续提供手写输入的添加和修正时,为用户的手写输入连续修正识别输出。在一些实施例中,为用户的手写输入提供实时手写识别进一步包括(718)向用户设备提供多文字手写识别模型,其中用户设备从用户接收手写输入,并在基于多文字手写识别模型对手写输入本地执行手写识别。

在一些实施例中,该设备向在其相应输入语言中没有现有重叠的多个设备提供多文字手写识别模型,并且在多个设备中的每个设备上使用多文字手写识别模型,以用于对与每个用户设备相关联的不同语言进行手写识别。例如,在已训练多文字手写识别模型以识别许多不同文字和语言中的字符时,可在全世界使用同一手写识别模型来为那些输入语言中的任一种输入语言提供手写输入。仅希望使用英语和希伯来语进行输入的用户的第一设备可使用与仅希望使用汉语和表情符号字符进行输入的另一用户的第二设备相同的手写识别模型来提供手写输入功能。并不需要第一设备的用户独立安装英语手写输入键盘(例如,利用特定于英语的手写识别模型来实现),以及独立的希伯来手写输入键盘(例如,利用特定于希伯来语的手写识别模型来实现),而是可在第一设备上一次性安装相同的通用多文字手写识别模型,并用于为英语、希伯来语提供手写输入功能并且提供使用两种语言的混合输入。此外,并不需要第二用户安装汉语手写输入键盘(例如,利用特定于汉语的手写识别模型来实现),以及独立的表情符号手写输入键盘(例如,利用特定于表情符号的手写识别模型来实现),而是可在第二设备上一次性安装相同的通用多文字手写识别模型,并用于为汉语、表情符号提供手写输入功能并且提供使用两种文字的混合输入。使用相同的多文字手写模型处理跨越多种文字的大字汇(例如,使用接近一百种不同的文字进行编码的大部分或所有字符)改善了识别器的实用性,而在设备供应商和用户方面没有显著负担。

使用大的多文字训练语料库来训练多文字手写识别模型与常规的基于HMM的手写识别系统不同,并且不依赖于与字符的各个笔画相关联的时间信息。此外,针对多文字识别系统的资源和存储器需求不会随着由多文字识别系统覆盖的符号和语言增加而线性增加。例如,在常规手写系统中,增加语言的数量意味着添加另一个独立训练的模型,并且存储器需求将至少会加倍以适应手写识别系统的增强的能力。相反,当通过多文字训练语料库来训练多文字模型时,提高语言覆盖率需要利用附加手写样本来重新训练手写识别模型,并且增加输出平面的尺寸,但增加的量非常适度。假设多文字训练语料库包括与n种不同语言对应的手写样本,并且该多文字手写识别模型占据大小为m的内存,当将语言覆盖率增大到N种语言(N>n)时,该设备基于第二多文字训练语料库的空间导出特征来重新训练多文字手写识别模型,该第二多文字训练语料库包括与N种不同语言对应的第二手写样本。M/m的变化在1-2范围内保持基本不变,其中N/n的变化从1到100。一旦重新训练了多文字手写识别模型,该设备便可使用重新训练的多文字手写识别模型来为用户的手写输入提供实时手写识别。

图8A-图8B示出了用于在便携式用户设备(例如,设备100)上提供实时多文字手写识别和输入的示例性用户界面。在图8A-图8B中,在用户设备的触敏显示屏(例如,触摸屏112)上显示手写输入界面802。手写输入界面802包括手写输入区域804、候选显示区域806和文本输入区域808。在一些实施例中,手写输入界面802进一步包括多个控制元件,其中可调用每个控制元件以使得手写输入界面执行预先确定的功能。如图8A中所示,删除按钮、空格按钮(carriage return或Enter button)、回车按钮、键盘切换按钮被包括在手写输入界面中。其他控制元件也是可能的,并可任选地被提供在手写输入界面中,以适应利用手写输入界面802的每种不同应用程序。手写输入界面802的不同部件的布局仅仅是示例性的,并且对于不同设备和不同应用程序可能变化。

在一些实施例中,手写输入区域804是用于从用户接收手写输入的触敏区域。手写输入区域804内的触摸屏上的持续接触及其相关联的运动路径作为手写笔画被注册。在一些实施例中,在所保持的接触追踪的相同位置处,在手写输入区域804内,在视觉上渲染由该设备注册的手写笔画。如图8A中所示,用户在手写输入区域804中提供了若干个手写笔画,包括一些手写中文字符(例如,“我很”)、一些手写英语字母(例如,“Happy”)和手绘的表情符号字符(例如,笑脸)。手写字符分布于手写输入区域804中的多个行(例如两行)中。

在一些实施例中,候选显示区域806针对手写输入区域804中的当前累积的手写输入来显示一个或多个识别结果(例如,810和812)。通常,在候选显示区域中的第一位置中显示排序最靠前的识别结果(例如,810)。如图8A中所示,由于本文所述的手写识别模型能够识别包括中文字符、拉丁文字和表情符号字符的多种不重叠文字的字符,因此由识别模型提供的识别结果(例如,810)正确地包括了由手写输入表示的中文字符、英语字母和表情符号字符。不需要用户在书写输入的中途停止,以选择切换识别语言。

在一些实施例中,文本输入区域808是显示向采用手写输入界面的相应应用程序提供的文本输入的区域。如图8A中所示,文本输入区域808被记事本应用程序使用,并且当前在文本输入区域808内示出的文本(例如,“America很美丽”)是已向记事本应用程序提供的文本输入。在一些实施例中,光标813指示文本输入区域808中的当前文本输入位置。

在一些实施例中,用户可例如通过明确的选择输入(例如,所显示的识别结果中的一个识别结果上的轻击手势)或暗示的确认输入(例如,“回车”按钮上的轻击手势或手写输入区域中的双击手势)来选择候选显示区域806中所显示的特定识别结果。如图8B中所示,用户使用轻击手势(如图8A中的识别结果810上方的接触814所示出的)明确选择了排序最靠前的识别结果810。响应于该选择输入,在由文本输入区域808中的光标813指示的插入点处插入识别结果810的文本。如图8B中所示,一旦向文本输入区域808中输入了所选择的识别结果810的文本,手写输入区域804和候选显示区域806便均被清除。手写输入区域804现在准备好接受新的手写输入,并且候选显示区域806现在能够用于针对新的手写输入显示识别结果。在一些实施例中,暗示的确认输入使得排序最靠前的识别结果被输入到文本输入区域808中,而无需用户停止并选择排序最靠前的识别结果。设计良好的暗示确认输入提高了文本输入速度并减小了在文本编写期间给用户带来的认知负担。

在一些实施例中(在图8A-图8B中未示出),在文本输入区域808中任选地暂时显示当前手写输入的排序最靠前的识别结果。例如,通过试验性文本输入周围的试验性输入框来将文本输入区域808中显示的试验性文本输入与文本输入区域中的其他文本输入在视觉上区分开。试验性输入框中所示的文本并未被提交或提供给相关联的应用程序(例如,记事本应用程序),并且在例如响应于用户修正当前手写输入来改变排序最靠前的识别结果时,手写输入模块被自动更新。

图9A-图9B是用于在用户设备上提供多文字手写识别的示例性过程900的流程图。在一些实施例中,如图900中所示,用户设备接收(902)多文字手写识别模型,该多文字识别模型已针对多文字训练语料库的空间导出特征(例如,与笔画顺序和笔画方向无关的特征)被训练,该多文字训练语料库包括与至少三种不重叠文字的字符对应的手写样本。在一些实施例中,多文字手写识别模型是(906)具有单一输入平面和单一输出平面的单个卷积神经网络,并且包括空间导出特征和针对空间导出特征的相应权重,以用于区分多文字训练语料库中表示的至少三种不重叠文字的字符。在一些实施例中,多文字手写识别模型被(908)配置为基于手写输入中识别的一个或多个识别单元的相应输入图像来识别字符,并且用于识别的相应的空间导出特征独立于相应笔画顺序、笔画方向和手写输入中的笔画的连续性。

在一些实施例中,用户设备从用户接收(908)手写输入,该手写输入包括在耦接到用户设备的触敏表面上提供的一个或多个手写笔画。例如,手写输入包括关于手指或触笔与耦接到用户设备的触敏表面之间的接触的位置和移动的相应数据。响应于接收到手写输入,用户设备基于已针对多文字训练语料库的空间导出特征被训练的多文字手写识别模型(912)来向用户实时提供(910)一个或多个手写识别结果。

在一些实施例中,在向用户提供实时手写识别结果时,用户设备将用户的手写输入分割(914)成一个或多个识别单元,每个识别单元包括由用户提供的手写笔画中的一个或多个手写笔画。在一些实施例中,用户设备根据通过用户手指或触笔和用户设备的触敏表面之间的接触形成的各个笔画的形状、位置和尺寸来分割用户的手写输入。在一些实施例中,分割手写输入还考虑通过用户手指或触笔和用户设备的触敏表面之间的接触形成的各个笔画的相对顺序和相对位置。在一些实施例中,用户的手写输入是草书书写风格的,并且手写输入中的每个连续笔画都可对应于印刷形式的识别字符中的多个笔画。在一些实施例中,用户的手写输入可包括跨越印刷形式的多个识别字符的连续笔画。在一些实施例中,分割该手写输入生成一个或多个输入图像,每个输入图像各自对应于相应的识别单元。在一些实施例中,输入图像中的一些输入图像任选地包括一些重叠像素。在一些实施例中,输入图像不包括任何重叠像素。在一些实施例中,用户设备生成分割栅格,分割栅格的每个分割链表示分割当前手写输入的相应方式。在一些实施例中,分割链中的每个弧对应于当前手写输入中的相应一组笔画。

如图900中所示,用户设备提供(914)一个或多个识别单元中的每个识别单元的相应图像作为多文字识别模型的输入。对于一个或多个识别单元中的至少一识别单元个而言,用户设备从多文字手写识别模型获取(916)来自第一文字的至少第一输出字符以及来自与第一文字不同的第二文字的至少第二输出。例如,相同的输入图像可能使得多文字识别模型输出来自不同文字的两个或更多个外观相似的输出字符作为针对同一输入图像的识别结果。例如,针对拉丁文字中字母“a”与希腊文字中字符“α”的手写输入通常相似。此外,针对拉丁文字中字母“J”与中文字符“丁”的手写输入通常相似。类似地,针对表情符号字符的手写输入可能类似于针对CJK字根“西”的手写输入。在一些实施例中,多文字手写识别模型通常产生可能对应于用户手写输入的多个候选识别结果,因为即使对于人类读者而言,手写输入的视觉外观也难以解读。在一些实施例中,第一文字为CJK基本字符块,并且第二文字是如由Unicode标准进行编码的拉丁文字。在一些实施例中,第一文字是CJK基本字符块,并且第二文字是一组表情符号字符。在一些实施例中,第一文字是拉丁文字,并且第二文字是表情符号字符。

在一些实施例中,用户设备在用户设备的手写输入界面的候选显示区域中显示(918)第一输出字符和第二输出字符两者。在一些实施例中,基于第一文字和第二文字中的哪一者是用于当前安装在用户设备上的软键盘中的相应文字,用户设备选择性地显示(920)第一输出字符和第二输出字符中的一者。例如,假设手写识别模型已识别了中文字符“入”和希腊字母“λ”作为针对当前手写输入的输出字符,用户设备确定用户是否在用户设备上安装了汉语软键盘(例如,使用拼音输入法的键盘)或希腊语输入键盘。如果用户设备确定仅安装了汉语软键盘,则用户设备任选地仅向用户显示中文字符“入”而不是希腊字母“λ”作为识别结果。

在一些实施例中,用户设备提供实时手写识别和输入。在一些实施例中,在用户对向用户显示的识别结果作出明确选择或暗示选择之前,用户设备响应于用户继续添加或修正手写输入而连续修正(922)用于用户手写输入的一个或多个识别结果。在一些实施例中,响应于一个或多个识别结果的每次修正,用户在手写输入用户界面的候选显示区域中向用户显示(924)相应的修正的一个或多个识别结果。

在一些实施例中,训练(926)多文字手写识别模型以识别至少三种不重叠文字的所有字符,该至少三种不重叠文字包括中文字符、表情符号字符和根据Unicode标准进行编码的拉丁文字。在一些实施例中,该至少三种不重叠文字包括中文字符、阿拉伯文字和拉丁文字。在一些实施例中,多文字手写识别模型具有(928)至少三万个输出类别,该至少三万个输出类别表示跨越至少三种不重叠文字的至少三十个字符。

在一些实施例中,用户设备允许用户输入多文字手写输入,诸如包括使用多于一种文字的字符的短语。例如,用户可连续书写并接收包括使用多于一种文字的字符的手写识别结果,而无需在书写中途停止,以手动切换识别语言。例如,用户可在用户设备的手写输入区域中书写多文字语句“Hello means你好in Chinese。”,而无需在书写中文字符“你好”之前将输入语言从英语切换到汉语或在书写英语单词“in Chinese”时将输入语言从汉语切换回到英语。

如本文所述,多文字手写识别模型用于为用户的输入提供实时手写识别。在一些实施例中,实时手写识别用于在用户的设备上提供实时多文字手写输入功能。图10A-图10C是用于在用户设备上提供实时手写识别和输入的示例性过程1000的流程图。具体地,实时手写识别在字符层次、短语层次和语句层次上与笔画顺序无关。

在一些实施例中,字符层级上与笔画顺序无关的手写识别需要手写识别模型为特定手写字符提供相同的识别结果,而不考虑已由用户提供的特定字符的各个笔画的顺序。例如,中文字符的各个笔画通常是以特定顺序书写的。尽管母语为汉语的人通常在学校被训练成以特定顺序书写每个中文字符,但许多用户后来会采用脱离常规笔画顺序的个性化风格和笔画顺序。此外,草书书写风格是高度个性化的,并且中文字符的印刷形式的多个笔画通常被合并成扭转且弯曲的单个样式化笔画,并且有时甚至连接到下一个字符。基于没有与各个笔画相关联的时间信息的书写样本的图像来训练与笔画顺序无关的识别模型。因此,识别独立于笔画顺序信息。例如,对于中文字符“十”,不论用户首先书写水平笔画还是首先书写垂直笔画,手写识别模型都将给出相同的识别结果“十”。

如图10A中所示,在过程1000中,用户设备从用户接收(1002)多个手写笔画,该多个手写笔画对应于手写字符。例如,针对字符“十”的手写输入通常包括与基本垂直的手写笔画交叉的基本水平的手写笔画。

在一些实施例中,用户设备基于多个手写笔画来生成(1004)输入图像。在一些实施例中,用户设备向手写识别模型提供(1006)输入图像以对手写字符执行实时手写识别,其中手写识别模型提供与笔画顺序无关的手写识别。然后,当接收到多个手写笔画时,用户设备实时显示(1008)相同的第一输出字符(例如,印刷形式的字符“十”),而不考虑已从用户接收到的多个手写笔画(例如,水平笔画和垂直笔画)的相应顺序。

尽管一些常规手写识别系统通过在训练手写识别系统时特别包括此类变化来准许少量字符中的微小的笔画顺序变化。此类常规手写识别系统不能缩放以适应大量复杂字符诸如中文字符的任意笔画顺序变化,因为即使是中等复杂性的字符也已导致笔画顺序的显著变化。此外,通过仅仅包括针对特定字符的可接受笔画顺序的更多排列组合,常规识别系统仍然不能处理将多个笔画组合成单个笔画(例如,在以超级草书方式书写时)或将一个笔画分成多个子笔画(例如,在利用对输入笔画的超级粗糙采样来捕获字符时)的手写输入。因此,本文所述的针对空间导出特征而训练的多文字手写系统相对于常规识别系统具有优势。

在一些实施例中,独立于与每个手写字符内各个笔画相关联的时间信息执行与笔画顺序无关的手写识别。在一些实施例中,结合笔画分布信息执行与笔画顺序无关的手写识别,该笔画分布信息在将各个笔画合并成平面输入图像之前考虑了该各个笔画的空间分布。稍后在说明书中提供了关于如何使用时间导出的笔画分布信息来加强上述与笔画顺序无关的手写识别的更多细节(例如,相对于图25A-图27)。相对于图25A-图27所述的技术不会破坏手写识别系统的笔画顺序独立性。

在一些实施例中,手写识别模型提供(1010)与笔画方向无关的手写识别。在一些实施例中,与笔画方向无关的识别需要用户设备响应于接收到多个手写输入来显示相同的第一输出字符,而不考虑已由用户提供的多个手写笔画中的每个手写笔画的相应笔画方向。例如,如果用户在用户设备的手写输入区域中书写中文字符“十”,则手写识别模型将输出相同的识别结果,而不论用户是从左到右还是从右到左书写水平笔画。类似地,不论用户以从上到下的方向还是从下到上的方向书写垂直笔画,手写识别模型都将输出相同的识别结果。在另一个实例中,许多中文字符在结构上由两个或更多个字根构成。一些中文字符各自包括左字根和右字根,并且人们通常先书写左字根,然后书写右字根。在一些实施例中,不论用户首先书写右字根还是首先书写左字根,只要在用户完成手写字符时,所得的手写输入显示左字根在右字根左侧,手写识别模型都将提供相同的识别结果。类似地,一些中文字符各自包括上字根和下字根,并且人们通常先书写上字根,然后书写下字根。在一些实施例中,不论用户首先书写上字根还是首先书写下字根,只要所得的手写输入显示上字根在下字根上方,手写识别模型都将提供相同的识别结果。换句话讲,手写识别模型不依赖于用户提供手写字符的各个笔画的方向来确定手写字符的身份。

在一些实施例中,不考虑已由用户提供识别单元所利用的子笔画的数量,手写识别模型都基于识别单元的图像来提供手写识别。换句话讲,在一些实施例中,手写识别模型提供(1014)与笔画计数无关的手写识别。在一些实施例中,用户设备响应于接收到多个手写笔画来显示相同的第一输出字符,而不考虑使用多少手写笔画来形成输入图像中的连续笔画。例如,如果用户在手写输入区域中书写中文字符“十”,则不论用户是提供了四个笔画(例如,两个短水平笔画和两个短垂直笔画以构成十字形字符)还是两个笔画(例如L形笔画和7形笔画,或水平笔画和垂直笔画),或者任何其他数量的笔画(例如,几百个极短的笔画或点)以构成字符“十”的形状,手写识别模型都将输出相同的识别结果。

在一些实施例中,手写识别模型不仅能够识别相同的字符而不考虑书写每单个字符的顺序、方向和笔画计数,手写识别模型还能够识别多个字符而不考虑已由用户提供的多个字符的笔画的时间顺序。

在一些实施例中,用户设备不仅接收第一多个手写笔画,而且从用户接收(1016)第二多个手写笔画,其中第二多个手写笔画对应于第二手写字符。在一些实施例中,用户设备基于第二多个手写笔画来生成(1018)第二输入图像。在一些实施例中,用户设备向手写识别模型提供(1020)第二输入图像以对第二手写字符执行实时识别。在一些实施例中,当接收到第二多个手写笔画时,用户设备实时显示(1022)与第二多个手写笔画对应的第二输出字符。在一些实施例中,在空间序列中同时显示第二输出字符和第一输出字符,与已由用户提供第一多个手写笔画和第二多个手写笔画的相应顺序无关。例如,如果用户在用户设备的手写输入区域中书写两个中文字符(例如,“十”和“八”),则不论用户首先书写字符“十”的笔画还是首先书写字符“八”的笔画,只要手写输入区域中当前累积的手写输入显示的是字符“十”的笔画在字符“八”的笔画左方,用户设备便将显示识别结果“十八”。实际上,如果用户在书写字符“十”的一些笔画(例如,垂直笔画)之前已书写字符“八”的一些笔画(例如,左弯笔画),则只要手写输入区域中手写输入的所得图像显示字符“十”的所有笔画都在字符“八”的所有笔画左侧,用户设备便将以两个手写字符的空间顺序来显示识别结果“十八”。

换句话讲,如图10B中所示,在一些实施例中,第一输出字符和第二输出字符的空间顺序对应于(1024)第一多个手写笔画和第二多个笔画沿用户设备的手写输入界面的默认书写方向(例如,从左到右)的空间分布。在一些实施例中,第二多个手写笔画在第一多个手写笔画之后被暂时接收(1026),并且沿用户设备的手写输入界面的默认书写方向(例如从左到右),该第二输出字符在空间序列中在第一输出字符之前。

在一些实施例中,手写识别模型在句子到句子层级方面提供与笔画顺序无关的识别。例如,即使手写字符“十”在第一手写句子中且手写字符“八”在第二手写句子中,并且在手写输入区域中该两个手写字符间隔一个或多个其他手写字符和/或字词,但是手写识别模型仍然将提供示出空间序列中的两个字符的识别结果“十八”。不考虑已由用户提供的两个字符的笔画的时间顺序,当用户完成手写输入时,识别结果和两个识别字符的空间顺序保持相同,前提是两个字符的识别单元是按照序列“十八”在空间上布置的。在一些实施例中,由用户提供第一手写字符(例如“十”)作为第一手写句子(例如,“十is a number.”)的一部分,并且由用户提供第二手写字符(例如,“八”)作为第二手写句子(例如,“八is another number.”)的一部分,并且在用户设备的手写输入区域中同时显示第一手写句子和第二手写句子。在一些实施例中,当用户确认识别结果(例如,“十is a number.八is another number.”)是正确的识别结果时,两个句子将被输入到用户设备的文本输入区域中,并且手写输入区域将被清除以用于用户输入另一个手写输入。

在一些实施例中,由于手写识别模型不仅在字符层级上而且在短语层级和句子层级上都独立于笔画顺序,因此用户能可在已书写后续字符之后对先前未完成的字符作出校正。例如,如果用户在手写输入区域中继续书写一个或多个后续字符之前忘记书写某个字符的特定笔画,则用户仍然可在特定字符中的正确的位置处稍晚书写丢失的笔画,以接收到正确的识别结果。

在常规的取决于笔画顺序的识别系统(例如,基于HMM的识别系统)中,一旦已书写字符,它其便被提交,并且用户不再可对其作出任何改变。如果用户希望作出任何改变,则用户必须删除该字符和所有后续字符,以全部重新开始。在一些常规识别系统中,需要用户在短的预先确定的时间窗口内完成手写字符,并且在预先确定的时间窗口外输入的任何笔画都不会被包括在同一识别单元中,因为在该时间窗口期间提供了其他笔画。此类常规系统难以使用并且给用户带来了许多挫折感。独立于笔画顺序的系统不会有这些缺点,并且用户可按照用户看来适合的任意顺序并且在任何时间段完成该字符。用户还可在手写输入界面中相继书写一个或多个字符之后对较早书写的字符进行校正(例如,添加一个或多个笔画)。在一些实施例中,用户还可独立删除(例如,使用稍后相对于图21A-图22B中所述的方法)更早书写的字符,并在手写输入界面中的相同位置进行重写。

如图10B-图10C中所示,第二多个手写笔画在空间上沿用户设备的手写输入界面的默认书写方向在第一多个手写笔画之后(1028),并且第二输出字符沿手写输入界面的候选显示区域中的默认书写方向在空间序列中在第一输出字符之后。用户设备从用户接收(1030)第三手写笔画,以修正第一手写字符(即,由第一多个手写笔画形成的手写字符),第三手写笔画在第一多个手写笔画和第二多个手写笔画之后被暂时接收。例如,用户已在手写输入区域中的从左到右空间序列中书写了两个字符(例如,“人体”)。第一多个笔画形成手写字符“八”。需注意,用户实际上希望书写字符“个”,但丢了一个笔画。第二多个笔画形成手写字符“体”。在用户稍后意识到他希望书写“个体”而非“人体”时,用户可简单地为字符“八”的笔画下方再加上一个垂直笔画,并且用户设备将该垂直笔画分配到第一识别单元(例如,用于“八”的识别单元)。用户设备将为第一识别单元输出新的输出字符(例如,“八”),其中新的输出字符将替换识别结果中的先前的输出字符(例如,“八”)。如图10C中所示,响应于接收到第三手写笔画,用户设备基于第三手写笔画与第一多个手写笔画的相对邻近性来向同一识别单元分配(1032)第三手写笔画作为第一多个手写笔画。在一些实施例中,用户设备基于第一多个手写笔画和第三手写笔画来生成(1034)所修正的输入图像。用户设备向手写识别模型提供(1036)所修正的输入图像以对所修正的手写字符执行实时识别。在一些实施例中,用户设备响应于接收到第三手写输入来显示(1040)与所修正的输入图像对应的第三输出字符,其中第三输出字符替换第一输出字符并沿默认书写方向在空间序列中与第二输出字符同时显示。

在一些实施例中,手写识别模块识别在从左到右的默认书写方向上书写的手写输入。例如,用户可从左到右在一行或多行中书写字符。响应于手写输入,手写输入模块根据需要在从左到右的空间序列中在一行或多行中呈现包括字符的识别结果。如果用户选择识别结果,向用户设备的文本输入区域中输入所选择的识别结果。在一些实施例中,默认的书写方向是从上到下。在一些实施例中,默认的书写方向是从右到左。在一些实施例中,用户任选地在已选择识别结果并已清除手写输入区域之后将默认书写方向改为另选的书写方向。

在一些实施例中,手写输入模块允许用户在手写输入区域中输入多字符手写输入,并允许一次从一个识别单元的手写输入删除笔画,而不是一次从所有识别单元删除笔画。在一些实施例中,手写输入模块允许一次从手写输入删除一个笔画。在一些实施例中,在与默认书写方向相反的方向上一个接一个地进行识别单元的删除,而不考虑输入识别单元或笔画以产生当前手写输入的顺序。在一些实施例中,按照在每个识别单元内输入笔画的相反顺序来逐个进行笔画的删除,并且在已删除一个识别单元中的所有笔画时,沿与默认书写方向相反的方向进行下一识别单元的笔画的删除。

在一些实施例中,在手写输入界面的候选显示区域中将第三输出字符和第二输出字符同时显示为候选识别结果时,用户设备从用户接收删除输入。响应于删除输入,在保持候选显示区域中所显示的识别结果中的第三输出字符的同时,用户设备从识别结果删除第二输出字符。

在一些实施例中,如图10C中所示,在用户提供所述手写笔画中的每个手写笔画时,用户设备实时渲染(1042)第一多个手写笔画、第二多个手写笔画和第三手写笔画。在一些实施例中,响应于从用户接收到删除输入,在保持手写输入区域中的第一多个手写笔画和第三手写笔画(例如,共同对应于所修正的第一手写字符)的相应渲染的同时,用户设备从手写输入区域删除(1044)第二多个手写输入(例如,对应于第二手写字符)的相应渲染。例如,在用户在字符序列“个体”中提供丢失的垂直笔画之后,如果用户输入删除输入,则从手写输入区域去除针对字符“体”的识别单元中的笔画,并从用户设备的候选显示区域中的识别结果“个体”去除字符“体”。在删除之后,针对字符“个”的笔画保留在手写输入区域中,而识别结果仅示出字符“个”。

在一些实施例中,手写字符是多笔画中文字符。在一些实施例中,第一多个手写输入是以草书书写格式提供的。在一些实施例中,第一多个手写输入是以草书书写风格来提供的,并且手写字符是多笔画中文字符。在一些实施例中,手写字符是以草书风格书写的阿拉伯文字。在一些实施例中,手写字符是以草书风格书写的其他文字。

在一些实施例中,用户设备对针对手写字符输入来建立对一组可接受尺寸的相应的预先确定的约束,并基于相应的预先确定的约束来将当前累积的多个手写笔画分割成多个识别单元,其中相应的输入图像从每个识别单元生成、被提供给手写识别模型,并被识别为对应的输出字符。

在一些实施例中,用户设备在分割当前累积的多个手写笔画之后从用户接收附加手写笔画。用户设备基于附加手写笔画相对于多个识别单元的空间位置来向多个识别单元中的相应的一个识别单元分配附加手写笔画。

现在关注用于在用户设备上提供手写识别和输入的示例性用户界面。在一些实施例中,基于多文字手写识别模型在用户设备上提供示例性用户界面,该多文字手写识别模型提供对用户手写输入的实时的与笔画顺序无关的手写识别。在一些实施例中,示例性用户界面是示例性手写输入界面802的用户界面(例如,图8A和图8B中所示),该示例性用户界面包括手写输入区域804、候选显示区域804和文本输入区域808。在一些实施例中,示例性手写输入界面802还包括多个控制元件1102,诸如删除按钮、空格键、回车按钮、键盘切换按钮等。可在手写输入界面802中提供一个或多个其他区域和/或元件以实现下述附加功能。

如本文所述,多文字手写识别模型能够具有许多不同的文字和语言的几万个字符的极大字汇。因而,对于手写输入而言,识别模型将非常有可能识别该大量的输出字符,它们都有相当大的可能性是用户希望输入的字符。在具有有限显示区域的用户设备上,有利的是在保持其他结果在用户请求时可用的同时初始仅提供识别结果的子集。

图11A-图11G示出了用于在候选显示区域的正常视图中显示识别结果的子集,连同用于调用候选显示区域的扩展视图的示能表示的示例性用户界面,该扩展视图用于显示识别结果的其余部分。此外,在候选显示区域的扩展视图内,将识别结果分成不同类别,并在扩展视图的不同标签页上进行显示。

图11A示出了示例性手写输入界面802。手写输入界面包括手写输入区域804、候选显示区域806和文本输入区域808。一个或多个控制元件1102也被包括在手写输入界面1002中。

如图11A中所示,候选显示区域806任选地包括用于显示一个或多个识别结果的区域和用于调用候选显示区域806的扩展版本的示能表示1104(例如,扩展图标)。

图11A-图11C示出了在用户在手写输入区域804中提供一个或多个手写笔画(例如,笔画1106、1108和1110)时,用户设备识别并显示与手写输入区域804中的当前累积的笔画对应的相应一组识别结果。如图11B中所示,在用户输入第一笔画1106之后,用户设备识别并显示三个识别结果1112、1114和1116(例如,字符“/”、“1”和“,”)。在一些实施例中,根据与每个字符相关联的识别置信度,按顺序来在候选显示区域806中显示少量的候选字符。

在一些实施例中,在文本输入区域808中例如在框1118内试验性地显示排序最靠前的候选结果(例如,“/”)。用户可任选地利用简单的确认输入(例如,按下“输入”键,或在手写输入区域中提供双击手势)来确认排序最靠前的候选者是期望的输入。

图11C示出在用户已选择任何候选识别结果之前,在用户在手写输入区域804中输入两个更多个笔画1108和1110时,附加笔画与初始笔画1106一起在手写输入区域804中被渲染,并且候选结果被更新,以反映从当前累积的手写输入中识别的识别单元的变化。如图11C中所示,基于这三个笔画,用户设备已识别单个识别单元。基于单个识别单元,用户设备已识别并显示若干个识别结果1118-1124。在一些实施例中,候选显示区域806中的当前显示的识别结果中的一个或多个识别结果(例如,1118和1122)各自表示从当前手写输入的多个外观相似的候选字符所选择的候选字符。

如图11C-图11D中所示,在用户(例如,使用示能表示1104上方的具有接触1126的轻击手势)选择示能表示1104时,候选显示区域从正常视图(例如,图11C中所示)变为扩展视图(例如,图11D中所示)。在一些实施例中,扩展视图示出了已针对当前手写输入识别的所有识别结果(例如,候选字符)。

在一些实施例中,初始显示的候选显示区域806的正常视图仅示出相应文字或语言中的最常用的字符,而扩展视图示出包括一种文字或语言中的很少使用的字符的所有候选字符。可以不同方式来设计候选显示区域的扩展视图。图11D-图11G示出了根据一些实施例的扩展候选显示区域的示例性设计。

如图11D中所示,在一些实施例中,扩展的候选显示区域1128包括各自呈现相应类别的候选字符的一个或多个标签页(例如,页面1130、1132、1134和1136)。图11D中所示的标签设计允许用户迅速找到期望类别的字符,并且然后找到其希望在对应标签页中输入的字符。

在图11D中,第一标签页1130显示已针对当前累积的手写输入识别的包括常用字符和不常用字符的所有候选字符。如图11D中所示,标签页1130包括图11C中的初始候选显示区域806中所示的所有字符,以及未包括在初始候选显示区域806中的若干个附加字符(例如,“‘亇’”、“β”、“巾”等)。

在一些实施例中,初始候选显示区域806中显示的字符仅包括来自与文字相关联的一组常用字符的字符(例如,根据Unicode标准进行编码的CJK文字的基本块中的所有字符)。在一些实施例中,扩展候选显示区域1128中显示的字符进一步包括与文字相关联的一组不常用字符(例如,根据Unicode标准编码的CJK文字的扩展块中的所有字符)。在一些实施例中,扩展的候选显示区域1128进一步包括来自用户不常用的其他文字的候选字符,例如希腊文字、阿拉伯文字和/或表情符号文字。

在一些实施例中,如图11D中所示,扩展候选显示区域1128包括各自对应于相应类别的候选字符(例如,所有字符、罕见字符、来自拉丁文字的字符和来自表情符号文字的字符)的相应的标签页1130、1132、1134和1138。图11E-图11G示出了用户可选择不同标签页中的每个标签页以显露出对应类别的候选字符。图11E仅示出了与当前手写输入对应的罕见字符(例如,来自CJK文字的扩展块的字符)。图11F仅示出了与当前手写输入对应的拉丁字母或希腊字母。图11G仅示出了与当前手写输入对应的表情符号字符。

在一些实施例中,扩展候选显示区域1128进一步包括一个或多个示能表示,以基于相应标准对相应标签页中的候选字符进行分类(例如,基于语音拼写、基于笔画数以及基于字根等)。根据识别置信度分数外的标准对每个类别的候选字符进行分类的能力为用户提供了迅速找到用于文本输入的期望候选字符的附加能力。

在一些实施例中,图11H-图11K示出可对外观相似的候选字符进行分组,并在初始候选显示区域806中仅呈现来自每组外观相似候选字符的代表性字符。由于本文所述的多文字识别模型可产生对于给定手写输入几乎同样好的许多候选字符,因此该识别模型不能始终以另一个外观相似的候选者为代价来消除一个候选者。在具有有限显示区域的设备上,一次显示许多外观相似候选者的对于用户选择正确的字符没有帮助,因为细微的区别不容易看出,并且甚至如果用户能够看到期望的字符,也可能难以使用手指或触笔来从非常密集的显示中对其进行选择。

在一些实施例中,为了解决以上问题,用户设备识别彼此相似性很大的候选字符(例如,根据外观相似字符的字母索引或词典,或某种基于图像的标准),并将它们分组到相应的组中。在一些实施例中,可从针对给定手写输入的一组候选字符中识别一组或多组外观相似的字符。在一些实施例中,用户设备从同一组中的多个外观相似的候选字符中识别代表性候选字符,并在初始候选显示区域806中仅显示代表性候选者。如果常用字符与任何其他候选字符看起来不够相似,则显示其自身。在一些实施例中,如图11H中所示,以与不属于任何组的候选字符(例如,候选字符1120和1124,“乃”和“J”)不同的方式(例如,在粗线框中)来显示每组的代表性候选字符(例如,候选字符1118和1122,“个”和“T”)。在一些实施例中,用于选择一组的代表性字符的标准基于该组中候选字符的相对使用频率。在其他实施例中,可使用其他标准。

在一些实施例中,一旦向用户显示一个或多个代表性字符,用户便可任选地扩展候选显示区域806以在扩展视图中显示外观相似的候选字符。在一些实施例中,选择特定的代表性字符可产生与所选择的代表性字符同一组中的仅那些候选字符的扩展视图。

用于提供外观相似候选者的扩展视图的各种设计都是可能的。图11H-图11K示出了一个实施例,其中通过在代表性候选字符(例如,代表性字符1118)上方检测到的预先确定的手势(例如,扩展手势)来调用代表性候选字符的扩展视图。用于调用扩展视图的预先确定的手势(例如,扩展手势)与用于选择文本输入的代表性字符的预先确定的手势(例如,轻击手势)不同。

如图11H-图11I中所示,在用户在第一代表性字符1118上方提供扩展手势(例如,如两个接触1138和1140彼此移动离开所示出的)时,扩展显示代表性字符1118的区域,并且与不在同一扩展组中的其他候选字符(例如,“乃”)相比,在放大视图(例如分别为放大框1142、1144和1146)中呈现三个外观相似的候选字符(例如,“个”、“亇”和“巾”)。

如图11I中所示,在放大视图中进行呈现时,用户可更容易看到三个外观相似候选字符(例如,“个”、“亇”和“巾”)的细微区别。如果三个候选字符中的一个候选字符是预期字符输入,则用户可例如通过触摸显示该字符的区域来选择该候选字符。如图11J-图11K中所示,用户已选择(利用接触1148)扩展视图中框1144中所示的第二个字符(例如,“亇”)。作为响应,在由光标指示的插入点处将所选择的字符(例如,“亇”)输入到文本输入区域808中。如图11K中所示,一旦选择了字符,便清除手写输入区域804中的手写输入和候选显示区域806(或候选显示区域的扩展视图)中的候选字符以用于后续手写输入。

在一些实施例中,如果用户未看到第一代表性候选字符1142的扩展视图中的期望候选字符,则用户可任选地使用相同的手势以扩展候选显示区域806中显示的其他代表性字符。在一些实施例中,扩展候选显示区域806中的另一个代表性字符将当前呈现的扩展视图自动恢复到正常视图。在一些实施例中,用户任选地使用收缩手势来将当前的扩展视图恢复到正常视图。在一些实施例中,用户可滚动候选显示区域806(例如,从左到右)以显露出候选显示区域806中不可见的其他候选字符。

图12A-图12B是示例性过程1200的流程图,其中在初始候选显示区域中呈现识别结果的第一子集,而在扩展候选显示区域中呈现识别结果的第二子集,扩展候选显示区域在用户专门调用之前都隐藏在视图后。在示例性过程1200中,该设备从多个手写识别结果为手写输入识别视觉相似水平超过预先确定的阈值的识别结果的子集。用户设备然后从识别结果的子集选择代表性识别结果,并在显示器的候选显示区域中显示所选择的代表性识别结果。图11A-图11K中示出了过程1200。

如图12A中所示,在实例过程1200中,用户设备从用户接收(1202)手写输入。手写输入包括在手写输入界面(例如,图11C中的802)的手写输入区域(例如,图11C中的806)中提供的一个或多个手写笔画(例如,图11C中的1106、1108、1110)。用户设备基于手写识别模型来针对手写输入识别(1204)多个输出字符(例如,标签页1130中示出的字符,图11C)。用户设备基于预先确定的分类标准将多个输出字符分成(1206)两个或更多个类别。在一些实施例中,预先确定的分类标准确定(1208)相应字符是常用字符还是不常用字符。

在一些实施例中,用户设备在手写输入界面的候选显示区域(例如,图11C中所示的806)的初始视图中显示(1210)两个或更多个类别中的第一类别的相应输出字符(例如,常用字符),其中候选显示区域的初始视图与用于调用候选显示区域的扩展视图(例如,图11D中的1128)的示能表示(例如,图11C中的1104)被同时提供。

在一些实施例中,用户设备接收(1212)用户输入,从而选择用于调用扩展视图的示能表示,例如如图11C中所示。响应于用户输入,用户设备在候选显示区域的扩展视图中显示(1214)先前未在候选显示区域的初始视图中显示的两个或更多个类别中的第一类别的相应输出字符以及至少第二类别的相应输出字符,例如如图11D中所示。

在一些实施例中,第一类别的相应字符是在常用字符词典中发现的字符,并且第二类别的相应字符是在不常用字符词典中发现的字符。在一些实施例中,基于与用户设备相关联的使用历史来动态调整或更新常用字符的词典和不常用字符的词典。

在一些实施例中,用户设备根据预先确定的相似性标准(例如,基于相似字符的词典或基于一些空间导出特征)从多个输出字符中识别(1216)视觉上彼此相似的一组字符。在一些实施例中,用户设备基于预先确定的选择标准(例如,基于历史使用频率)来从一组视觉相似的字符中选择代表性字符。在一些实施例中,该预先确定的选择标准基于该组中的字符的相对使用频率。在一些实施例中,该预先确定的选择标准基于与设备相关联的优选输入语言。在一些实施例中,基于指示每个候选者是用户的预期输入的可能性的其他因素来选择代表性候选者。例如,这些因素包括候选字符是否属于当前安装在用户设备上的软键盘中的文字,或者候选字符是否在与用户或用户设备相关联的特定语言中的一组最常用字符中等等。

在一些实施例中,用户设备在候选显示区域(例如,图11H中的806)的初始视图中显示(1220)代表性字符(例如,“个”),替代该组视觉相似字符中的其他字符(例如,“亇”、“巾”)。在一些实施例中,在候选显示区域的初始视图中提供视觉指示(例如,选择性视觉突出显示,特殊背景),以指示每个候选字符是否是一个组中的代表性字符或者是否是不在任何组内的普通候选字符。在一些实施例中,用户设备从用户接收(1222)预先确定的扩展输入(例如,扩展手势),改预先确定的扩展输入涉及在候选显示区域的初始视图中显示的代表性字符,例如如图11H中所示。在一些实施例中,响应于接收到预先确定的扩展输入,用户设备同时显示(1224)该组视觉相似字符中的代表性字符的放大视图和一个或多个其他字符的相应放大视图,例如如图11I中所示。

在一些实施例中,预先确定的扩展输入是在候选显示区域中显示的代表性字符上方检测到的扩展手势。在一些实施例中,预先确定的扩展输入是在候选显示区域中显示的代表性字符上方检测到且持续长于预先确定的阈值时间的接触。在一些实施例中,用于扩展该组的持续接触比为文本输入选择代表性字符的轻击手势具有更长的阈值持续时间。

在一些实施例中,每个代表性字符与相应示能表示(例如,相应的扩展按钮)同时显示,以调用其外观相似候选字符组的扩展视图。在一些实施例中,预先确定的扩展输入是对与代表性字符相关联的相应示能表示的选择。

如本文所述,在一些实施例中,多文字手写识别模型的字汇包括表情符号文字。手写输入识别模块可基于用户的手写输入识别表情符号字符。在一些实施例中,手写识别模块呈现直接从手写识别的表情符号字符以及表示所识别的表情符号字符的自然人类语言中的字符或字词两者。在一些实施例中,手写输入模块基于用户的手写输入来识别自然人类语言中的字符或字词,并呈现所识别的字符或字词以及与所识别的字符或字词对应的表情符号字符两者。换句话讲,手写输入模块提供用于输入表情符号字符而无需从手写输入界面切换到表情符号键盘的方式。此外,手写输入模块还提供了通过手绘表情符号字符来输入常规自然语言字符和字词的方式。图13A-图13E提供了用于示出输入表情符号字符和常规自然语言字符的这些不同方式的示例性用户界面。

图13A示出了在聊天应用程序下调用的示例性手写输入界面802。手写输入界面802包括手写输入区域804、候选显示区域806和文本输入区域808。在一些实施例中,一旦用户对文本输入区域808中的文本作品满意,用户便可选择向当前聊天会话的另一参与者发送文本作品。在对话面板1302中示出了聊天会话的对话历史。在该实例中,用户接收到显示在对话面板1302中的聊天消息1304(例如,“Happy Birthday”)。

如图13B中所示,用户为手写输入区域804中的英文字词“Thanks”提供了手写输入1306。响应于手写输入1306,用户设备识别若干个候选识别结果(例如,识别结果1308、1310和1312)。已向框1314内的文本输入区域808中试验性地输入了排序最靠前的识别结果1303。

如图13C中所示,在用户已在手写输入区域806中输入手写字词“Thanks”之后,用户然后在手写输入区域806中绘制具有笔画1316的样式化感叹号(例如,细长的圆具有下方的圆形圈)。用户设备识别出该附加笔画1316形成来自从手写输入区域806中的累积手写笔画1306先前识别的其他识别单元的独立识别单元。基于新输入的识别单元(即,由笔画1316形成的识别单元),用户设备使用手写识别模型来识别表情符号字符(例如,样式化的“!”)。基于这一所识别的表情符号字符,该用户设备在候选显示区域806中呈现第一识别结果1318(例如,具有样式化的“!”的“Thanks!”)。此外,用户设备还识别在视觉上也类似于新输入的识别单元的数字“8”。基于这一所识别的数字,用户设备在候选显示区域806中呈现第二识别结果1322(例如,“Thanks 8”)。此外,基于所识别的表情符号字符(例如,样式化的“!”),用户设备还识别与表情符号字符对应的常规字符(例如,常规字符“!”)。基于这一间接所识别的常规字符,用户设备在候选显示区域806中呈现第三识别结果1320(例如,具有常规的“!”的“Thanks!”)。此时,用户可选择候选识别结果1318、1320和1322中的任一个识别结果,并将其输入到文本输入区域808中。

如图13D中所示,用户继续在手写输入区域806中提供附加手写笔画1324。这次,用户已在样式化感叹号之后绘制了心形符号。响应于新的手写笔画1324,用户设备识别出新提供的手写笔画1324形成又一个新的识别单元。基于该新的识别单元,用户设备识别表情符号字符,并且另选地,数字“0”作为新的识别单元的候选字符。基于从新的识别单元中识别的这些新的候选字符,用户设备呈现两个更新的候选识别结果1326和1330(例如,“Thanks”和“Thanks 80”)。在一些实施例中,用户设备进一步识别与所识别的表情符号字符()对应的一个或多个常规字符或一个或多个字词(例如,“Love”)。基于针对所识别的表情符号字符的所识别的一个或多个常规字符或一个或多个字词,用户设备呈现第三识别结果1328,其中利用对应的一个或多个常规字符或一个或多个字词来替换所识别的一个或多个表情符号字符。如图13D中所示,在识别结果1328中,利用正常的感叹号“!”来替换表情符号字符,并利用常规的字符或字词“Love”来替换表情符号字符。

如图13E中所示,用户已选择候选识别结果中的一个候选识别结果(例如,示出混合文字文本“Thanks”的候选结果1326),并且向文本输入区域808中输入所选择的识别结果的文本,并且然后发送至聊天会话的其他参与者。消息泡1332示出了对话面板1302中的消息文本。

图14是示例性过程1400的流程图,其中用户使用手写输入来输入表情符号字符。图13A-图13E示出了根据一些实施例的示例性过程1400。

在过程1400中,用户设备从用户接收(1402)手写输入。手写输入包括在手写输入界面的手写输入区域中提供的多个手写笔画。在一些实施例中,用户设备基于手写识别模型来识别(1404)来自手写输入的多个输出字符。在一些实施例中,输出字符包括来自自然人类语言的文字的至少第一表情符号字符(例如,样式化的感叹号或图13D中的表情符号字符),以及至少第一字符(例如,来自图13D中的字词“Thanks”的字符)。在一些实施例中,用户设备显示(1406)识别结果(例如,图13D中的结果1326),该识别结果包括来自手写输入界面的候选显示区域中的自然人类语言的文字的第一表情符号字符(例如,图13D中的样式化感叹号或表情符号字符)和第一字符(例如,来自图13D中的字词“Thanks”的字符),例如,如图13D中所示。

在一些实施例中,基于手写识别模型,用户设备任选地从手写输入中识别(1408)至少第一语义单元(例如,字词“thanks”),其中第一语义单元包括能够在相应人类语言中传达相应语义含义的相应字符、字词或短语。在一些实施例中,用户设备识别(1410)与从手写输入中识别的第一语义单元(例如,字词“Thanks”)相关联的第二表情符号字符(例如,“handshake”表情符号字符)。在一些实施例中,用户设备在手写输入界面的候选显示区域中显示(1412)第二识别结果(例如,示出“handshake”表情符号字符,然后示出和表情符号字符的识别结果),该第二识别结果至少包括从第一语义单元(例如,字词“Thanks”)识别的第二表情符号字符。在一些实施例中,显示第二识别结果进一步包括与至少包括第一语义单元(例如,字词“Thanks”)的第三识别结果(例如,识别结果“Thanks”)同时显示第二识别结果。

在一些实施例中,用户接收用于选择候选显示区域中显示的第一识别结果的用户输入。在一些实施例中,响应于用户输入,用户设备在手写输入界面的文本输入区域中输入所选择的第一识别结果的文本,其中文本至少包括来自自然人类语言的文字的第一表情符号字符和第一字符。换句话讲,用户能够使用手写输入区域中的单次手写输入(尽管如此,还有包括多个笔画的手写输入)输入混合文字文本输入,而无需在自然语言键盘和表情符号字符键盘之间进行切换。

在一些实施例中,手写识别模型已针对包括与至少三种不重叠文字的字符对应的书写样本的多文字训练语料库被训练,并且三种不重叠文字包括表情符号字符、中文字符和拉丁文字的集合。

在一些实施例中,用户设备识别(1414)与直接从手写输入中识别的第一表情符号字符(例如,表情符号字符)对应的第二语义单元(例如,字词“Love”)。在一些实施例中,用户设备在手写输入界面的候选显示区域中显示(1416)第四识别结果(例如,图13D中的1328),该第四识别结果至少包括从第一表情符号字符(例如表情符号字符)识别的第二语义单元(例如,字词“Love”)。在一些实施例中,用户设备在候选显示区域中同时显示第四识别结果(例如,结果1328“Thanks!Love”)和第一识别结果(例如,结果“Thanks”),如图13D中所示。

在一些实施例中,用户设备允许用户通过绘制表情符号字符来输入常规文本。例如,如果用户不知道如何拼写字词“elephant”,则用户任选地在手写输入区域中绘制用于“elephant”的样式化表情符号字符,并且如果用户设备可正确地将手写输入识别为“elephant”的表情符号字符,则用户设备任选地还在正常文本中呈现字词“elephant”,作为候选显示区域中显示的识别结果中的一个识别结果。在另一个实例中,用户可在手写输入区域中绘制样式化的猫来替代书写中文字符“猫”。如果用户设备基于用户提供的手写输入来识别用于“猫”的表情符号字符,则用户设备任选地还在候选识别结果中与用于“猫”的表情符号字符一起呈现汉语中表示“猫”的中文字符“猫”。通过针对所识别的表情符号字符来呈现正常文本,用户设备提供了一种使用通常与熟知的表情符号字符相关联的若干个样式化笔画来输入复杂的字符或字词的另选方式。在一些实施例中,用户设备存储将表情符号字符与其在一种或多种优选文字或语言(例如,英语或汉语)中的对应正常文本(例如,字符、字词、短语、符号等)链接的词典。

在一些实施例中,用户设备基于表情符号字符与从手写输入生成的图像的视觉相似性来识别表情符号字符。在一些实施例中,为了能够从手写输入中识别表情符号字符,使用包括与自然人类语言的文字的字符对应的手写样本和与一组人为设计的表情符号字符对应的手写样本两者的训练语料库来训练在用户设备上使用的手写识别模型。在一些实施例中,与同一语义概念相关的表情符号字符在用于具有不同自然语言的文本的混合输入时可具有不同的外观。例如,在利用一种自然语言(例如,日语)的正常文本来呈现时,用于“Love”的语义概念的表情符号字符可以是“heart”表情符号字符,并且在利用另一种自然语言(例如,英语或法语)的正常文本来呈现时,可以是“kiss”的表情符号字符。

如本文所述,在对多字符手写输入执行识别时,手写输入模块对手写输入区域中当前累积的手写输入执行分割,并将累积的笔画分成一个或多个识别单元。用于确定如何分割手写输入的参数中的一个参数可以是在手写输入区域中对笔画进行群集的方式以及笔画的不同群集之间的距离。因为人们具有不同的书写风格。一些人往往写得非常稀疏,笔画之间或同一字符的不同部分之间有很大距离,而其他人往往写得非常紧密,在笔画或不同字符之间的距离非常小。即使对于同一用户,由于规划不完美,手写字符可能会偏离均衡的外观,并且可能以不同方式倾斜、拉伸或挤压。如本文所述,多文字手写识别模型提供与笔画顺序无关的识别,因此,用户可以不按顺序书写字符或部分字符。因而,难以获取字符之间的手写输入的空间均匀性和平衡。

在一些实施例中,本文所述的手写输入模型为用户提供了一种用于通知手写输入模块是否将两个相邻的识别单元合并成单个识别单元或将单个识别单元分成两个独立的识别单元的方式。在用户的帮助下,手写输入模块可修正初始分割,并生成用户期望的结果。

图15A-图15J示出了一些示例性用户界面和过程,其中用户提供预先确定的夹捏手势和扩展手势以修改用户设备识别的识别单元。

如图15A-图15B中所示,用户已在手写输入界面802的手写输入区域806中输入了多个手写笔画1502(例如,三个笔画)。用户设备已基于当前累积的手写笔画1502识别了单个识别单元,并在候选显示区域806中呈现了三个候选字符1504、1506和1508(例如,分别为“巾”、“中”和“币”)。

图15C示出了用户在手写输入区域606中的初始手写笔画1502右侧进一步输入了若干个附加笔画1510。用户设备确定(例如,基于多个笔画1502和1510的尺寸和空间分布)应当将笔画1502和笔画1510考虑为两个独立的识别单元。基于识别单元的划分,用户设备向手写识别模型提供第一识别单元和第二识别单元的输入图像,并获取两组候选字符。用户设备然后基于所识别的字符的不同组合来生成多个识别结果(例如,1512、1514、1516和1518)。每个识别结果包括第一识别单元的所识别的字符以及第二识别单元的所识别的字符。如图15C中所示,多个识别结果1512、1514、1516和1518中的每个识别结果各自包括两个所识别的字符。

在本实例中,假设用户实际上希望将手写输入识别为单个字符,但不经意在手写字符(例如“帽”)的左部分(例如,左字根“巾”)和右部分(例如,右字根“冒”)之间留下过多空间。已看到候选显示区域806中呈现的结果(例如,1512、1514、1516和1518)之后,用户将意识到用户设备将当前的手写输入不正确地分割成两个识别单元。尽管分割可基于客观标准,但不希望用户删除当前的手写输入并利用左部分和右部分之间留下的更小的距离来再次重写整个字符。

相反,如图15D中所示,用户在手写笔画1502和1510的两个群集上方使用夹捏手势,以向手写输入模块指示应当将手写输入模块识别的两个识别单元合并为单个识别单元。夹捏手势由触敏表面上两个彼此邻近的接触1520和1522表示。

图15E示出了响应于用户的夹捏手势,用户设备修正了当前累积的手写输入(例如,笔画1502和1510)的分割,并将手写笔画合并成单个识别单元。如图15E中所示,用户设备基于修正的识别单元向手写识别模型提供输入图像,并针对修正的识别单元获取三个新的候选字符1524、1526和1528(例如,“帽”、“帼”和)。在一些实施例中,如图15E中所示,用户设备任选地调整对手写输入区域806中的手写输入的渲染,从而减小手写笔画的左群集和右群集之间的距离。在一些实施例中,用户设备不会响应于夹捏手势来改变对手写输入区域608中所示的手写输入的渲染。在一些实施例中,用户设备基于在手写输入区域806中检测到的两个同时接触(与一个单次接触相反)来将夹捏手势与输入笔画区分开。

如图15F中所示,用户向先前输入的手写输入右方输入另外两个笔画1530(即,字符“帽”的笔画)。用户设备确定新输入的笔画1530是新的识别单元,并针对新识别的识别单元来识别候选字符(例如“子”)。用户设备然后将新识别的字符(例如,“子”)与更早识别的识别单元的候选字符组合,并在候选显示区域806中呈现若干个不同的识别结果(例如,结果1532和1534)。

在手写笔画1530之后,用户继续在笔画1530的右方书写更多个笔画1536(例如,三个其他笔画),如图15G中所示。由于笔画1530和笔画1536之间的水平距离很小,因此用户设备确定笔画1530和笔画1536属于同一个识别单元,并向手写识别模型提供由笔画1530和1536形成的输入图像。手写识别模型针对修正的识别单元中识别三个不同的候选字符,并为当前累积的手写输入生成两个修正的识别结果1538和1540。

在本实例中,假设最后两组笔画1530和1536实际上要作为两个独立的字符(例如,“子”和“±”)。在用户看到用户设备已将两组笔画1530和1536不正确地组合成单个识别单元之后,用户继续提供扩展手势以通知用户设备应当将两组笔画1530和1536分成两个独立的识别单元。如图15H中所示,用户在笔画1530和1536附近作出两次接触1542和1544,然后在大致水平方向(即,沿默认书写方向)上将两个接触彼此移开。

图15I示出了响应于用户的扩展手势,用户设备修正当前累积的手写输入的先前分割,并将笔画1530和笔画1536分配到两个连续的识别单元中。基于针对两个独立识别单元生成的输入图像,用户设备基于笔画1530针对第一识别单元来识别一个或多个候选字符,并且基于笔画1536针对第二识别单元来识别一个或多个候选字符。用户设备然后基于所识别的字符的不同组合来生成两个新的识别结果1546和1548。在一些实施例中,用户设备任选地修改笔画1536和1536的渲染,以反映先前识别的识别单元的划分。

如图15J-15K中所示,用户选择(如接触1550所示)候选显示区域806中显示的候选识别结果中的一个候选识别结果,并且所选择的识别结果(例如,结果1548)已在用户界面的文本输入区域808中输入。在向文本输入区域808中输入所选择的识别结果之后,候选显示区域806和手写输入区域804均被清除,并且准备好显示后续的用户输入。

图16A-16B是示例性过程1600的流程图,其中用户使用预先确定的手势(例如,夹捏手势和/或扩展手势)来通知手写输入模块如何分割或修正当前手写输入的现有分割。图15J和15K提供了根据一些实施例的示例性过程1600的实例。

在一些实施例中,用户设备从用户接收(1602)手写输入。手写输入包括在耦接到设备的触敏表面中提供的多个手写笔画。在一些实施例中,用户设备在手写输入界面的手写输入区域(例如,图15A-图15K的手写输入区域806)中实时渲染(1604)多个手写笔画。用户设备在多个手写笔画上方接收夹捏手势输入和扩展手势输入中的一者,例如如图15D和图15H中所示。

在一些实施例中,当接收到夹捏手势输入时,用户设备通过将多个手写笔画作为单个识别单元处理(例如图15C-图15E中所示)基于多个手写笔画来生成(1606)第一识别结果。

在一些实施例中,当接收到扩展手势输入时,用户设备通过将多个手写笔画作为由扩展手势输入拉开的两个独立识别单元进行处理(例如图15G-图15I中所示)而基于多个手写笔画生成(1608)第二识别结果。

在一些实施例中,在生成第一识别结果和第二识别结果的相应一者时,用户设备在手写输入界面的候选显示区域中显示所生成的识别结果,例如如图15E和图15I中所示。

在一些实施例中,夹捏手势输入包括触敏表面上的在由多个手写笔画占据的区域中彼此靠拢的两个同时接触。在一些实施例中,扩展手势输入包括触敏表面上的在由多个手写笔画占据的区域中彼此分开的两个同时接触。

在一些实施例中,用户设备从多个手写笔画中识别(例如,1614)两个相邻的识别单元。用户设备在候选显示区域中显示(1616)包括从两个相邻识别单元中识别的相应字符的初始识别结果(例如,图15C中的结果1512、1514、1516和1518),例如如图15C中所示。在一些实施例中,在响应于夹捏手势显示第一识别结果(例如,图15E中的结果1524、1526或1528)时,用户设备利用候选显示区域中的第一识别结果来替换(1618)初始识别结果。在一些实施例中,用户设备在候选显示区域中显示初始识别结果的同时接收(1620)夹捏手势输入,如图15D中所示。在一些实施例中,响应于夹捏手势输入,用户设备重新渲染(1622)多个手写笔画以减小手写输入区域中的两个相邻识别单元之间的距离,例如如图15E中所示。

在一些实施例中,用户设备从多个手写笔画中识别(1624)单个识别单元。用户设备在候选显示区域中显示(1626)包括从单个识别单元中识别的字符(例如,“让”“祉”)的初始识别结果(例如,图15G的结果1538或1540)。在一些实施例中,在响应于扩展手势来显示第二识别结果(例如,图15I中的结果1546或1548)时,用户设备利用候选显示区域中的第二识别结果(例如,结果1546或1548)来替换(1628)初始识别结果(例如,结果1538或1540),例如如图15H-图15I中所示。在一些实施例中,用户设备在候选显示区域中显示初始识别结果的同时接收(1630)扩展手势输入,如图15H中所示。在一些实施例中,响应于扩展手势输入,用户设备重新渲染(1632)多个手写笔画,以增大手写输入区域中的分配给第一识别单元的笔画的第一子集和分配给第二识别单元的手写笔画的第二子集之间的距离,如图15H和图15I中所示。

在一些实施例中,在用户提供笔画并意识到笔画可能过于分散而无法基于标准分割过程来进行正确分割之后,用户立即任选地提供夹捏手势以通知用户设备将多个笔画作为单个识别单元进行处理。用户设备可基于夹捏手势中同时存在两个接触来将夹捏手势与正常笔画区分开。类似地,在一些实施例中,在用户提供笔画并意识到笔画可能过于密集而无法基于标准分割过程来进行正确分割之后,用户立即任选地提供扩展手势以通知用户设备将多个笔画作为两个独立识别单元进行处理。用户设备可基于夹捏手势中同时存在两个接触来将扩展手势与正常笔画区分开。

在一些实施例中,任选地使用夹捏手势或扩展手势的运动方向来对在手势下如何分割笔画提供附加指导。例如,如果针对手写输入区域来启用多行手写输入,则两个接触在垂直方向上移动的夹捏手势可通知手写输入模块将两个相邻行中所识别的两个识别单元合并成单个识别单元(例如,作为上字根和下字根)。类似地,两个接触在垂直方向上移动的扩展手势可通知手写输入模块将单个识别单元分成两个相邻行中的两个识别单元。在一些实施例中,夹捏手势和扩展手势还可在字符输入的子部分中提供分割指导,例如在复合字符的不同部分(例如,上部分、下部分、左部分或右部分)中合并两个子部件或划分复合字符(骂,鳘,误,莰,鑫;等)中的单个部件。这尤其有助于识别复杂的复合中文字符,因为用户往往在手写复杂的复合字符时失去正确的比例和平衡。例如,在完成手写输入之后可通过夹捏手势和扩展手势调节手写输入的比例和平衡尤其有助于用户输入正确的字符,而无需作出几次尝试来实现正确的比例和平衡。

如本文所述,手写输入模块允许用户输入多字符手写输入,并允许手写输入区域中的字符内、多个字符之间,并且甚至多个短语、句子和/或行之间的多字符手写输入的笔画无序。在一些实施例中,手写输入模块还在手写输入区域中提供逐个字符删除,其中字符删除的顺序与书写方向相反,并且与在手写输入区域中何时提供每个字符的笔画无关。在一些实施例中,任选地逐个笔画地执行手写输入区域中的每个识别单元(例如,字符或字根)的删除,其中按照在识别单元内提供笔画的相反的时间顺序来将其删除。图17A-图17H示出了用于对来自用户的删除输入作出响应并在多字符手写输入中提供逐个字符删除的示例性用户界面。

如图17A中所示,用户已在手写输入界面802的手写输入区域804中提供了多个手写笔画1702。基于当前累积的笔画1702,用户设备在候选显示区域806中呈现三个识别结果(例如,结果1704、1706和1708)。如图17B中所示,用户在手写输入区域806中提供附加的多个笔画1710。用户设备识别三个新的输出字符,并利用三个新的识别结果1712、1714和1716来替换三个先前的识别结果1704、1706和1708。在一些实施例中,如图17B中所示,即使用户设备已从当前的手写输入中识别两个独立的识别单元(例如,笔画1702和笔画1710),笔画1710的群集也将不能很好对应于手写识别模块的字汇中的任何已知的字符。因而,针对包括笔画1710的识别单元中识别的候选字符(例如,“亩”、“凶”)均具有低于预先确定的阈值的识别置信度。在一些实施例中,用户设备呈现部分识别结果(例如,结果1712),其仅包括针对第一识别单元的候选字符(例如,“日”),而不包括针对候选显示区域806中的第二识别单元的任何候选字符。在一些实施例中,用户设备还显示包括针对两个识别单元的候选字符的完整的识别结果(例如,结果1714或1716),而不论识别置信度是否超过预先确定的阈值。提供部分识别结果通知用户哪部分手写输入需要进行修正。此外,用户还可选择首先输入手写输入的被正确识别的部分,然后重写未正确识别的部分。

图17C示出了用户继续向笔画1710的左方提供附加手写笔画1718。基于笔画1718的相对位置和距离,用户设备确定新添加的笔画属于与手写笔画1702的群集相同的识别单元。基于修正的识别单元,针对第一识别单元识别新的字符(例如,“电”),并生成一组新的识别结果1720、1722和1724。同样,第一识别结果1720是部分识别结果,因为针对笔画1710识别的候选字符中没有一个候选字符符合预先确定的置信度阈值。

图17D示出了用户现在在笔画1702和笔画1710之间输入多个新笔画1726。用户设备向与笔画1710相同的识别单元分配新输入的笔画1726。现在,用户已完成针对两个中文字符(例如,“电脑”)来输入所有手写笔画,并且在候选显示区域806中显示了正确的识别结果1728。

图27E示出了用户已例如通过在删除按钮1732上作出轻接触1730来输入删除输入的初始部分。如果用户保持与删除按钮1732进行接触,则用户能可逐个字符地(或逐个识别单元地)删除当前手写输入。不同时针对所有手写输入来执行删除。

在一些实施例中,当用户的手指首先触摸触敏屏幕上的删除按钮1732时,相对于手写输入区域804内同时显示的一个或多个其他识别单元在视觉上突出显示(例如,突出显示边界1734,或加亮背景等)默认书写方向(例如,从左到右)上的最后的识别单元(例如,针对字符“脑”的识别单元),如图17E中所示。

在一些实施例中,当用户设备检测到用户在删除按钮1732上保持接触1730超过阈值持续时间时,用户设备从手写输入区域806移开突出显示的识别单元(例如,框1734中),如图17F中所示。此外,用户设备还修正候选显示区域608中显示的识别结果,以删除基于删除的识别单元生成的任何输出字符,如图17F中所示。

图17F还示出了如果在删除手写输入区域806中的最后的识别单元(例如,针对字符“脑”的识别单元)之后该用户继续在删除按钮1732上保持接触1730,则与被删除的识别单元相邻的识别单元(例如,针对字符“电”的识别单元)变成要被删除的下一个识别单元。如图17F中所示,其余识别单元变成视觉上突出显示的识别单元(例如,在框1736中),并且准备好被删除。在一些实施例中,视觉上突出显示识别单元提供了如果用户继续与删除按钮保持接触而会被删除的识别单元的预览。如果用户在达到阈值持续时间之前中断与删除按钮的接触,则从最后的识别单元去除视觉突出显示,并且不删除该识别单元。本领域的技术人员会认识到,在每次删除识别单元之后,接触的持续时间被重置。此外,在一些实施例中,任选地使用接触强度(例如,用户施加与触敏屏幕的接触1730所用的压力)来调整阈值持续时间,以确认删除当前突出显示的识别单元的用户的意图。图17F和图17G示出了在在达到阈值持续时间之前用户已中断删除按钮1732上的接触1730,并且用于字符“电”的识别单元被保留在手写输入区域806中。当用户已选择(例如,如接触1740所指示的)针对识别单元的第一识别结果(例如,结果1738)时,将第一识别结果1738中的文本输入到文本输入区域808中,如图17G-图17H中所示。

图18A-图18B是示例性过程1800的流程图,其中用户设备在多字符手写输入中提供逐个字符的删除。在一些实施例中,在已确认并向用户界面的文本输入区域中输入从手写输入中识别的字符之前执行手写输入的删除。在一些实施例中,删除手写输入中的字符是根据从手写输入中识别的识别单元的相反空间顺序来进行的,并且与形成识别单元的时间顺序无关。图17A-图17H示出了根据一些实施例的示例性过程1800。

如图18A中所示,在示例性过程1800中,用户设备从用户接收(1802)手写输入,该手写输入包括在手写输入界面的手写输入区域(例如,图17D的区域804)中提供的多个手写笔画。用户设备从多个手写笔画中识别(1804)多个识别单元,每个识别单元包括多个手写笔画的相应子集。例如,如图17D中所示,第一识别单元包括笔画1702和1718,并且第二识别单元包括笔画1710和1726。用户设备生成(1806)包括从多个识别单元中识别的相应字符的多字符识别结果(例如,图17D中的结果1728)。在一些实施例中,用户设备在手写输入界面的候选显示区域中显示多字符识别结果(例如,图17D的结果1728)。在一些实施例中,在候选显示区域中显示多字符识别结果时,用户设备从用户接收(1810)删除输入(例如,删除按钮1732上的接触1730),如图17E中所示。在一些实施例中,响应于接收到删除输入,用户设备从在候选显示区域(例如,候选显示区域806)中显示的多字符识别结果(例如,结果1728)去除(1812)末尾字符(例如,出现在空间序列“电脑”末尾的字符“脑”),例如如图17E-图17F中所示。

在一些实施例中,在由用户实时提供多个手写笔画时,用户设备在手写输入界面的手写输入区域中实时渲染(1814)多个手写笔画,例如如图17A-图17D中所示。在一些实施例中,响应于接收到删除输入,用户设备从手写输入区域(例如,图17E中的手写输入区域804)去除(1816)多个手写笔画的相应子集,该多个手写笔画的相应子集与由手写输入区域中的多个识别单元形成的空间序列中的末尾识别单元(例如,包含笔画1726和1710的识别单元)对应。末尾识别单元对应于多字符识别结果(例如,图17E中的结果1728)中的末尾字符(例如,字符“脑”)。

在一些实施例中,末尾识别单元不包括(1818)由用户提供的多个手写笔画中的时间上最后的手写笔画。例如,如果用户在其提供笔画1726和1710之后提供了笔画1718,则仍然首先删除包括笔画1726和1710的末尾识别单元。

在一些实施例中,响应于接收到删除输入的初始部分,用户设备在视觉上将末尾识别单元与在手写输入区域中识别的其他识别单元区分开(1820),例如如图17E中所示。在一些实施例中,删除输入的初始部分是(1822)在手写输入界面中的删除按钮上检测到的初始接触,并且在将初始接触持续超过预先确定的阈值时间量时,检测到删除输入。

在一些实施例中,末尾识别单元对应于手写中文字符。在一些实施例中,手写输入是以草书书写风格书写的。在一些实施例中,手写输入对应于以草书书写风格书写的多个中文字符。在一些实施例中,将手写笔画中的至少一个手写笔画分成多个识别单元中的两个相邻识别单元。例如,有时用户可使用延伸到多个字符中的长笔画,并且在这样的情况下,手写输入模块的分割模块任选地将长笔画分成几个识别单元。在逐个字符(或逐个识别单元)执行手写输入删除时,一次仅删除长笔画的一个区段(例如,对应识别单元内的区段)。

在一些实施例中,删除输入是(1824)在手写输入界面中提供的删除按钮上保持的接触,并且去除多个手写笔画的相应子集进一步包括按照已由用户提供手写笔画的子集的时间顺序的相反顺序来逐个笔画地从手写输入区域去除末尾识别单元中的手写笔画的子集。

在一些实施例中,用户设备生成(1826)包括从多个识别单元中识别的相应字符的子集的部分识别结果,其中相应字符的子集中的每个字符满足预先确定的置信度阈值,例如如图17B和图17C中所示。在一些实施例中,用户设备在手写输入界面的候选显示区域中与多字符识别结果(例如,结果1714和1722)同时显示(1828)部分识别结果(例如,图17B中的结果1712和图17C中的结果1720)。

在一些实施例中,部分识别结果不包括多字符识别结果中的至少末尾字符。在一些实施例中,部分识别结果不包括多字符识别结果中的至少初始字符。在一些实施例中,部分识别结果不包括多字符识别结果中的至少中间字符。

在一些实施例中,删除的最小单元是字根,并且不论何时字根恰好是仍保留在手写输入区域中的手写输入中的最后的识别单元,一次均删除手写输入的一个字根。

如本文所述,在一些实施例中,用户设备提供水平书写模式和垂直书写模式。在一些实施例中,用户设备允许用户在水平书写模式中在从左到右书写方向和从右到左方向中的一者或两者上输入文本。在一些实施例中,用户设备允许用户在垂直书写模式中在从上到下书写方向和从下到上方向中的一者或两者上输入文本。在一些实施例中,用户设备在用户界面上提供各种示能表示(例如,书写模式或书写方向按钮),以针对当前手写输入来调用相应的书写模式和/或书写方向。在一些实施例中,文本输入区域中的文本输入方向默认与手写输入方向上的手写输入方向相同。在一些实施例中,用户设备允许用户手动设置文本输入区域中的输入方向和手写输入区域中的书写方向。在一些实施例中,候选显示区域中的文本显示方向默认与手写输入区域中的手写输入方向相同。在一些实施例中,用户设备允许用户手动设置文本输入区域中的文本显示方向,而与于手写输入区域中的手写输入方向无关。在一些实施例中,用户设备将手写输入界面的书写模式和/或书写方向与对应的设备取向相关联,并且设备取向的变化自动触发书写模式和/或书写方向的变化。在一些实施例中,书写方向的变化自动导致向文本输入区域中输入排序最靠前的识别结果。

图19A-图19F示出了提供水平输入模式和垂直输入模式两者的用户设备的示例性用户界面。

图19A示出了水平输入模式中的用户设备。在一些实施例中,在用户设备处于横向取向时,提供水平输入模式,如图19A中所示。在一些实施例中,在纵向取向中操作设备时,任选地与水平输入模式相关联并提供该水平输入模式。在不同的应用中,设备取向和书写模式之间的关联可不同。

在水平输入模式中,用户可在水平书写方向上提供手写字符(例如,默认的书写方向从左到右,或默认书写方向从右到左)。在水平输入模式中,用户设备沿水平书写方向将手写输入分割成一个或多个识别单元。

在一些实施例中,用户设备仅允许在手写输入区域中进行单行输入。在一些实施例中,如图19A中所示,用户设备允许在手写输入区域中进行多行输入(例如,两行输入)。在图19A中,用户在手写输入区域806中在几行中提供了多个笔画。基于用户已提供多个手写笔画的顺序以及多个手写笔画之间的相对位置和距离,用户设备确定用户已输入两行字符。在将手写输入分割成两个独立的行之后,设备确定每行内的一个或多个识别单元。

如图19A中所示,用户设备针对当前手写输入1902中识别的每个识别单元来识别相应字符,并生成若干个识别结果1904和1906。如图19A进一步所示,在一些实施例中,如果针对特定组的识别单元(例如,由初始笔画形成的识别单元)的输出字符(例如,字母“I”)优先级较低,则用户设备任选地生成仅示出具有充分识别置信度的输出字符的部分识别结果(例如,结果1906)。在一些实施例中,用户可能从部分识别结果1906意识到可修正或独立删除或重写第一笔画,以用于识别模型产生正确的识别结果。在本特定实例中,不必编辑第一识别单元,因为第一识别单元1904确实示出了针对第一识别单元的期望识别结果。

在本实例中,如图19A-图19B中所示,用户将设备旋转到纵向取向(例如,图19B中所示)。响应于设备取向的变化,将手写输入界面从水平输入模式变为垂直输入模式,如图19B中所示。在垂直输入模式中,手写输入区域804、候选显示区域806和文本输入区域808的布局可与水平输入模式中所示的有所不同。水平输入模式和垂直输入模式的特定布局可变化,以适应不同的设备形状和应用需求。在一些实施例中,在设备取向旋转并且输入模式变化的情况下,用户设备自动向文本输入区域808中输入排序最靠前的结果(例如,结果1904)作为文本输入1910。光标1912的取向和位置也反映输入模式和书写方向的变化。

在一些实施例中,由用户触摸特定的输入模式选择示能表示1908来任选地触发输入模式的变化。在一些实施例中,输入模式选择示能表示是还示出了当前的书写模式、当前的书写方向和/或当前的段落方向的图形用户界面元件。在一些实施例中,输入模式选择示能表示可在手写输入界面802提供的所有可用输入模式和书写方向之间循环。如图19A中所示,示能表示1908示出当前的输入模式为水平输入模式,其中书写方向从左到右,并且段落方向从上到下。在图19B中,示能表示1908示出当前的输入模式为垂直输入模式,其中书写方向从上到下,并且段落方向从右到左。根据各种实施例,书写方向和段落方向的其他组合也是可能的。

如图19C中所示,用户在垂直输入模式中在手写输入区域804中已输入多个新的笔画1914(例如,针对两个中文字符“春晓”的手写笔画)。手写输入是在垂直书写方向上书写的。用户设备将垂直方向上的手写输入分割成两个识别单元,并显示各自包括在垂直方向上排列的两个识别字符的两个识别单元1916和1918。

图19C-图19D示出了在用户选择所显示的识别结果(例如,结果1916)时,在垂直方向上将所选择的识别结果输入到文本输入区域808中。

图19E-图19F示出了用户在垂直书写方向上已输入手写输入1920的附加行。这些行根据传统中文字符书写的段落方向从左到右延伸。在一些实施例中,候选显示区域806还在与手写输入区域相同的书写方向和段落方向上示出了识别结果(例如,结果1922和1924)。在一些实施例中,可根据与用户设备相关联的主要语言或在用户设备上安装的软键盘的语言(例如,阿拉伯语、汉语、日语、英语等),默认提供其他书写方向和段落方向。

图19E-图19F示出了当用户已选择识别结果(例如,结果1922)时,将所选择的识别结果的文本输入到文本输入区域808中。如图19F中所示,文本输入区域808中的当前的文本输入因此包括在水平模式中书写的书写方向从左到右的文本和在垂直模式中书写的书写方向从上到下的文本。水平文本的段落方向是从上到下,而垂直文本的段落方向是从右到左。

在一些实施例中,用户设备允许用户针对手写输入区域804、候选显示区域806和文本输入区域808中的每一者来独立建立优选的书写方向、段落方向。在一些实施例中,用户设备允许用户针对手写输入区域804、候选显示区域806和文本输入区域808中的每一者来独立建立优选的书写方向和段落方向,以与每种设备取向相关联。

图20A-图20C是用于改变用户界面的文本输入方向和手写输入方向的示例性过程2000的流程图。图19A-图19F示出了根据一些实施例的过程2000。

在一些实施例中,用户设备确定(2002)设备的取向。可由用户设备中的加速度计和/或其他取向感测元件来检测设备的取向和设备取向的变化。在一些实施例中,用户设备根据设备处于第一取向在处于水平输入模式的设备上提供(2004)手写输入界面。沿水平书写方向将在水平输入模式中输入的相应一行手写输入分割成一个或多个相应识别单元。在一些实施例中,设备根据设备处于第二取向在处于垂直输入模式的设备上提供(2006)手写输入界面。沿垂直书写方向将在垂直输入模式中输入的相应一行手写输入分割成一个或多个相应的识别单元。

在一些实施例中,在水平输入模式(2008)中进行操作时:设备检测到(2010)设备取向从第一取向到第二取向的变化。在一些实施例中,响应于设备取向的变化,设备从水平输入模式切换到(2012)垂直输入模式。例如,在图19A-图19B中示出了这种情况。在一些实施例中,在垂直输入模式(2014)中进行操作时:用户设备检测到(2016)设备取向从第二取向到第一取向的变化。在一些实施例中,响应于设备取向的变化,用户设备从垂直输入模式切换到(2018)水平输入模式。在一些实施例中,设备取向和输入模式之间的关联可与上文所述相反。

在一些实施例中,在水平输入模式(2020)中进行操作时:用户设备从用户接收(2022)第一多字词手写输入。响应于第一多字词手写输入,用户设备根据水平书写方向来在手写输入界面的候选显示区域中呈现(2024)第一多字词识别结果。例如,在图19A中示出了这种情况。在一些实施例中,在垂直输入模式(2026)中进行操作时:用户设备从用户接收(2028)第二多字词手写输入。响应于第二多字词手写输入,用户设备根据垂直书写方向来在候选显示区域中呈现(2030)第二多字词识别结果。例如,在图19C和图19E中示出了这种情况。

在一些实施例中,用户设备接收(2032)用于选择第一多字词识别结果的第一用户输入,例如如图19A-图19B中所示,其中利用用于改变输入方向的输入(例如,旋转设备或选择示能表示1908)暗示地作出选择。用户设备接收(2034)用于选择第二多字词识别结果的第二用户输入,例如如图19C或图19E中所示。用户设备当前在手写输入界面的文本输入区域中显示(2036)第一多字词识别结果和第二多字词识别结果的相应文本,其中根据水平书写方向来显示第一多字词识别结果的相应文本,以及根据垂直书写方向来显示第二多字词识别结果的相应文本。例如,在图19F的文本输入区域808示出了这种情况。

在一些实施例中,手写输入区域接受水平书写方向上的多行手写输入,并具有默认的从上到下的段落方向。在一些实施例中,水平书写方向是从左到右的。在一些实施例中,水平书写方向是从右到左的。在一些实施例中,手写输入区域接受垂直书写方向上的多行手写输入,并具有默认的从左到右的段落方向。在一些实施例中,手写输入区域接受垂直书写方向上的多行手写输入,并具有默认的从右到左的段落方向。在一些实施例中,垂直书写方向是从上到下的。在一些实施例中,第一取向默认是横向取向,并且第二取向默认为纵向取向。在一些实施例中,用户设备在手写输入界面中提供相应的示能表示,以用于在水平输入模式和垂直输入模式之间进行手动切换,而不考虑设备取向。在一些实施例中,用户设备在手写输入界面中提供相应的示能表示,以用于在两种可选书写方向之间进行手动切换。在一些实施例中,用户设备在手写输入界面中提供相应的示能表示,以用于在两种可选段落方向之间进行手动切换。在一些实施例中,示能表示是在一次或连续多次调用时通过输入方向和段落方向的每种可能组合进行旋转的来回切换按钮。

在一些实施例中,用户设备从用户接收(2038)手写输入。手写输入包括在手写输入界面的手写输入区域中提供的多个手写笔画。响应于手写输入,用户设备在手写输入界面的候选显示区域中显示(2040)一个或多个识别结果。在候选显示区域中显示一个或多个识别结果时,用户设备检测(2042)用于从当前手写输入模式切换到另选的手写输入模式的用户输入。响应于用户输入(2044):用户设备从当前手写输入模式切换(2046)到另选的手写输入模式。在一些实施例中,用户设备从手写输入区域清除(2048)手写输入。在一些实施例中,用户设备向手写输入界面的文本输入区域中自动输入(2050)在候选显示区域中显示的一个或多个识别结果中的排序最靠前的识别结果。例如,在图19A-图19B中示出了这种情况,其中当前手写输入模式是水平输入模式,并且另选手写输入模式是垂直输入模式。在一些实施例中,当前手写输入模式是垂直输入模式,并且另选手写输入模式是水平输入模式。在一些实施例中,当前手写输入模式和另选手写输入模式是提供任何两种不同手写输入方向或段落方向的模式。在一些实施例中,用户输入是(2052)将设备从当前取向旋转到不同取向。在一些实施例中,用户输入是调用示能表示以从当前手写输入模式手动切换到另选手写输入模式。

如本文所述,手写输入模块允许用户按照任何时间顺序来输入手写笔画和/或字符。因此,删除多字符手写输入中的各个手写字符并在与被删除字符相同的位置处重写相同或不同的手写字符是有利的,因为这会有助于用户修正长的手写输入,而无需删除整个手写输入。

图20A-图20H示出了示例性用户界面,以用于在视觉上突出显示和/或删除在手写输入区域中当前累积的多个手写笔画中识别的识别单元。在用户设备允许多字符甚至多行手写输入时,允许用户逐个选择、查看和删除多个输入中识别的多个识别单元中的任一个识别单元是尤其有用的。通过允许用户删除手写输入开头或中间的特定识别单元,允许用户对长输入作出校正,而无需用户删除不希望有的识别单元之后的所有识别单元。

如图21A-图21C中所示,用户已在手写输入用户界面802的手写输入区域804中提供了多个手写笔画(例如,笔画2102、2104和2106)。在用户继续向手写输入区域804提供附加笔画时,用户设备更新从在手写输入区域中当前累积的手写输入中识别的识别单元,并根据从更新的识别单元中识别的输出字符来修正识别结果。如图20C中所示,用户设备已从当前的手写输入中识别两个识别单元,并呈现各自包括两个中文字符的三个识别结果(例如,2108、2010和2112)。

在本实例中,在用户书写了两个手写字符之后,用户意识到第一识别单元未正确书写,并且作为结果,用户设备尚未识别和在候选显示区域中呈现期望的识别结果。

在一些实施例中,在用户在触敏显示器上提供轻击手势(例如,接触,随后是在相同位置处的立刻提起)时,用户设备将轻击手势解释为使得在视觉上突出显示在手写输入区域中当前识别的各个识别单元的输入。在一些实施例中,使用另一个预先确定的手势(例如,手写输入区域上方的多手指轻扫手势)使得用户设备突出显示手写输入区域804中的各个识别单元。有时优选轻击手势,因为其相对容易地与手写笔画进行区分,手写笔画通常涉及更长时间的持续接触并且在手写输入区域804内具有接触的移动。有时优选多触摸手势,因为其相对容易地与手写笔画进行区分,手写笔画通常涉及在手写输入区域804内的单次接触。在一些实施例中,用户设备在用户界面中提供可由用户调用(例如,通过接触2114)以使得在视觉上突出显示各个识别单元(例如,如框2108和2110所示)的示能表示2112。在一些实施例中,当有充分的屏幕空间容纳此类示能表示时,优选示能表示。在一些实施例中,可由用户多次连续地调用示能表示,这使得用户设备在视觉上突出显示根据分割栅格中的不同分割链识别的一个或多个识别单元,并用于在已示出所有分割链时关闭突出显示。

如图21D中所示,在用户提供必要的手势以在手写输入区域804中突出显示各个识别单元时,用户设备还在每个突出显示的识别单元上方显示相应的删除示能表示(例如,小的删除按钮2116和2118)。图21E-图21F示出了在用户触摸(例如,经由接触2120)相应识别单元的删除示能表示(例如,用于框2118中第一识别单元的删除按钮2116)时,从手写输入区域804去除相应的识别单元(例如,框2118中)。在这一特定实例中,所删除的识别单元不是在时间上最后输入的识别单元,也不是在空间上沿书写方向最后的识别单元。换句话讲,用户可删除任何识别单元,而不论其何时何处在手写输入区域中被提供。图21F示出了响应于删除手写输入区域中的第一识别单元,用户设备还更新候选显示区域806中显示的识别结果。如图21F中所示,用户设备还删除与从识别结果删除的识别单元对应的候选字符。因而,新的识别结果2120被显示在候选显示区域806中。

如图21G-图21H中所示,在已从手写输入界面804去除第一识别单元之后,用户已在由被删除识别单元先前占据的区域中提供了多个新的手写笔画2122。用户设备已重新分割手写输入区域804中的当前累积的手写输入。基于从手写输入中识别的识别单元,用户设备在候选显示区域806中重新生成识别结果(例如,结果2124和2126)。图21G-图21H示出了在用户(例如,通过接触2128)已选择识别结果中的一个识别结果(例如,结果2124)时,将所选择的识别结果的文本输入到文本输入区域808中。

图22A-图22B是用于示例性过程2200的流程图,其中在视觉上呈现并可独立删除当前手写输入中识别的各个识别单元,而不考虑形成识别单元的时间顺序。图21A-图21H示出了根据一些实施例的过程2200。

在示例性过程2200中,用户设备从用户接收(2202)手写输入。手写输入包括在耦接到设备的触敏表面上提供的多个手写笔画。在一些实施例中,用户设备在手写输入界面的手写输入区域(例如,手写输入区域804)中渲染(2204)多个手写笔画。在一些实施例中,用户设备将多个手写笔画分割(2206)成两个或更多个识别单元,每个识别单元包括多个手写笔画的相应子集。

在一些实施例中,用户设备从用户接收(2208)编辑请求。在一些实施例中,编辑请求是(2210)在手写输入界面中提供的预先确定的示能表示(例如,图21D中的示能表示2112)上方检测到的接触。在一些实施例中,编辑请求是(2212)在手写输入界面中的预先确定的区域上方检测到的轻击手势。在一些实施例中,预先确定的区域在手写输入界面的手写输入区域内。在一些实施例中,预先确定的区域在手写输入界面的手写输入区域外。在一些实施例中,可使用手写输入区域外的另一个预先确定的手势(例如,交叉手势、水平轻扫手势、垂直轻扫手势、倾斜轻扫手势)作为编辑请求。手写输入区域外的手可容易地与手写笔画进行区分,因为其是在手写输入区域外提供的。

在一些实施例中,响应于编辑请求,用户设备在手写输入区域中例如利用图21D中的框2108和2110来在视觉上区分(2214)两个或更多个识别单元。在一些实施例中,在视觉上区分两个或更多个识别单元进一步包括(2216)突出显示手写输入区域中的两个或更多个识别单元之间的相应边界。在各种实施例中,可使用在视觉上区分当前手写输入中识别的识别单元的不同方式。

在一些实施例中,用户设备提供(2218)用于从手写输入区域独立删除两个或更多个识别单元中的每个识别单元的装置。在一些实施例中,用于独立删除两个或更多个识别单元中的每个识别单元的装置是与每个识别单元相邻显示的相应删除按钮,例如如图21D中的删除按钮2116和2118所示。在一些实施例中,用于独立删除两个或更多个识别单元中的每个识别单元的装置是用于在每个识别单元上方检测预先确定的删除手势输入的装置。在一些实施例中,用户设备不在突出显示的识别单元上方可视地显示各个删除示能表示。相反,在一些实施例中,允许用户使用删除手势来删除该删除手势下方的相应识别单元。在一些实施例中,在用户设备以视觉突出显示的方式显示识别单元时,用户设备不接受手写输入区域中的附加手写笔画。相反,预先确定的手势或视觉上突出显示的识别单元上方检测到的任何手势将使得用户设备从手写输入区域去除识别单元,并相应地修正在候选显示区域中显示的识别结果。在一些实施例中,轻击手势使得用户设备在视觉上突出显示手写识别区域中识别的各个识别单元,并且用户然后可使用删除按钮以相反的书写方向来独立删除各个识别单元。

在一些实施例中,用户设备从用户并通过所提供的装置来接收(2224)删除输入,以用于从手写输入区域独立删除两个或更多个识别单元中的第一识别单元,例如如图21E中所示。响应于删除输入,用户设备从手写输入区域去除(2226)第一识别单元中的手写笔画的相应子集,例如如图21F中所示。在一些实施例中,第一识别单元是两个或更多个识别单元中的空间上在初始的识别单元。在一些实施例中,第一识别单元是两个或更多个识别单元中的空间上在中间的识别单元,例如如图21E-图21F中所示。在一些实施例中,第一识别单元是两个或更多个识别单元中的空间上在末尾的识别单元。

在一些实施例中,用户设备从多个手写笔画生成(2228)分割栅格,该分割栅格包括多个交替分割链,该多个交替分割链各自表示从多个手写笔画中识别的相应一组识别单元。例如,图21G示出了识别结果2024和2026,其中识别结果2024是从具有两个识别单元的一个分割链生成的,并且识别结果2026是从具有三个识别单元的另一分割链生成的。在一些实施例中,用户设备从用户接收(2230)两个或更多个连续编辑请求。例如,两个或更多个连续编辑请求可以是图21G中的示能表示2112上的若干个连续轻击。在一些实施例中,响应于两个或更多个连续编辑请求中的每个连续编辑请求,用户设备在视觉上将相应一组识别单元与手写输入区域中的多个交替分割链中的不同交替分割链区分开(2232)。例如,响应于第一轻击手势,在手写输入区域804中突出显示两个识别单元(例如,分别针对字符“帽”和“子”),并且响应于第二轻击手势,突出显示三个识别单元(例如,分别针对字符“巾”、“冒”和“子”)。在一些实施例中,响应于第三轻击手势,任选地从所有识别单元去除视觉突出显示,并且使手写输入区域返回到准备好接受附加笔画的正常状态。在一些实施例中,用户设备提供(2234)用于独立删除手写输入区域中的当前表示的相应一组识别单元中的每个识别单元的装置。在一些实施例中,该装置是用于每个突出显示的识别单元的各个删除按钮。在一些实施例中,该装置是用于在每个突出显示的识别单元上方检测预先确定的删除手势以及用于调用删除预先确定的删除手势下方的突出显示的识别单元的功能的装置。

如本文所述,在一些实施例中,用户设备在手写输入区域中提供连续输入模式。由于手写输入区域的区域限于便携式用户设备上,因此有时希望提供一种对由用户提供的手写输入进行高速缓存的方式,并允许用户重新使用屏幕空间而不提交先前提供的手写输入。在一些实施例中,用户设备提供滚动手写输入区域,其中在用户充分接近手写输入区域的末端时,将输入区域逐渐偏移一定量(例如,一次偏移一个识别单元)。在一些实施例中,由于偏移手写输入区域中的现有识别单元可能会干扰用户的书写过程,并可能干扰识别单元的正确分割,因此重复利用输入区域先前使用的区域而不动态偏移识别单元有时是有利的。在一些实施例中,在用户重新使用由尚未输入到文本输入区域中的手写输入占据的区域时,将用于手写输入区域的顶端识别结果自动输入到文本输入区域中,使得用户可连续提供新的手写输入,而无需明确选择排序最靠前的识别结果。

在一些常规系统中,允许用户在手写输入区域中仍然显示的现有手写输入上方进行书写。在此类系统中,使用时间信息来确定新笔画是否是更早的识别单元或新的识别单元的一部分。此类取决于时间信息的系统对用户提供手写输入的速度和节奏提出了严格要求,许多用户难以满足这种要求。此外,对手写输入进行视觉渲染可能是用户难以破解的混乱情况。因此,书写过程可能让人受挫并且使用户迷惑,从而导致不好的用户体验。

如本文所述,使用隐退过程来指示用户何时可重新使用由先前书写的识别单元占用的区域,并继续在手写输入区域中进行书写。在一些实施例中,隐退过程逐渐降低已在手写输入区域中提供阈值时间量的每个识别单元的可见度,使得在其上方书写新笔画时,现有文本不会在视觉上与新笔画竞争。在一些实施例中,在隐退的识别单元上方自动书写,使得针对该识别单元的排序最靠前的识别结果被输入到文本输入区域中,而不需要用户停止书写并为排序最靠前的识别结果明确提供选择输入。这种对排序最靠前的识别结果的暗示和自动确认提高了手写输入界面的输入效率和速度,并减轻了给用户施加的认知负担,以保持当前文本编写的思路流畅。在一些实施例中,在隐退的识别单元上方进行书写不会导致自动选择排序最靠前的搜索结果。相反,可在手写输入堆栈中高速缓存隐退的识别单元,并与新的手写输入组合作为当前的手写输入。用户可在作出选择之前看到基于在手写输入堆栈中累积的所有识别结果生成的识别结果。

图23A-图23J示出了示例性用户界面和过程,其中例如在预先确定量的时间之后,在手写输入区域的不同区域中提供的识别单元逐渐从其相应区域淡出,并且在特定区域中发生淡出之后,允许用户在该区域中提供新的手写笔画。

如图23A中所示,用户已在手写输入界面804中提供多个手写笔画2302(例如,针对大写字母“I”的三个手写笔画)。用户设备将手写笔画2302识别为识别单元。在一些实施例中,在手写输入区域804中当前示出的手写输入被高速缓存在用户设备的手写输入堆栈中的第一层中。在候选显示区域804中提供基于所识别的识别单元生成的若干个识别结果。

图23B示出了在用户继续向笔画2304的右方书写一个或多个笔画2302时,第一识别单元中的手写笔画2302开始在手写输入区域804中逐渐淡出。在一些实施例中,显示动画以模拟第一识别单元的视觉渲染的逐渐淡出或消散。例如,动画可产生墨水从白板蒸发的视觉效果。在一些实施例中,在整个识别单元中,识别单元的淡出不是均匀的。在一些实施例中,识别单元的淡出随着时间增加,并且最终识别单元在手写区域中完全不可见。然而,即使在手写输入区域804中识别单元不再可见,但是在一些实施例中,不可见的识别单元仍然保留在手写输入堆栈的顶部处,并且从识别单元生成的识别结果继续显示在候选显示区域中。在一些实施例中,不从视图中完全移除淡出的识别单元,直到在其上方写入新的手写输入。

在一些实施例中,用户设备允许在淡出动画开始时就立刻在由淡出的识别单元占据的区域上方提供新的手写输入。在一些实施例中,用户设备允许仅在淡出进展到特定阶段(例如,最淡的水平或直到识别在该区域中完全不可见)之后才在由淡出的识别单元占据的区域上方提供新的手写输入。

图23C示出了第一识别单元(即,笔画2302)已完成其淡出过程(例如,墨水颜色已稳定在非常淡的水平或者已变得不可见)。用户设备已从用户提供的附加手写笔画中识别附加识别单元(例如,针对手写字母“a”和“m”的识别单元),并且在候选显示区域804中呈现更新的识别结果。

图22D-图22F示出了随着时间的推移,以及该用户已在手写输入区域804中提供了多个附加手写笔画(例如,2304和2306)。同时,先前识别的识别单元逐渐从手写输入区域804淡出。在一些实施例中,在已识别识别单元之后,对于每个识别单元开始其淡出过程需要花费预先确定量的时间。在一些实施例中,针对每个识别单元的淡出过程不会开始,直到用户已开始从其输入第二识别单元下游。如图23B-图23F中所示,当以草书风格来提供手写输入时,单个笔画(例如,笔画2304或笔画2306)可能贯穿手写输入区域中的多个识别单元(例如,针对字词“am”或“back”中每个手写字母的识别单元)。

图22G示出了即使在识别单元已开始其淡出过程之后,用户仍然可通过预先确定的恢复输入例如删除按钮2310上的轻击手势(例如,如由紧随立刻提起的接触2308表示的)使其返回到未淡出状态。当恢复识别单元时,其外观返回到正常可见度水平。在一些实施例中,在手写输入区域804中的书写方向的反方向上逐个字符地进行淡出的识别单元的恢复。在一些实施例中,在手写输入区域804中逐个字词地进行淡出的识别单元的恢复。如图23G中所示,已使与字词“back”的识别单元从完全淡出状态恢复到完全未淡出状态。在一些实施例中,当将识别单元恢复成未淡出状态时,针对每个识别单元来重置用于启动淡出过程的时钟。

图22H示出了删除按钮上的持续接触使得从手写输入区域804删除默认书写方向上的最后的识别单元(例如,用于字词“back”中字母“k”的识别单元)。由于删除输入一直被保持,因此在相反的书写方向上独立删除更多的识别单元(例如,针对字词“back”中字母“c”、“a”、“b”的识别单元)。在一些实施例中,识别单元的删除是逐个字词地进行的,并且同时去除从手写输入区域804删除的手写字词“back”的所有字母。图22H还示出了由于在删除针对手写字词“back”中的字母“b”的识别单元之后在删除按钮2310上保持的接触2308,因此先前淡出的识别单元“m”也被恢复。

图23I示出了如果在删除在手写字词“am”中恢复的识别单元“m”之前停止该删除输入,恢复的识别单元将再次逐渐淡出。在一些实施例中,在手写输入堆栈中保持和更新每个识别单元的状态(例如,从一组一个或多个淡出状态和未淡出状态中选择的状态)。

图23J示出了在一些实施例中当用户已在由手写输入区域中的被淡出的识别单元(例如,针对字母“I”的识别单元)占据的区域上方提供了一个或多个笔画2312时,在将笔画2312自动输入到文本输入区域808中之前作出针对手写输入的排序最靠前的识别结果(例如,结果2314)的文本,如图23I-23J所示。如图23J中所示,文本“I am”不再被示为试验性的,而是已被提交在文本输入区域808中。在一些实施例中,一旦已针对完全淡出或部分淡出的手写输入作出文本输入,便从手写输入堆栈中移除手写输入。新输入的笔画(例如,笔画2312)变成手写输入堆栈中的当前输入。

如图23J中所示,文本“I am”不再被示为试验性的,而是已被提交在文本输入区域808中。在一些实施例中,一旦已针对完全淡出或部分淡出的手写输入作出文本输入,便从手写输入堆栈中移除手写输入。新输入的笔画(例如,笔画2312)变成手写输入堆栈中的当前输入。

在一些实施例中,在由手写输入区域中被淡出的识别单元(例如,针对字母“I”的识别单元)占据的区域上方提供笔画2312时,不会将在笔画2312之前作出的针对手写输入的排序最靠前识别结果(例如,结果2314)的文本自动输入到文本输入区域808中。相反,清除手写输入区域804中的当前手写输入(淡出的和未淡出的两者),并在手写输入堆栈中进行高速缓存。将新的笔画2312附加到手写输入堆栈中的高速缓存的手写输入。用户设备基于手写输入堆栈中的当前累积的手写输入的完整性来确定识别结果。在候选显示区域中显示识别结果。换句话讲,即使在手写输入区域804中仅示出当前累积的手写输入的一部分,也基于手写输入堆栈中的高速缓存的整个手写输入(可见部分和不再可见部分两者)来生成识别结果。

图23K示出了用户已在随时间淡出的手写输入区域804中输入了更多笔画2316。图23L示出了在淡出笔画2312和2316上方书写的新笔画2318使得将针对淡出笔画2312和2316的顶端识别结果2320的文本输入到文本输入区域808中。

在一些实施例中,用户任选地在多行中提供手写输入。在一些实施例中,在启用多行输入时,可使用相同的淡出过程来清除手写输入区域,以用于新的手写输入。

图24A-图24B是用于在手写输入界面的手写输入区域中提供淡出过程的示例性过程2400的流程图。图23A-图23K示出了根据一些实施例的过程2400。

在一些实施例中,设备从用户接收(2402)第一手写输入。第一手写输入包括多个手写笔画,并且所述多个手写笔画形成沿与手写输入界面的手写输入区域相关联的相应书写方向分布的多个识别单元。在一些实施例中,当用户提供手写笔画时,用户设备在手写输入区域中渲染(2404)多个手写笔画中的每个手写笔画。

在一些实施例中,用户设备在完全渲染识别单元之后,针对多个识别单元中的每个识别单元来开始(2406)相应的淡出过程。在一些实施例中,在相应的淡出过程期间,第一手写输入中的识别单元的渲染淡出。根据一些实施例,在图23A-图23F中示出了这种情况。

在一些实施例中,用户设备从用户接收(2408)由多个识别单元中的淡出的识别单元占据的手写输入区域的区域上方的第二手写输入,例如如图23I-图23J和图23K-图23L中所示。在一些实施例中,响应于接收到第二手写输入(2410):用户设备在手写输入区域中渲染(2412)第二手写输入并从手写输入区域清除(2414)所有淡出的识别单元。在一些实施例中,不论识别单元是否开始其淡出过程,均在从手写输入区域清除第二手写输入之前在手写输入区域中输入所有识别单元。例如,在图23I-图23J和图23K-图23L中示出了这种情况。

在一些实施例中,用户设备生成(2416)针对第一手写输入的一个或多个识别结果。在一些实施例中,用户设备在手写输入界面的候选显示区域中显示(2418)一个或多个识别结果。在一些实施例中,响应于接收到第二手写输入,用户设备无需用户选择来自动向手写输入界面的文本输入区域中输入(2420)候选显示区域中显示的排序最靠前的识别结果。例如,在图23I-图23J和图23K-图23L中示出了这种情况。

在一些实施例中,用户设备存储(2422)包括第一手写输入和第二手写输入的输入堆栈。在一些实施例中,用户设备生成(2424)一个或多个多字符识别结果,所述一个或多个多字符识别结果各自包括从第一手写输入和第二手写输入的级联形式识别的字符的相应空间序列。在一些实施例中,用户设备在手写输入界面的候选显示区域中显示(2426)一个或多个多字符识别结果,同时对第二手写输入的渲染已替换对手写输入区域中的第一手写输入的渲染。

在一些实施例中,在用户完成识别单元之后过去预先确定的时间段之后,针对每个识别单元来开始相应淡出过程。

在一些实施例中,当用户针对该识别单元之后的下一识别单元开始输入笔画时,针对每个识别单元来开始淡出过程。

在一些实施例中,针对每个识别单元的相应淡出过程的最终状态是针对识别单元具有预先确定的最小可见度的状态。

在一些实施例中,针对每个识别单元的相应淡出过程的最终状态是针对识别单元具有零可见度的状态。

在一些实施例中,在第一手写输入中的最后的识别单元淡出之后,用户设备从用户接收(2428)预先确定的恢复输入。响应于接收到预先确定的恢复输入,用户设备将最后的识别单元从淡出状态恢复(2430)到未淡出状态。例如,在图23F-图23H中示出了这种情况。在一些实施例中,预先确定的恢复输入是在手写输入界面中提供的删除按钮上检测到的初始接触。在一些实施例中,在删除按钮上检测到的持续接触从手写输入区域删除最后的识别单元,并将第二识别单元到最后的识别单元从淡出状态恢复到未淡出状态。例如,在图23G-图23H中示出了这种情况。

如本文所述,多文字手写识别模型对手写字符执行与笔画顺序无关并且与笔画方向无关的识别。在一些实施例中,仅针对与手写识别模型词汇表中的不同字符对应的书写样本的平面图像中包含的空间导出特征来训练识别模型。由于书写样本的图像不包含与图像中包含的各个笔画相关的任何时间信息,因此所得的识别模型与笔画顺序无关并且与笔画方向无关。

如上所述,与笔画顺序和笔画方向无关的手写识别相对于常规识别系统提供许多优点,该常规识别系统依赖于与字符的时间生成相关的信息(例如,字符中的笔画的时间顺序)。然而,在实时手写识别情形中,存在与各个笔画相关的时间信息可用,并且有时利用这种信息来改善手写识别系统的识别精确性是有益的。下文描述一种将时间导出的笔画分布信息集成到手写识别模型的空间特征提取中的技术,其中使用时间导出的笔画分布信息不会破坏手写识别系统的笔画顺序和/或笔画方向独立性。基于与不同字符相关的笔画分布信息,在利用显著不同组的笔画产生的外观相似字符之间进行区分成为可能。

在一些实施例中,在将手写输入转换成用于手写识别模型(例如,CNN)的输入图像(例如,输入位图图像)时,与各个笔画相关联的时间信息丢失。例如,对于中文字符“国”,可使用八个笔画(标记为图27中的#1-#8)来书写该中文字符。针对该字符的笔画的顺序和方向提供了与该字符相关联的某些唯一性特征。捕获笔画顺序信息和笔画方向信息而不破坏独立于识别系统的笔画顺序和笔画方向的一种未试验过的方式是在训练样本中明确枚举笔画顺序和笔画方向方面的所有可能的排列组合。但即使对于复杂度仅适中的字符而言,这也会有超过十亿种可能性,这使得在实践中不可行,即使不是不可能的话。如本文所述,针对每个书写样本来生成笔画分布概况,其抽象出笔画生成的时间方面(即,时间信息)。训练书写样本的笔画分布概况以提取一组时间导出特征,接下来将它们与(例如,来自输入位图图像)空间导出特征组合,以改善识别精确性,而不影响手写识别系统的笔画顺序和笔画方向独立性。

如本文所述,通过计算多种像素分布以表征每个手写笔画来提取与字符相关联的时间信息。当向给定方向投影时,字符的每个手写笔画获取确定性图案(或外形)。尽管这种图案自身可能不足以明确地识别笔画,但在与其他相似图案组合时,其可能足以捕获这一特定笔画固有的特定特性。按顺序将这种笔画表示与空间提取特征(例如,基于CNN中的输入图像的特征提取)集成提供了可用于在手写识别模型的字汇中的外观相似的字符之间进行消歧的正交信息。

图25A-图25B是用于在训练手写识别模型期间集成手写样本的时间导出特征和空间导出特征的示例性过程2500的流程图,其中所得的识别模型保持独立于笔画顺序和笔画方向。在一些实施例中,在向用户设备(例如,便携式设备100)提供训练过的识别模型的服务器设备上执行示例性过程2500。在一些实施例中,服务器设备包括一个或多个处理器和包含指令的存储器,该指令当由一个或多个处理器执行时用于执行过程2500。

在示例性过程2500中,设备独立地训练(2502)手写识别模型的一组空间导出特征和一组时间导出特征,其中针对各自为用于相应输出字符集中的相应字符的手写样本的图像的训练图像的语料库来训练该组空间导出特征,并且针对笔画分布概况来训练该组时间导出特征,每个笔画分布概况以数字方式表征针对输出字符集中的相应字符的手写样本中的多个笔画的空间分布。

在一些实施例中,独立训练该组空间导出特征进一步包括(2504)训练具有输入层、输出层和多个卷积层的卷积神经网络,该卷积层包括第一卷积层、最后卷积层、第一卷积层和最后卷积层之间的零个或更多个中间卷积层,以及最后卷积层和输出层之间的隐藏层。图26中示出了示例性卷积网络2602。可通过与图6中所示的卷积网络602基本相同的方式来实现示例性卷积网络2602。卷积网络2602包括输入层2606、输出层2608、多个卷积层,该多个卷积层包括第一卷积层2610a、零个或更多个中间卷积层以及最后卷积层2610n,以及最后卷积层和输出层2608之间的隐藏层2614。卷积网络2602还包括根据图6中所示的布置的内核层2616和子采样层2612。卷积网络的训练基于训练语料库2604中的书写样本的图像2614。获取空间导出特征,并通过使训练语料库中的训练样本的识别误差最小化来确定与不同特征相关联的相应权重。一旦经过训练,便将相同的特征和权重用于识别训练语料库中不存在的新手写样本。

在一些实施例中,独立训练该组时间导出特征进一步包括(2506)向统计模型提供多个笔画分布概况,以确定多个时间导出的参数和针对多个时间导出的参数的相应权重,以用于对输出字符集中的相应字符进行分类。在一些实施例中,如图26中所示,从训练语料库2622中的每个书写样本导出笔画分布概况2620。训练语料库2622任选地包括与语料库2604相同的书写样本,但还包括与每个书写样本中的笔画生成相关联的时间信息。向统计建模过程2624提供笔画分布概况2622,在此期间提取时间导出特征并通过基于统计建模方法(例如,CNN、K-最近邻居等)使识别或分类误差最小化来确定针对不同特征的相应权重。如图26中所示,该组时间导出特征和相应权重被转换成一组特征矢量(例如,特征矢量2626或特征矢量2628)并注入卷积神经网络2602的相应层中。所得的网络因此包括彼此正交的空间导出参数和时间导出参数,并共同对字符的识别作出贡献。

在一些实施例中,该设备组合(2508)手写识别模型中的该组空间导出特征和该组时间导出特征。在一些实施例中,组合手写识别模型中的该组空间导出特征和该组时间导出特征包括(2510)向卷积神经网络的卷积层或隐藏层中的一者中注入多个空间导出参数和多个时间导出参数。在一些实施例中,向用于手写识别的卷积神经网络的最后卷积层(例如,图26中的最后卷积层2610n)中注入多个时间导出参数和针对该多个时间导出参数的相应权重。在一些实施例中,向用于手写识别的卷积神经网络的隐藏层(例如,图26中的隐藏层2614)中注入多个时间导出参数和针对多个时间导出参数的相应权重。

在一些实施例中,该设备使用手写识别模型针对用户的手写输入来提供(2512)实时手写识别。

在一些实施例中,该设备从多个书写样本生成(2514)笔画分布概况的语料库。在一些实施例中,多个手写样本中的每个手写样本对应于(2516)输出字符集中的字符,并且针对书写样本的每个构成笔画来独立地保留书写它时的相应空间信息。在一些实施例中,为了生成笔画分布概况的语料库,该设备执行(2518)以下步骤:

对于多个手写样本中的的每个手写样本(2520):设备识别(2522)手写样本中的构成笔画;对于手写样本的所识别的笔画中的每个所识别的笔画,设备计算(2524)沿多个预先确定方向中的每个预先确定方向的相应占空比,该占空比是所述每个笔画方向的投影跨度和所述书写样本的最大投影跨度之间的比率;对于手写样本的所识别的笔画中的每个所识别的笔画,设备还基于所述每个笔画内的相应像素数量和所述书写样本内的总像素数量之间的比率来计算(2526)针对所述每个笔画的相应饱和比。用户设备然后针对手写样本来生成(2528)特征矢量,作为书写样本的笔画分布概况,该特征矢量包括手写样本中的至少N个笔画的相应占空比和相应饱和比,其中N是预先确定的自然数。在一些实施例中,N小于在多个书写样本内的任何单个书写样本中观察到的最大笔画计数。

在一些实施例中,对于多个手写样本中的每个手写样本:设备按照降序来对预先确定方向中的每个预先确定方向上的所识别的笔画的相应占空比进行排序;并且在书写样本的特征矢量中仅包括书写样本的N个排序最靠前的占空比和饱和比。

在一些实施例中,多个预先确定的方向包括书写样本的水平方向、垂直方向、正45度方向和负45度方向。

在一些实施例中,为了使用手写识别模型来针对用户的手写输入提供实时手写识别,设备接收用户的手写输入;并响应于接收到用户的手写输入,与接收手写输入基本上同时地向用户提供手写识别输出。

使用图27中所示的字符“国”,本文出于示例性目的描述了示例性实施例。在一些实施例中,任选地将手写字符的每个输入图像归一化成正方形。在投影到正方形的水平、垂直、+45度对角和-45度对角时,测量每个个体手写笔画(例如,笔画#1,#2,...,以及#8)的跨度。将每个笔画Si的跨度针对四个投影方向分别记录为xspan(i)、yspan(i)、cspan(i)和dspan(i)。此外,还记录跨整个图像观察到的最大跨度。针对四个投影方向将字符的最大跨度分别记录为xspan、yspan、cspan和dspan。出于示例性目的,这里任选地考虑四个投影方向,尽管原则上在各种实施例中可使用任何任意组的投影。图27中示出了四个投影方向上的字符“国”中的笔画中的一个笔画(例如,笔画#4)的最大跨度(例如,表示为xspan、yspan、cspan和dspan)和跨度(例如,表示为xspan(4)、yspan(4)、cspan(4)和dspan(4))。

在一些实施例中,一旦针对所有笔画1到5测量了以上跨度,便计算沿每个投影方向的相应占空比,其中5是与输入图像相关联的各个手写笔画的数量。例如,将针对笔画Si的沿x方向的相应占空比Rx(i)计算为Rx(i)=xspan(i)/xspan。类似地,可计算沿其他投影方向的相应占空比,Ry(i)=yspan(i)/yspan,Rc(i)=cspan(i)/cspan,Rd(i)=dspan(i)/dspan。

在一些实施例中,按照降序独立来对每个方向上所有笔画的占空比进行排序,并且就其在该方向上的占空比而言,针对每个投影方向来获取输入图像中的所有笔画的相应排序。笔画在每个投影方向上的排序反映了每个笔画沿相关联投影方向的相对重要性。这种相对重要性与书写样本中产生笔画的顺序和方向无关。因此,这种基于占空比的排序是独立于笔画顺序和笔画方向的时间导出信息。

在一些实施例中,为每个笔画赋予用于指示该笔画相对于整个字符的重要性的相对权重。在一些实施例中,通过每个笔画中的像素数量与字符中的像素总数量的比率来测量权重。这个比值被称为与每个笔画相关联的饱和比。

在一些实施例中,基于每个笔画的占空比和饱和比,可针对每个笔画来创建特征矢量。对于每个字符,创建包括5S个特征的一组特征矢量。这组特征被称为字符的笔画分布概况。

在一些实施例中,在构造每个字符的笔画分布概况时仅使用预先确定数量的排序最靠前的笔画。在一些实施例中,笔画的预先确定数量为10个。基于前十个笔画,可针对每个字符来生成50个笔画导出的特征。在一些实施例中,将这些特征注入卷积神经网络的最后卷积层或后续隐藏层。

在一些实施例中,在实时识别期间,向已利用空间导出特征和时间导出特征两者训练过的手写识别模式提供识别单元的输入图像。通过图26中所示的手写识别模型的每个层来处理输入图像。在输入图像的处理达到需要笔画分布概况输入的层(例如,最后卷积层或隐藏层)时,向该层中注入识别单元的笔画分布概况。继续处理输入图像和笔画分布概况,直到在输出层2608中提供输出分类(例如,一个或多个候选字符)。在一些实施例中,计算所有识别单元的笔画分布概况,并与识别单元的输入图像一起向手写识别模型提供该笔画分布概况作为输入。在一些实施例中,识别单元的输入图像初始穿过手写识别模型(没有时间训练特征的益处)。当以接近的识别置信度值来识别两个或更多个外观相似的候选字符时,于是在已利用时间导出特征训练过的层(例如,最后卷积层或隐藏层)处向手写识别模型中注入识别单元的笔画分布概况。在识别单元的输入图像和笔画分布概况传送穿过手写识别模型的最后层时,由于其笔画分布概况的差异,因此可更好地区分两个或更多个外观相似的候选字符。因此,使用与如何由各个手写笔画形成识别单元相关的时间导出信息来提高识别精确性,而不会影响手写识别系统的笔画顺序和笔画方向独立性。

为了解释的目的,前面的描述是通过参考具体实施例来进行描述的。然而,上面的示例性论述并非意图是穷尽的,也并非旨在将本发明限制为所公开的精确形式。根据以上教导内容,许多修改形式和变型形式都是可能的。选择和描述实施例是为了充分阐明本发明的原理及其实际应用,以由此使得本领域的其他技术人员能够充分利用具有适合于所构想的特定用途的各种修改的本发明以及各种实施例。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1