首页> 中国专利> 用于手写文本的自动语言检测的系统和方法

用于手写文本的自动语言检测的系统和方法

摘要

用于手写文本的自动语言检测的方法由系统和设备执行。在将手写文本的表示发送给语言识别引擎之前,这种自动语言检测被执行。包括一个或多个书写笔画的手写输入从输入接口被接收,并且被与输入的坐标和做出输入的时间相关联。手写输入基于坐标和时间被分组为单词。书写笔画被规范化,并且然后单词单独地被变换以生成语言向量,诸如通过递归神经网络。语言向量被用于针对手写输入确定语言概率。基于语言概率,手写输入被提供给特定语言识别引擎,以在转换或转录之前确定其语言。

著录项

  • 公开/公告号CN112204506A

    专利类型发明专利

  • 公开/公告日2021-01-08

    原文格式PDF

  • 申请/专利权人 微软技术许可有限责任公司;

    申请/专利号CN201980036282.1

  • 发明设计人 涂霄;王喆;

    申请日2019-05-13

  • 分类号G06F3/01(20060101);G06F3/0488(20130101);G06F3/0354(20130101);G06F40/263(20200101);G06F40/284(20200101);G06K9/00(20060101);G06K9/22(20060101);G06K9/68(20060101);G06N5/04(20060101);

  • 代理机构11256 北京市金杜律师事务所;

  • 代理人黄倩

  • 地址 美国华盛顿州

  • 入库时间 2023-06-19 09:29:07

说明书

背景技术

手写识别系统允许用户输入手写文本,然后该手写文本可以被变换或转换成键入文本。当前的手写输入系统要求用户明确下载并且启用语言包以执行这些功能。在操作过程期间,用户将输入的语言明确告知系统。当前一些在线转换系统将手写文本的笔画(stroke)同时提供给所有可用的语言识别器。然后,每个语言识别器生成候选和针对输入的对应置信度得分列表。在这种情况下,可能结果的建议面板包括来自不同语言的结果,这些结果在被提供给用户时被混合在一起。同时调用所有语言识别器会浪费资源(例如,处理器、存储器、功率等),并且不适合客户端侧应用。此外,以有意义地挑选正确结果的方式来校准每个识别器的置信度得分既复杂又困难,并且这种方法无法随所涉及语言的数目而扩展。通常,这样的语言识别器会在建议面板中以混合在一起的多种不同语言产生结果/建议。

发明内容

提供本发明内容以便以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在被用于限制所要求保护的主题的范围。

用于手写文本的自动语言检测的方法由系统和设备执行。在将手写文本的表示发送到语言识别引擎之前,自动语言检测可以被执行。自动语言检测通过确定用于转换的特定语言识别引擎,而不是使用多个用于转换的引擎来转换文本,来减少针对文本转换的性能损失。因此,本文中提供了用于高效执行手写文本的自动语言检测及其转换或转录(transcription)的技术。

例如,包括一个或多个书写笔画的手写文本输入可以从输入接口被接收。手写文本输入被与输入的坐标和做出输入的时间相关联。手写输入至少基于坐标和时间而被分组为单词。书写笔画被规范化(normalize),并且然后单词单独地被变换以生成语言向量,诸如通过递归神经网络(recurrent neural network,RNN)或双向RNN。语言向量被用于针对手写输入确定语言概率。至少基于语言概率,手写输入被提供给特定语言识别引擎,以在尝试进行其转换或转录之前针对手写输入确定语言。在语言确定中也可以使用以某些语言中呈现的符号。

下面参考附图详细描述其他特征和优点以及各种示例的结构和操作。注意,想法和技术不限于本文中描述的特定示例。本文中提出这样的示例仅出于说明性目的。基于本文中包含的教导,附加示例对(多个)相关领域的技术人员将是很清楚的。

附图说明

包含在本文中并且构成说明书的一部分的附图示出了本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并且使得相关领域的技术人员能够制造和使用实施例。

图1示出了根据示例实施例的包括用于针对手写文本执行自动语言检测的语言检测器的联网系统的框图。

图2示出了根据示例实施例的用于针对手写文本执行自动语言检测的语言检测系统的框图。

图3示出了根据示例实施例的用于针对手写文本执行自动语言检测的流程图。

图4示出了根据示例实施例的用于手写文本的基于符号的自动语言检测的流程图。

图5示出了根据示例实施例的用于接受手写笔画的输入接口的图。

图6示出了根据示例实施例的递归神经网络的框图。

图7示出了根据示例实施例的软判决功能的图。

图8示出了根据示例实施例的双向递归神经网络的框图。

图9示出了可以被用于实现各种示例实施例的示例移动设备的框图。

图10示出了可以被用于实现实施例的示例计算设备的框图。

通过以下结合附图阐述的详细描述,实施例的特征和优点将变得更加明显,在附图中,相似的附图标记始终标识相应的元素。在附图中,相似的附图标记通常表示相同、功能相似和/或结构相似的元素。元素首次出现的图由对应附图标记中(多个)最左边的数字指示。

具体实施方式

I.引言

以下详细描述公开了很多实施例。本专利申请的范围不限于所公开的实施例,而是还包括所公开的实施例的组合以及对所公开的实施例的修改。

在说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特性。而且,这样的短语不一定是指相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,可以认为结合其他实施例(无论是否明确描述)来实现这样的特征、结构或特性在本领域技术人员的知识范围内。

在讨论中,除非另有说明,否则修饰本公开的实施例的一个或多个特征的条件或关系特性的形容词(例如,“基本上”,“近似地”和“大约”)被理解为表示条件或特性被定义为在针对其预期的应用的实施例的操作可接受的容限内。

此外,应当理解,本文中使用的空间描述(例如,“上方”、“下方”、“上部”、“左侧”、“右侧”、“下部”、“顶部”、“底部”、“垂直”、“水平”等)仅是出于说明的目的,并且本文中描述的结构和附图的实际实现可以在空间上以任何取向或方式布置。

很多示例性实施例描述如下。注意,本文中提供的任何节/小节标题都不旨在是限制性的。在整个本档文中描述了实施例,并且在任何节/小节下可以包括任何类型的实施例。此外,在任何节/小节中公开的实施例可以以任何方式与在相同节/小节和/或不同节/小节中描述的任何其他实施例组合。

下面的部分II描述了用于执行手写文本的自动语言检测的示例实施例,其中部分II.A描述了自动检测手写文本的语言的系统和设备的示例实施例,并且部分II.B描述了所利用的算法和递归神经网络的示例实施例。下面的部分III描述了可以用于实现本文中描述的实施例的特征的移动和计算设备实施例。下面的部分IV介绍了附加示例和优点并且部分V提供了一些总结性说明。

II.示例实施例

提供了用于针对手写文本执行自动语言检测的方法、系统和设备。所公开的实施例提供了可以在将手写文本的表示发送给语言识别引擎之前执行的自动语言检测,以减少文本转换的性能损失。也就是说,通过在文本转换之前确定要利用的特定语言识别引擎,而不是针对每个转换跨多个引擎转换文本,极大地减少了资源利用(例如,存储器、处理器、功率、网络带宽等)。因此,本文中提供了用于手写文本的自动语言检测及其转换的有效执行的技术,该技术允许在客户端和边缘设备上利用实现。简而言之,与先前的解决方案不同,通过预先确定手写文本的语言来执行所描述的自动语言检测不会占用大量资源,因此不需要占用大量资源的服务器/云主机来执行其功能。本文中预期,根据公开的实施例,可以从手写文本确定任何类型的语言。

