基于对在线语音命令的使用来学习离线语音命令的制作方法
背景技术:
人们依靠他们的用户设备来执行各种不同的任务。用户设备可以包括例如智能手机、智能手表、平板电脑、智能扬声器、头戴式受话器、汽车、电视、恒温器等。这样的设备可以包括被配置为启用数字助理功能的硬件和软件。这样的应用程序通常称为“数字助理”。
数字助理功能可以包括使用语音识别器来检测用户说出的话语,以及使用语音识别器的语法来识别基于所检测到的话语应当执行的操作。这样的助理功能通常可以被分为在线和离线功能。在线功能可以包括诸如“今天巴黎的天气如何?(whatistheweatherlikeinparistoday?)”、“为我订购大的比萨(orderalargepizzaforme)”的命令。这样的命令需要有效的网络连接,以及来自经由该网络访问的一个或多个服务器的信息。
在许多系统中,离线功能限于不需要网络连接的命令子集。例如,离线数字助理功能可以限于诸如“播放101.5fm(play101.5fm)”、“增加音量(increasevolume)”、“打开空调(turnonairconditioner)”等的命令子集。
技术实现要素:
技术解决方案
本公开针对一种用于更新语音识别器的语法的系统和方法,该语音识别器被存储在用户设备上并且用于执行离线语音命令。通常,本说明书中描述的主题的一个创新方面可以体现在方法中,该方法包括下述动作:在当用户设备通过网络连接到服务器时的第一时间,由所述用户设备检测话语,其中,所述话语包括一个或多个词项;由所述用户设备使用所述网络向所述服务器提供所述话语;由所述用户设备以及从所述服务器接收基于所述一个或多个词项对所述用户设备的语法的更新;在当所述用户设备未通过网络连接到所述服务器时的第二时间,由所述用户设备检测后续话语,其中,所述后续话语包括所述一个或多个词项;以及响应于由所述用户设备在所述第二时间检测所述后续话语:由所述用户设备确定所述后续话语与可以在不从所述服务器请求信息的情况下执行的操作相关联;基于(i)所述后续话语的一个或多个词项,以及(ii)所更新的语法,由所述用户设备识别执行的操作;以及在不从所述服务器请求信息的情况下由所述用户设备发起所述操作的执行。该方面的其他实施例包括编码在计算机存储设备上、被配置为执行方法的动作的相应系统、装置和计算机程序。
这些和其他版本可以可选地包括下述特征中的一个或多个。例如,在一些实施方式中,在不从所述服务器请求信息的情况下由所述用户设备发起所述操作的执行可以包括:由所述用户设备生成包括数据对象的动作,所述数据对象在被执行时使所述用户设备发起响应于所述后续话语的操作的执行;以及由所述用户设备执行所述动作,以在不从所述服务器请求信息的情况下触发所述操作的执行。
在一些实施方式中,该方法还可以包括由用户设备接收动作的动作。该动作可以包括数据对象,该数据对象在被执行时使所述用户设备发起响应于所述后续话语的操作的执行,其中,所述动作由所述服务器生成;以及由所述用户设备将动作存储在所述用户设备上。
在一些实施方式中,在不从所述服务器请求信息的情况下,由所述用户设备发起所述操作的执行可以包括:由所述用户设备访问存储在所述用户设备上的动作;以及由所述用户设备执行所述动作,以在不从所述服务器请求信息的情况下触发所述操作的执行。
在一些实施方式中,由所述用户设备以及从所述服务器接收基于所述一个或多个词项对所述用户设备的语法的更新可以包括:由所述用户设备接收所述一个或多个词项;以及更新所述用户设备的语法以包括所述一个或多个词项。
在一些实施方式中,所述一个或多个词项与阈值时间量相关联,该阈值时间量指示在所述用户设备没有检测到通过用户的所述一个或多个词项的后续话语时,所述一个或多个词项将被包括在语法中的最大时间段。
在一些实施方式中,该方法还可以包括:由所述用户设备确定已经超过所述阈值时间段而所述用户设备未检测到通过所述用户的所述一个或多个词项的后续话语;以及由所述用户设备从所述用户设备的语法中移除所述一个或多个词项。
本说明书中描述的主题的另一个创新方面可以体现在方法中,该方法包括当所述服务器和第一用户设备通过网络连接时,由服务器处理由所述第一用户设备检测到的话语的转录;基于所述话语的转录的处理,由所述服务器确定在不从所述服务器请求信息的情况下能够由所述第一用户设备执行的操作,其中,所述转录包括一个或多个词项;以及由所述服务器基于所述一个或多个词项来提供对所述第一用户设备的语法的更新。该方面的其他实施例包括编码在计算机存储设备上、被配置为执行方法的动作的相应系统、装置和计算机程序。
这些和其他版本可以可选地包括下述特征中的一个或多个。例如,在一些实施方式中,由所述服务器可以基于所述一个或多个词项来提供对所述第一用户设备的语法的更新包括:向所述第一用户设备提供所述一个或多个词项。
在一些实施方式中,该方法还可以包括将所述一个或多个词项与预定时间段相关联的动作,其中,所述预定时间段指示在没有通过用户以执行所述动作的所述一个或多个词项的后续话语的情况下所述一个或多个词项将被包括在所述语法中的最大时间段。
在一些实施方式中,由所述服务器基于所述话语的转录确定在不从所述服务器请求信息的情况下能够由所述第一用户设备执行的操作可以包括由所述服务器生成数据对象,所述数据对象在被执行时使所述第一用户设备发起响应于所接收的话语的操作的执行。
在一些实施方式中,由所述服务器基于所述一个或多个词项提供对所述第一用户设备的语法的更新可以包括:将所生成的数据对象提供给所述第一用户设备。
在一些实施方式中,对所述语法的更新使得所述第一用户设备能够在不从所述服务器请求信息的情况下执行数据对象,所述数据对象发起响应于后续接收的话语的所述操作的执行。
在一些实施方式中,该方法还可以包括下述动作:由所述服务器识别与所述第一用户设备相关联的用户简档;由所述服务器基于所述用户简档,识别向所述第一用户设备的用户注册的第二用户设备;以及由所述服务器基于一个或多个词项,提供对所述第二用户设备的语法的更新。
本发明的作用
可以实现本说明书中描述的主题的特定实施例,以便实现下述优点中的一个或多个。使用本公开的系统和方法更新语音识别器的语法使得语音识别器能够学习可以被用来执行离线语音命令的个性化命令。在不存在或不需要利用网络连接的情况下,这可以提高设备提供有效的数字助理功能的能力。例如,当设备不在网络覆盖范围内或临时网络中断时,可能会发生没有网络连接。因此,本文描述的主题可以提供一种能够在这种情况下更好地起作用的设备。这对于移动设备尤其有用,诸如但不限于安装在汽车中或以其他方式在汽车内运行的那些设备,这些设备可能会定期进入充分的网络覆盖范围之内或之外。另外,即使当网络覆盖范围可用时,本文描述的主题也可以使得能够在不访问网络的情况下有效地提供数字助理功能。这可以导致节省电池、减少带宽和减少cpu资源的使用中的一个或多个。
本公开提供了另一个优点在于:作为自动化过程采用本公开的系统和方法的结果,实现了个性化命令的学习。即,用户不需要发起个性化过程。相反,可以基于部分地基于用户命令和系统响应的系统的正常运行来实现语音识别器语法的个性化。
如上所述,本公开改进了计算机的功能性。对存储在用户设备上的语音识别器的语法的更新使得可以由语音识别器检测到并且使用用户设备所采用的一个或多个控制系统执行的命令的数量增加。因此,这需要与可经由网络访问的服务器进行更少的协商来消除以前未知的语音命令的歧义、提示用户提供用于帮助消除未知语音命令的歧义的反馈,然后从服务器接收可以由用户设备上的一个或多个控制系统处理以执行特定动作(例如,打开空调、关闭空调、将收音机调谐到特定的电台、增加音量、关灯等)的数据对象。与联网服务器的协商越少导致使用更少的网络带宽并且减少从最初发出命令的时间起执行该命令所涉及的等待时间。
通过本公开可以实现其他优点。例如,利用本公开的用户设备可以使用更少的存储空间来存储附加的离线语言包。在一些实施方式中,这可以将语言包的下载和存储量减少到40mb的语言包下载。举另一个例子,服务器本身可以进行更少的处理以创建这些大的语言包,当将更多的语言添加到语音识别器的语法中时,这可以产生累积效应。
其他优点可以包括使用户能够使用用户自己的个性化语言来命令数字助理。这样可以减少数字助理无法理解用户命令的情况,还可以减少用户必须记住以便与他们的设备成功交互的标准命令的数量。
附图说明
图1是用于执行离线语音命令的系统的示例的上下文图。
图2a是用于学习离线语音命令的系统的示例的上下文图。
图2b是已经学习离线语音命令的图2a的系统的上下文图。
图3是用于为用户设备生成个性化语法更新的处理的示例的流程图。
图4是用于个性化用户设备的语法的处理的示例的流程图。
具体实施方式
图1是用于执行离线语音命令112的系统100的示例的上下文图。系统100包括用户设备105、语音识别器110、指令生成单元129和一个或多个控制系统131。
用户设备105可以包括任何设备,该任何设备包括一个或多个处理器和存储指令的一个或多个存储单元,该指令当由一个或多个处理器执行时实现语音识别器110、指令生成单元129,以及一个或多个控制系统131的功能,如本文所述。在图1的示例中,用户设备105是车辆的计算系统。然而,本公开不必限于此。例如,其他类型的用户设备105可以包括智能电话、智能手表、平板电脑、智能扬声器、头戴式耳机、电视、恒温器等。
语音识别单元110包括话语检测单元111和语法128。话语检测单元111可以分析对用户(在这种情况下,用户的名称是bill)发出的话语112,由一个或多个麦克风检测到的音频数据。话语112可以包括诸如“打开空调(turnonac)”的命令。其他类型的命令可以包括例如“调谐到99.7(tuneto99.7)”、“增加音量(increasethevolume)”、“摇下车窗(rolldownthewindow)”等。在一些实施方式中,话语检测单元111可以被配置为执行附加功能。例如,话语检测单元111可以被配置为生成话语检测单元111使用一个或多个麦克风捕获的音频数据的转录。转录可以包括响应于bill的话语,由一个或多个麦克风捕获的音频数据的文本版本。
语音识别单元110可以使用语法128来识别应当响应于所说出的命令执行的特定操作。语法128可以包括一个或多个规则的集合,其可以被应用于话语的转录的一个或多个单词以确定该话语的含义。在一些实施方式中,语法128可以使用一个或多个规则的集合来将一个或多个特定单词与特定操作相关联。例如,语音识别单元110可以基于转录的一个或多个单词与语法规则的一个或多个终结符和非终结符的比较来识别特定操作128a。
语音识别器110可以将表示特定操作128a的数据提供给指令生成单元129。指令生成单元129可以基于所接收的表示特定操作128a的数据来生成数据对象140(例如,指令或命令),该数据对象140当由控制系统141执行时导致使得用户设备执行特定操作。
控制系统141可以包括一个或多个处理单元、一个或多个存储单元以及被配置为接收数据对象140、处理数据对象140并且指示用户设备105的一个或多个组件执行特定操作的软件代码。在一些实施方式中,控制系统141可以包括一个或多个主处理单元、一个或多个主存储单元以及用户设备105的软件代码。可替代地,一个或多个控制单元可以是用户设备的单独子系统,诸如车辆、房屋等的气候控制电路。在这样的实施方式中,控制系统141可以包括不是主处理单元或处理存储器单元的一个或多个处理单元、一个或多个存储器单元、软件代码或其组合。可替代地,控制系统141可以仅是被用来对可以由用户设备105分别执行或正在执行的特定操作进行启动、停止或两者的软件。
举例来说,语法128可以将词集“打开空调”与打开车辆中的空调的操作相关联。因此,响应于语音识别器110生成包括词集“打开空调”的说出的语音命令的转录,语音识别器可以应用语法128规则来确定车辆应当执行打开车辆中的空调的操作。语音识别器可以将表示“打开空调”的操作的数据提供给指令生成单元129。指令生成单元129可以生成数据对象,当该数据对象由控制系统141执行时,导致空调被打开并且用于冷却车辆。与语音识别器110相关联的数字助理技术可以通过陈述“谢谢bill。现在打开空调(thanksbill.turningonacnow)”的车辆扬声器向bill输出消息。
图1的系统100可以针对设备的所有用户对编程到语法中的有限的离线命令集良好地执行离线,只要诸如bill的用户知道发起bill想要由用户设备105执行的特定操作的执行的该特定命令。然而,当诸如bill的用户想要使用自己的个性化语言执行操作时,图1的系统100失败。
例如,当bill想要打开他家中的空调时,通过告诉家庭成员“冻结我!(freezeme!)”,bill可以使用个性化的语言来要求他家中的另一个家庭成员打开空调。结果,当bill在炎热的天钻进他的车时,bill可能反射性地说“冻结我!”试图使空调打开并开始冷却车的内部。如果bill在配备有图1的系统的车辆中说出这样的离线命令,则车辆的气候和娱乐系统将无响应。可替代地,车辆的气候和娱乐系统(或相关的数字助理技术)可能以大意“抱歉,我不理解该命令。请提交另一个命令(sorry,idonotunderstandthatcommand.pleasesubmitanothercommand)”等的消息来响应。这是因为用户设备105使用的语音识别器的语法不包括用于解析所发出的“冻结我”的命令的规则集合。图2a的系统提供了一种使语音识别器110的语法128能够学习bill的个性化命令“冻结我”,以便bill可以说出离线命令“冻结我”并且作为响应使车辆打开空调的系统。
图2a是用于学习离线语音命令的系统200a的示例的上下文图。系统200a包括用户设备105、网络150和服务器160。用户设备105可以包括话语检测单元111、一个或多个逻辑确定单元113,114、网络接口115、用户反馈输入单元119、本地语法128、指令生成单元129和删除单元131。
服务器160可以包括话语接收单元116、命令分析单元117、反馈数据接收单元120、一个或多个逻辑确定单元123、125、语法更新单元124和更新延迟单元127。在本说明书中,术语“单元”将被广泛地用来指软件系统或子系统,当被一个或多个计算机执行时,该软件系统或子系统将导致执行一个或多个特定功能。通常,单元将被实现为安装在同一计算机上或相同的多个计算机上的一个或多个软件模块或组件;在其他情况下,可以在一个或多个位置的一个或多个计算机上安装一个或多个软件模块或组件。
参考图2a的上下文示例,诸如bill的用户可以确定温度太高,并且可以说出命令来打开空调。例如,用户bill用他自己的白话说话,可以说出命令“冻结我”112以试图打开空调。在bill说出命令“冻结我”112时,命令“冻结我”112先前未与用户设备105的本地语法128的一个或多个规则相关联。
用户设备105的一个或多个麦克风可以检测出所说出的命令“冻结我”112,并且基于所检测的话语来产生音频数据112a。所生成的音频数据112a可以包括与bill在说出“冻结我”命令112时由bill的语音产生的声波成比例的电模拟信号。话语检测单元111可以分析由用户设备105的一个或多个麦克风产生的音频数据112a并且检测命令“冻结我”112的发生。在一些实施方式中,话语检测单元111可以生成音频数据112a的转录112b并且基于音频数据1l2a的转录1l2b执行下文的一个或多个操作。可替代地,在其他实施方式中,用户设备105可以对音频数据112a执行下文描述的一个或多个操作,然后将音频数据112a提供给服务器160,以由本文所述的服务器160的一个或多个单元进行转录和进一步处理。
用户设备105可以使用第一逻辑单元113来确定是否需要服务器160(或者诸如内容服务器的另一服务器)响应于命令“冻结我”112来消除歧义并执行一个或多个操作。例如,第一逻辑单元113可以被配置为接收音频数据112a、转录112b或两者,并且分析所接收的音频数据112a、所接收的转录112b或两者,以确定是否需要服务器160响应于命令“冻结我”112来消除歧义并执行一个或多个操作。
用户设备105可以出于各种不同的原因确定需要服务器160(或诸如内容服务器的另一服务器)执行命令“冻结我”112。例如,用户设备105可以确定需要服务器160(或诸如内容服务器的另一服务器)执行命令,该命令本质上需要来自诸如服务器160(或诸如内容服务器的另一服务器)的远程服务器的数据以执行命令。本质上需要来自诸如服务器160(或诸如内容服务器的另一服务器)的远程服务器的数据以便执行的命令包括诸如“今天巴黎的天气如何(whatistheweatherlikeinparistoday)”、“从tony比萨店订购大的比萨(ordermealargepizzafromtony’spizza)”、“告诉我钢人队比赛的比分(tellmethescoreofthesteelergame)”等的命令。诸如此类的命令本质上需要来自诸如服务器160(或诸如内容服务器的另一服务器)的远程服务器的数据,因为各个命令中的每一个都需要与一个或多个远程服务器通信,以便以诸如bill的用户很可能会感到满意的方式完全执行所接收的命令(例如,通过从远程服务器检索巴黎的实时天气预报、通过比萨店的服务器下比萨的订单、通过从跟踪一个或多个体育赛事的得分的服务器检索钢人队比赛的当前得分)。
可能需要服务器160(或诸如内容服务器的另一服务器)执行命令“冻结我”112的另一个原因是因为用户设备105可以确定用户设备105的本地语法128不包括定义基于命令“冻结我”应当执行的操作的一个或多个规则。在这样的情况下,用户设备105可以向服务器提供诸如所说出的命令112的转录112b的表示所说出的命令的数据、可以由服务器160转录的表示所说出的命令112的音频数据112a、或这两者,以消除歧义。可替代地,如果用户设备105确定本地语法128确实定义了用于消除命令“冻结我”112的歧义的一个或多个规则,则用户设备105可以使用本地语法128来消除命令“冻结我”112的歧义。
如果确定说出的命令不需要服务器160(或诸如内容服务器的另一服务器)并且本地语法128定义了用于消除该命令歧义的一个或多个规则,则用户设备可以使用本地语法128以消除所接收的命令112的歧义并执行该命令。例如,用户设备105可以基于命令112的转录112b的一个或多个部分,在语法128中执行条目搜索,以识别定义基于所接收的命令“冻结我”112应当执行的操作的一个或多个规则。在图2a的示例中,本地语法128在由bill说出命令“冻结我”112时未定义用于消除命令“冻结我”112的歧义的一个或多个规则。结果,本地语法128需要使用本文描述的技术来更新。
可替代地,如果用户设备105需要服务器160(或诸如内容服务器的另一服务器)来消除命令112的歧义并执行该命令,则用户设备105可以使用第二逻辑单元114来确定用户设备105是否能够访问网络150以与服务器160(或诸如内容服务器的另一服务器)进行通信。例如,用户设备105可以确定用户设备105的网络接口单元115是否在诸如wifi网络、蜂窝网络等的网络150的一个或多个无线网络的范围内并且有权接入网络150的一个或多个无线网络。
如果用户设备105确定其不能够访问网络150,则用户设备可以尝试使用用户设备105的本地语法128来执行命令“冻结我”112。然而,如果本地语法128不包括用于解析所说出的命令“冻结我”的任何规则,则用户设备可以向bill提供指示该命令不能被执行的输出。可替代地,如果用户设备105确定用户设备105能够访问网络150,则用户设备105可以与服务器160通信以获得与消除命令“冻结我”112的歧义并且执行该命令有关的辅助。
在图2a的示例中,用户设备105确定用户设备105连接到网络150,并且需要服务器160来消除命令“冻结我”112的歧义。在2a的示例中,需要服务器160来帮助消除命令“冻结我”112的歧义并执行该命令,因为本地语法128不包括用于消除命令“冻结我”112的歧义的一个或多个规则。用户设备105可以使用网络接口单元115来将所说出的命令112的转录112b、表示所说出的命令112的音频数据112a或这两者传送到服务器160以消除歧义。
参考图2a,出于说明性目的,用户设备105被公开为包括两个逻辑单元113、114。然而,本公开不必限于此。例如,可以使用单个逻辑单元来分别提供逻辑单元113、114的功能。
服务器160可以使用话语数据接收单元116来接收所说出的命令112的转录112b、表示所说出的命令112的音频数据112a或两者。话语数据接收单元116是服务器160和用户设备105之间的接口。在一些实施方式中,诸如当话语接收单元116接收到表示所说出的命令112的音频数据112a时,话语数据接收单元116可以被配置为基于音频数据1l2a,生成所说出的命令112的转录。话语数据接收单元116可以将所说出的命令112的转录112b提供给命令分析单元117。在其他实施方式中,诸如图2a的示例,话语数据接收单元116可以接收所说出的命令112的转录112b,并将该转录112b转发给命令分析单元117。
命令分析单元117可以被用来消除用户设备的本地语法130先前未定义的命令的歧义。命令分析单元117可以以多种方式消除命令的歧义。例如,命令分析117可以基于命令的关键词的分析、基于对来自bill的关于命令的反馈的请求的用户的响应、基于与命令相关的bill的反馈的历史聚合、基于命令关键字与服务器160所维护的比存储在用户设备105上语法130更为广泛并且已经学过该命令的语法的比较,或者其组合,将命令“冻结我”与打开空调相关联。
参考图2a的示例,命令分析单元117可以基于对命令“冻结我”112中的关键词的分析来确定命令112与诸如打开空调的特定操作相关联。基于该确定,命令分析单元117可以对来自bill的用户反馈生成提示并传送识别特定操作的数据118。例如,命令分析单元可以生成并传送提示数据,其在被用户设备105处理以输出时询问bill是否bill想要“打开空调?”。提示数据118由网络接口单元115接收,并由设备105的一个或多个接口单元输出。接口单元可以包括扬声器、图形用户界面或两者。
例如,提示数据118可以由用户设备105接收并且被处理以生成输出118a短语“打开空调?”。在一些实施方式中,输出118a可以是由用户设备105的一个或多个扬声器输出的音频提示。在其他实施方式中,输出可以是在用户设备105的用户界面的显示器上渲染的文本。在其他实施方式中,可以经由云服务,经由与bill和用户设备105相关联的不同用户设备的扬声器或显示器来提供输出118a。不同的用户设备可以包括例如智能电话、平板电脑、智能手表等。
bill可以响应于基于提示数据118生成的输出118a提供反馈119a,该反馈指示命令分析单元117识别的特定操作是否应当与bill发出的命令112相关联。例如,bill可以提供反馈,该反馈指示由命令分析单元117识别的特定操作(例如,打开空调)应当与由bill说出的命令112(例如,“冻结我”)相关联。可替代地,bill可以提供反馈,该反馈指示由命令分析单元118识别的特定操作(例如,打开空调)不应当与命令112(例如,“冻结我”)相关联。在图2a的示例中,bill的反馈119a包括由用户设备105的一个或多个麦克风检测到的话语。可替代地,或附加地,bill的反馈还可以包括对用户设备105的图形用户界面的一个或多个选项的选择、由经由云服务与bill和用户设备105相关联的诸如智能电话、平板电脑、智能手表等的不同用户设备检测到的话语。
在图2a的示例中,bill可以通过说出词“是”119a,向输出1l8a提示“打开空调吗?”提供反馈。用户设备105的一个或多个麦克风可以检测bill的话语,并且基于检测到的话语生成音频数据。所生成的音频数据可以包括电模拟信号,该电模拟信号与当bill说出反馈119“是”时由bill的声音所产生的声波成比例。用户反馈输入单元可以接收基于所说出的反馈119a生成的音频数据,分析基于所说出的反馈119a生成的音频数据,并且检测反馈119短语“是”的出现。在一些实施方式中,用户反馈输入单元119可以生成基于所说出的反馈119a生成的音频数据的转录119bn,并且基于以所说出的反馈119a为基础生成的音频数据的转录119b执行一个或多个操作。用户设备119b可以使用一个或多个网络150,使用网络接口单元115来将转录119b传送到服务器160。可替代地,在其他实施方式中,用户设备105将基于所说出的反馈119a生成的音频数据经由网络150提供给服务器160。在这种情况下,服务器160可以生成所接收的基于所说出的反馈119a生成的音频数据的转录。
反馈数据接收单元120可以接收所说出的反馈119a的转录119b,并将转录119b提供给命令分析单元117。可替代地,反馈数据接收单元120可以接收基于所说出的反馈119a生成的音频数据、生成基于所说出的反馈119a生成的音频数据的转录119b,然后将所说出的反馈119a的转录119b提供给命令分析单元117。
响应于接收到所说出的反馈119a的转录119b,命令分析单元117可以经由网络150向用户设备105传送响应数据121。用户设备105可以使用网络接口单元115来接收响应数据121并且处理响应数据121来生成输出133,该输出确认命令“冻结我”112与用户设备105相关联的环境的“打开空调”的特定操作相关联。输出133可以包括经由用户设备105的扬声器提供的输出、经由用户设备105的显示器提供的输出、由不同用户设备(例如,智能手机、平板电脑、智能手表等)的扬声器提供的输出、由不同用户设备(例如,智能手机、平板电脑、智能手表等)的显示器提供的输出或其组合。在一些实施方式中,输出133可以包括标识命令分析单元117将其与命令“冻结我”相关联的特定操作的输出。例如,输出133可以包括来自用户设备105的扬声器的输出,该扬声器发出“感谢bill。现在打开空调(thanksbill.turningontheacnow)”的输出。
命令分析单元117可以发起对用户设备105的本地语法128的更新的生成。在一些实施方式中,发起对用户设备105的本地语法128的更新的生成可以包括例如,指示第三逻辑单元123评估标识所说出的命令112的数据122以确定所说出的命令是否需要服务器160。在一些实施方式中,确定所说出的命令112是否需要服务器160可以基于命令分析单元117将其与所说出的命令112相关联的特定操作。如果第三逻辑单元123确定所说出的命令112(或者命令分析单元117将其与命令相关联的特定操作)需要服务器160,则服务器160可以停止生成对本地语法128的更新。可替代地,如果第三逻辑单元123确定所说出的命令112和命令分析单元117将该命令与其相关联的特定操作不需要服务器160,则第三逻辑单元123处理的结果可以向语法更新单元124提供指示以生成对用户设备105的本地语法128的更新。
生成更新可以包括生成多个指令,该多个指令被配置为在更新的处理期间,用户设备105执行指令时,在本地语法128中创建与将用户命令(例如“冻结我”)与用户设备105的本地语法128中的特定操作(例如,“打开空调”)相关联的一个或多个规则的集合。在一些实施方式中,生成本地语法更新还可以包括生成数据对象,该数据对象当由用户设备105执行时使用户设备105响应于命令112(例如,“冻结我”)的后续话语发起特定操作(例如,“打开空调”)的执行。数据对象可以包括xml数据对象、二进制数据对象等。在一些实施方式中,生成本地语法更新还可以包括生成到期数据,该到期数据包括与本地语法更新相关联的一个或多个规则的集合将被存储在本地语法128中而不被使用的最大时间段。
每种更新方法都提供特定的优势。例如,生成包括多个指令以在本地语法128中创建一个或多个规则的集合来将用户命令(例如,“冻结我”)与特定操作(例如,“打开空调”)相关联而没有所生成的数据对象的更新导致(相对于包括所生成的数据对象的更新包)更小大小的更新包。因此,该更新方法可以被用来节省带宽,因此需要向用户设备105提供更少的数据以便于更新本地语法128。另外,通过下载多个指令而没有所生成的数据对象,更新下载时间可以更快。另外,由于可能的匹配较少,因此这种更新方法还会导致更好的识别。例如,如果话语的词与本地语法128中的词不匹配,则诸如“冻结我们(freezewe)”、“让我打喷嚏(sneezeme)”等的话语也可以被校正为“冻结我”。但是,这种更新方法将需要指令生成单元129生成数据对象。
可替代地,通过生成数据对象并向该数据对象提供用于存储在用户设备105上的语法更新可以实现不同的益处,这可以提高用户设备105的性能。这是因为使得用户设备105免于必须响应于用户设备105将特定操作识别为与命令112的后续话语相关联来生成数据对象。由于用户设备105只能访问数据对象(与生成数据对象相对),因此这些实施例可以减少用户设备响应于命令“冻结我”的后续话语而执行特定操作所涉及的延迟。
然而,通过利用本地语法更新生成和提供到期数据可以实现不同的益处。例如,系统200a可以将到期数据用作用于优化用户设备105对存储空间的使用的机制。即,如果bill在到期数据中规定的最大时间段内未说出命令,用户设备105可以释放分配给存储将所说出的命令与特定操作相关联的规则集合的存储空间。
语法更新单元124产生本地语法更新126,并使用第四逻辑单元125来确定服务器160是否能够访问有助于与用户设备105进行通信的网络150。如果第四逻辑单元125确定服务器160不能访问有助于与用户设备105通信的网络150,则第四逻辑单元125指示本地语法更新延迟单元127该服务器160此时不能与用户设备105通信。本地语法更新延迟单元127可以将后续尝试延迟以在预定时间量内向用户设备105提供本地语法更新126。响应于预定时间量到期,更新延迟单元127可以使用第四逻辑单元125来确定服务器160是否能够访问有助于与用户设备105进行通信的网络150。
可替代地,如果第四逻辑单元125确定服务器160确实能够访问有助于与用户设备105进行通信的网络150,则服务器160可以将本地语法更新126提供给用户设备105。用户设备105可以经由网络接口单元115接收本地语法更新。
用户设备105可以通过生成用于存储在本地语法128中的一个或多个规则的集合,处理包括在本地语法更新126中的指令,并且更新本地语法128。生成一个或多个规则的集合并且将其存储在本地语法128中使得本地语法128能够消除随后接收的命令的歧义,这些命令对应于作为本地语法更新126的一部分的命令之一。例如,一个或多个规则可以应用于后续话语的转录的一个或多个单词,以确定后续话语的含义。确定后续话语的含义可以包括例如识别响应于检测到后续话语应当执行的操作。因此,在接收和处理本地语法更新126之后,用户设备150可以使用本地语法128以通过使用本地语法128中的一个或多个规则来将“冻结我”命令与“打开空调”的特定操作相关联,以消除命令“冻结我”的后续话语的歧义。
还可以基于本地语法更新126来更新指令生成单元129。在一些实施方式中,例如,本地语法更新126可以包括响应于所说出的命令待由用户设备105发起、执行或两者的动作。该动作可以包括数据对象,当该数据对象由用户设备105执行时使用户设备105发起由本地语法128使其与所说出的命令(例如,“冻结我”)相关联的特定操作(例如,“打开空调”)的执行(或执行该特定操作)。数据对象可以包括xml数据对象、二进制数据对象等。如果本地语法更新126包括响应于所说出的命令待由用户设备105发起、执行或两者的动作,则该动作可以被存储在指令生成单元129中。一旦存储在指令生成单元129中,则基于由本地语法128提供的、识别与该话语相关联的特定操作的数据,在接收到相应命令(例如,“冻结我”)的话语后,可以检索动作(例如,指示用户设备105打开空调的数据对象)。可替代地,基于由本地语法128提供的、识别与话语相关联的特定操作的数据,在接收到相应命令(例如,“冻结我”)的话语之后,可以由指令生成单元129生成动作(例如,指示用户设备105打开空调的数据对象)。
还可以基于本地语法更新126来更新其他单元。例如,可以更新删除单元131以监视本地语法128中包括的一个或多个规则集合的使用。在一些实施方式中,语法规则集合可以与该语法规则集合可以空闲(例如,未使用)的最大时间段相关联。删除单元131可以确定在最大时间段内是否已经说出了与语法规则集合相关联的命令。响应于确定在最大时间段内还没有说出命令或以其他方式输入命令,删除单元131可以指示132本地语法128从本地语法128删除该规则集合。该特征的好处是优化了可能是有限的本地用户设备存储的使用。
尽管删除单元131已被描述为基于确定在最大时间段内还未说出或以其他方式输入与一个或多个规则集合相关联的命令,则从本地语法128中移除该一个或多个规则集合,但本公开不必限于此。相反,删除单元128可以检测一个或多个其他触发的发生,这些触发的检测发起移除(例如删除)本地语法128中与特定命令相关联的一个或多个规则集合。这些触发可以包括用户设备105的状态的变化——诸如移除用户帐户;为用户设备105选择不同的语言;从用户(例如bill)接收的删除请求;从用户(例如bill)收到的重置设备的请求等。
在图2b的示例中,检测到bill的先前未知命令(例如,“冻结我”)话语的用户设备以及接收和处理本地语法更新126的用户设备是同一用户设备——即用户设备105。然而,本公开不必限于此。相反,例如,多个用户设备可以经由一个或多个云服务与bill相关联。在这样的情况下,服务器160可以经由一个或多个云服务,将诸如本地语法更新126的本地语法更新传送到与bill相关联的每个其他设备。例如,本地语法更新还可以被传送到bill的智能手机、智能手表、膝上型计算机、平板电脑、台式计算机、智能电视、机顶盒、智能扬声器、数字家庭助理等。这样,可以更新bill的每个用户设备的本地语法,以响应bill自己的口语中的命令。一旦更新,这些用户设备即使在离线时,也可以被用来响应bill自己的口语的命令。
图2b是图2a的系统的上下文图,其已经学习过离线语音命令。通常,系统200b包括用户设备111、第一逻辑单元113、第二逻辑单元114、语法128、指令生成单元111、删除单元131、反馈输入单元119和网络接口单元115。
更详细地,系统200b与系统200a相同,除了系统200b示出了本地语法128已经接收并处理了本地语法更新126之后。处理本地语法更新126使得本地语法128能够在接收和处理本地语法更新126之前,学习还未与本地语法128的一个或多个规则相关联的命令(例如,“冻结我”)。此外,图2b的用户设备105不能访问网络150。因为图2b的用户设备105不能访问网络150,因此图2b的用户设备105不能与服务器160通信以利用服务器160提供的命令消歧服务本身。
参考图2b,在用户设备105接收和处理本地语法更新126之前,用户设备105可以检测以bill自己的口语发出的命令112——诸如本地语法128未知的命令112“冻结我”——的话语。
用户设备105可以使用一个或多个麦克风来捕获提供给话语检测单元111的音频数据112a。话语检测单元111可以生成音频数据112a的转录112b。用户设备105可以使用第一逻辑单元113来确定不需要服务器来执行由转录112b表示的命令,因为该命令不需要来自服务器160的数据,并且使用本地语法更新126更新的本地语法128现在包括由转录112b表示的命令112。第二逻辑单元114可以确定不能访问网络150。在一些实施方式中,如果第一语法单元113确定该命令不需要来自服务器160的数据,则系统200b可以使用本地语法128,而不首先使用第二逻辑单元114来确定是否能够访问网络150。
本地语法128可以基于所接收的转录112b和存储在本地语法中、作为本地语法更新126的一部分接收的一个或多个规则集合,确定命令112(例如,“冻结我”)与特定操作(例如,打开空调)相关联。本地语法可以将数据228a传送到指令生成单元129,该指令生成单元129识别与命令112相关联的特定操作(例如,打开空调)。
指令生成单元129可以基于在从本地语法128接收的数据228a中识别的特定操作来获得动作130,该动作130在被执行时发起响应于命令112应当执行的特定操作(例如,打开空调)的执行。在一些实施方式中,动作130可以由指令生成单元129预先接收和存储为本地语法更新126的一部分。在这样的实施方式中,通过将动作130存储在用户设备150上,可以减少响应于命令112执行特定操作的等待时间。可替代地,获得动作130可以包括例如生成动作130。
动作130可以包括数据对象,该数据对象在由用户设备105执行时使用户设备105发起响应于命令112(例如,“冻结我”)的后续话语的特定操作(例如,“打开空调”)的执行。数据对象可以包括xml数据对象、二进制数据对象等。动作130可以由用户设备105处理并且触发特定操作(例如,打开空调)的执行。
图3是用于为用户设备生成个性化语法更新的处理300的示例的流程图。为了方便起见,在下文中,将处理300描述为由诸如图2a中描绘的系统200a的系统执行。
系统可以使用服务器来从第一用户设备接收310表示话语的至少一部分的数据。表示话语的一部分的数据可以包括话语的一个或多个部分的转录。可替代地,表示话语的该部分的数据可以包括表示话语的一个或多个部分的音频数据。话语可以包括用于已知操作的以用户的独特口语的命令。例如,话语可以包括“伤害我的耳朵(hurtmyears)”的命令。在该示例中,用户可以发出命令“伤害我的耳朵”作为执行“增加第一用户设备的音频(或视频)回放的音量”的操作的请求。
系统可以基于表示话语的数据,确定320可以响应于该话语执行的操作。在一些实施方式中,该操作可以是在不请求服务器信息的情况下执行的操作。例如,系统可以确定“增加设备回放的音频(或视频)的音量”的操作是可以在不请求服务器信息的情况下执行的操作。
系统可以基于(i)表示话语的至少一部分的数据和(ii)操作,来生成330对语法的更新。生成对语法的更新可以包括生成多个指令,该多个指令被配置为在更新的处理期间由第一用户设备执行指令时在第一用户设备的语法中创建一个或多个规则集合,该一个或多个规则集将用户命令(例如,“伤害我的耳朵”)与特定操作(例如,“增加第一用户设备回放的音频(或视频)的音量”)相关联。
在一些实施方式中,生成对语法的更新还可以包括生成数据对象,该数据对象在由第一用户设备执行时使得第一用户设备发起响应于命令的后续话语的特定操作(例如,“增加第一用户设备回放的音频(或视频)的音量”)的执行。数据对象可以包括xml数据对象、二进制数据对象等。在一些实施方式中,生成语法更新还可以包括生成到期数据,该到期数据包括与语法更新相关联的一个或多个规则集合将被存储在语法中而不被使用的最大时间段。
系统可以确定340第一设备和服务器是否通过一个或多个网络连接。响应于确定第一用户设备和服务器通过一个或多个网络连接,则系统可以向第一用户设备提供350语法更新。
可替代地,响应于确定第一用户设备和服务器未通过一个或多个网络连接,系统可以进行到阶段342并使语法更新延迟342,直到第一用户设备和服务器通过一个或多个网络连接。在这样的情况下,系统可以继续到阶段350,并且在确定已经在第一用户设备和服务器之间建立了连接之后,向第一用户设备提供语法更新。
图4是用于个性化用户设备的语法的处理400的示例的流程图。为了方便起见,在下文中,将处理400描述为由诸如图2a中描绘的系统200a的系统执行。
当用户通过网络连接到服务器时,系统可以使用第一用户设备检测410一个或多个词项(term)的话语。例如,第一用户设备可以使用一个或多个麦克风来捕获表示话语的音频数据。举例来说,话语可以包括以用户自己的口语的“伤害我的耳朵”的命令。
系统可以使用网络,使用第一设备向服务器提供420表示话语的数据。例如,系统可以向服务器提供描述所捕获的全部或部分话语的音频数据。可替代地或附加地,系统可以向服务器提供全部或部分话语的转录。举例来说,第一设备可以向服务器提供表示命令“伤害我的耳朵”的音频数据的转录。
系统可以通过用户设备并且从服务器接收430基于表示该话语的数据对用户设备的语法的更新。接收对用户设备的语法的更新可以包括经由网络获得对语法的更新的副本。可替代地或附加地,接收对语法的更新还可以包括安装对语法的更新。对用户设备的语法的更新可以包括多个指令,该多个指令被配置为在处理更新期间当由第一用户设备执行指令时,在第一用户设备的语法中创建一个或多个规则集合,该一个或多个规则集合将用户命令(例如,“伤害我的耳朵”)与特定操作(例如,“增加第一用户设备回放的音频(或视频)的音量”)相关联。
在一些实施方式中,对语法的更新还可以包括数据对象,该数据对象在由第一用户设备执行时使第一用户设备发起响应于命令的后续话语的特定操作(例如,“增加第一用户设备回放的音频(或视频)的音量”)的执行。数据对象可以包括xml数据对象、二进制数据对象等。在一些实施方式中,语法更新还可以包括到期数据,该到期数据包括与语法更新相关联的一个或多个规则集合将被存储在语法中而不被使用的最大时间段。
当第一用户设备没有通过网络连接到服务器时,系统可以检测440包括一个或多个词项的后续话语。例如,第一用户设备可以使用一个或多个麦克风来捕获表示后续话语的音频数据。后续话语可以包括在阶段430中接收和处理了对语法的更新之后接收到的话语。例如,后续话语可以包括在阶段430中接收到对语法的更新之后的某些时间点,由用户说出的命令“伤害我的耳朵”。
系统可以使用第一用户设备,确定450后续话语与能够在不从服务器请求信息的情况下执行的操作相关联。例如,第一用户设备可以评估表示话语的数据以确定是否需要来自服务器的信息以消除话语歧义并执行响应于该话语的操作。
系统可以获得460数据对象,该数据对象被用来基于(i)后续话语的一个或多个词项和(ii)更新的语法来触发执行操作。数据对象可以包括下述数据:该数据当由第一用户设备执行时使第一用户设备发起与更新的语法中的话语相关联的操作(例如,“增加第一用户设备回放的音频(或视频)的音量”)的执行。数据对象可以包括xml数据对象、二进制数据对象等。系统可以使用用户设备,通过处理数据对象,在不从服务器请求信息的情况下,发起470操作的执行。
本说明书中描述的主题、功能操作和处理的实施例可以以数字电子电路、以有形体现的计算机软件或固件、以计算机硬件——包括本说明书中公开的结构和它们的结构等同物,或者以它们中的一个或多个的组合实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即编码在有形非易失性程序载体上以由数据处理装置执行或用于控制数据处理装置的操作的计算机程序指令的一个或多个模块。可替代地或附加地,程序指令可以被编码在人工生成的传播信号上——例如机器生成的电、光或电磁信号,该传播信号被生成以编码用于传输到合适的接收器装置以由数据处理装置执行的信息。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行存取存储器设备,或者它们中的一个或多个的组合。
术语“数据处理装置”涵盖用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或多个计算机。该装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,该装置还可以包括为所述计算机程序创建执行环境的代码,例如构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
计算机程序(也可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码)可以以任何形式的编程语言,包括编译或解释语言,或声明或过程语言编写,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适合用在计算环境中的其他单元。计算机程序可以但不必须对应于文件系统中的文件。程序可以被存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、被存储在专用于所述程序的单个文件中,或者被存储在多个协同文件中(例如,存储一个或多个模块、子程序或部分代码的文件)中。可以将计算机程序部署为在一个计算机上或在位于一个站点处或分布在多个站点并通过通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以由一个或多个可编程计算机执行,该可编程计算机执行一个或多个计算机程序,以通过对输入数据进行操作并生成输出来执行功能。处理和逻辑流程还可以由专用逻辑电路来执行,以及装置也可以被实现为专用逻辑电路,专用逻辑电路例如为fpga(现场可编程门阵列)或asic(专用集成电路)。
适合于执行计算机程序的计算机包括,作为示例,可以基于通用或专用微处理器或两者,或者任何其他类型的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元和用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备——例如磁盘、磁光盘或光盘,或者被可操作地耦合以从该一个或多个大容量存储设备接收数据或将数据传送到该一个或多个大容量存储设备,或者两者。然而,计算机不必须具有这样的设备。而且,计算机可以被嵌入在另一设备,例如移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备(例如通用串行总线(usb)闪存驱动器)中,仅举几个例子。
适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括例如eprom、eeprom和闪存设备的半导体存储器设备;磁盘,例如内部硬盘或可移动磁盘);磁光盘;以及cd-rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或被并入专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备,例如crt(阴极射线管)、lcd(液晶显示器)、led(发光二极管)或oled(有机发光二极管)监视器,以及用户可以通过其向计算机提供输入的键盘和指示设备,例如鼠标、轨迹球或触摸屏。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从该设备接收文档,例如通过响应于从web浏览器接收的请求,向用户的用户设备上的web浏览器发送网页来与用户交互。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括例如作为数据服务器的后端组件;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有用户可以通过其与本说明书中描述的主题的实施方式交互的图形用户界面或web浏览器的客户端计算机;或者一个或多个这样的后端、中间件或前端组件的任何组合。系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信互连。通信网络的示例包括局域网(lan)、广域网(wan),例如因特网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络交互。客户端和服务器的关系由于在各个计算机上运行并且彼此具有的客户端-服务器关系的计算机程序而产生。
尽管本说明书包含许多具体的实施细节,但这些不应当被解释为对所要求保护的范围的限制,而是作为特定于具体实施例的特征的描述。在单独的实施例中的上下文中,本说明书中描述的某些特征也可以在单一实施例中以组合的方式实施。相反,在单一实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实施。此外,尽管特征在上文被描述为以某些组合起作用并且甚至最初声称如此,但是在一些情况下,来自要求保护的组合的一个或多个特征可以从该组合中删去,并且要求保护的组合可以指向子组合或子组合的变体。
类似地,虽然在附图中以特定的顺序描绘了操作,但是这不应当被理解为要求以所示的特定顺序或以先后顺序来执行这些操作,或者执行所有示出的操作以实现期望的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分离不应当被理解为在所有实施例中都需要这种分离,并且应当理解到,描述的程序组件和系统通常可以被一起集成在单个软件产品中或者被打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在下述权利要求的范围内。例如,权利要求中列举的动作可以以不同的顺序执行,并且仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定要求所示的特定顺序或先后顺序来实现期望的结果。在某些实施方式中,多任务和并行处理可以是有利的。可以从所描述的处理中提供其他步骤或阶段,或者去除步骤或阶段。因此,其他实施方式也在下述权利要求的范围内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除