开发者语音动作系统
1.本技术是申请日为2016年04月12日、申请号为201680019717.8、发明名称为“开发者语音动作系统”的发明专利申请的分案申请。
技术领域
2.本说明书一般地但不排他地涉及语音命令,并且一个特定实现涉及配置语音命令。
背景技术:3.在软件中定义的行为可以指定任务,其中行为是控制任务执行的生命周期的类。意图是被动的数据结构,其可以指定特定行为和与特定行为相关联的应用程序。意图可以由应用程序触发,并且可以使得由该意图指定的行为在由该意图指定的目标应用程序上执行或由该应用程序执行。
技术实现要素:4.被称为意图的被动数据结构可以指定要在应用程序上执行或者由应用程序执行的应用程序和行为,其中行为是在应用程序上执行或由该应用程序执行的任务。意图可以指定一个或多个可用于触发意图的触发短语,使得意图的触发导致由指定的应用程序执行行为。例如,意图可以与针对出租车服务的应用程序相关联,并且可以指定一个或多个作为语音动作来操作的触发短语,使得当用户说话时,检测到触发短语中的一个触发短语触发出租车服务应用程序的启动。除了由意图指定的应用程序以外,意图可以由应用程序或操作系统触发,使得应用程序的触发导致指定行为在特定应用程序上执行或者由其执行。
5.由主机提供的服务或工具可使得应用程序开发者能够请求指定他们正在开发的特定应用程序的新意图。针对新意图的提交可以是语法的形式,其中开发者可以向服务或工具提交语法,并且该服务或工具可以基于该语法为特定应用程序产生意图。
6.新意图的产生可以通过增加可以被提供给应用程序以使得实现特定结果的输入的数量和范围来增强正在开发的特定应用程序的灵活性。因此,正在开发的应用程序的可靠性可以被提高,因为可以确保特定应用程序将以正确的方式响应用户的输入,用户输入的处理得到改善。
7.在一些实现中,开发者提交的语法可以指定应用程序、触发短语、行为或复合行为、语境或其他信息中的一个或多个。语法由开发者提交,并由开发者语音动作服务或工具通过网络接收。开发者语音动作服务或工具可以验证语法。例如,语法的验证可以涉及确定触发短语是否已经与用于操作系统或另一应用程序的意图相关联、可以确定由语法指定的行为是否可以由指定的应用程序执行、可以确定触发短语是否符合某些标准、可以确定所提交的语法的格式是否在语法上有效、或者可以以其他方式确定由开发者提交的语法是否是可用于创建新意图的可行语法。
8.有效语法可以由开发者语音动作服务或工具引导以将语法转换为意图并扩展语
法中指定的触发短语。例如,语法的引导可以涉及将以第一格式提交的语法转换成第二格式的意图。除了将语法转换成意图之外,开发者提交的触发短语可以被扩展为包括其他相关的触发短语。例如,可以将一个或多个触发短语扩展规则、同义词规则、术语可选规则或其他规则应用于触发短语以产生与该意图相关联的一个或多个相关的触发短语。所产生的意图可以与一个或多个其他意图一起存储在语境意图数据库中,该一个或多个其他意图中的每一个意图与应用程序、一个或多个触发短语、以及可选地行为、复合行为、语境或者涉及该意图或该意图的触发的其他信息相关联。
9.基于语法验证的新意图的产生意味着开发者不需要通过直接输入该意图本身来产生新的意图。如上所述,语法可以具有可以在归纳过程中转换的特定格式,并且该转换过程能够扩大可以是新意图的适当候选者的语法数量,因为放松了对输入语法格式的要求。因此,可以开发应用程序以包括具有较少用户输入的新意图。
10.在开发者提交的语法已经被建立为意图之后,用户可以向客户端设备提供语音输入。用户的语音输入可以被转录以产生语音输入的转录,并且该转录可以同与存储在语境意图数据库或指定意图的一个或多个其他数据库(比如包括与操作客户端设备的系统相关联的意图的数据库)相关联的一个或多个触发短语相匹配。基于确定转录的一部分同与特定意图相关联的触发短语相匹配,可以触发意图以使得与该意图相关联的行为在由特定意图指定的应用程序上执行或由该应用程序执行。
11.例如,与启动出租车服务应用程序相关联的意图可以与触发短语“呼叫出租车”相关联。基于接收包括短语“呼叫出租车”的用户语音输入的客户端设备,客户端设备或其他系统可以触发出租车服务应用程序的启动。
12.本说明书中描述的主题的创新方面可以体现在包括下列动作的方法中:接收识别应用程序和语音命令触发术语的数据,验证接收到的数据,引导接收到的数据以产生指定应用程序、语音命令触发术语以及至少基于该语音命令触发术语确定的一个或多个其他语音命令触发术语的意图,并将该意图存储在语境意图数据库中,其中该语境意图数据库包括一个或多个其他意图。这些方面的其他实施例包括被配置为执行在计算机存储设备上编码的方法的动作的对应系统、装置和计算机程序。
13.这些和其他实施例可以各自可选地包括以下特征中的一个或多个。在各个示例中,验证接收到的数据包括确定语音命令触发术语不与不同于所识别的应用程序的应用程序相关联。该动作包括接收识别动作的数据,其中验证接收到的数据包括确定所识别的动作与所识别的应用程序兼容。引导接收到的数据以产生指定应用程序的意图,语音命令触发术语和至少基于该语音命令触发术语确定的一个或多个其他的语音命令触发术语包括将识别应用程序的接收数据、和语音命令触发术语转换为不同的数据格式。引导接收数据以产生指定应用程序、语音命令触发术语和至少基于该语音命令触发术语确定的一个或多个其他的语音命令触发术语的意图,包括:通过对该语音命令触发术语应用一个或多个同义词规则、可选规则或扩展规则,产生至少基于该语音命令触发术语而确定的一个或多个其他语音命令触发术语。
14.该动作包含:获得包括用户所说言语的音频数据,至少基于该音频数据产生该用户所说言语的转录,确定该转录的至少一部分与由存储在语境意图数据库中的意图所指定的特定的语音命令触发术语匹配,其中该意图指定特定应用程序、以及特定的语音命令触
发术语,并且基于确定该转录的至少一部分与由该意图指定的特定的语音命令触发术语相匹配,使得任务被执行。使得任务被执行包括使特定应用程序执行任务。该动作还可以包括:针对每一个指定(i)应用程序、和(ii)语音命令触发术语的一个或多个意图中的每一个,确定该转录的至少一部分与由该意图指定的语音命令触发术语相匹配;从包括由该一个或多个意图中的每一个所指定的应用程序的一组应用程序中请求特定应用程序的选择,从包括由该一个或多个意图中的每一个所指定的应用程序的一组应用程序中接收指示特定应用程序的选择的数据,并且响应于接收到指示该特定应用程序的选择的数据,调整特定语音命令触发术语与指定特定应用程序的意图之间的关联的强度。
15.动作包含:针对每一个指定(i)应用程序和(ii)语音命令触发术语的一个或多个意图中的每一个,确定转录的至少一部分与由该意图指定的语音命令触发术语相匹配,针对一个或多个意图中的每一个,确定该意图的亲和度,该亲和度指示由该意图指定的语音命令触发术语对由该意图指定的应用程序的亲和度,至少基于针对该一个或多个意图中的每一个的亲和度选择特定意图,以及使得由该特定意图指定的任务被执行。动作包括:针对每一个指定(i)应用程序和(ii)语音命令触发术语的一个或多个意图中的每一个,确定转录的至少一部分与由该意图指定的语音命令触发术语匹配,对一个或多个意图进行排序,至少基于该一个或多个意图的排序选择特定意图,并且使得由该特定意图指定的任务被执行。
16.本说明书中描述的主题的创新方面可以体现在一种计算机实现的方法,包括:由语音动作服务系统接收在用户的计算设备处提供的所说言语,所说言语包括语音命令触发短语;由所述语音动作服务系统处理所说言语以确定与所述语音命令触发短语相关联的意图;由所述语音动作服务系统识别各自能够满足所述意图的两个或更多个应用,其中,识别所述两个或更多个应用是基于确定所述两个或更多个应用与一个或多个数据库中的意图相关联的;由所述语音动作服务系统与所述两个或更多个应用中的其余应用相比选择所述两个或更多个应用中的仅一个应用,其中,至少部分地基于(i)用户对所述仅一个应用的使用的新近度以及(ii)用户的过去行为来选择所述两个或更多个应用中的所述仅一个应用;以及由所述语音动作服务系统且响应于所说言语向用户的计算设备仅提供所选择的仅一个应用的指示。
17.本说明书中描述的主题的创新方面可以体现在一种系统,包括:至少一个处理器;以及包括指令的至少一个存储器,所述指令在被执行时使所述至少一个处理器:接收在用户的计算设备处提供的所说言语,所说言语包括语音命令触发短语;处理所说言语以确定所说言语包括所述语音命令触发短语;识别两个或更多个应用,其中,识别所述两个或更多个应用是基于确定所述两个或更多个应用被映射到一个或多个数据库中的语音命令触发短语的;与所述两个或更多个应用中的其余应用相比选择所述两个或更多个应用中的仅一个应用,其中,至少部分地基于(i)用户对所述仅一个应用的使用的新近度以及(ii)用户的过去行为来选择所述两个或更多个应用中的所述仅一个应用;以及响应于所说言语且向用户的计算设备仅提供所选择的仅一个应用的指示。
18.本说明书中描述的主题的创新方面可以体现在一种包括指令的计算机可读存储介质,所述指令在被执行时使至少一个处理器:接收在用户的计算设备处提供的所说言语,所说言语包括语音命令触发短语;处理所说言语以确定与所述语音命令触发短语相关联的
意图;识别各自能够满足所述意图的两个或更多个应用,其中,识别所述两个或更多个应用是基于确定所述两个或更多个应用与一个或多个数据库中的意图相关联的;与所述两个或更多个应用中的其余应用相比选择所述两个或更多个应用中的仅一个应用,其中,至少部分地基于(i)用户对所述仅一个应用的使用的新近度以及(ii)用户的过去行为来选择所述两个或更多个应用中的仅一个应用;以及响应于所说言语且向用户的计算设备仅提供所选择的仅一个应用的指示。
19.本说明书中描述的主题的创新方面可以体现在一种计算机实现的方法,包括:由语音动作服务系统接收与语音命令触发短语相关联的意图,所述语音命令触发短语被包括在用户的计算设备处提供的所说言语中;由所述语音动作服务系统接收与用户的计算设备相关联的语境信息;由所述语音动作服务系统基于与语音命令触发短语相关联的意图识别安装在用户的计算设备上的、在被用户的计算设备执行时满足与语音命令触发短语相关联的意图的应用;基于与用户的计算设备相关联的语境信息确定用户的计算设备是否能够执行所述应用以满足用户的意图;以及响应于确定用户的计算设备能够执行所述应用以满足用户的意图:由所述语音动作服务系统使用户的计算设备执行所述应用以满足与语音命令触发短语相关联的意图。
20.本说明书中描述的主题的创新方面可以体现在一种语音动作服务系统,包括:至少一个处理器;以及存储指令的至少一个存储器,所述指令在被执行时使所述至少一个处理器:接收与语音命令触发短语相关联的意图,所述语音命令触发短语被包括在用户的计算设备处提供的所说言语中;接收与用户的计算设备相关联的语境信息;基于与语音命令触发短语相关联的意图并且基于与用户的计算设备相关联的语境信息确定用户的计算设备是否能够执行应用以满足用户的意图;以及响应于确定用户的计算设备能够执行所述应用以满足用户的意图:使用户的计算设备执行所述应用以满足与语音命令触发短语相关联的意图。
21.本说明书中所描述的主题的一个或多个实施例的细节在附图和下面的描述中被阐述。从描述、附图和权利要求,主题的其他潜在特征、方面和优点将变得显而易见。
附图说明
22.图1描绘了用于开发者语音动作系统和服务的示例系统。
23.图2描绘了用于使用语音动作系统和服务的示例系统。
24.图3是与开发者语音动作系统和服务相关联的示例过程的流程图。
25.各附图中的相似附图标记表示相似元件。
具体实施方式
26.图1示出了开发者语音动作服务系统100的示例。通常,开发者语音动作服务使得应用程序开发者101能够通过开发者语音动作服务系统100提交被视为新意图的候选者的语法。
27.开发者语音动作服务系统100验证由应用程序开发者101提交的语法,如果有效,则通过将语法从其提交的格式转换为意图格式来引导语法,并且扩展由该语法指定的触发短语以包括与所指定的触发短语相关的另外的触发短语。开发者语音动作服务系统100将
该新意图存储在包括指定各种应用程序的其他意图的语境意图数据库140中。
28.简而言之,开发者语音动作服务系统100包括摄入引擎110、验证引擎120、语法引导引擎130和语境意图数据库140。摄入引擎110、验证引擎120、语法引导引擎130或语境意图数据库140的任一个可以被实现为独立于可能与开发者语音动作服务系统100通信的其他系统的开发者语音动作服务系统100的组件,比如另一语音动作服务系统,或者可以被实现为这些其他系统的组件。验证引擎120可以访问在验证标准数据库125处可用的验证标准,并且语法引导引擎130可以访问在引导规则数据库135处可用的引导规则。应用程序开发者101可以使用通过一个或多个网络105与开发者语音动作服务系统100通信的计算设备102,将语法提交给开发者语音动作服务系统100。
29.应用程序开发者101可以向开发者语音动作服务系统100提交语法以请求特定应用程序的新意图。具体地,应用程序开发者101可以使用可以通过一个或多个网络105与开发者语音动作服务系统100通信的计算设备102提交语法。
30.由应用程序开发者101提交的语法可以指定与新意图的产生有关的各种信息。具体而言,语法可以指定特定应用程序,比如应用程序开发者101正在开发的特定应用程序,针对其正尝试产生新的意图。或者,语法可以指定与应用程序开发者101正在开发的应用程序不同的特定应用程序,比如指定与正在开发的应用程序相关或与其通信的特定应用程序的语法。在另一些示例中,语法可以指定应用程序的特定方面,比如与应用程序开发者101正在开发的应用程序或另一应用程序相关联的特定子进程、线程或其他分割。应用程序开发者101可以另外指定语法中的触发短语。触发短语包括一个或多个术语,当从用户提供的语音输入检测到该一个或多个术语时,触发该意图。在某些情况下,触发短语可以包括一个或多个异议(argument),其中异议充当触发短语中的占位符,其可被用户的语音输入的一个或多个术语替代。例如,触发短语“将我带到$位置”可以使比如“带我们到华盛顿特区1425k街西北”的用户语音输入能够被识别为与触发短语匹配。可以检测到其他异议,比如指定地点、日子、日期或时间、人、存储在用户的客户端设备的联系人、比如歌曲、电影或其他内容项的内容项、或其他异议的异议。
31.语法还可以可选地指定特定的行为,被定义为在由语法指定的特定应用程序上或由其执行的任务。另外,在某些情况下,应用程序开发者101可以指定与语法相关联的语境,其中语境定义了用于触发由该语法指定的意图而必须存在的附加条件,或者其中存在对触发意图的选择的修改。在一些实现中,由应用程序开发者101提交的语法可以指定开发者定义的类型,其中类型被定义为如果包括有触发短语则应当被检测到的一个或多个术语。例如,由一个或多个术语识别的开发者定义的类型可以与应用程序特定模式(例如“睡眠”或“锁定”)的特定类型相关联,或者可以被特定术语识别,该特定术语经常结合被提供给特定应用程序的输入而使用,例如用于二手车搜索应用程序的汽车模型名称,或者可以是与某些应用程序或触发短语相关的开发者定义类型。当从用户接收到语音输入时,语音动作服务系统可以更为可能检测到类型的术语而不是其他术语。例如,基于“sleep”是由已被应用程序开发者提交的一个或多个语法定义的类型,语音动作服务系统可以更为可能从语音输入中检测术语“sleep”,而不是“slip”。
32.在一些示例中,类型可以与特定实体相关联或用于参考特定实体。例如,由术语“我的房子”定义的类型可以与同用户相关联的财产相关联,例如,基于用户已经注册了与
语音动作服务系统、应用程序的属性相关联的地址,或者基于应用程序开发者101在语法中指定由术语“我的房子”定义的类型应当与用户的财产或财产的地址相关联。检测在用户语音输入中定义类型的术语可以使得由触发意图指定的行为关于与该类型相关联的实体而被执行。
33.例如,基于用户向语音动作服务系统提供语音输入“呼叫出租车载我回家”,语音动作服务系统可以确定该语音输入与由针对出租车服务应用程序的意图所指定的触发短语相匹配,并且还可以确定在语音输入中包括的术语“我的房子”与同用户家庭地址相关联的类型相对应。因此,该意图的触发可以导致出租车服务应用程序请求出租车以将用户从他们的当前位置带到他们的家庭住址。
34.在这样的示例中,指定用户的家庭地址的信息可以与在用户的客户端设备上运行的出租车服务应用程序的实例相关联地存储,可以存储在开发者语音动作服务系统100处、可以由存储在语境意图数据库140中的意图指定、或者可以以其他方式存储。在一些示例中,与类型相关联的实体特定于特定用户,使得术语“我的房子”将引用与不同用户相关联的财产的不同地址,并且可以针对提供包括该类型的语音输入的用户选择与该类型相关联的正确实体。
35.作为示例,应用程序开发者101可以提交图1中所示的语法。语法可以指定作为出租车服务应用程序的名为“出租车呼叫者(cab caller)”的应用程序。此外,语法可以指定应用程序开发者101已经指示为触发短语的触发短语“雇佣出租车(hail a cab)”,该触发短语应当使得触发从语法产生的意图。语法还指定了特定行为,即启动指定的应用程序。因此,从语法产生的意图的触发将导致启动“出租车呼叫者”应用程序。再次,从语法产生的意图的触发不限于启动第三方的应用程序,而是可以触发可以由开发者指定的其他应用程序或功能。应用程序开发者101另外指定了针对语法的语境。具体而言,语境指示了仅当提供触发该意图的语音输入的客户端设备托管了“出租车呼叫者”应用程序的“版本1.2”时,才会触发从语法产生的意图。本公开中考虑了许多其他语境,比如日期时间、位置、设备朝向、天气、用户认证、对物品或携带物品的人的接近度,用户的客户端设备上的特定软件或组件的存在(或不存在)等等。
36.由应用程序开发者101提交的语法被开发者语音动作服务系统100通过一个或多个网络105在摄入引擎110上接收。摄入引擎110为计算设备(比如计算设备102)提供接口,以使得开发者语音动作服务系统100能够接收由应用程序开发者提交的语法。
37.摄入引擎110接收由应用程序开发者101提交的语法,并将该语法提供给验证引擎120。验证引擎120接收该语法并验证该语法以确定是否可以基于所提交的语法来产生新的意图。为了验证语法,验证引擎120可以访问在验证标准数据库125可访问的验证标准。验证标准数据库125可以包括已经被预定或者响应于接收到的语法而产生的验证标准。
38.例如,验证引擎120可以通过确定由语法指定的触发短语是否已经与意图相关联来验证语法。另外或替代地,验证该语法可以涉及确定由该语法指定的应用程序是否能够执行该语法指定的特定行为或另一默认行为。例如,验证引擎120可以访问与指示关于应用程序的信息的语法中指定的应用程序相关联的清单或其他信息,比如指示哪些行为可以在应用程序上执行或由该应用程序执行、哪些数据可用于应用程序或在其内可用的信息、或其他信息。验证引擎120可以查阅与所识别的应用程序相关联的清单或其他信息以验证语
法。
39.验证语法还可以涉及确定语法中指定的语境是否是适当的语境,例如通过确保语境可以被满足,例如,存在“出租车呼叫者”应用程序的“版本1.2”。验证语法还可能涉及确定以正确的格式提供语法,使得语法可以被转换成意图格式。另外或替代地,验证语法可以涉及确定针对语法提交的触发短语具有适当的格式,例如通过确定包括在触发短语中的异议被正确地格式化或者是支持的异议类型。验证语法还可以包括识别与从应用程序开发者101接收的语法中指定的行为相关或所需以执行的一个或多个行为。例如,如果应用程序开发者101在语法中指定行为以使用出租车服务应用程序请求出租车,则验证引擎120可以确定使用出租车服务应用程序请求出租车还涉及在用户的客户端设备上启动出租车服务应用程序的行为,并且使用在用户的客户端设备上运行的定位系统应用程序来确定用户的位置。
40.另外,验证引擎120可以通过确定语法的格式化或语法的部分在语法上是有效的来验证接收到的语法。在某些情况下,语法引导引擎130只有在语法有效的情况下才可以能够引导接收的语法,也就是说,如果其数据结构根据预期的语法格式被正确格式化并且仅包括可以由语法引导引擎130处理或转换的术语。
41.在一些实现中,可以由开发者语音动作服务系统100向应用程序开发者101提供反馈。例如,验证引擎120可以向应用程序开发者101的计算设备102提供指示由应用程序开发者101提交的语法是否已经被验证的信息。还可以向应用程序开发者101提供额外的或不同的反馈,比如指示是否已经使用语法成功地产生了意图的信息、指定基于语法中指定的触发短语产生的一个或多个其他相关的触发短语的信息、或其他信息。
42.基于验证引擎120验证应用程序开发者101提交的语法,验证引擎120可以将语法提交给语法引导引擎130。语法引导引擎130可以接收语法并且可以引导语法以产生基于语法的意图。引导语法可以包括由开发者语音动作服务系统100将语法从接收到的格式转换为意图的格式。引导语法还可以包括通过基于语法中指定的触发短语来产生一个或多个与指定的触发短语相关联的其他触发短语来扩展语法中被指定的触发短语。
43.例如,开发者语音动作服务系统100可以使应用程序开发者能够以应用程序开发者或其他用户更容易理解的格式提交语法,例如通过使应用程序开发者能够以包括文本异议的格式提交语法。语法引导引擎130可以以该格式接收语法,并且可以将语法转换为意图的格式,其中该意图的格式可以是对于应用程序开发者或其他用户来说更难解析或理解的格式,或者可以是特定于语音动作服务的格式。
44.扩展在提交给开发者语音动作服务系统100的语法中指定的触发短语允许开发者语音动作服务系统100产生基于指定的触发短语的一个或多个相关的触发短语。可以向触发短语应用各种扩展规则以产生相关的触发短语。例如,可以将一个或多个术语可选规则、同义词规则,扩展规则或其他修订规则(比如其他查询术语修订规则)应用于语法中指定的触发短语,以产生一个或多个与语法中指定的触发短语相关并且至少部分地基于语法中指定的触发短语的其他触发短语。
45.可以将可选规则应用于触发短语,该可选规则指定触发短语中的一个或多个特定术语在基于语法中指定的触发短语而产生的相关触发短语中是否是可选的。同义词规则可以识别针对语法中的一个或多个术语的一个或多个同义词,该一个或多个术语可以被包括
在基于语法中指定的触发短语而产生的相关触发短语中。扩展规则可以使语法中指定的触发短语能够被扩展以包括一个或多个额外的术语,比如被识别为与语法中指定的触发短语中的术语或多个术语相似或相关的一个或多个术语。可以应用用于基于语法中指定的触发短语而产生相关触发短语的其他规则。
46.另外,在一些示例中,语法引导引擎130可以通过将接收到的触发短语或针对指定的触发短语产生的一个或多个相关的触发短语转换为一个或多个其他语言,来产生与接收到的语法中指定的触发短语相关的一个或多个触发短语。例如,触发短语“雇佣出租车”可以从英语转换成普通话、西班牙语、阿拉伯语、法语、印地语、德语、俄语或其他语言中的一种或多种,并且一个或多个转换可以被识别为与语法中指定的触发短语“雇佣出租车”有关的触发短语。
47.另外,在一些情况下,语法引导引擎130可以能够确定在接收到的语法中指定的触发短语中包括的术语或异议的变形和排列。例如,如果与购物应用程序相关联的语法中指定的触发短语指定第一单元中的服装尺寸参数的异议,例如美国尺码中的套装尺寸,则语法引导引擎130可能能够确定该异议的变形或排列,比如通过在另一个触发短语中包括在第二单元中的服装尺寸参数的异议,例如欧洲尺码中的套装尺寸。
48.在一些情况下,语法引导引擎130可以确定关联得分的强度并将其与语法中指定的触发短语中的一个或多个和基于语法中指定的触发短语而确定的触发短语相关联。关联得分的强度可以指示触发短语对语法中指定的应用程序的适用性或唯一性的估计。例如,基于接收指定来自应用程序开发者101的触发短语“雇佣出租车”的语法,语法引导引擎130可以确定触发短语“雇佣出租车”和触发短语“呼叫出租车”之间的关联的强度,触发短语“呼叫出租车”至少基于接收到的语法中指定的触发短语被识别为相关的触发短语。
49.在一些情况下,验证引擎120和/或语法引导引擎130可以确定触发短语和应用程序之间的关联的强度,以确定所请求的语法是否是垃圾信息。例如,语法引导引擎130可以确定触发短语“雇佣出租车”和“出租车呼叫者”的出租车服务应用程序或指定出租车呼叫者应用程序的意图之间的关联的强度,并且可以基于该确定将关联强度的得分分配给触发短语“雇佣出租车”。此外,在一些示例中,广告商或应用程序开发者可能试图将语法提交给指定他们正在尝试推广的应用程序和触发短语的开发者语音动作服务。验证引擎120和/或语法引导引擎130可以确定触发短语与所识别的应用程序不具有足够强的关联,并且因此可以基于接收到的语法而拒绝产生新的意图、和/或可以提供反馈给提交语法的用户,指示他们必须提供与应用程序更强相关的触发短语。
50.例如,体育新闻应用程序的广告商可以提交指定体育新闻应用程序和触发短语“呼叫出租车”的语法。验证引擎120和/或语法引导引擎130可以确定触发短语“打电话”与体育新闻应用程序没有足够强的关联,可能会拒绝基于该语法所产生的新意图。
51.在一些实现中,语法引导引擎130还可以向计算设备102处的应用程序开发者101提供反馈。例如,基于引导接收到的语法以产生一个或多个其他触发短语,其至少基于由应用程序开发者101提交的语法识别的触发短语而被确定,可以向应用程序开发者101呈现识别一个或多个其他触发短语的反馈,以允许应用程序开发者101评估一个或多个其他触发短语来确定该其他触发短语是否是针对被识别的触发短语的可接受的替代触发短语。在一些实现中,应用程序开发者101可以能够提供对反馈的响应,例如,以指示在新意图中应当
指定由语法引导引擎130产生的一个或多个其他触发短语中的哪一个。
52.另外,在一些情况下,开发者语音动作服务系统100的语法引导引擎130或另一个组件可以基于接收到的意图、基于接收到的语法指定的触发短语确定的一个或多个其他触发短语、或从接收到的意图产生的意图来产生一个或多个示例查询或语音输入。示例查询或语音输入可以用作示例来教导用户如何使用可访问存储在语境意图数据库140中的意图的语音动作服务。例如,当用户首先提供语音输入时,该语音输入触发从由应用程序开发者101提交的语法产生的意图,可以提供示例查询或触发短语用于向用户输出。
53.基于语法引导引擎130已经通过产生一个或多个相关的触发短语并且将包括一个或多个相关的触发短语的语法转换成意图的格式来扩展语法中指定的触发短语,开发者语音操作服务系统100可以将新意图存储在语境意图数据库140中。例如,基于由应用程序开发者101提交的语法产生的新意图可以作为“意图y”添加到存储在语境意图数据库中的一组意图,该组意图还至少包括“意图x”和“意图z”。例如,“意图y”和“意图z”可以是基于由一个或多个其他应用程序开发者提交的与一个或多个应用程序相关联的语法所生成的意图,该一个或多个应用程序可以与由应用程序开发者101提交的语法中指定的应用程序不同或相同。
54.存储在语境意图数据库中的意图可以以意图格式指定由应用程序开发者101提交的语法所指定的参数。例如,基于由应用程序开发者101提交的语法产生的“意图y”可以指定“出租车呼叫者”应用程序,可以指定如果意图被触发则将在“出租车呼叫者”应用程序上执行或由该应用程序执行的启动应用程序行为,并且可以指定在触发意图时施行附加条件的语境,即,在其上可以触发意图的客户端设备必须具有“出租车呼叫者”应用程序的“版本1.2”这一特征。此外,“意图y”可以指定由应用程序开发者101提交的触发短语以及开发者语音动作服务系统100至少基于由应用程序开发者101提交的触发短语确定的一个或多个附加触发短语。例如,触发短语“雇佣出租车”可以扩展到还包括触发短语“呼叫出租车(call a cab)”、“取得汽车”和“呼叫出租车(call taxi)”,只要满足附加语境,检测到这些触发短语的任何一个将导致触发“意图y”。
55.一旦基于由应用程序开发者101提交的语法产生了意图并将其存储在语境意图数据库140中,用户可以能够通过提供包括与意图相关联的触发短语的语音输入来触发意图。例如,基于托管“出租车呼叫者”应用程序的“版本1.2”的客户端设备的用户向客户端设备提供语音输入“呼叫出租车”,客户端设备可以确定语音输入包括触发短语“呼叫出租车”,可以确定移动设备托管“出租车呼叫者”应用程序的“1.2版本”,并且可以作为响应来触发导致“出租车呼叫者”应用程序在用户客户端设备上启动的“意图y”。
56.在一些实现中,将新产生的意图存储在语境意图数据库140的过程可以是被支持以快速更新推送或部署支持的过程。例如,一旦语音开发者语音动作服务系统100已经引导接收到的语法,它就可以能够在语境意图数据库140中快速存储新创建的意图,并且使新产生的意图对语音动作服务的用户可用,该用户可访问存储在语境意图数据库140中的意图。
57.图2示出了语音动作服务系统200的示例用例,其使用户能够提交与语境意图数据库240存储的意图相匹配的语音输入。将语音输入与意图相匹配导致由意图指定的行为在用户的客户端设备202的应用程序上执行或由该应用程序执行,其中应用程序也由该意图指定。
58.简而言之,如图2所示,语音动作服务系统200包括声音识别引擎210、匹配器220、歧义消除引擎230和执行引擎250。声音识别引擎210通过一个或多个有线或无线网络205接收音频数据,该有线或无线网络205包括来自客户端设备202的用户201的语音输入。例如,用户201可以向在客户端设备202上托管的语音接口应用程序提供语音输入,并且在客户端设备202上托管的语音接口应用程序可以发送包括语音输的音频数据通过一个或多个网络205向语音动作服务系统200输入。虽然在图2中示出为从图2中的客户端设备202分离,但是在某些实施例中,声音识别引擎210、匹配器220、歧义消除引擎230和执行引擎250以及这里讨论的其他系统和子系统中的一个或多个可以被替代地实现或形成与用户201相关联的客户端设备202的一部分。
59.在一些情况下,声音识别引擎210可以访问由语音动作服务系统200定义的一种或多种类型。例如,语音动作服务系统200可以访问一个或多个知识库,该知识库识别比如例如电影或歌曲的内容的人物、地点、项目或其他定义类型的实体。语音动作服务系统200的声音识别引擎210或其他组件可以在对音频数据240执行声音识别时或当基于用户的语音输入执行与意图的选择和执行相关的其他操作时访问一个或多个知识库。
60.匹配器220可以访问语境意图数据库240,语境意图数据库240包括基于由应用程序开发者(比如图1的应用程序开发者101)提交的语法而产生的一个或多个意图。匹配器220还可以访问操作系统(os)意图数据库245,操作系统(os)意图数据库245包括特定于一个或多个特定操作系统、或由操作系统指定为属于特定应用程序的一个或多个意图。例如,存储在os意图数据库245中的意图可以包括针对由操作系统执行的行为的意图,比如重新启动或锁定设备的行为、加入无线网络等,或者由属于一个或多个应用程序的操作系统执行的行为,比如启动消息、电话或电子邮件应用程序的行为。此外,歧义消除引擎230可以访问包括特定于特定用户或客户端设备的信息的用户个性化数据库235。用户个性化数据可以用于对被确定为与从客户端设备202接收的语音输入相匹配的意图消除歧义。
61.如图2所示,用户201可以具有能够接收语音输入(比如由用户201提供以执行一个或多个动作的语音命令)的客户端设备202。在一些情况下,客户端设备202包括用于从用户获得语音输入的麦克风或其他设备,并且在客户端设备202上运行的操作系统或应用程序可以包括用于接收语音输入的软件。客户端设备202可以从用户201接收语音输入,比如语音输入“呼叫出租车”。基于客户端设备202接收语音输入,客户端设备可以发送音频数据204,音频数据204包括通过一个或多个网络205向语音动作服务系统200输入的语音。
62.语音动作服务系统200的声音识别引擎210接收音频数据204并对音频数据204执行声音识别处理,以获得在音频数据204中包括的语音输入的转录。例如,声音识别引擎210可以接收音频数据204,并且可以可选地对音频数据204进行过滤以从音频数据204去除噪声或背景音频,并产生干净版本的音频数据204。声音识别引擎210然后可以在干净版本的音频数据204上执行语音识别处理以获得语音输入的转录。例如,声音识别引擎210可以从接收自客户端设备202的音频数据204产生转录“呼叫出租车”。
63.声音识别引擎210将音频数据204的转录提供给匹配器220。匹配器220将转录与由存储在语境意图数据库240或os意图数据库245中的意图所指定的一个或多个触发短语相匹配。在某些情况下,确定转录同与特定意图相关联的特定触发短语相匹配可以涉及确定该转录的至少一部分与该特定触发短语相匹配,比如确定该转录中的一个或多个术语与该
特定触发短语中的一个或更多的术语相匹配。因此,可以将特定转录确定为对多个意图的潜在呼叫,使得语音动作服务系统200必须从候选意图中确定要触发的特定意图。基于确定转录与由一个或多个候选意图所指定的一个或多个触发短语相匹配,匹配器220可以向歧义消除引擎230提供指定一个或多个候选触发短语的信息。
64.在一些情况下,用户201可以向客户端设备201提供文本输入,使得文本输入可以直接被提供给匹配器220而不被提供给声音识别引擎210。匹配器220可以接收文本输入,并且可以执行上述的匹配操作以基于该文本输入来识别一个或多个候选意图。在一些情况下,匹配器220可以能够识别在文本输入中包括的类型或其他特征,比如异议。
65.在一些示例中,匹配器220可以扩展音频数据204的转录以产生音频数据204的一个或多个相关的转录。例如,可以使用一个或多个查询术语扩展规则、同义词规则、术语可选规则或其他规则来扩展转录“呼叫出租车”以产生相关的转录“呼叫出租车”、“请求出租车”“雇佣汽车”等。匹配器220可以将一个或多个相关的转录匹配到由存储在语境意图数据库240或os意图数据库245中的意图所指定的触发短语,以确定该转录或相关转录匹配的触发短语。
66.在一些示例中,扩展音频数据204的转录需要匹配器220确定相关的转录是否将与已经存在或者与不同应用程序相关联的触发短语相冲突。例如,触发短语“呼叫出租车”可以通过与出租车服务应用程序“出租车呼叫者”相关联的意图来指定,并且相关的触发短语“请求出租车”可以通过与出租车服务应用程序“现在召车”相关联的意图来指定。匹配器220可以确定转录和相关的转录与由涉及不同应用程序的意图所指定的触发短语相匹配,因此在一些示例中,匹配器220可以忽略或从匹配过程移除相关转录“请求出租车”。因此,语音动作服务系统200的匹配器220或另一个组件可以能够调整用户输入的转录以增加正被检测的匹配的机会,同时还处理由扩展的音频数据204的转录产生的任何冲突。
67.歧义消除引擎230可以接收指定一个或多个候选意图的信息,并且可以执行操作以从候选意图中识别触发呼叫的特定意图。基于请求和接收选择要触发的特定候选意图的用户反馈或基于其他信息,基于与每一个候选意图相关联的置信度得分,歧义消除引擎230可以基于在用户个性化数据库235访问的信息来从候选意图中识别要触发的特定意图。
68.例如,语音动作服务系统200可以接收或能够接收识别用户201或用户201正在使用的客户端设备202的信息,例如,基于用户201正登录到由客户端设备202托管的特定应用程序,基于客户端设备202将识别201或客户端设备202的信息提交给语音动作服务系统200。歧义消除引擎230可以基于该识别信息识别用户201或客户端设备202,并且可以访问在指定与特定用户201或客户端设备202的意图相关的信息的用户个性化数据库235处的信息。例如,由歧义消除引擎230在用户个性化数据库235处访问的信息可以指定用户201通常提供包括在音频数据204中的语音输入或特定文本输入以触发特定的意图,比如打开特定应用程序。类似地,在用户个性化数据库235处访问的信息可以指定由用户201提供或者基于用户201的过去行为所确定的偏好。例如,语音动作服务系统200可以基于过去的用户行为来确定用户201与其他相比可能倾向于特定的出租车服务应用程序,或者可以确定用户201在涉及特定应用程序时通常使用特定术语。
69.基于在用户个性化数据库235处访问的信息,歧义消除引擎230可以从候选意图中选择特定意图,并向执行引擎250提供识别特定意图的信息。例如,歧义消除引擎230可以接
收识别基于转录“呼叫出租车(cab called)”被识别的两个候选意图的信息。一个候选意图可以指定“出租车呼叫”的出租车服务应用程序,并且第二意图可以指定称为“现在召车(taxinow)”的出租车服务应用程序。歧义消除引擎230可以访问用户个性化数据库235处的信息,并且确定用户201或客户端设备202的用户与“现在召车”出租车服务应用程序相比通常使用“出租车呼叫”出租车服务应用程序,因此可以从两个候选意图中选择指定“出租车呼叫者”应用程序的候选意图。歧义消除引擎230然后可以向执行引擎250发送识别指定“出租车呼叫者”应用程序的意图的信息。以这种方式,歧义消除引擎230可以依靠用户201的个性化数据来选择特定的候选意图,而不需要来自用户201的额外输入。
70.或者,歧义消除引擎230可以基于与每一个候选意图相关联的置信度得分,从一组候选意图中识别特定意图。例如,每一个候选意图可以与置信度得分相关联,该置信度得分近似于候选意图是用户201意图使用语音动作触发的意图的置信度。在一些情况下,歧义消除引擎230或匹配器220可以确定每一个候选意图的置信度得分。
71.分配给候选意图的置信度得分可以基于一个或多个因素。例如,可以至少部分地基于转录和由该意图指定的触发短语之间的匹配的确切性来确定置信度得分。在这样的示例中,指定与转录完全匹配的触发短语的候选意图可以被分配指示该候选意图是用户201的意图的高置信度的置信度得分。
72.在其他实现中,由意图指定的不同触发短语可以与指示触发短语和意图之间的关联强度的得分相关联,并且可以至少部分地基于被匹配的触发短语的关联强度的得分来确定置信度得分。例如,触发短语“雇佣出租车”的关联强度的得分可以指示该触发短语和指定“出租车呼叫者”应用程序的意图之间的关联强于由同一意图指定的触发短语“取得汽车”的关联强度的得分。
73.在确定候选意图的置信度得分时可以考虑其他因素,比如候选意图已被触发的频繁程度,候选意图被触发的最近时间,在接收到语音动作时客户端设备202上可能运行的其他应用程序,该其他应用程序可能与在由候选意图指定的应用程序相关联或与其频繁地同时使用,基于用户的位置或用户被识别为参与的行为,或者基于其他信息,接收可能与候选意图指定的应用程序相关或频繁使用的语音动作的时间。在一些实施方案中,在确定特定候选意图的置信度得分时可以考虑这些因素的组合。基于一个或多个候选意图的置信度得分,歧义消除引擎230可以选择特定候选意图,歧义消除引擎可以向执行引擎250发送识别所选择的候选意图的信息。
74.另外,当确定候选意图的置信度得分时,可以考虑其他用户的动作,比如正在积极使用由候选意图指定的应用程序的其他用户的数量、使用由候选意图指定的应用程序的用户的联系人或朋友的数量。例如,基于用户提供语音输入“呼叫出租车”,语音动作服务系统200可以确定语音输入可以触发两个候选出租车服务应用程序,并且可以进一步确定与其中之一相比,更多的士司机正在使用另一个应用程序。因此,被分配给针对具有更多积极使用该应用程序的司机的出租车服务应用程序的意图的置信度得分可以高于被分配给针对具有较少积极使用该应用程序的司机的出租车服务应用程序的意图的置信度得分。
75.在又另外的示例中,歧义消除引擎230可以向客户端设备202为用户201提供从一个或多个候选意图中选择特定候选意图的请求。例如,基于从匹配器220接收指定一个或多个候选意图的信息,歧义消除引擎可以使请求在客户端设备202处被提供以供用户201选择
特定的候选意图、或者由特定的候选意图指定的特定应用程序。歧义消除引擎230可以接收指示用户201的选择的信息,并且可以向执行引擎250提供识别用户201选择的特定候选意图的信息。
76.例如,基于确定转录“呼叫出租车”同与指定“出租车呼叫者”应用程序的意图相关联的触发短语相匹配,并且还同与指定“现在召车”应用程序的意图相关联的触发短语相匹配,歧义消除引擎230可以在客户端设备202处向用户201提供请求用户201选择“出租车呼叫者”应用程序或“现在召车”应用程序的用户界面。歧义消除引擎230可以接收指示用户选择“出租车呼叫者”应用程序的信息,并且作为响应可以向执行引擎250提供识别指定“出租车呼叫者”应用程序的候选意图的信息。
77.在一些实现中,歧义消除引擎230可以基于置信度得分或其他信息对候选意图进行排序,并且可以基于排序,在呈现给用户201的用户界面中选择特定的候选意图或显示候选意图。例如,歧义消除引擎230可以基于针对每一个候选意图确定的置信度得分对候选意图排序,例如使得具有较高置信度得分的候选意图被排序在具有较低置信度得分的候选意图之上。其他因素可以影响候选意图的排序,例如候选意图被触发的频繁程度或最近时间、候选意图所指定的应用程序响应于类似的语音输入被用户选择的频繁程度或最近时间。
78.在某些情况下,用户界面可以不同地基于排序、置信度得分、或与候选意图或排序相关联的其他信息或因素,向用户呈现候选意图或应用程序,该用户界面请求从多个候选意图中选择特定候选意图的用户输入、或者从一组应用程序中请求由候选意图指定的特定应用程序的选择,该组应用程序中的每一个由至少一个候选意图指定。例如,如图2所示,基于确定由候选意图指定的“出租车呼叫者”应用程序比“现在召车”应用程序更频繁地由用户201选择,向用户201呈现请求选择“出租车呼叫者”或“现在召车”应用程序中的一个的用户界面可以将“出租车呼叫者”的选项显示为比“现在召车”应用程序的选项更大的可选择图标、可以在“现在召车”应用程序的选项之上显示“出租车呼叫者”应用程序的选项、或者可以以其他方式不同地显示选项或在用户界面的不同位置显示选项。
79.在一些情况下,歧义消除引擎230还可以基于消除歧义确定或接收从一个或多个候选意图中选择特定候选意图的信息来更新用户个性化数据库235处的信息。例如,基于歧义消除引擎230响应于提供语音输入“呼叫出租车”而接收到“出租车呼叫者”应用程序的用户201的选择,歧义消除引擎230可以更新用户个性化数据库和/或语境意图数据库240处的用户个性化信息。更新该个性化信息可以涉及增加触发短语“呼叫出租车”和指定“出租车呼叫者”应用程序的候选意图之间的关联得分的强度、可以涉及调整指定“出租车呼叫者”的候选意图的置信度得分以指示更强的置信度、调整指定“现在召车”应用程序的候选意图的置信度得分以指示减少的置信度、或者可以以其他方式更新个性化信息或者与存储在用户个性化数据库235或语境意图数据库240处的意图相关联的信息。
80.在其他示例中,歧义消除引擎还可以能够访问存储在语境意图数据库140或os意图数据库中的意图,并且可以能够修改或调整与意图或涉及意图的信息相关联的参数。例如,基于确定用户201已经响应于用户的语音输入“呼叫出租车”,在提供给用户201的用户界面处选择了“出租车呼叫者”应用程序而不是“现在召车”应用程序,歧义消除引擎230可以更新指定“现在召车”应用程序且存储在语境意图数据库140中的候选意图,以从针对意图指定的一组触发短语中去除触发短语“呼叫出租车”,或者针对由意图指定的触发短语
“
呼叫出租车”调整关联得分的强度。这种和类似的过程可以使语音动作服务系统200能够在触发适当意图时评估服务的撤销能力,并且调整与意图相关联的意图或信息以提高语音动作服务的准确性或效率。
81.在一些示例中,在确定如何调整与意图或涉及意图的信息相关联的参数时,可以聚合和分析来自多个用户的反馈。例如,基于从用户身体聚合的指示触发短语“呼叫出租车”通常导致与“现在召车”应用程序相比用户通常选择“出租车呼叫者”应用程序的反馈,语音动作服务系统200可以确定增加触发短语“呼叫出租车”和指定“出租车呼叫者”应用程序的意图或“出租车呼叫者”应用程序本身的关联强度或置信度得分。
82.虽然以上被单独讨论,但是歧义消除引擎230可用的一种或多种方法可用于从候选意图中选择特定意图。例如,歧义消除引擎230可以从匹配器220接收识别一组五个候选意图的数据,并且可以基于与该五个候选意图相关联或针对其确定的置信度得分来消除这些候选意图中的三个。歧义消除引擎230然后可以向客户端设备202输出请求用户201从其余两个候选意图指定的应用程序中进行选择以确定特定候选意图的请求。歧义消除引擎230然后可以将识别指定用户选择的意图的候选意图的信息发送到执行引擎250。
83.另外,在某些情况下,语音动作服务系统200可以通过歧义消除引擎230使用的一种或多种方法,基于对候选意图的分析,向用户呈现不同的用户界面。例如,如果歧义消除引擎230仅基于候选意图的置信度得分来选择特定的候选意图,则歧义消除引擎230可以在客户端设备202处向用户201提供识别特定意图或由特定意图指定的应用程序的用户界面。或者,如果歧义消除引擎230基于候选意图的置信度得分来确定歧义消除引擎230应当请求用户选择候选意图或由候选意图指定的应用程序,则歧义消除引擎230可以提供不同的用户界面,用于在请求用户选择的客户端设备202处输出。
84.执行引擎250可以从歧义消除引擎230接收识别特定意图的信息,并且可以触发意图以使由该意图指定的行为在由该意图指定的应用程序上执行或由该应用程序执行。例如,执行引擎250可以在语境意图数据库240处访问所识别的意图,或者可以以其他方式访问或接收所识别的意图。执行引擎250可以触发意图,以使由意图指定的行为在由该意图指定的应用程序上执行或由该应用程序执行。例如,执行引擎250可以使行为在指定的应用程序上执行,可以向操作系统或其他应用程序提供在应用程序上执行行为的控制,或者可以使应用程序执行指定的行为。在其他示例中,执行引擎250可以向客户端设备202提供识别要触发的意图的信息或由要触发的意图所指定的行为,并且客户端设备202可以基于接收到的信息来接收该信息并触发该意图或该行为。在一些情况下,执行引擎250可以在客户端设备202处实现。
85.作为示例,基于从歧义消除引擎230接收到识别指定“出租车呼叫者”应用程序的候选意图的信息,执行引擎250可以访问在语境意图数据库240处指定“出租车呼叫者”应用程序的意图并且可以触发指定“出租车呼叫者”应用程序的意图。触发指定“出租车呼叫者”应用程序的意图可以涉及确定由该意图指定的行为,比如启动“出租车呼叫者”应用程序的行为。基于确定由该意图指定的行为是启动“出租车呼叫者”应用程序的行为,执行引擎250可以发送使客户端设备202或客户端托管的应用程序、操作系统或其他软件在客户端设备202上启动“出租车呼叫者”应用程序的信息。
86.在一些情况下,触发意图可以涉及在不确定由该意图指定的行为的情况下发送该
意图或与该意图相关联的信息。例如,执行引擎250可以将与所识别的意图相关联的数据发送到客户端设备202,而不确定由该意图指定的行为。在这种情况下,客户端设备202、或由客户端设备托管的应用程序、操作系统或其他软件可以基于该意图来确定要执行的行为,并且可以使该行为在该意图中指定的应用程序上执行或由该应用程序执行。
87.客户端设备202可以从执行引擎250接收信息,并且基于该信息可以执行操作以实施由所识别的意图指定的行为。例如,客户端设备202可以接收由歧义消除引擎230识别的意图,或者可以接收教导客户端设备202或由客户端设备202托管的软件执行由所识别的意图指定的行为的信息,比如启动“出租车呼叫者”应用程序的行为。基于接收到的信息,客户端设备202或由客户端设备202托管的软件可以执行该行为。例如,客户端设备202的操作系统、“出租车呼叫者”应用程序本身、或客户端设备202上托管的另一应用程序可以响应于接收到的信息而启动“出租车呼叫者”应用程序。以这种方式,由用户201提供的“呼叫出租车”语音输入可以使“出租车呼叫者”出租车服务应用程序启动,使得用户201然后将能够使用“出租车呼叫者”应用程序来请求出租车。
88.图3描绘了用于开发者语音动作服务的示例过程300的流程图。在一些实施方式中,图3的过程300可以由图1的开发者语音动作服务系统100执行。或者可以由位于客户端设备本地或远离客户端设备的另一系统执行,比如可访问并被配置为通过一个或多个网络从客户端设备接收信息的系统。
89.过程300从接收至少识别应用程序和触发短语(302)的数据开始。例如,图1的摄入引擎110可以通过一个或多个网络105从与应用程序开发者101相关联的计算设备102接收语法,并且接收到的语法可以指定至少一个应用程序和触发短语。接收到的数据可被视为将要向开发者语音动作服务系统100注册的新意图的候选。在一些示例中,如所描述的,可以在从应用程序开发者101接收的语法中指定其他信息,比如指定要在指定应用程序上执行或由该应用程序执行的行为或复合行为、与新意图相关联的语境、与触发短语相关联的一个或多个异议的信息或其他信息。
90.可以验证识别应用程序和触发短语的信息以确定信息是否可以用于产生新意图(304)。例如,开发者语音动作服务系统100的验证引擎120可以通过确定由数据识别的触发短语是可接受的触发短语来验证接收到的信息,例如,该触发短语尚未与另一意图相关联,或该触发短语与所识别的应用程序没有充分的相关性。验证接收到的信息还可以包括确定接收到的信息的格式是否可被转换以产生新的意图,可以涉及确定应用程序或接收到的数据中识别的行为是有效的应用程序还是可以由所识别的应用程序执行,或者可以涉及其他验证过程。
91.在一些情况下,可以将反馈提供给与应用程序开发者101相关联的计算设备102,该反馈包括基于在接收到的信息上执行的验证过程而确定或与该验证过程相关的信息。例如,反馈可以指示应用程序开发者101提交的语法是否已经通过验证过程,使得可以转换语法以产生新的意图,或者可以指示应用程序开发者101提交的语法未能通过验证过程的原因。
92.接收到的信息可以被引导以产生指定至少应用程序、由接收到的数据识别的触发短语、以及至少基于由接收到的数据识别的触发短语确定的一个或多个其他触发短语的意图(306)。引导接收到的信息涉及通过扩展所识别的触发短语以产生一个或多个相关的触
发短语来确定至少基于所识别的触发短语而确定的一个或多个额外的触发短语。例如,如所描述的,在接收到的数据中所识别的触发短语可以通过使用一个或多个扩展规则、同义词规则、术语可选规则或其他规则来扩展,并且可以被扩展以包括所识别的触发短语和相关的触发短语到其他语言的转换。
93.引导接收到的信息还可以涉及将接收到的信息从它从计算设备102接收的语法格式转换为针对意图的格式,以产生指定至少应用程序、所识别的触发短语、以及至少基于所识别的触发短语而确定的一个或多个额外的触发短语的新意图。在一些情况下,转换接收到的信息还可以包括将至少基于所识别的触发短语而确定的一个或多个额外的触发短语从第一格式(比如接收到的信息的语法格式)转换为意图格式以产生新意图
94.在语境意图数据库(308)中存储指定至少应用程序、在接收到的信息中识别的触发短语以及一个或多个额外的触发短语的新意图。例如,基于图1的引导引擎130引导从应用程序开发者101接收的语法以产生新意图,开发者语音动作服务系统100可以将新意图存储在语境意图数据库140中。所存储的意图可以指定所识别的应用程序、所识别的触发短语以及至少基于所识别的触发短语而确定的一个或多个触发短语。存储在语境意图数据库140中的新意图也可以指定其他信息,比如当触发意图时在应用程序上执行或由该应用程序执行的行为、与意图相关联的一个或多个语境、估计触发短语与应用程序或行为、或其他信息之间的关联强度的一个或多个关联强度得分。新意图可以与一个或多个其他意图一起存储在语境意图数据库140中,以使得由用户提供的以后的语音输入能够与由存储的意图之一指定的触发短语相匹配。响应于检测到该匹配,可以触发所匹配的意图以使由所匹配的意图指定的行为在由所匹配的意图指定的应用程序上执行或由该应用程序执行。
95.已经描述了许多实施方式。然而,应当理解,在不脱离本公开的主旨和范围的情况下,可以进行各种修改。例如,可以使用以上所示的各种形式的流程,其中步骤被重新排序、添加或删除。因此,其他实施方式在所附权利要求的范围之内。
96.对于这里讨论的系统和/或方法的实例,可以收集关于用户的个人信息或可以利用个人信息,可以向用户提供机会以控制程序或功能是否收集个人信息,例如,关于用户的社交网络、社会动作或行为、职业、偏好或当前位置的信息,或者控制系统和/或方法是否(和/或如何)可以执行与用户更相关的操作。此外,某些数据可以在存储或使用之前以一种或多种方式被匿名化,从而消除个人身份信息。例如,用户的身份可以被匿名化,使得针对该用户不能确定个人可识别信息,或者可以在获得位置信息时将用户的地理位置一般化,比如城市、邮政编码或州一级,使得无法确定用户的特定位置。因此,用户可以控制如何收集并使用关于他或她的信息。
97.在本说明书中描述的实施例和所有功能操作可以在数字电子电路中、或在计算机软件、固件或硬件中、包括在本说明书中公开的结构及其结构上的等同物、或其一个或多个的组合中实现。实施例可以被实现为一个或多个计算机程序产品,即,在计算机可读介质上编码的用于由数据处理装置执行或控制其操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质组成,或其一个或多个的组合。术语“数据处理装置”覆盖了用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该设备可以包括针对上述计算机程序创建执行环境的代码,例如构成处理器固件的代
码、协议栈、数据库管理系统、操作系统或其一个或多个的组合。传播信号是人为产生的信号,例如机器产生的电、光或电磁信号,其被产生以编码用于传输到合适的接收机设备的信息。
98.计算机程序(也称为程序、软件、软件应用程序、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式部署,包括作为独立程序或适用于计算环境中使用的模块、组件、子程序或其他单元。计算机程序不一定与文件系统中的文件相对应。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、专用于上述程序的单个文件中、或者在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。计算机程序可以被部署为在一个计算机上或者位于一个站点上或分布在多个站点上并由通信网络互连的多个计算机上执行。
99.本说明书中描述的过程和逻辑流程可以通过对输入数据进行操作并产生输出,由施行一个或多个计算机程序的一个或多个可编程处理器执行以执行功能。处理和逻辑流程也可以由专用逻辑电路(例如fpga(现场可编程门阵列)或asic(专用集成电路))来执行,并且装置也可以被实现该专用逻辑电路。
100.适于执行计算机程序的处理器例如包括通用和专用微处理器以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或该两者接收指令和数据。
101.计算机的基本要素是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合以从一个或多个用于存储数据的大容量存储设备(例如磁、磁光盘或光盘)接收数据或向其传输数据或该两者。然而,计算机不需要这样的设备。此外,计算机可以嵌入在另一个设备中,仅举数例,例如平板计算机、移动电话、个人数字助理(pda)、移动音频播放器、全球定位系统(gps)接收器。适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器件(例如eprom,eeprom和闪存设备)、磁盘(例如内部硬盘或可移动盘)、磁光盘、以及cd rom和dvd
‑
rom盘。处理器和存储器可以由专用逻辑电路补充或并入其中。
102.为了提供与用户的交互,实施例可以在具有用于向用户显示信息的显示设备(例如crt(阴极射线管)或lcd(液晶显示器)监视器)、键盘以及用户可以向计算机提供输入的指示设备(例如鼠标或轨迹球)的计算机上实现。也可以使用其他类型的设备来提供与用户的交互,例如,被提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈,并且可以以包括听觉、声音或触觉输入的任何形式来接收来自用户的输入。
103.实施例可以在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)、或者包括前端组件(例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该浏览器与实现交互)、或者一个或多个这样的后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过数字数据通信(例如通信网络)的任何形式或介质来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如互联网。
104.计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并通常通过通信网络进行交互。客户端和服务器之间的关联是由于在相应的计算机上运行的计算机程序并且彼此之间具有客户端
‑
服务器关联而出现的。
105.虽然本说明书包含许多细节,但是这些说明书不应被解释为对本公开的范围或可要求保护的内容的限制,而应被解释为对特定实施例特有的特征的描述。在本说明书中描述的在单独实施例的环境中的某些特征也可以在单个实施例中的组合中实现。相反,在单个实施例的环境中描述的各种特征也可以分开地或以任何合适的子组合在多个实施例中实现。此外,虽然以上可以将特征描述为以某些组合的方式起作用,并且甚至最初如此要求保护,但是所要求保护的组合的一个或多个特征在某些情况下可以从该组合中移除,并且所要求保护的组合可以指向子组合或子组合的变形。
106.类似地,虽然在附图中以特定顺序描绘操作,但是这不应被理解为要求以所示的特定顺序或按顺序执行这些操作,或者执行所有所示的操作以实现所需的结果。在某些情况下,多任务和并行处理可以是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中需要这样的分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或被打包成多个软件产品。
107.在提及html文件的每一个实例中,可以替换其他文件类型或格式。例如,html文件可以被xml、json、纯文本或其他类型的文件替代。此外,在提到表或散列表的情况下,可以使用其他数据结构(例如电子表格,关联数据库或结构化文件)。
108.因此,已经描述了特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中该的动作可以以不同的顺序执行,并且仍然实现期望的结果。