在一个实施例中,在选择语言识别引擎并且尝试转换手写文本之前,语言确定逐单词被做出。也就是说,软判决至少基于手写文本输入而被做出,使得单个或特定语言识别引擎可以被运行以识别输入。例如,输入分析器可以被调用以将手写文本输入的笔画分组为单词,并且将输入分类为书写或图画。可以至少基于笔画相对于输入接口和彼此的坐标以及笔画相对于彼此的被做出的时间来将笔画的组确定为单词。

作为单词的输入可以被提供给语言通用引擎(即,不依赖于语言的引擎),以在手写文本输入被发送到特定语言识别器之前检测手写文本输入的语言的记号。通用引擎可以包括各种组件,诸如但不限于特征化器(featurizer)、递归神经网络(RNN)、软判决引擎等。特征化器可以对分组后的单词输入的笔画进行规范化,并且然后对经规范化的笔画进行采样以确定其特性。RNN提取特征化输入并且生成输出向量。在实施例中,RNN可以实现门控递归单元(GRU)或长短期记忆(LSTM)单元,并且可以是单向或双向的。RNN的输出向量被提供给软判决引擎以生成手写文本的语言概率。

随后,特定语言识别引擎可以被标识和选择。手写文本输入可以被提供给所标识的特定语言识别引擎以最终确定语言,从而使得手写文本输入由单个转换工具转换。当单词被转换或转录时,其可以经由UI在显示设备上被提供以供用户查看和/或选择。另外,在检测/识别之后,用户的笔记可以用语言进行标记或以其他方式标识。

尽管本文中针对实时手写文本输入描述一些实施例以用于说明,但是实施例不限于此。例如,手写可以被存储在文件中,该文件随后(在任何时候)被提供用于本文中描述的自动语言检测。

以下更详细地描述这些和另外的实施例。

A.自动检测手写文本的语言的系统和设备的示例实施例

在实施例中,系统和设备可以以各种方式被配置以用于自动检测手写文本的语言。例如,图1是根据实施例的包括用于针对手写文本执行自动语言检测的语言检测器的联网系统100(“系统100”)的框图。如图1所示,系统100包括客户端设备102a、客户端设备102b、语言检测主机系统104、存储装置114和云存储系统116,它们可以通过网络110彼此通信。应当注意,在各种实施例中,可以存在任何数目的客户端设备、主机系统和/或云存储系统。另外,根据实施例,系统100中可以存在图1所示的组件的任何组合。

如上所述,客户端设备102a、客户端设备102b、语言检测主机系统104和云存储系统116经由网络110通信地耦合。网络110可以包括连接计算设备和服务器的任何类型的通信链路,诸如但不限于互联网、有线或无线网络及其部分、点对点连接、局域网、企业网络等。

如本文所述,云存储系统116可以包括一个或多个服务器计算机或计算设备,其可以包括一个或多个分布式或“基于云的”服务器、或者管理存储设备的任何其他类型的计算设备。这样的存储设备可以包括任何类型的物理硬件存储装置,并且可以包括大容量存储机架、集群、数据中心等。云存储系统116可以包括不同拓扑和/或地理位置的部分。云存储系统116可以存储用于训练RNN和/或语言转换的语言集、或者本文中描述的其他语言相关功能。

语言检测主机系统104可以包括一个或多个服务器计算机或计算设备,其可以包括一个或多个分布式或“基于云”的服务器。语言检测主机系统104可以包括内部或外部存储装置,其可以是分布式的,诸如但不限于存储装置114。语言检测主机系统104被配置为使用训练器106训练不同语言的RNN模型,并且还被配置为使用语言检测器108自动检测手写文本的语言。在实施例中,语言检测主机系统104可以被配置为存储语言集。本文中预期,可以由语言检测主机系统104存储和/或管理任何数目的语言集。经由网络110或以其他方式通信连接的远程数据库或存储装置(诸如存储装置114)可以被用作语言检测主机系统104的一部分并且被用于这样的存储装置。

在一个示例中,语言检测主机系统104是根据本文中的实施例的用于托管要管理的数据集的“云”平台/架构。云平台/架构可以包括一组联网计算资源,包括服务器、路由器等,这些资源是可配置的,是可共享的,提供数据安全性,并且通过网络(诸如互联网)可访问。因此,对于通过网络访问应用的实体以及对于语言检测主机系统104本身,训练器106和语言检测器108可以是在该资源上被运行的操作系统之上或之内在该资源上被运行的云实用程序/应用。云平台可以支持多租户方,其中基于云平台的软件(诸如工作服务108)服务多个租户方,每个租户方包括共享对云平台的软件服务的公用访问的一个或多个用户。此外,云平台可以支持被实现为运行虚拟机(所仿真的计算机系统,包括操作系统)的硬件、软件和/或固件的管理程序。管理程序呈现可以根据所公开的实施例使用的虚拟操作平台。

训练器106被配置为训练用于语言检测的RNN模型,该RNN模型用于标识与手写文本相关联的语言。例如,训练器106被配置为对任何语言的语言集执行离线训练,以针对语言检测器108中的RNN实现构建语言特定模型,如下所述。本文中可以预期,各种形式的训练可以与训练器106一起使用,以生成用于RNN实现的语言特定模型。模型可以由语言检测主机系统104以本文中描述的方式存储,和/或可以被提供给客户端设备102a/客户端设备102b以从而进行存储和使用。

如所示出的,客户端设备102a、客户端设备102b和语言检测主机系统104还包括语言检测器108的实例。语言检测器108以各种方式配置为自动检测手写文本的语言。例如,语言检测器108被配置为在将手写文本的表示发送给语言识别引擎之前执行自动语言检测。如本文所述,手写文本输入可以包括一个或多个书写笔画。语言检测器108被配置为至少基于书写笔画的坐标和时间戳从书写笔画确定单词。语言检测器108还被配置为对笔画进行规范化并且单独地变换单词以例如经由RNN生成语言向量。语言检测器108被配置为利用语言向量并且确定手写输入的语言概率,该语言概率然后可以用于选择特定语言识别引擎以在尝试手写输入的转换之前确定手写输入的语言。下面提供有关语言检测器的更多细节。

客户端设备102a和客户端设备102b可以是任何类型的计算设备或计算系统、终端、个人计算机、膝上型计算机、平板设备、智能电话、游戏机、车辆、IoT设备等,其例如可以由用户用来自动检测手写文本输入的语言,如本文所述。客户端设备102a和/或客户端设备102ba的用户可以经由一个或多个用户接口(UI)和/或输入设备(未示出,但是在下面进一步详细描述)来提供手写文本输入。这样的UI和/或输入设备可以具体地与手写文本输入相关联,或者可以是可以从其得出手写输入的标准类型(例如,触摸屏)。

注意,如本文所述,实施例适用于被训练为RNN模型的任何语言或方言。因此,语言检测主机系统104、设备102a和客户端设备102b可以以各种方式配置为针对手写文本执行自动语言检测。例如,图2是被配置为针对手写文本执行自动语言检测的语言检测系统200(在本文中为“系统200”)的框图。系统200可以是图1的语言检测主机系统104、设备102a和/或客户端设备102b的实施例。系统200描述如下。

系统200包括计算设备202,该计算设备202可以是任何类型的服务器计算机或计算设备,如本文中其他地方所提及的,或以其他方式已知的,包括基于云的服务器实现、分布式实现等。如图2所示,系统200和计算设备202包括一个或多个处理器(“处理器”)204、一个或多个存储器和/或其他物理存储设备(“存储器”)206、一个或多个网络接口(“网络接口”)226、以及可以是图1的语言检测器108的实施例的语言检测器208。系统200还包括UI218、输入接口220、语言识别引擎222和转换器224。系统200还可以包括附加组件(为了简洁和说明清楚起见而未示出),包括但不限于本文中的其他系统的组件和子组件(诸如外部存储装置(例如,图1的存储装置114)等)、以及下面关于图9和图10描述的那些(诸如操作系统、显示器等)。

处理器204和存储器206可以分别是本文中描述的和/或受益于本公开的(多个)相关领域技术人员将理解的任何类型的处理器电路或存储器。处理器204和存储器206各自可以分别包括一个或多个处理器或存储器、不同类型的处理器或存储器、远程处理器或存储器、和/或分布式处理器或存储器。例如,一个或多个处理器204可以包括处理系统。处理器204包括被配置为执行计算机程序指令的电路系统,诸如但不限于语言检测器208、UI 218、语言识别引擎222和/或转换器224的实施例,该计算机程序指令可以被实现为用于执行手写文本的自动语言检测的计算机程序指令,如本文所述。存储器206被配置为存储这样的计算机程序指令/代码,并且存储在本公开中描述的其他信息和数据,包括但不限于语言集、RNN模型等。在一些实施例中,图1的存储装置114也可以被包括在系统200中,例如作为存储器206的一部分,作为持久性的非易失性存储装置。注意,在其他实施例中,语言检测器208、语言识别引擎222和/或转换器224可以替代地以硬件实现,诸如包括以下的电气电路:晶体管、逻辑门、运算放大器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)和/或其他硬件。

网络接口226可以是任何类型的有线和/或无线网络适配器、调制解调器等,其被配置为使得系统200能够通过网络与其他系统/设备通信,诸如系统200与在如本文中描述的网络110的网络中利用的其他系统/设备之间的通信,例如,以上参考图1和系统100描述的那些。

UI 218可以是任何类型的用户接口,并且可以被包括在计算设备202的操作系统中或与之一起。UI 218可以具体地与手写文本输入相关联,或者可以是可以从其得出手写输入的标准类型的UI(例如,触摸屏)。UI 218被配置为使得用户能够与计算设备202交互,以提供手写文本输入和/或显示语言识别输出,包括转换、转录等。此外,所描述的实施例通过手写文本的语言检测的改进来提供对UI 218的改进。例如,如上所述,当前系统对于手写文本识别具有局限性,包括同时调用所有语言识别器,这是资源消耗的并且不适用于客户端侧应用。本文中的实施例提供了调用单个特定语言识别器的能力,而同时通过以一种语言提供特定逐单词的结果来整理UI,而不是在建议面板中示出包括混合在一起的不同语言的结果或建议(通常以多种语言,这对用户来说是令人困惑和不希望看到的)。

输入接口220被配置为使得用户能够将手写文本输入录入(enter)到计算设备202。在实施例中,输入接口220可以包括触摸板、触摸屏、显示器、平板电脑、相机、运动检测器等,其被配置为识别来自用户的手写文本并且将其记号/表示提供给计算设备202的语言检测器208。输入接口220还可以包括网络接口226的一部分以接收来自整个网络的带有手写文本的文件,或者可以包括用以从存储器206接收这样的文件或数据的其他计算机硬件。这样的文件或数据可以使用允许被保存的直接用户交互的输入接口220来生成,也可以是从用户或其他人已经在其上书写的硬拷贝源的的相机(视频或图像)或扫描仪生成的文件/数据。

语言识别引擎222可以是被配置为至少基于接收输入来确定或预测语言的任何类型的语言识别引擎。在实施例中可以存在语言识别引擎222的一个或多个实例,并且可以由语言识别引擎222的一个或多个实例确定任何数目的语言。在实施例中,语言识别引擎222中的单个特定语言识别引擎222针对手写文本输入的给定单词被调用或执行一次。

转换器224可以是被配置为至少基于接收输入来转换或转录手写文本的任何类型的语言转换器或转录器。例如,转换器224可以被配置为将中文的手写文本输入转换成英语。另外,转换器224可以被配置为将手写文本输入(例如,中文、英文等)转换成其电子表示。例如,用户的手写文本可以被转录为文件或以容易被其他人读取、可搜索等的字体显示。在实施例中可以存在转换器224的一个或多个实例,并且可以通过转换器224的一个或多个实例转换/转录任何数目的语言。在一些实施例中,转换器224可以驻留在语言检测主机系统104处和/或在云中。

语言检测器208包括本文中描述的用于针对手写文本执行自动语言检测的多个组件。如所示出的,语言检测器208包括输入分析器210、特征化器212、RNN和软判决引擎214以及引擎选择器216。尽管为了说明清楚而分别示出,但是在实施例中,输入分析器210、特征化器212、RNN、软判决引擎214和/或引擎选择器216中的一个或多个可以组合在一起和/或作为系统200的其他组件的一部分。例如,特征化器212和RNN以及软判决引擎214可以构成检测管理器228的至少一部分。在一些实施例中,可以包括少于图2所示的语言检测器208的所有组件。在一个实施例中,语言检测器208和/或计算设备202的一个或多个组件可以被存储在存储器206中,并且可以由处理器204执行。

输入分析器210被配置为接收手写文本输入或其表示,并且至少基于手写文本的笔画来确定单词。特征化器212被配置为对单词的笔画进行采样和规范化。RNN和软判决引擎214被配置为单独地对经规范化的单词进行变换以生成用于确定语言概率的向量。引擎选择器216被配置为至少基于概率来调用或激活特定语言识别引擎。

另外,在检测/识别语言之后,可以由语言检测器208和/或语言识别引擎222之一根据语言来标记或以其他方式标识用户的笔记。这样的标签或标识符可以在用户接口上的手写笔记附近被显示给用户,和/或可以例如与手写笔记的表示一起被持久地存储在文件中。下面描述关于语言检测器208及其组件的更多细节。

因此,语言检测器208可以各种方式操作以针对手写文本执行自动语言检测。例如,图3示出了根据示例实施例的用于针对手写文本执行自动语言检测的流程图300。语言检测器208可以根据流程图300进行操作。至少基于以下描述,其他结构和操作示例对于(多个)相关领域的技术人员将是很清楚的。关于图1的系统100和图2的系统200,流程图300描述如下。

流程图300开始于步骤302。在步骤302中,手写输入从输入接口被接收,手写输入包括一个或多个书写笔画。例如,可以与输入接口220之一相关联地显示UI 218中的UI。用户可以与输入接口220交互以在其上进行手写文本表示,该手写文本表示被捕获并且提供给语言检测器208。在实施例中,输入接口220和/或输入分析器210被配置为追踪手写文本输入的笔画,这在用户开始动作时开始并且在用户停止动作并且从输入接口220移除或脱离用于书写的对象时结束。这可以被称为从“下笔到提笔(pen down to pen up)”的追踪,并且适用于用传统书写工具、手写笔、光笔、用户的手指等进行的手写文本。输入接口220可以实时或近似实时地,以每个笔画为单位,以每个单词为单位,以每个行为单位,以每个段落为单位,以指定时间间隔等向语言检测器208提供手写文本输入。

在示例中,手写文本可以被相机(视频或图像)、扫描仪等捕获。所捕获的手写文本的视频可以以与以上在该步骤(302)中描述的类似的方式被处理,而手写文本的静止图像可以在不使用笔画时间的情况下被处理,如下所述。

在步骤304中,手写输入被与坐标时间对集合相关联。例如,在步骤302中接收的手写文本输入关联于与输入接口有关的坐标和做出手写文本输入的笔画的时间的集合。如上所述,输入接口220可以具有坐标(例如,x轴/y轴),诸如与(例如,电容式触摸屏的)像素和/或触摸传感器位置的阵列相关联的坐标。输入接口220和/或输入分析器210被配置为追踪手写输入的笔画并且记载何处和何时笔画被做出的坐标。在笔画过程中,可以在步骤304中追踪任何数目的坐标和相关时间(即,坐标时间对)并且将其相关联。该坐标时间对信息可以与手写文本输入一起被存储。

在手写文本的静止图像捕获中,笔画时间可以在坐标时间对中被忽略,或者可以被赋予空值,或者对于所有坐标时间对可以被赋予相同的值。也就是说,可以从手写文本的静止图像捕获笔画的相对坐标,但是在没有附加信息的情况下,可能无法推断时间属性,这在实施例中可以由用户提供。在时间数据不可用的实施例中,在接下来的步骤中坐标可以被使用以用于对单词进行分组。

在步骤306中,手写输入至少基于坐标时间对集合而被分组为单词。例如,输入分析器210被配置为将手写输入分组为单词。在实施例中,输入分析器210至少基于笔画的坐标时间对集合来形成单词。作为示例,在连续或近似连续的时间段内并且彼此接近地做出给定数目的笔画,随后是输入延迟,并且然后另一数目的笔画可以指示单词被完成并且另一单词已经开始。换言之,输入分析器210使用笔画之间的空间和时间属性以及关系来将笔画分组为单词。下面关于图5提供关于单词分组和空间/时间属性的附加细节。

在步骤308中,与单词相对应的一个或多个笔画被规范化以生成经规范化的单词。例如,特征化器212被配置为对在步骤306中分组的单词的笔画进行采样和规范化。在实施例中,笔画可以被规范化以考虑笔画本身的长度差异和/或不同单词中的笔画的长度差异。以这种方式,可以一致地处理笔画和单词,而不管其相应输入坐标。因为短笔画可能难以分类,所以可以在短笔画的末尾填充多个零,以使每个笔画的长度至少为预定值。当单词的所有笔画都被规范化时,就生成了经规范化的单词。

在步骤310中,经规范化的单词单独地被变换以针对经规范化的单词生成语言向量。例如,RNN和软判决引擎214被配置为变换在步骤308中规范化的单词。每个单词可以使用RNN(例如,双向RNN)单独地被变换。来自步骤308的单词的经特征化/规范化的笔画被输入到RNN中,并且双向RNN的两个方向的最终输出被级联以形成RNN输出语言向量。在使用GRU神经元(cell)的示例中,对于RNN的两个神经元,仅保留最后的时间点的输出,而在其他示例中,可以保留时间点的平均值。在下面的下一小节中提供有关此处描述的RNN的更多细节。

在步骤312中,至少一个语言概率至少基于语言向量而被确定以选择特定语言识别引擎。例如,来自步骤310的语言向量可以被提供给RNN和软判决引擎214的软判决引擎。RNN和软判决引擎214的软判决引擎被配置为至少基于步骤310的语言向量来确定一种或多种语言的语言概率,如与手写文本输入有关的语言概率。语言概率可以是表示给定语言与手写文本输入相对应的可能性的得分或值,例如,介于0和1之间。因此,至少基于至少一个语言概率来选择特定语言和对应的识别引擎。在下面的下一小节中提供有关此处描述的软判决引擎的更多细节。

在步骤314中,手写输入被提供给多个语言识别引擎中的特定语言识别引擎以确定与手写输入相关联的语言。例如,引擎选择器216被配置为选择语言识别引擎222中的单个特定语言识别引擎以识别手写文本输入。在实施例中,引擎选择器216至少基于在步骤312中确定的语言概率值中的最大概率值或者超过预定阈值的概率值的值来选择特定引擎。引擎选择器216可以将手写文本输入提供给语言识别引擎222中的所选择的特定语言识别引擎,和/或可以使特定语言识别引擎至少基于该选择被执行。

在一些实施例中,语言识别引擎222中的附加语言识别引擎222可以被选择。例如,当不存在超过预定阈值的概率值时,或者当几个语言概率值很高时,多个语言识别引擎可以被调用。同样,对于与非常类似于其他语言(例如,拉丁美洲语言或语言方言)的语言相关联的概率,多个语言识别引擎可以被调用。

在步骤316中,手写输入的语言转换或转录被生成。例如,转换器224被配置为转换和/或转录手写文本输入。转换器或转录器可以由语言检测器208和/或语言识别引擎222至少基于在步骤314中的给定手写文本输入的语言的标识而被调用。

在步骤318中,由特定语言识别引擎生成的手写输入的语言转换或转录被提供给用户接口或显示器。例如,可以经由UI 218向用户显示手写文本输入中的单词的转换和/或转录。在实施例中,所显示的转换和/或转录可以是可选择的,以供用户通过UI 218接受。所显示的结果可以是以单一语言,而不是以不同语言的多种可能性,从而改善了用户体验和UI。另外,当用户录入手写文本时,可以实时或近似实时地逐字显示转换和/或转录。

本文中可以预期,除了单词,其他语言特定表示可以用于确定与手写文本输入相关联的语言。例如,根据实施例,也可以使用数字、符号、标点符号等。

例如,图4示出了根据示例实施例的用于针对手写文本执行自动语言检测的流程图400。计算设备202和/或语言检测器208可以根据流程图400进行操作。流程图400可以是图3的流程图300的另一实施例。基于以下描述,另外的结构和操作示例对于(多个)相关领域的技术人员将是很清楚的。关于图2的系统200和图3的流程图300,流程图400描述如下。

流程图400开始于步骤402。在步骤402中,手写输入中的符号被检测。例如,输入分析器210可以被配置为检测手写文本中的符号、或者数字、标点符号等,它们不对应于特定单词。在一些实施例中,输入分析器可以包括单独的符号检测器以执行这样的操作。符号等可以以与例如在流程图300的步骤304和步骤306中的上述单词类似的方式来确定。符号可以具体地与一种或多种语言相关联。作为非限制性示例,在使用美元作为货币量度的国家,美元符号‘$’可以与英语或其他语言相关联,而Renminbi(人民币)或Yuan或Yen(均为

在步骤404中,检测到的符号被提供给检测管理器以确定至少一个语言概率。例如,RNN和软判决引擎214的RNN(例如,作为检测管理器228的一部分)可以被提供有检测到的符号,以用于生成语言概率,如上面例如在流程图300的步骤310和步骤312中针对单词类似地描述的。

因此,流程图300和流程图400(以及系统200的计算系统202和语言检测器208)使得能够执行针对手写文本的自动语言检测。以这种方式,通过一次仅实现一个或很少语言识别引擎,而不是同时向所有引擎提供手写文本输入,可以提高诸如用户设备的计算系统的性能。通过运行较少的引擎来识别文本,减少了处理、存储器、功率和网络带宽的使用,从而非服务器设备被使得能够确定语言并且为用户实时提供转换/转录。

现在转向图5,示出了用于接受手写笔画的输入接口500的示例图。系统200可以是图2中的系统200的UI 218和/或输入接口220的实施例。输入接口500描述如下。

输入接口500可以包括UI 502,该UI 502可以是系统200的UI 218的实施例。也就是说,在实施例中,输入接口500可以提供输入能力,或者可以提供输入和输出能力(例如,如在触摸屏示例中)。在图5中也示出了图画504、单词506和段落508。应当注意,此处示出的示例本质上是说明性的,而不应当被视为限制性的。

关于图画504,用户可以绘制伴随手写文本输入的图形。输入分析器210被配置为在图画/图形与手写文本(诸如字母、单词、符号等)之间进行区分。例如,用户可以绘制覆盖大量空间的电路图,使用几个很长的笔画,和/或利用花费几秒钟的笔画来做出。类似地,可以做出很多非常短的快速笔画。在每种情况下,做出笔画的时间量、笔画的长度、以及笔画的总面积可以指示正在做出的图画或非书写笔画。当诸如图画504的图画或图形被检测到时,与其相关联的任何笔画可以从语言检测器208的另外的组件中被截获。

单词506描述了单词“word”或中文“zì(字)”的表示。如所示出的,用于生成单词506的笔画以数字上的升序被提供。也就是说,笔画510是第一笔画,其后是笔画512和笔画514。单词的下半部分包括笔画516,其后是笔画518,最后是笔画520。当用户经由输入接口500做出这些笔画,它们的时间关系被确定。另外,坐标可以用笛卡尔形式表示,如利用x轴536和y轴538所示,但是可以预期其他类型的坐标系,例如极坐标、球坐标等。笔画510可以以第一坐标标识符(x1,y1)开始并且以第二坐标标识符(x2,y2)结束(即,笔画510的起点和终点)。坐标与其相应时间标识符被配对以生成坐标时间对。

然而,应当注意,附加坐标可以针对任何给定笔画而被确定。例如,笔画510可以包括任何数目的附加坐标,以用作笔画的采样点。附加坐标可以用于弯曲的笔画或改变方向的笔画。在一些实施例中,可以针对任何给定笔画记载设定数目的坐标,或者可以针对笔画的每个长度增量使用坐标。

作为示例,考虑如下场景:其中在完成单词506之后,用户将单词“play”写在单词506下方。因此,单词之间存在停顿,停顿可以用于标识在单词506完成之后被书写的新单词,并且新单词的空间定位(在单词506下方)(包括空白)也可以用作被书写的语言的记号。

关于段落508,示出了两个段落:第一段落522和第二段落532。第一段落包括三行:第一行524、第二行526和第三行528,其包括单词(为了简洁和说明清楚起见,单词530被标记)。所示出的每个单词由笔画组成。在实施例中,手写文本可以按段落、然后按行、然后按单词被分组。如所示出的,包括字母‘W’、‘o’、‘r’和‘d’的单词530首先被写入,然后下一单词“by”被写入。在单词530的真实世界示例中,其字母使用在时间和空间上相关联的很多笔画被书写。由于在单词530与“by”之间存在空格,因此可以通过笔画的接近度来指示这是两个单独的单词,同样,段落508中的手写文本从左到右流动,因此该语言的附加记号被确定。

尽管在本文中指出实时或近似实时的语言识别可以别执行,但是所描述的实施例还提供了针对用户在书写之后选择的手写文本(例如,一个或多个段落、一个或多个行、一个或多个单词等)的按需语言检测,包括从包括手写文本的文件中进行语言检测。例如,在一些实施例中,单词506和/或段落508可以是电子存储文件的一部分。在任何一种这样的情况下,如本文中其他地方所述,可以逐单词地执行语言识别,而可以逐单词或一次全部提供结果。

B.算法和递归神经网络的示例实施例

如本文所述,RNN和软判决引擎可以用作由所公开的实施例执行的手写文本的自动语言识别的一部分。基本RNN神经元(例如,单个神经元)包括向量h,向量h指示神经元的当前状态。在每个时间点t,该神经元将收到输入向量x(t),更新其状态向量h(t),并且生成输出向量。通常,输出向量是状态向量h(t)或h(t)的变换版本。这个过程的数学形式可以建模为:

h

其中θ表示将通过数据进行训练的RNN神经元参数,t为时间,f为激活函数,其可以是“tanh”函数。进一步详细地,考虑:

ht=σh(W

其中Wh和Uh是矩阵,bh是偏差向量,并且σh是“tanh”函数。应当注意,在该σh函数内部是线性变换,该线性变换用于将一个向量映射到另一向量或实数值。

本文中针对RNN神经元描述LSTM和GRU两者,但是它们包括在本描述中不是限制性的。与基本RNN神经元相比,LSTM和GRU神经元的数学形式更复杂,但是LSTM和GRU仍然遵循等式1和2的形式。LSTM和GRU可以在本文中的实施例中用于解决输入序列很长时的问题,RNN的输出往往严重依赖于序列中更新近的输入向量。

该小节中关于图6至图8描述用于RNN和软判决引擎的示例实施例。

图6示出了RNN 600的示例框图。RNN 600可以是图2中的系统200的RNN和软判决引擎214的RNN的实施例。RNN 600示出了由神经元A 602在图6的左侧表示的单向RNN,该神经元A 602获取输入xt 604并且生成输出向量ht 606。在图6的右侧,示出了扩展表示608,其被配置为获取输入序列。

利用输入序列{x0,x1,x2,…xt}(例如,用作手写单词的一部分的笔画),其中xt包括输入接口的画布在相应时间0,1,2,...t的x-y坐标。因此,从RNN 600输出的序列可以被获取为:{h0,h1,h2,…ht}。

在获取RNN 600的输出序列之后,将该序列映射到单个向量h_final。本文中预期,映射向量h_final可以以各种方式被执行,包括但不限于,取h0,h1,h2,…,ht的平均值,仅保持最后的输出ht并且丢弃其余的输出等。向量h_final将被线性投影为实值,然后输入到软判决引擎(例如,“softmax”运算符),诸如图2中系统200的RNN和软判决引擎214之一以生成语言概率。

图7示出了软判决功能702的示例图700。图700可以是图2中的系统200的RNN和软判决引擎214的软判决引擎的实施例。如所示出的,软判决功能702为:

图700包括用于输入‘x’708的软判决功能702的值704(示出为输出‘y’706)。可以看出,该功能将任何实数值输入‘x’708映射到0到1之间的概率值,即,输出‘y’706。该概率被解释为语言概率、或者换言之输入序列属于一种类别或语言的概率。如果从1中减去概率值,则结果是输入序列属于另一类别或语言的概率。在简单的情况下,可以考虑两种类别或语言,例如英语和中文。

但是,软判决功能702(例如,softmax运算符)可以被扩展为多类别情况,例如:

例如,在获取h_final之后,以上关于图6的RNN 600所述,可以生成h_final的多个线性投影。与等式4中的zj相对应的每个投影仍通过矩阵乘法来完成,其中利用训练数据对矩阵进行训练。等式4可以用于计算每种类别/语言的语言概率。在实施例中,可以相应地执行输入笔画的多种语言分类。

现在转向图8,示出了双向RNN 800的示例框图。双向RNN 800可以是图2中的系统200的RNN和软判决引擎214的RNN的实施例。双向RNN 800示出了前向RNN 802和后向RNN804。

前向RNN 802以与上面针对单向RNN 600所述相同的时间顺序获取输入序列{x0,x1,x2,…,xt},并且生成输出序列{f0,f1,f2,…ft}。后向RNN将按照相反的时间顺序获取输入序列{xt,…,x2,x1,x0},并且生成另一输出序列{b0,b1,b2,…,bt}。通过将两个输出向量ft和bt级联在一起来生成每个时间t的最终输出序列,其中:

ht=[ft,bt]。 (等式5)

如上文使用来自等式5的ht关于RNN 600所述,类似地完成确定用于双向RNN 800的h_final以及将软判决引擎(用于单语言和多语言)应用于双向RNN 800。

III.示例移动设备和计算设备实施例

本文中描述的实施例可以以硬件或与软件和/或固件相结合的硬件来实现。例如,本文中描述的实施例可以被实现为被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中的计算机程序代码/指令。替代地,本文中描述的实施例可以被实现为硬件逻辑/电气电路系统。

如本文所述,所描述的实施例(包括图1的系统100、图2的系统200、图5的用户接口500、图6的RNN 600、图7的软判决引擎700和图8的双向RNN 800、以及其任何组件和/或子组件、以及本文中描述的流程图表/流程图和/或本文中描述的其他示例)可以在硬件或具有软件和/或固件的任何组合的硬件中实现,包括实现为被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中的计算机程序代码,或者实现为硬件逻辑/电气电路系统,诸如一起在片上系统(SoC)、现场可编程门阵列(FPGA)或专用集成电路(ASIC)中实现。SoC可以包括集成电路芯片,该集成电路芯片包括处理器(例如,微控制器、微处理器、数字信号处理器(DSP)等)、存储器、一个或多个通信接口、和/或另外的电路和/或嵌入式固件中的一项或多项以执行其功能。

本文中描述的实施例可以在类似于固定或移动计算机实施例中的移动系统和/或计算设备的一个或多个计算设备中实现,包括本文中描述的移动系统和/或计算设备的一个或多个特征、以及替代特征。本文中提供的计算设备的描述被提供用于说明的目的,而非旨在是限制性的。如(多个)相关领域技术人员所知,实施例可以在其他类型的计算机系统中实现。

图9是包括可以实现本文中描述的实施例的移动设备902的示例性移动系统900的框图。例如,在前面的部分中,移动设备902可以用于实现任何系统、客户端或设备或其组件/子组件。如图9所示,移动设备902包括各种可选的硬件和软件组件。移动设备902中的任何组件都可以与任何其他组件通信,尽管为了便于说明并未示出所有连接。移动设备902可以是多种计算设备中的任何一种(例如,移动电话、智能电话、手持计算机、个人数字助理(PDA)等),并且可以允许与一个或多个移动通信网络904(诸如蜂窝或卫星网络)或者与局域网或广域网进行无线双向通信。

移动设备902可以包括用于执行诸如信号编解码、数据处理、输入/输出处理、功率控制的任务和/或其他功能的控制器或处理器910(例如,信号处理器、微处理器、ASIC或其他控制和处理逻辑电路系统)。操作系统912可以控制移动设备902的组件的分配和使用,并且为一个或多个应用程序914(也称为“应用”或“app”)提供支持。应用程序914可以包括公用移动计算应用(例如,电子邮件应用、日历、联系人管理器、web浏览器、消息收发应用)和任何其他计算应用(例如,文字处理应用、地图绘制应用、媒体播放器应用)。

移动设备902可以包括存储器920。存储器920可以包括不可移动存储器922和/或可移动存储器924。不可移动存储器922可以包括RAM、ROM、闪存、硬盘或其他公知的存储器设备或技术。可移动存储器924可以包括在GSM通信系统中公知的闪存或订户身份模块(SIM)卡、或诸如“智能卡”的其他公知的存储器设备或技术。存储器920可以用于存储用于运行操作系统912和应用程序914的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据、或者要经由一个或多个有线或无线网络向一个或多个网络服务器或其他设备发送和/或从其接收的其他数据。存储器920可以用于存储订户标识符(诸如国际移动订户身份(IMSI))、以及设备标识符(诸如国际移动设备标识符(IMEI))。这样的标识符可以被发送到网络服务器以标识用户和设备。

很多程序可以存储在存储器920中。这些程序包括操作系统912、一个或多个应用程序914、以及其他程序模块和程序数据。这样的应用程序或程序模块的示例可以包括例如用于实现以下一项或多项的计算机程序逻辑(例如,计算机程序代码或指令):图1的系统100、图2的系统200、图5的用户接口500、图6的RNN 600、图7的软判决引擎700和图8的双向RNN 800、以及其任何组件和/或子组件、以及本文中描述的任何操作和流程图表/流程图和/或本文中描述的其他示例。

移动设备902可以支持一个或多个输入设备930(诸如触摸屏932、麦克风934、相机936、物理键盘938和/或轨迹球940)、以及一个或多个输出设备950(诸如扬声器952和显示器954)。其他可能的输出设备(未示出)可以包括压电或其他触觉输出设备。某些设备可以供应一个以上的输入/输出功能。例如,触摸屏932和显示器954可以被组合在单个输入/输出设备中。输入设备930可以包括自然用户接口(NUI)。

如本领域中公知的,一个或多个无线调制解调器960可以耦合到(多个)天线(未示出),并且可以支持处理器910与外部设备之间的双向通信。调制解调器960被一般性地示出,并且可以包括用于与移动通信网络904和/或其他基于无线电的调制解调器(例如,蓝牙964和/或Wi-Fi 962)通信的蜂窝调制解调器966。至少一个无线调制解调器960通常被配置用于与一个或多个蜂窝网络通信,诸如用于单个蜂窝网络内、蜂窝网络之间、或移动设备与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络。

移动设备902还可以包括至少一个输入/输出端口980、电源982、卫星导航系统接收器984(诸如全球定位系统(GPS)接收器)、加速度计986和/或物理连接器990,物理连接器990可以是USB端口、IEEE 1394(FireWire(火线))端口和/或RS-232端口。移动设备902的所示组件不是必需的或者是全部包括性的,因为可以删除任何组件,并且可以添加其他组件,如本领域技术人员将认识到的。

在一个实施例中,移动设备902被配置为实现本文中的流程图表/实施例的任何上述特征。用于执行本文中描述的任何操作、步骤和/或功能的计算机程序逻辑可以被存储在存储器920中并且由处理器910执行。

图10描绘了可以在其中实现实施例的计算设备1000的示例性实现。例如,本文中描述的实施例可以在类似于固定或移动计算机实施例中的计算设备1000的一个或多个计算设备中实现,包括计算设备1000的一个或多个特征和/或替代特征。本文中提供的对计算设备1000的描述是出于说明的目的而提供的,并且不旨在是限制性的。如(多个)相关领域技术人员所知,实施例可以在其他类型的计算机系统和/或游戏机等中实现。

如图10所示,计算设备1000包括一个或多个处理器(被称为处理器电路1002)、系统存储器1004和总线1006,总线1006将包括系统存储器1004的各种系统组件耦合到处理器电路1002。处理器电路1002是在一个或多个物理硬件电气电路设备元件和/或集成电路设备(半导体材料芯片或管芯)中实现为中央处理单元(CPU)、微控制器、微处理器和/或其他物理硬件处理器电路的电气和/或光学电路。处理器电路1002可以执行存储在计算机可读介质中的程序代码,诸如操作系统1030、应用程序1032、其他程序1034等的程序代码。总线1006表示使用各种总线架构中的任何总线架构的几种类型的总线结构中的任何总线结构中的一种或多种总线结构,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及处理器或本地总线。系统存储器1004包括只读存储器(ROM)1008和随机存取存储器(RAM)1010。基本输入/输出系统1012(BIOS)被存储在ROM 1008中。

计算设备1000还具有以下驱动器中的一项或多项:用于从硬盘读取和写入硬盘的硬盘驱动器1014、用于从可移动磁盘1018读取或写入可移动磁盘1018的磁盘驱动器1016、和用于从可移动光盘1022(诸如CD ROM、DVD ROM或其他光学介质)读取或写入可移动光盘1022的光盘驱动器1020。硬盘驱动器1014、磁盘驱动器1016和光盘驱动器1020分别通过硬盘驱动器接口1024、磁盘驱动器接口1026和光学驱动器接口1028连接到总线1006。驱动器及其关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。尽管描述了硬盘、可移动磁盘和可移动光盘,但是可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、RAM、ROM和其他硬件存储介质。

多个程序模块可以存储在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统1030、一个或多个应用程序1032、其他程序1034和程序数据1036。应用程序1032或其他程序1034可以包括例如用于实现本文中描述的以下实施例的计算机程序逻辑(例如,计算机程序代码或指令),诸如图1的系统100、图2的系统200、图5的用户接口500、图6的RNN 600、图7的软判决引擎700和图8的双向RNN 800以及其任何组件和/或其子组件、以及本文中描述的曲线图和流程图表/流程图和/或本文中描述的其他示例。

用户可以通过诸如键盘1038和定点设备1040的输入设备将命令和信息录入到计算设备1000中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、触摸屏和/或触摸板、用以接收语音输入的语音识别系统、用以接收手势输入的手势识别系统等。这些和其他输入设备通常通过耦合到总线1006的串行端口接口1042连接到处理器电路1002,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)的其他接口连接。

显示屏1044也经由诸如视频适配器1046的接口连接到总线1006。显示屏1044可以在计算设备1000外部或并入计算设备1000中。显示屏1044可以显示信息,并且是用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户接口。除了显示屏1044,计算设备1000还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。

计算设备1000通过适配器或网络接口1050、调制解调器1052、或用于通过网络建立通信的其他部件连接到网络1048(例如,互联网)。可以是内部的或外部的调制解调器1052可以经由串行端口接口1042连接到总线1006,如图10所示,或者可以使用包括并行接口的另一种接口类型连接到总线1006。

如本文中使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”用于指代物理硬件介质,诸如与硬盘驱动器1014相关联的硬盘、可移动磁盘1018、可移动光盘1022、其他物理硬件介质,诸如RAM、ROM、闪存卡、数字视频盘、zip盘、MEM、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图10的存储器1020)。这样的计算机可读介质和/或计算机可读存储介质与通信介质和传播信号相区别并且不重叠(不包括通信介质和传播信号)。通信介质在诸如载波的调制的数据信号中实施计算机可读指令、数据结构、程序模块或其他数据。术语“调制的数据信号”是指具有以将信息编码到信号中的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括无线介质(诸如声学、RF、红外和其他无线介质)以及有线介质。实施例还涉及这样的通信介质,其与涉及计算机可读存储介质的实施例分开并且不重叠。

如上所述,计算机程序和模块(包括应用程序1032和其他程序1034)可以存储在硬盘、磁盘、光盘、ROM、RAM或其他硬件存储介质上。这样的计算机程序也可以经由网络接口1050、串行端口接口1042或任何其他接口类型接收。当由应用执行或加载时,这样的计算机程序使得计算设备1000能够实现本文中讨论的实施例的特征。因此,这样的计算机程序表示计算设备1000的控制器。

实施例还涉及包括存储在任何计算机可读介质或计算机可读存储介质上的计算机代码或指令的计算机程序产品。这样的计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备包、便携式记忆棒、记忆卡、以及其他类型的物理存储硬件。

IV.其他示例和优点

如上所述,实施本文中的技术的系统和设备可以以各种方式被配置和启用以执行其相应功能。在实施例中,本文中描述的任何流程图表和/或流程图中的一个或多个步骤或操作可以不执行。此外,可以执行除了本文中描述的任何流程图表和/或流程图中的步骤或操作之外的步骤或操作。此外,在示例中,本文中描述的任何流程图表和/或流程图的一个或多个操作可以不按顺序执行,以替代顺序执行,或者彼此或与其他操作部分(或完全)并发地执行。

所公开的实施例提供了在将手写文本的表示发送给语言识别引擎之前执行的自动语言检测,以减少文本转换的性能损失。也就是说,通过在文本转换之前确定要利用的特定语言识别引擎,而不是针对每个转换跨多个引擎转换文本,极大地减少了资源利用(例如,存储器、处理器、功率、网络带宽等)。因此,本文中提供了用于手写文本的自动语言检测及其转换的有效执行的技术,该技术允许在客户端和边缘设备上利用实现。

此外,所公开的实施例在用于针对手写文本执行自动语言检测的软件实现中不存在。当前的解决方案或者要求每个可用语言识别引擎同时尝试识别手写输入,这对于系统资源是浪费和繁重的,或者要求用户在不同语言包之间手动选择,不同语言包必须针对每种用途被下载并且启用。本文中的实施例使得能够针对手写文本进行自动语言检测,以向用户提供无缝且有效地检测语言并且随后转换/转录输入的能力。

所公开的实施例还提供了基于语言的类型来利用手写笔画组作为构造(construct)的能力,以使得语言语义能够作为语言检测的记号。例如,本文中描述的输入分析器和RNN可以被适配为标识和利用这种构造。

如本文所示,在为客户端和边缘设备启用手写文本的自动语言检测的同时,所描述的实施例也适用于基于服务器和基于云的实现。例如,基板应用程序编程接口(API)被用于进行从客户端设备到外部托管语言检测的调用。

对于客户端侧实现,所描述的用于手写文本的语言检测的实施例可以利用客户端设备操作系统、键盘或小键盘的的库存单元(SKU)代码来促进语言检测。也就是说,在实施例中,可以从客户端设备本身确定特性和用户简档信息,并且将其用于语言检测。

在本节中描述的附加示例和实施例可以适用于在本公开的任何其他节或小节中公开的示例。

本文中描述了一种语言检测系统。如本文所述,语言检测系统可以以各种方式来配置和启用以执行针对手写输入的自动语言检测。语言检测系统包括:处理系统,该处理系统包括一个或多个处理器;以及存储器,该存储器被配置为存储要由一个或多个处理器执行的程序代码。该程序代码包括输入分析器,该输入分析器被配置为:从输入接口接收手写输入,手写输入包括一个或多个书写笔画;将手写输入与坐标时间对集合相关联;以及至少基于坐标时间对集合将手写输入分组为单词。该程序代码还包括检测管理器,该检测管理器被配置为:对与单词相对应的一个或多个书写笔画进行规范化以生成经规范化的单词;单独地变换经规范化的单词以针对经规范化的单词生成语言向量;以及至少基于语言向量确定至少一个语言概率,以选择特定语言识别引擎。该程序代码还包括引擎选择器,该引擎选择器被配置为将手写输入提供给多个语言识别引擎中的特定语言识别引擎,以确定与手写输入相关联的语言。

在语言检测系统的实施例中,检测管理器被配置为使用递归神经网络(RNN)单独地分析经规范化的单词以针对经规范化的单词生成语言向量,其中语言向量是RNN的输出。在其他实施例中,RNN是双向RNN,双向RNN从双向RNN的前向部分生成第一向量并且从双向RNN的后向部分生成第二向量,并且检测管理器被配置为级联第一向量和第二向量以生成语言向量。

在语言检测系统的实施例中,书写笔画中的每个书写笔画包括坐标时间对集合中的一个或多个坐标时间对集合,并且输入分析器被配置为:至少基于一个或多个坐标时间对集合将一个或多个书写笔画中的每个书写笔画与一个或多个书写笔画中的其他书写笔画的空间和时间属性进行比较;以及至少基于空间和时间属性将手写输入分组为单词。在又一实施例中,空间和时间属性包括以下至少一项:连续单词相对于先前单词的方向、一个或多个书写笔画之间的时间量、完成书写笔画所花费的时间量、或者一个或多个书写笔画中的书写笔画与其他书写笔画的接近度。

在语言检测系统的实施例中,手写输入包括近似实时地捕获的手写笔画,并且其中输入接口包括用户接口,用户接口是触摸屏、触摸板或相机中的一项或多项。在语言检测系统的实施例中,手写输入包括存储的手写表示,并且其中输入接口包括到表示被存储的存储装置的访问接口。

在语言检测系统的实施例中,输入分析器被配置为检测手写输入中的符号,并且将检测到的符号提供给检测管理器以确定至少一个语言概率。

在一个实施例中,语言检测系统还包括被配置为生成手写输入的语言转换或转录的特定语言识别引擎,并且包括被配置为将由特定语言识别引擎生成的手写输入的语言转换或转录提供给显示器的用户接口。

本文中描述了一种用于语言检测的计算机实现的方法。在实施例中,该方法包括:从输入接口接收手写输入,手写输入包括一个或多个书写笔画;以及至少基于每个手写输入的坐标时间对集合将手写输入分组为单词。该方法还包括:单独地变换单词以针对单词生成语言向量;至少基于语言向量确定至少一个语言概率,以选择特定语言识别引擎;以及将手写输入提供给多个语言识别引擎中的特定语言识别引擎,以确定与手写输入相关联的语言。

在一个实施例中,该方法还包括:将手写输入与坐标时间对集合相关联;以及对与单词的书写笔画相对应的一个或多个书写笔画进行规范化以生成经规范化的单词。

在一个实施例中,该方法还包括以下至少一项:使用RNN单独地分析经规范化的单词以针对经规范化的单词生成语言向量,其中语言向量是RNN的输出;或者使用双向RNN单独地分析经规范化的单词以针对经规范化的单词生成语言向量,双向RNN从双向RNN的前向部分生成第一向量并且从双向RNN的后向部分生成第二向量,其中第一向量和第二向量被级联以生成作为RNN的输出的语言向量。

在该方法的实施例中,书写笔画中的每个书写笔画包括坐标时间对集合中的一个或多个坐标时间对集合。在该实施例中,该方法还包括:至少基于一个或多个坐标时间对集合将一个或多个书写笔画中的每个书写笔画与一个或多个书写笔画中的其他书写笔画的空间和时间属性进行比较,以及至少基于空间和时间属性将手写输入分组为单词。在该方法的另一实施例中,空间和时间属性包括以下至少一项:连续单词相对于先前单词的方向、一个或多个书写笔画之间的时间量、完成书写笔画所花费的时间量、或者一个或多个书写笔画中的书写笔画与其他书写笔画的接近度。

在该方法的实施例中,手写输入包括近似实时地捕获的手写笔画,并且其中输入接口包括用户接口,用户接口是触摸屏、触摸板或相机中的一项或多项,或者手写输入包括存储的手写表示,并且其中输入接口包括到表示被存储的存储装置的访问接口。

在一个实施例中,该方法还包括:检测手写输入中的符号;以及将检测到的符号提供给检测管理器以确定至少一个语言概率。

在一个实施例中,该方法还包括:生成手写输入的语言转换或转录;以及将由特定语言识别引擎生成的手写输入的语言转换或转录提供给显示器的用户接口。

在该方法的实施例中,所述至少基于语言向量确定至少一个语言概率还至少基于一个或多个用户简档属性。

还描述了其上记录有程序指令的计算机可读存储介质,该程序指令在由处理设备执行时执行用于语言检测的方法。在一个实施例中,该方法包括:接收包括一个或多个书写笔画的手写输入;以及至少基于每个手写输入的坐标时间对集合将手写输入分组为单词。该方法还包括:单独地变换单词以针对单词生成语言向量;至少基于语言向量确定至少一个语言概率,以选择特定语言识别引擎;以及将手写输入提供给特定语言识别引擎以确定与手写输入相关联的语言。

在计算机可读存储介质的实施例中,该方法包括至少基于一个或多个坐标时间对集合将一个或多个书写笔画中的每个书写笔画与一个或多个书写笔画中的其他书写笔画的空间和时间属性进行比较,至少基于空间和时间属性将手写输入分组为单词,并且使用双向RNN单独地分析经规范化的单词以针对经规范化的单词生成语言向量,双向RNN从双向RNN的前向部分生成第一向量并且从双向RNN的后向部分生成第二向量,其中第一向量和第二向量被级联以生成作为RNN的输出的语言向量。

在计算机可读存储介质的实施例中,手写输入包括近似实时地捕获的手写笔画,并且其中输入接口包括用户接口,用户接口是触摸屏、触摸板或相机中的一项或多项,或者手写输入包括存储的手写表示,并且其中输入接口包括到表示被存储的存储装置的访问接口。

V.结论

尽管上面已经描述了所公开的主题的各种实施例,但是应当理解,它们仅以示例而非限制的方式给出。(多个)相关领域的技术人员将理解,在不脱离所附权利要求书中限定的实施例的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,所公开的主题的广度和范围不应当由任何上述示例性实施例限制,而应当仅根据所附权利要求及其等同物来限定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号