CN112334871A - 用于基于数字助理的应用的动作验证 - Google Patents
用于基于数字助理的应用的动作验证 Download PDFInfo
- Publication number
- CN112334871A CN112334871A CN201980002145.6A CN201980002145A CN112334871A CN 112334871 A CN112334871 A CN 112334871A CN 201980002145 A CN201980002145 A CN 201980002145A CN 112334871 A CN112334871 A CN 112334871A
- Authority
- CN
- China
- Prior art keywords
- application
- data processing
- processing system
- response
- action
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000009471 action Effects 0.000 title claims abstract description 354
- 238000012795 verification Methods 0.000 title abstract description 9
- 230000004044 response Effects 0.000 claims abstract description 176
- 238000000034 method Methods 0.000 claims abstract description 146
- 230000008569 process Effects 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims description 385
- 238000004458 analytical method Methods 0.000 claims description 5
- 238000003058 natural language processing Methods 0.000 description 60
- 238000004891 communication Methods 0.000 description 46
- 230000005236 sound signal Effects 0.000 description 32
- 238000007689 inspection Methods 0.000 description 28
- 230000000694 effects Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 14
- 238000004590 computer program Methods 0.000 description 12
- 230000003993 interaction Effects 0.000 description 8
- 238000005108 dry cleaning Methods 0.000 description 7
- 238000010801 machine learning Methods 0.000 description 7
- 238000012360 testing method Methods 0.000 description 7
- 238000012384 transportation and delivery Methods 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 238000013515 script Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000670 limiting effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 235000012054 meals Nutrition 0.000 description 3
- 230000003278 mimic effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 235000013305 food Nutrition 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 244000035744 Hura crepitans Species 0.000 description 1
- 238000000342 Monte Carlo simulation Methods 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000037081 physical activity Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/243—Natural language query formulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
提供了对于基于数字助理的应用中的动作的验证。系统标识具有对话接口的应用。系统从动作储存库中选择动作,并且经由自然语言处理器生成触发短语以输入到应用中。系统执行应用以处理触发短语以标识应用的动作。系统标识由应用使用的以执行动作的参数,并且基于参数并经由执行应用的对话接口来生成响应于触发短语的第一查询。系统生成对第一查询的第一响应以输入到应用中。系统基于执行应用以处理第一响应来确定应用的状态。系统评估状态以确定错误代码,并且基于错误代码提供通知。
Description
技术领域
应用可以由开发者开发。由于复杂的特征或多种交互,应用变得越来越复杂,所以可能难以标识错误或故障,并且难以纠正这种错误或故障。
发明内容
至少一个方面涉及一种用于验证基于数字助理的应用中的动作的系统。该系统可以包括具有一个或多个处理器的数据处理系统。数据处理系统可以标识由应用开发者的应用开发者设备提供的应用。该应用可以具有对话接口。数据处理系统可以针对应用从数据处理系统的动作储存库中选择动作。数据处理系统可以基于动作并且经由数据处理系统的自然语言处理器来生成触发短语以输入到应用中。数据处理系统可以执行应用以经由对话接口处理触发短语。数据处理系统可以标识应用的响应于触发短语的动作。数据处理系统可以标识由应用使用的用于执行应用的动作的参数。数据处理系统可以基于参数并且经由执行应用的对话接口来生成响应于触发短语的第一查询。数据处理系统可以经由自然语言处理器来生成对第一查询的第一响应以输入到应用中。数据处理系统可以基于执行应用以处理第一响应来确定应用的状态。数据处理系统可以评估应用的状态以确定错误代码。数据处理系统可以基于错误代码将通知提供给应用开发者设备。
数据处理系统可以确定由应用使用的参数包括有电子账户标识符。数据处理系统可以生成第一查询,该第一查询包括对电子账户标识符的请求。数据处理系统可以经由自然语言处理器来生成第一响应,该第一响应包括电子账户标识符的模拟值。
数据处理系统可以防止应用响应于与第一响应一起提供的值而执行应用的动作。数据处理系统可以确定应用的状态是终止状态。数据处理系统可以评估应用的状态以确定由应用使用的资源是活动的。数据处理系统可以生成错误代码,该错误代码指示应用未能响应于终止状态而停用资源。
数据处理系统可以确定应用的状态是终止状态。数据处理系统可以检测到由应用使用的传感器是活动的。数据处理系统可以生成错误代码,该错误代码指示应用未能响应于终止状态而停用传感器。
数据处理系统可以基于利用历史日志训练的模型来生成第一响应,该历史日志包括由计算设备的麦克风检测到的响应。数据处理系统可以基于与利用历史日志训练的模型相关联的度量来选择以下两者中的一个:模型或预定响应储存库中的一个,以生成第一查询。数据处理系统可以基于该选择来经由模型或预定响应储存库中的所选择的一个生成第一响应。
数据处理系统可以响应于第一响应在虚拟客户端设备与应用之间建立电信信道。数据处理系统可以经由虚拟客户端设备并且通过电信信道将第二响应提供给应用。
数据处理系统可以响应于第一响应在与应用开发者相关联的设备与虚拟客户端设备之间建立电信信道。数据处理系统可以经由虚拟客户端设备并且通过电信信道将第二响应提供给与应用开发者相关联的设备。
数据处理系统可以响应于第一响应在与应用开发者相关联的设备与虚拟客户端设备之间建立电信信道。数据处理系统可以检测电信信道的终止。数据处理系统可以响应于电信信道的终止来标识虚拟客户端设备的麦克风的状态。数据处理系统可以基于虚拟客户端设备的麦克风的状态是活动的来设置错误代码。
数据处理系统可以基于对第一响应、第一查询和触发短语的语义分析来生成第二响应。数据处理系统可以提供第二响应以通过由数据处理系统执行的应用进行处理。
数据处理系统可以标识虚拟客户端账户。数据处理系统可以将与虚拟客户端账户相关联的信息提供给应用以处理应用的响应于第一响应的动作。
数据处理系统可以标识虚拟客户端账户。数据处理系统可以将与虚拟客户端账户相关联的信息提供给应用以处理响应于第一响应的动作。数据处理系统可以响应于检测到虚拟客户端账户来阻止由应用执行应用的动作。
至少一个方面涉及一种验证基于数字助理的应用中的动作的方法。该方法可以包括数据处理系统标识由应用开发者的应用开发者设备提供的应用。该应用可以包括对话接口。该方法可以包括数据处理系统基于应用从数据处理系统的动作储存库中选择动作。该方法可以包括数据处理系统经由数据处理系统的自然语言处理器并且基于动作来生成触发短语以输入到应用中。该方法可以包括数据处理系统执行应用以经由对话接口处理触发短语。该方法可以包括数据处理系统来标识应用的响应于触发短语的动作。该方法可以包括数据处理系统标识由应用使用的用于执行应用的动作的参数。该方法可以包括数据处理系统基于参数并且经由执行应用的对话接口来生成响应于触发短语的第一查询。该方法可以包括数据处理系统生成对第一查询的第一响应以输入到应用中。该方法可以包括数据处理系统基于执行应用以处理第一响应来确定应用的状态。该方法可以包括数据处理系统评估应用的状态以确定错误代码。该方法可以包括数据处理系统基于错误代码将通知提供给应用开发者设备。
该方法可以包括数据处理系统确定由应用使用的参数包括有电子账户标识符。数据处理系统可以生成第一查询,该第一查询包括对电子账户标识符的请求。数据处理系统可以经由自然语言处理器来生成第一响应,该第一响应包括有电子账户标识符的模拟值。
该方法可以包括数据处理系统防止应用响应于与第一响应一起提供的值而执行应用的动作。该方法可以包括数据处理系统确定应用的状态是终止状态。该方法可以包括数据处理系统评估应用的状态以确定由应用使用的资源是活动的。该方法可以包括数据处理系统生成错误代码,该错误代码指示应用未能响应于终止状态而停用资源。
该方法可以包括数据处理系统确定应用的状态是终止状态。该方法可以包括数据处理系统检测到由应用使用的传感器是活动的。该方法可以包括数据处理系统生成错误代码,该错误代码指示应用未能响应于终止状态而停用传感器。
该方法可以包括数据处理系统基于利用历史日志训练的模型来生成第一响应,该历史日志包括由计算设备的麦克风检测到的响应。
该方法可以包括数据处理系统基于与利用历史日志训练的模型相关联的度量来选择以下两者中的一个:模型或预定响应储存库中的一个,以生成第一查询。该方法可以包括数据处理系统基于该选择来经由模型或预定响应储存库中的所选择的一个生成第一响应。
该方法可以包括数据处理系统响应于第一响应在虚拟客户端设备与应用之间建立电信信道。该方法可以包括数据处理系统经由虚拟客户端设备并且通过电信信道将第二响应提供给应用。
该方法可以包括数据处理系统响应于第一响应在与应用开发者相关联的设备与虚拟客户端设备之间建立电信信道。该方法可以包括数据处理系统经由虚拟客户端设备并且通过电信信道将第二响应提供给与应用开发者相关联的设备。
该方法可以包括数据处理系统响应于第一响应在与应用开发者相关联的设备与虚拟客户端设备之间建立电信信道。该方法可以包括数据处理系统检测电信信道的终止。该方法可以包括数据处理系统响应于电信信道的终止来标识虚拟客户端设备的麦克风的状态。该方法可以包括数据处理系统基于虚拟客户端设备的麦克风的状态是活动的来设置错误代码。
该方法可以包括数据处理系统基于对第一响应、第一查询和触发短语的语义分析来生成第二响应。该方法可以包括数据处理系统提供第二响应以通过由数据处理系统执行的应用进行处理。
该方法可以包括数据处理系统标识虚拟客户端账户。该方法可以包括数据处理系统将与虚拟客户端账户相关联的信息提供给应用以处理应用的响应于第一响应的动作。
该方法可以包括数据处理系统标识虚拟客户端账户。该方法可以包括数据处理系统将与虚拟客户端账户相关联的信息提供给应用以处理响应于第一响应的动作。该方法可以包括数据处理系统响应于检测到虚拟客户端账户来阻止由应用执行应用的动作。
又一方面涉及一种包括有指令的计算机可读介质,该指令在由计算机执行时使得计算机执行本文公开的任何方法。另一方面涉及一种包括有指令的计算机程序,该指令在由计算机执行时使得计算机执行本文公开的任何方法。可以理解的是,在一个方面的上下文中描述的特征可以在其他方面的上下文中实施。
下面会详细讨论这些和其他的方面以及实施方式。前述信息和以下详细说明包括各个方面和实施方式的说明性示例,并且提供了用于理解所要求的方面和实施方式的性质和特性的概述或者框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入本说明书并构成其一部分。
附图说明
附图不意图按比例绘制。在各个附图中,相同的附图标记和名称指示相同的元件。为了清晰起见,可以不在每个附图中标记每个组件。
在附图中:
图1是用于验证基于数字助理的应用中的动作的示例系统的图示。
图2是验证基于数字助理的应用中的动作的方法的图示。
图3是图示了计算机系统的一般架构的框图,其可以用于实施本文描述和图示的系统的元件和方法,包括例如图1所描绘的系统和图2所描绘的方法。
具体实施方式
以下是验证基于数字助理的应用中的动作的实施方式、方法、装置和系统以及与其有关的各种概念的更详细说明。上面介绍的和下面更详细地讨论的各种概念可以以多种方式中的任何方式实施。
该技术大体上涉及验证基于数字助理的应用中的动作。该技术允许模拟设备在应用的控制下的操作并且响应于该模拟修改应用。例如,修改可以修改应用如何与设备交互,例如,修改设备在应用的控制下的操作。应用开发者可以开发应用。应用可以包括对话接口,或者被配置为与对话接口交互。应用可以接收命令以执行动作。例如,基于语音的输入可以由对话接口处理以标识动作并且生成命令。然而,由于基于语音的输入的非结构化和多变性质以及不同的可用动作的数量,确定应用是否正在执行所请求的动作可能是具有挑战性的。另外,应用可能包含错误或漏洞,所述错误或漏洞导致错误地执行动作。例如,应用可以执行动作,但是在完成该动作时未能结束进程或线程或者停用设备的传感器。由于大量应用以及在每个应用上配置的各种动作,有效且可靠地评估每个应用的每个动作可能是具有挑战性的。由于动作可以由许多不同的对话流触发,所以测试所有不同的对话流以确定它们触发的动作是否是预期动作并且被正确执行可能是具有挑战性的。
该技术解决方案涉及在发布应用之前利用动作验证或调试应用。该技术解决方案的数据处理系统可以通过自动生成输入来模拟运行应用的设备的操作,该输入与提供给对话接口的基于语音的输入相对应。数据处理系统可以触发应用的动作,并且使与对话接口的用户交互自动化。通过这样做,数据处理系统可以在由应用执行动作的情况下标识错误,并且可以采取步骤以响应于所标识的错误来修改应用。
技术解决方案的数据处理系统可以提供可缩放的平台,其允许在将应用交付给客户端计算设备以进行执行或以其他方式发布之前验证由应用执行的动作。数据处理系统可以标识要测试的动作、项目或功能的预定列表。数据处理系统可以模拟许多用户对话(例如,经由Monte Carlo模拟)以测试每个对话流。数据处理系统可以向开发者通知结果以允许开发者更新其应用。
因此,技术解决方案的数据处理系统可以(i)执行应用的预发布测试以在发布应用之前标识错误;(ii)通过构造输入以驱动对话来测试非结构化的对话流;(iii)基于应用域或应用的类型(例如,用于电影票应用、导航应用或者音乐流应用的不同术语或词汇)来定制或调整对话的方面;(iv)使用基于来自实际用户的历史对话生成的模型,以便通过以匿名方式利用历史用户对话生成具有意图的输入来模拟与应用的对话;(v)使用分类器来确定动作的类型;以及(vi)响应于接收到应用(例如,在接收到来自开发者的应用或来自开发者的请求以验证应用的5或10分钟内)向开发者通知检查过程的结果。
例如,数据处理系统可以测试用于提供送花服务的应用的动作。数据处理系统可以生成模拟的语音输入,其触发应用以标识和执行应用。数据处理系统可以执行应用以生成对该语音输入的响应。数据处理系统可以模拟第二语音输入,其请求与客户服务谈话。应用可以处理第二语音输入,并且在客户服务代理与模拟或虚拟用户之间建立电话呼叫。数据处理系统可以终止呼叫,然后确定应用的状态。数据处理系统可以确定与由应用执行的动作相关联的进程、子进程、线程或传感器是否已经终止或停用。例如,如果在通信会话终止之后,传感器(例如,麦克风)保持活动或者由应用使用,则数据处理系统可以确定应用在终止会话之后未能停用传感器是应用中的错误或漏洞。数据处理系统可以使用一种或多种技术解决错误或漏洞,包括例如将补丁应用于应用以停用传感器,阻止应用被交付给客户端计算设备,去除应用的有错误的特征,阻止应用执行动作或者向开发者通知该错误。
图1图示了用于验证基于数字助理的应用中的动作的示例系统100。系统100可以包括内容选择基础架构。系统100可以包括数据处理系统102。数据处理系统102可以经由网络101与应用开发者设备160或计算设备140中的一个或多个通信。网络101可以包括计算机网络,诸如,互联网、局域网、广域网、城域网或其他区域网络、企业内部网、卫星网络以及其他通信网络,诸如,语音或数据移动电话网络。网络101可以用于访问信息资源,诸如,网页、网站、域名或统一资源定位符,它们可以在至少一个计算设备140(诸如,膝上型计算机、台式计算机、平板计算机、个人数字助理、智能电话、便携式计算机或扬声器)上呈现、输出、显现或显示。例如,经由网络101,计算设备140的用户可以访问由应用开发者设备160提供的应用、信息或数据。计算设备140可以或可以不包括显示器;例如,计算设备可以包括有限类型的用户接口,诸如,麦克风或扬声器。在一些情况下,计算设备140的主要用户接口可以是麦克风和扬声器。
网络101可以包括或组成显示网络,例如,在互联网上可用的信息资源的子集,该信息资源与内容放置(content placement)或搜索引擎结果系统相关联,或者该信息资源有资格将第三方数字组件作为数字组件放置活动(digital component placementcampaign)的一部分包括在内。网络101可以由数据处理系统102使用以用于访问信息资源,诸如,网页、网站、域名或统一资源定位符,它们可以由客户端计算设备140呈现、输出、显现或显示。例如,经由网络101,客户端计算设备140的用户可以访问由应用开发者设备160或其他服务提供商设备或内容提供商设备提供的信息或数据。
网络101可以是任何类型或形式的网络,并且可以包括以下中的任何一个:点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光学网络)网络、SDH(同步数字体系)网络、无线网络和有线网络。网络101可以包括无线链路,诸如,红外信道或者卫星波段。网络101的拓扑可以包括总线、星型或环形网络拓扑。网络可以包括使用用于在移动设备之间通信的任何一种或多种协议的移动电话网络,所述协议包括高级移动电话协议(“AMPS”)、时分多址(“TDMA”)、码分多址(“CDMA”)、全球移动通信系统(“GSM”)、通用分组无线电服务(“GPRS”)或者通用移动电信系统(“UMTS”)。不同类型的数据可以经由不同协议传输,或者相同类型的数据可以经由不同协议传输。
系统100可以包括至少一个数据处理系统102。数据处理系统102可以包括至少一个逻辑设备,诸如,计算设备,其具有处理器,该处理器经由网络101与例如计算设备140或应用开发者设备160(或其他服务提供商设备或内容提供商设备)通信。数据处理系统102可以包括至少一个计算资源、服务器、处理器或存储器。例如,数据处理系统102可以包括位于至少一个数据中心中的多个计算资源或服务器。数据处理系统102可以包括多个逻辑上分组的服务器,并且有助于分布式计算技术。服务器的逻辑组可以称为数据中心、服务器农场或者机器农场。服务器也可以在地理上分散。数据中心或机器农场可以作为单个实体进行管理,或者机器农场可以包括多个机器农场。每个机器农场内的服务器可以是异构的,即,服务器或机器中的一个或多个可以根据一种或多种操作系统平台来操作。
机器农场中的服务器以及相关联的存储系统可以一起存储在高密度机架系统中,并且位于企业数据中心中。例如,通过这种方式合并服务器可以通过将服务器和高性能存储系统定位在本地化的高性能网络上来提高系统可管理性、数据安全性、系统的物理安全性和系统性能。将数据处理系统102的所有或部分组件(包括服务器和存储系统)集中起来并且将它们与高级系统管理工具耦合起来允许更有效地使用服务器资源,这节省了电力和处理需求,并且减少了带宽使用。
系统100可以包括、访问至少一个应用开发者设备160或以其他方式与其交互。应用开发者设备160可以包括至少一个逻辑设备,诸如,计算设备,其具有处理器,该处理器经由网络101与例如计算设备140或数据处理系统102通信。应用开发者设备160可以包括至少一个计算资源、服务器、处理器或存储器。例如,应用开发者设备160可以包括位于至少一个数据中心中的多个计算资源或服务器。应用开发者设备160可以包括数据处理系统102的一个或多个组件或功能。
应用开发者设备160可以包括内容提供商设备,或者内容提供商设备可以与应用开发者设备160分离。数据处理系统102可以与内容提供商设备通信。内容提供商计算设备或应用开发者设备160可以提供基于音频的数字组件以由客户端计算设备140作为音频输出数字组件显示。数字组件可以包括货物或服务的提供(offer),诸如,基于语音的消息,其陈述:“您想要我为您预订出租车吗?”例如,应用开发者设备160可以包括存储器以存储可以响应于基于语音的查询而提供的一系列音频数字组件。应用开发者设备160还可以将基于音频的数字组件(或其他数字组件)提供给数据处理系统102,其中,这些数字组件可以存储在数据储存库120中。数据处理系统102可以选择音频数字组件并且将音频数字组件提供(或者指示应用开发者设备160提供)给客户端计算设备140。基于音频的数字组件可以只是是音频,或者可以与文本、图像或视频数据组合。
应用开发者设备160可以包括自然语言处理器组件或者与其接口连接或以其他方式与其通信。例如,应用开发者设备160可以提供具有对话接口114的应用,对话接口114可以包括自然语言处理器组件106的一个或多个组件或功能。应用开发者设备160可以执行对话接口114或其方面。应用开发者设备160可以包括或执行自然语言处理器组件106或其方面。应用开发者设备160可以包括或执行对话接口114或其方面。
应用开发者设备160可以与客户端计算设备140接合(经由数据处理系统102或者绕过数据处理系统102)以在客户端计算设备140与应用开发者设备160之间创建有来有往的实时的基于语音或音频的对话(例如,会话)。应用开发者设备160可以经由NLP组件106、对话接口114或其他组件与客户端计算设备140接合。例如,应用开发者设备160可以接收数据消息或者将数据消息提供给数据处理系统102的直接动作API 108。例如,应用开发者设备160可以创建、存储用于共享汽车服务的数字组件或者使该用于共享汽车服务的数字组件可用,并且应用开发者设备160(或单独的服务提供商设备)可以与客户端计算设备140建立会话以安排派出出租车或共享汽车服务的汽车以接上(pick up)客户端计算设备140的终端用户。数据处理系统102也可以经由直接动作API 108、NLP组件106或其他组件与客户端计算设备建立会话,包括或绕过应用开发者设备160,以安排例如派出出租车或共享汽车服务的汽车。
应用开发者设备160可以包括或指应用的提供商。应用开发者设备160可以包括或指应用开发者设备。应用开发者设备160可以是第三方提供商设备。
计算设备140可以包括至少一个传感器142、换能器144、音频驱动器156或预处理器148或者与它们接口连接或以其他方式与它们通信。传感器142可以包括例如环境光传感器、接近传感器、温度传感器、加速度计、陀螺仪、运动检测器、GPS传感器、位置传感器、麦克风或者触摸传感器。换能器144可以包括扬声器或麦克风。音频驱动器146可以将软件接口提供给硬件换能器144。音频驱动器可以执行音频文件或由数据处理系统102提供的其他指令以控制换能器144生成对应的声波或音波。预处理器148可以被配置为检测关键词并且基于关键词执行动作。预处理器148可以滤出一个或多个术语或者在将术语传输给数据处理系统102以进行进一步处理之前修改术语。预处理器148可以将由麦克风检测到的模拟音频信号转换为数字音频信号,并且经由网络101将承载有数字音频信号的一个或多个数据分组传输给数据处理系统102。在一些情况下,预处理器148可以响应于检测到执行这种传输的指令来传输承载有一些或所有输入音频信号的数据分组。例如,指令可以包括触发关键词或者其他关键词或批准将包括有输入音频信号的数据分组传输给数据处理系统102。
客户端计算设备140可以与终端用户相关联,该终端用户将作为音频输入的语音查询输入到客户端计算设备140中(经由传感器142)并且接收以计算机生成的语音为形式的音频输出,该语音可以从数据处理系统102(或应用开发者设备160或应用开发者设备160)提供到客户端计算设备140,从换能器144(例如,扬声器)输出。计算机生成的语音可以包括来自真实人类的录音或者计算机生成的语言的录音。
数据处理系统102可以包括具有至少一个计算资源或服务器的内容放置系统。数据处理系统102可以包括至少一个接口104或者与其接口连接或者与其以其他方式通信。数据处理系统102可以包括至少一个自然语言处理器组件106或者与其接口连接或者与其以其他方式通信。数据处理系统102可以包括至少一个直接动作应用编程接口(“API”)108或者与其接口连接或者与其以其他方式通信。数据处理系统102可以包括至少一个输入生成组件110或者与其接口连接或者与其以其他方式通信。数据处理系统102可以包括至少一个应用执行组件112或者与其接口连接或者与其以其他方式通信。应用执行组件112可以对话接口114。数据处理系统102可以包括至少一个检查组件116或者与其接口连接或者与其以其他方式通信。数据处理系统102可以包括至少一个虚拟化组件118或者与其接口连接或者与其以其他方式通信。
数据处理系统102可以包括至少一个数据储存库120或者与其接口连接或者与其以其他方式通信。至少一个数据储存库120可以包括应用数据122、动作储存库124、日志126、模型128、状态信息130或错误代码132或者将它们存储在一个或多个数据结构或数据库中。应用数据122可以包括例如用于应用的可执行文件、关于应用的元数据、应用的内容、应用包文件、副本文件或者与应用相关联的其他数据。
动作储存库124可以包括预定动作。动作储存库124可以包括预配置的或默认的动作。动作储存库124可以包括数据处理系统102(或直接动作API 108)被配置为处理的动作。动作储存库124可以基于应用的类型或应用的域在数据结构中关联动作。例如,应用的类型可以包括生活方式应用(例如,健身、约会、食物、音乐或旅行)、社交媒体应用、实用应用(例如,提醒、计算器、闪光灯、天气)、游戏或娱乐应用、生产力应用(例如,文字处理、电子表格、薪水)或者新闻或信息应用。例如,应用的域可以包括音乐流服务、共享汽车服务、购票服务、食谱或烹饪。域可以是应用的类型的子集。动作储存库124可以包括将动作映射到应用的类型或应用的域。例如,具有类型“音乐”或域“音乐流服务”的应用可以与诸如“播放音乐”、“暂停音乐”、“搜索<艺术家姓名(artist_name)>的音乐”或者“在<设备名称(device_name)>上播放<歌曲名称(song_name)>”等动作相关联。
数据储存库120可以包括日志126。日志126可以指或包括与一个或多个应用相关联的历史网络活动。历史网络活动可以指或包括在过去24小时、48小时、72小时、7天、30天、60天或更长时间中发生的网络活动。例如,网络活动可以包括执行应用、由应用接收到的语音输入或者应用输出。日志可以包括提供给一个或多个应用的语音输入。日志可以基于特征(诸如,应用的类型)分类。
数据储存库120可以存储模型128。模型128可以指可以用于生成输入(诸如,对话输入)的机器学习模型。数据处理系统102可以使用日志126来训练模型128。模型128可以用于构造可以输入到应用中的句子。模型128可以基于动作构造输入。例如,可以训练模型128以基于要由应用执行的动作类型或者应用的类型来生成输入。模型128可以使用日志126训练以针对不同类型的动作和应用生成输入。例如,日志126可以包括针对不同类型的动作或不同类型的应用的历史输入。数据处理系统102可以使用日志126来针对动作或应用的类型训练模型128。模型128可以生成可以提供给应用以执行动作的触发短语、查询、响应或其他输入。
数据储存库120可以包括状态信息130。状态信息130可以指或包括应用的状态或应用的状况。状态信息130可以指或包括与应用相关联或者由应用利用以执行动作或执行功能的进程、线程或传感器的状态或状况。例如,应用的状态可以是活动、待命、暂停或者终止。状态可以进一步指示执行应用内的状态,诸如,初始屏幕、启动屏幕、初始化状态、家用屏幕、处理状态、动作查询状态、语义分析状态、动作查找状态、参数请求状态、动作执行状态、通信会话状态、终止状态或者应用中的其他状态。
数据储存库120可以包括错误代码132。错误代码132可以包括错误类型的标识符。错误代码132可以包括数字字母值、文本、术语、字符串、符号或者错误的其他指示或错误的类型。例如,错误代码132可以指传感器未能停用、动作未能完成、应用未能请求用于执行动作的参数的值、应用未能使用参数执行动作或者应用未能在终止之后停用麦克风。
接口104、NLP组件106、直接动作API 108、输入生成组件110、应用执行组件112、对话接口114、检查组件116或虚拟化组件118可以分别包括至少一个处理单元或其他逻辑设备(诸如,可编程逻辑阵列引擎)或者可以分别包括被配置为与数据库储存库120或数据库通信的模块。接口104、NLP组件106、直接动作API 108、输入生成组件110、应用执行组件112、对话接口114、检查组件116、虚拟化组件118和数据储存库120可以是单独组件、单个组件或者数据处理系统102的一部分。系统100及其组件(诸如,数据处理系统102)可以包括硬件元件(诸如,一个或多个处理器)、逻辑设备或电路。
数据处理系统102可以获得与多个计算设备140相关联的匿名计算机网络活动信息。计算设备140的用户可以肯定地授权数据处理系统102以获得与该用户的计算设备140相对应的网络活动信息。例如,数据处理系统102可以提示计算设备140的用户同意从而获得一种或多种网络活动信息。计算设备140的用户的身份可以保持匿名,并且计算设备140可以与唯一标识符相关联(例如,由数据处理系统或者计算设备的用户提供的用于该用户或该计算设备的唯一标识符)。数据处理系统可以将每次观察与对应的唯一标识符相关联。
数据处理系统102可以与内容提供商或内容提供商设备接口连接。内容提供商设备可以是应用开发者设备160。内容提供商设备可以是与数据处理系统102和应用开发者设备160不同的第三方设备。内容提供商可以建立电子内容活动(electronic contentcampaign)。电子内容活动可以作为内容数据存储在数据储存库120中。电子内容活动可以指与共同主题相对应的一个或多个内容组。内容活动可以包括分层数据结构,其包括内容组、数字组件数据对象和内容选择标准。为了创建内容活动,内容提供商可以指定内容活动的活动级参数(campaign level parameters)的值。活动级参数可以包括例如活动名称(campaign name)、放置数字组件对象的优选内容网络、要用于内容活动的资源的值、内容活动的起始和结束日期、内容活动的持续时间、数字组件对象放置的时间表、语言、地理位置、在其上要提供数字组件对象的计算设备的类型。在一些情况下,印记可以指从其来源(例如,数据处理系统102或内容提供商)获取的数字组件对象的时间,并且是可计数的。在一些情况下,由于点击欺诈的可能性,作为印记,机器人活动可能被过滤和排除。因此,在一些情况下,印记可以指来自网络服务器的对来自浏览器的页面请求的响应的测量值,该测量值是从机器人活动和错误代码中过滤的,并且记录在尽可能接近显现数字组件对象以显示在计算设备140上的机会的点处。在一些情况下,印记可以指可视或可听印记;例如,数字组件对象至少部分地(例如,20%、30%、40%、50%、60%、70%或更多)在客户端计算设备140的显示设备150上可视,或者经由计算设备140的扬声器(例如,换能器144)可听。点击或选择可以指与数字组件对象的用户交互,诸如,对可听印记的语音响应、鼠标点击、触摸交互、手势、摇动、音频交互或者键盘点击。对话可以指用户相对于数字组件对象采取期望的动作;例如,购买产品或服务、完成调查、访问与数字组件相对应的物理商店或者完成电子交易。
内容提供商可以进一步建立内容活动的一个或多个内容组。内容组包括一个或多个数字组件对象和对应的内容选择标准,诸如,关键词、单词、术语、短语、地理位置、计算设备的类型、一天的时间、兴趣、话题或者竖直。相同的内容活动下的内容组可以共享相同的活动级参数,但是可以为特定的内容组级参数订制规范,诸如,关键词、负面关键词(例如,在负面关键词存在于主要内容上时数字组件的块放置)、关键词的投标或者与投标或内容活动相关联的参数。
为了创建新的内容组,内容提供商可以提供用于内容组的内容组级参数的值。例如,内容组级参数包括内容组名称或内容组主题以及不同的内容放置机会(例如,自动放置或者管理放置)的投标或产出(例如,点击、印记或对话)。内容组名称或内容组主题可以是内容提供商可以使用以捕获话题或主题的一个或多个术语,要针对该话题或主题选择内容组的数字组件对象以进行显示。例如,汽车经销商可以为其具有的每个品牌的车辆创建不同的内容组,并且可以进一步为其具有的每个型号的车辆创建不同的内容组。汽车经销商可以使用的内容组主题的示例包括例如“将A定为跑车”、“将B定为跑车”、“将C定为轿车”、“将C定为卡车”、“将C定为混合动力车”或“将D定为混合动力车”。例如,示例的内容活动主题(content campaign theme)可以是“混合动力车”并且包括“将C定为混合动力车”以及“将D定为混合动力车”的内容组。
内容提供商可以将一个或多个关键词和数字组件对象提供给每个内容组。关键词可以包括术语,所述术语关于产品或服务,所述产品或服务与数字组件对象相关联或者由数字组件对象标识。关键词可以包括一个或多个术语或短语。例如,汽车经销商可以包括“跑车”、“V-6引擎”、“四轮驱动”、“燃料效率”作为内容组或内容活动的关键词。在一些情况下,负面关键词可以由内容提供商指定以避免、防止、阻止或者禁用将内容放置在某些术语或关键词上。内容提供商可以指定用于选择数字组件对象的匹配类型,诸如,精确匹配、短语匹配或广义匹配。
内容提供商可以提供要由数据处理系统102使用以选择由内容提供商提供的数字组件对象的一个或多个关键词。内容提供商可以标识要投标的一个或多个关键词,并且进一步提供各种关键词的投标金额。内容提供商可以提供要由数据处理系统102使用以选择数字组件对象的附加内容选择标准。多个内容提供商可以对相同或不同的关键词投标,并且数据处理系统102可以响应于接收到电子消息的关键词的指示来运行内容选择过程或者广告竞拍。
内容提供商可以提供一个或多个数字组件对象以供数据处理系统102选择。当由应用开发者设备160提供的应用上有可用的内容放置机会时,数据处理系统102可以选择数字组件对象或者响应于由应用发出的对数字组件对象的请求来选择数字组件对象。不同类型的数字组件对象可以包括在内容组中,诸如,语音数字组件、音频数字组件、内容项、文本数字组件、图像数字组件、视频数字组件、多媒体数字组件或者数字组件链接。在选择数字组件时,数据处理系统102可以传输数字组件对象以显现在计算设备140或者计算设备140的显示设备150上。显现可以包括在显示设备150上显示数字组件或者经由计算设备140的扬声器播放数字组件。数据处理系统102可以将指令提供给计算设备140以显现数字组件对象。数据处理系统102可以指示计算设备140或者计算设备140的音频驱动器156生成音频信号或声波。
数据处理系统102可以包括接口104(或接口组件),其被设计、配置、构造为或者被操作以使用例如数据分组来接收和传输信息。接口104可以使用一种或多种协议(诸如,网络协议)来接收和传输信息。接口104可以包括硬件接口、软件接口、有线接口或者无线接口。接口104可以有助于将数据从一种格式转换或格式化为另一格式。例如,接口104可以包括应用编程接口,其包括用于在各种组件(诸如,软件组件)之间通信的定义。接口104可以有助于数据处理系统102的一个或多个组件之间的通信。
数据处理系统102可以包括在客户端计算设备140处安装的应用、脚本或程序,诸如,用于以下应用,该应用将输入音频信号通信给数据处理系统102的接口104并且驱动客户端计算设备的组件以显现输出音频信号。数据处理系统102可以接收数据分组或者包括或标识音频输入信号的其他信号。例如,数据处理系统102可以执行或运行NLP组件106以接收或获得音频信号并且解析音频信号。例如,NLP组件106可以提供人类与计算机之间的交互。NLP组件106可以配置有用于理解自然语言并且允许数据处理系统102从人类或自然语言输入导出含义的技术。NLP组件106可以包括或者配置有基于机器学习(诸如,统计机器学习)的技术。NLP组件106可以使用决策树、统计模型或者概率模型来解析输入音频信号。NLP组件106可以执行例如以下功能:诸如,命名实体识别(例如,给定文本流,确定文本中的哪些项目映射到正确名称,诸如,人或地方,并且每个这种名称的类型是什么,诸如,人、位置或组织)、自然语言生成(例如,将来自计算机数据库的信息或语义意图转换为可理解的人类语言)、自然语言理解(例如,将文本转换为更正式的表示,诸如,计算机模块可以操纵的一阶逻辑结构)、机器翻译(例如,自动地将文本从一种人类语言翻译为另一人类语言)、词素切分(例如,将单词分为单个词素并且标识词素的类别,这可能会基于所考虑的语言的单词的词素或结构的复杂度而具有挑战性)、问题回答(例如,确定人类语言问题的答案,这可以是特定的或者开放式的)、语义处理(例如,该处理是在标识了单词并且对其含义进行了编码以便使所标识的单词与具有类似含义的其他单词相关之后可能发生的处理)。
NLP组件106通过将输入信号与所存储的音频波形的代表性集合(例如,在数据储存库120中)相比较并且选择最接近的匹配来将音频输入信号转换为识别文本。音频波形的集合可以存储在数据储存库120或者可由数据处理系统102访问的其他数据库中。代表性波形是在跨较大的用户集合上生成的,并且然后可以利用来自用户的语音样本来扩充。在将音频信号转换为识别文本之后,NLP组件106利用数据处理系统102可以提供的动作来将文本与相关联的单词匹配,例如,经由跨用户的训练或者通过手动指定。
音频输入信号可以由客户端计算设备140的传感器142或换能器144(例如,麦克风)检测到。经由换能器144、音频驱动器146或其他组件,客户端计算设备140可以将音频输入信号提供给数据处理系统102(例如,经由网络101),在数据处理系统102处,音频输入信号可以被接收(例如,通过接口104)并且提供给NLP组件106或者存储在数据储存库120中。
NLP组件106可以获得输入音频信号。通过输入音频信号,NLP组件106可以标识至少一个请求或者与请求相对应的至少一个触发关键词。该请求可以指示输入音频信号的意图或主题。触发关键词可以指示可能采取的动作类型。例如,NLP组件106可以解析输入音频信号以标识晚上离家去参加晚宴和看电影的至少一个请求。触发关键词可以包括至少一个单词、短语、词根或部分单词或者指示要采取的动作的派生词。例如,来自输入音频信号的触发关键词“去(go)”或“要去(to go)”可以指示交通的需要。在该示例中,输入音频信号(或所标识的请求)未直接表达交通的意图,然而,触发关键词指示交通是由请求指示的至少一个其他动作的附属动作。在一些情况下,触发关键词可以指或包括唤醒词、激活词或者使计算设备140开始处理输入音频信号的关键词。
NLP组件106可以解析输入音频信号以标识、确定、检索或以其他方式获得请求和触发关键词。例如,NLP组件106可以将语义处理技术应用于输入音频信号以标识触发关键词或请求。NLP组件106可以将语义处理技术应用于输入音频信号以标识包括有一个或多个触发关键词(诸如,第一触发关键词和第二触发关键词)的触发短语。例如,输入音频信号可以包括句子“我需要有人帮我洗衣服和帮我干洗(I need someone to do my laundry andmy dry cleaning)”。NLP组件106可以将语义处理技术或其他自然语言处理技术应用于包括有该句子的数据分组以标识触发短语“帮我洗衣服(do my laundry)”和“帮我干洗(domy dry cleaning)”。NLP组件106可以进一步标识多个触发关键词,诸如,洗衣服和干洗。例如,NLP组件106可以确定触发短语包括触发关键词和第二触发关键词。
NLP组件106可以过滤输入音频信号以标识触发关键词。例如,承载有输入音频信号的数据分组可以包括“如果有人能帮我去机场就好了(It would be great if I couldget someone that could help me go to the airport)”,在这种情况下,NLP组件106可以滤出一个或多个术语,如下:“it”、“would”、“be”、“great”、“if”、“I”、“could”、“get”、“someone”、“that”、“could”或“help”。通过滤出这些术语,NLP组件106可以更准确且可靠地标识触发关键词,诸如,“去机场(go to the airport)”,并且确定这是对出租车或共享汽车服务的请求。
在一些情况下,NLP组件可以确定承载有输入音频信号的数据分组包括一个或多个请求。例如,输入音频信号可以包括句子“我需要有人帮我洗衣服和帮我干洗(I needsomeone to do my laundry and my dry cleaning)”。NLP组件106可以确定这是对洗衣服务和干洗服务的请求。NLP组件106可以确定这是对可以提供洗衣服务和干洗服务两者的服务提供商的单个请求。NLP组件106可以确定这是两个请求;对执行洗衣服务的服务提供商的第一请求,以及对提供干洗服务的服务提供商的第二请求。在一些情况下,NLP组件106可以将多个确定的请求组合为单个请求,并且将该单个请求传输给应用开发者设备160。在一些情况下,NLP组件106可以将单独请求传输给相应的应用开发者设备160(或者服务提供商设备或者可以实现或执行动作的其他第三方设备),或者单独地将两个请求传输给相同的应用开发者设备160。
数据处理系统102可以包括直接动作API 108,其被设计和构造为基于触发关键词生成响应于请求的动作数据结构。数据处理系统102的处理器可以调用直接动作API 108以执行脚本,该脚本向应用开发者设备160生成数据结构以请求或订购服务或产品,诸如,来自共享汽车服务的汽车。直接动作API 108可以获得来自数据储存库120的数据以及从客户端计算设备140接收到的经过终端用户同意的数据,以确定位置、时间、用户账户、物流或其他信息以允许应用开发者设备160执行操作,诸如,从共享汽车服务预订汽车。使用直接动作API 108,数据处理系统102也可以与应用开发者设备160通信以在该示例中通过执行共享汽车接上预约来完成对话。
直接动作API 108可以执行指定动作以满足终端用户的意图,如通过数据处理系统102所确定的。取决于在其输入中指定的动作,直接动作API 108可以执行代码或者标识实现用户请求所需的参数的对话脚本。这种代码可以例如在数据储存库120中查找附加信息,诸如,家庭自动化服务的名称,或者它可以提供音频输出以在客户端计算设备140处显现以向终端用户提问,诸如,所请求的出租车的预期目的地。直接动作API 108可以确定必需的参数,并且可以将信息打包到动作数据结构中,该动作数据结构然后可以被发送到另一组件(诸如,应用执行组件112或应用开发者设备160)以被实现。
直接动作API 108可以从NLP组件106或数据处理系统102的其他组件接收指令或命令,以生成或构造动作数据结构。直接动作API 108可以确定动作的类型,以便从存储在数据储存库120中的模板储存库134中选择模板。动作的类型可以包括例如服务、产品、预订或者票。动作的类型可以进一步包括服务或产品的类型。例如,服务的类型可以包括共享汽车服务、送餐服务、洗衣服务、女仆服务、维修服务或者家政服务。产品的类型可以包括例如衣服、鞋子、玩具、电子产品、计算机、书籍或者珠宝。预订的类型可以包括例如晚餐预订或者发廊预约。票的类型可以包括例如电影票、体育馆的票或者飞机票。在一些情况下,服务、产品、预订或票的类型可以基于价格、位置、运送类型、可用性或者其他属性来分类。
在标识请求的类型时,直接动作API 108可以从模板储存库134访问对应的模板。模板可以包括可以由直接动作API 108填充以促进对应用开发者设备160所请求的操作(诸如,发送出租车以在乘车位置处接上终端用户并且将终端用户运输到目的地位置的操作)的结构化数据集合中的字段。直接动作API 108可以在模板储存库132中执行查找以选择与触发关键词和请求中的一个或多个特性相匹配的模板。例如,如果请求对应于到目的地的汽车或车辆的请求,则数据处理系统102可以选择共享汽车服务模板。共享汽车服务模板可以包括以下字段中的一个或多个:设备标识符、接上位置、目的地位置、乘客数量或者服务类型。直接动作API 108可以利用值填充字段。为了利用值填充字段,直接动作API 108可以发送回显信息(ping)、轮询(poll)或者以其他方式获得来自计算设备140的一个或多个传感器142的或者计算设备140的用户接口的信息。例如,直接动作API 108可以使用位置传感器(例如,GPS传感器)检测源位置。直接动作API 108可以通过向计算设备140的终端用户提交调查、提示或查询来获得进一步的信息。直接动作API可以经由数据处理系统102的接口104和计算设备140的用户接口(例如,音频接口、基于语音的用户接口、显示器或者触摸屏)来提交调查、提示或查询。因此,直接动作API 108可以基于触发关键词或请求针对动作数据结构来选择模板,利用由一个或多个传感器142检测到的或者经由用户接口获得的信息来填充模板中的一个或多个字段,并且生成、创建或以其他方式构造动作数据结构以有助于由应用开发者设备160执行操作。
数据处理系统102可以基于各种因素从模板数据结构134中选择模板,该各种因素包括例如以下中的一个或多个:触发关键词、请求、应用开发者设备160、应用开发者设备160的类型、应用开发者设备160落入的类别(例如,出租车服务、洗衣服务、鲜花服务或者送餐)、位置或者其他传感器信息。
为了基于触发关键词选择模板,数据处理系统102(例如,经由直接动作API 108)可以使用触发关键词对模板数据库134执行查找或其他查询操作,以标识映射到或以其他方式对应于触发关键词的模板数据结构。例如,模板数据库134中的每个模板可以与一个或多个触发关键词相关联,以指示模板被配置为响应于应用开发者设备160可以处理的触发关键词来生成动作数据结构以建立通信会话。
在一些情况下,数据处理系统102可以基于触发关键词标识应用开发者设备160。为了基于触发关键词标识应用开发者设备160,数据处理系统102可以在数据储存库120中执行查找以标识映射到触发关键词的应用开发者设备160。例如,如果触发关键词包括“车辆(ride)”或“要去到(to go to)”,那么数据处理系统102(例如,经由直接动作API 108)可以将应用开发者设备160标识为与出租车服务公司A相对应。数据处理系统102可以使用标识应用开发者设备160来从模板储存库134(或模板数据库)中选择模板。例如,模板储存库134可以包括在第三方提供商设备(例如,应用开发者设备)或实体到模板之间的映射或关联,该模板被配置为响应于应用开发者设备160可以处理的触发关键词来生成动作数据结构以建立通信会话。在一些情况下,目标可以针对应用开发者设备160或者应用开发者设备160的类别定制。数据处理系统102可以基于针对应用开发者设备160的模板来生成动作数据结构。
为了构造或生成动作数据结构,数据处理系统102可以标识所选择的模板中的一个或多个字段以利用值填充。字段可以利用数字值、字符串、Unicode值、Boolean逻辑、二进制值、十六进制值、标识符、位置坐标、地理区域、时间戳或者其他值来填充。字段或数据结构本身可以进行加密或掩码以保持数据安全性。
在确定模板中的字段时,数据处理系统102可以标识字段的值以填充模板的字段以创建动作数据结构。数据处理系统102可以通过对数据储存库120执行查找或其他查询操作来获得、检索、确定或以其他方式标识字段的值。
在一些情况下,数据处理系统102可以确定在数据储存库120中不存在字段的信息或值。数据处理系统102可以确定存储在数据储存库120中的信息或值过时了,陈旧或者不适合用于响应于触发关键词和由NLP组件106标识的请求来构造动作数据结构(例如,客户端计算设备140的位置可能是旧的位置而不是当前位置;账户可能过期;目的地餐厅可能已经移到新位置;物理活动信息;或者运输模式)。
如果数据处理系统102确定在数据处理系统102的存储器中它目前尚无法访问模板的字段的值或信息,则数据处理系统102可以获取该值或信息。数据处理系统102可以通过查询或轮询客户端计算设备140的一个或多个可用传感器来获取或获得信息,向客户端计算设备140的终端用户提示信息或者使用HTTP协议访问基于在线网络的资源。例如,数据处理系统102可以确定它没有客户端计算设备140的当前位置,这可能是模板需要的字段。数据处理系统102可以向客户端计算设备140查询位置信息。数据处理系统102可以请求客户端计算设备140使用一个或多个位置传感器142(诸如,全球定位系统传感器)、WIFI三角测量、小区塔三角测量、蓝牙信标、IP地址或其他位置感测技术来提供位置信息。
直接动作API 108可以将动作数据结构传输给第三方提供商服务(例如,应用开发者设备160)以使应用开发者设备160调用对话应用编程接口(例如,服务提供商NLP组件)并且在应用开发者设备160与客户端计算设备140之间建立通信会话。响应于在应用开发者设备160与客户端计算设备140之间建立通信会话,应用开发者设备160可以经由网络101将数据分组直接传输给客户端计算设备140。在一些情况下,应用开发者设备160可以经由数据处理系统102和网络101将数据分组传输给客户端计算设备140。
在一些情况下,应用开发者设备160可以执行对话API或NLP组件106(例如,对话接口114)的至少一部分。例如,应用开发者设备160可以处理通信会话或查询的类型的某些方面。应用开发者设备160可以利用由数据处理系统102执行的NLP组件106来有助于处理与通信会话相关联的音频信号并且生成对查询的响应。在一些情况下,数据处理系统102可以包括被配置用于应用开发者设备160的对话接口114。在一些情况下,数据处理系统在客户端计算设备与第三方提供商设备之间路由数据分组以建立通信会话。数据处理系统102可以从应用开发者设备160接收第三方提供商设备与客户端设备140建立了通信会话的指示。该指示可以包括客户端计算设备140的标识符、与何时建立了通信会话相对应的时间戳或者与通信会话相关联的其他信息,诸如,与通信会话相关联的动作数据结构。
在一些情况下,对话接口114可以是包括NLP有组件106的一个或多个组件或功能的第二NLP组件。对话接口114可以与NLP组件106交互或者利用该NLP组件106。在一些情况下,系统100可以包括由数据处理系统102执行的单个NLP组件106。单个NLP组件106可以支持数据处理系统102和第三方应用开发者设备160两者。在一些情况下,直接动作API 108生成或构造动作数据结构以有助于执行服务,并且对话API生成响应或查询以促进与终端用户的通信会话或者获得附加信息以改善或增强终端用户的体验或服务性能。
数据处理系统102可以包括、执行内容选择器组件或者以其他方式与内容选择器组件通信,以接收由自然语言处理器组件106标识的触发关键词并且基于触发关键词经由实时内容选择过程选择数字组件。内容选择过程可以指或包括选择由第三方内容提供商提供的赞助的数字组件对象。实时内容选择过程可以包括服务,在该服务中由多个内容提供商提供的数字组件被解析、处理、加权或匹配以便选择一个或多个数字组件以提供给计算设备140。数据处理系统102可以实时执行内容选择过程。实时执行内容选择过程可以指响应于经由客户端计算设备140接收到的对内容的请求来执行内容选择过程。实时内容选择过程可以在接收请求的时间间隔(例如,5秒、10秒、20秒、30秒、1分钟、2分钟、3分钟、5分钟、10分钟或20分钟)内执行(例如,发起或完成)。实时内容选择过程可以在与客户端计算设备140的通信会话期间或者终止通信会话之后的时间间隔内执行。
数据处理系统102可以选择数字组件以显示在基于语音的环境中,数据处理系统102(例如,经由NLP组件106)可以解析输入音频信号以标识关键词(例如,触发关键词),并且使用关键词来基于广义匹配、精确匹配或短语匹配选择匹配的数字组件。例如,数据处理系统102可以分析、解析或以其他方式处理候选数字组件的主题以确定候选数字组件的主题是否与由客户端计算设备140的麦克风检测到的输入音频信号的关键词或短语的主题相对应。数据处理系统102可以使用图像处理技术、字符识别技术、自然语言处理技术或数据库查找来标识、分析或识别候选数字组件的语音、音频、术语、字符、文本、符号或图像。候选数字组件可以包括指示候选数字组件的主题的元数据,在这种情况下,数据处理系统102可以处理该元数据以确定候选数字组件的主题是否与输入音频信号相对应。
内容提供商(例如,应用开发者设备160或其他第三方设备)可以在设置包括有数字组件的内容活动时提供附加指示符。内容提供商可以在内容活动处或内容组级别提供信息,数据处理系统102可以通过使用关于候选数字组件的信息来执行查找而标识这些信息。例如,候选数字组件可以包括唯一标识符,其可以映射到内容组、内容活动或内容提供商。数据处理系统102可以基于存储在数据储存库120中的内容活动数据结构中的信息来确定关于内容提供商的信息。
数据处理系统102可以经由计算机网络接收对内容的请求以呈现在计算设备140上。数据处理系统102可以通过处理由客户端计算设备140的麦克风检测到的输入音频信号来标识请求。该请求可以包括请求的选择标准,诸如,设备类型、位置和与请求相关联的关键词。该请求可以包括动作数据结构或者动作数据结构。
响应于请求,数据处理系统102可以从数据储存库120或者与内容提供商相关联的数据库中选择数字组件对象,并且经由网络101提供数字组件以经由计算设备140呈现。数字组件对象可以由不同于应用开发者设备160的内容提供商设备提供。数字组件可以对应于与动作数据结构的服务类型不同的服务类型(例如,出租车服务与送餐服务)。计算设备140可以与数字组件对象交互。计算设备140可以接收对数字组件的音频响应。计算设备140可以接收指示以选择与数字组件对象相关联的超链接或其他按钮,该数字组件对象使或允许计算设备140标识服务提供商,向服务提供商请求服务,指示服务提供商执行服务,将信息传输给服务提供商或者以其他方式查询应用开发者设备160。
数据处理系统102可以包括、执行、访问输入生成组件110或以其他方式与输入生成组件110通信,输入生成组件110被设计、构造为或者被操作以生成数据分组以输入到应用执行组件112中。输入生成组件110可以包括直接动作API 108或NLP组件106的一个或多个组件或功能。输入生成组件110可以与NLP组件106或直接动作API108通信或接口连接,以生成数据分组、命令、指令或其他数据以输入到应用执行组件112中。
输入生成组件110可以标识应用开发者设备160经由网络101提供的应用。输入生成组件110可以包括接口或端口,或者经由数据处理系统102的接口104通信。输入生成组件110可以包括或提供图形用户接口以向应用开发者设备160显示。输入生成组件110可以接收请求或指示以生成输入。响应于接收到该请求,输入生成组件110可以标识应用。输入生成组件110可以在接收到或没有接收到请求的情况下标识该应用。例如,输入生成组件110可以确定主动地标识应用,或者基于时间间隔、条件、事件或其他过程标识应用。
输入生成组件110可以接收验证应用的请求,并且继续标识应用或应用的类型以生成响应于请求的输入以验证应用。输入生成组件110可以响应于从应用开发者设备160接收到应用而确定验证应用。输入生成组件110可以响应于确定将应用提交给数据处理系统102以交付给客户端计算设备140来确定验证应用。输入生成组件110可以在将应用交付给客户端计算设备140之前或先于将应用交付给客户端计算设备140确定验证应用。输入生成组件110可以确定阻止或防止交付应用,直到数据处理系统102已经验证了该应用。
输入生成组件110可以基于应用的标识符、应用的名称、数字字母标识符或者其他类型的标识符来标识应用。输入生成组件110可以基于应用开发者设备160的标识符来标识应用。例如,输入生成组件110可以从应用开发者设备160接收请求。输入生成组件110然后可以在数据储存库120中的应用数据122中执行查找以标识与应用开发者160相关联的应用。
由输入生成组件110标识的应用可以包括对话接口114。例如,应用可以被配置为使用对话接口114或者执行对话接口114或者与对话接口114交互或通信。应用可以包括或使用对话接口114作为用户接口。应用可以经由对话接口114获得输入并且提供输出。对话接口114可以包括、使用NLP组件106或直接动作API 108的一个或多个组件或者以其他方式与所述NLP组件106或直接动作API 108的一个或多个组件接口连接。输入生成组件110可以确定应用配置有对话接口114或者应用被配置为使用对话接口114。输入生成组件110可以基于与应用相关联的标记或标签、解析应用代码、与应用相关联的应用包文件、副本文件或者在数据储存库120中的应用数据122中提供的其他指示来确定应用包括有或使用了对话接口114。
输入生成组件110可以确定验证应用。输入生成组件110可以响应于检测到或确定应用包括有或使用了对话接口114来确定验证应用。输入生成组件110可以标识或确定应用的域。
输入生成组件110可以确定与应用相对应的类型或域。例如,输入生成组件110可以确定应用的类型或域。输入生成组件110可以确定应用属于哪个域或类别。输入生成组件110可以在应用数据122中执行查找以标识关于应用的信息。输入生成组件110可以标识或确定有助于生成输入以提供给应用执行组件112的信息。例如,输入生成组件110可以标识或确定应用的类型、应用的域、与应用相关联的历史网络活动、应用的内容、应用被配置为要执行的动作或者可由应用访问的库存。
例如,应用的类型可以包括生活方式应用(例如,健身、约会、食物、音乐或旅行)、社交媒体应用、实用应用(例如,提醒、计算器、闪光灯、天气)、游戏或娱乐应用、生产力应用(例如,文字处理、电子表格、薪水)或者新闻或信息应用。例如,应用的域可以包括音乐流服务、共享汽车服务、购票服务、食谱或烹饪。域可以是应用的类型的子集。
输入生成组件110可以基于在应用数据122储存库或数据结构中的查找来确定应用的类型或应用的域。输入生成组件110可以基于解析或与应用相关联的其他处理内容来确定应用的类型或域。例如,应用数据122可以包括关键词、话题、术语、动作、库存、实体或者与应用相关联的其他信息。输入生成组件110可以解析关键词以确定应用的类型或域。输入生成组件110可以配置有语义处理技术,其可以基于与应用相关联的关键词或实体来确定应用的类型或应用的域。
输入生成组件110可以基于与应用或与应用开发者设备160相关联的历史网络活动来确定应用的类型或域。例如,输入生成组件110可以基于与应用开发者设备160相关联的历史日志126来确定应用的类型或域。日志126可以包括先前执行的与应用开发者设备160相关联的动作或请求。数据处理系统102可以使用语义处理或其他类型的处理解析或处理日志126以确定应用的类型或域。
输入生成组件110可以从存储在数据储存库120中的动作储存库124中选择动作。输入生成组件110可以基于应用的类型或域来选择动作。例如,输入生成组件110可以在动作储存库124中执行查找以标识映射到应用的类型或域的一个或多个动作。动作储存库124可以包括或包含将域或类型映射到动作。动作储存库124可以将应用的类型与动作的类型相关联。例如,共享汽车类型的应用可以与打车(order a ride)的动作相关联;新闻类型的应用可以与提供某地理区域的最新新闻标题的动作相关联;天气类型的应用可以与提供某地理区域的天气预报的动作相关联。
输入生成组件110可以从映射到应用的类型或域的动作储存库124中选择预定动作。例如,动作储存库124可以包括针对应用的每种类型或域的多个动作。动作储存库124可以对动作进行排行或排序。动作储存库124可以包括动作序列。动作可以与用于实现或执行动作的一个或多个参数相关联,或者包括该一个或多个参数。
输入生成组件110可以针对应用的类型或域选择默认或初始动作。输入生成组件110可以基于应用的类型或域从动作储存库124中选择第一动作。初始或默认动作可以用于生成应用的触发短语。例如,针对共享汽车类型的应用,初始、默认或触发动作可以包括“打车(order a ride)”;针对售票类型的应用,初始、默认或触发动作可以包括“搜索艺术家A(Artist_A)的票”。
数据处理系统102可以基于标识与应用的类型相关联的动作来填充或更新动作储存库124。数据处理系统102可以标识类似的应用以及类似的应用被配置为要执行的动作。当确定应用可以成功执行或实现动作时,数据处理系统102可以确定利用将动作映射到应用的类型来更新动作储存库124。在一些情况下,数据处理系统102的管理员可以将动作储存库124更新或修改以包括新动作,或者移除不再由该类型的应用执行的动作。
在一些情况下,输入生成组件110可以在不选择存储在动作储存库124中的动作的情况下生成动作。输入生成组件110可以从应用开发者设备160接收动作列表。例如,应用开发者设备160可以在与应用相关联的应用包文件或副本文件中提供动作列表。数据处理系统102可以解析应用包文件或副本文件以标识为应用建立的动作。输入生成组件110可以从由应用开发者设备160提供的动作列表中选择动作。
输入生成组件110可以生成触发短语以输入到应用中。输入生成组件110可以自动地生成触发短语。例如,数据处理系统102本身可以生成触发短语以输入到应用中。输入生成组件110可以使用NLP组件106来生成触发短语。输入生成组件110可以基于所选择的动作来生成触发短语。输入生成组件110可以生成触发短语以纂拟、模仿、模拟或表示将由计算设备140的传感器142(例如,麦克风)检测到的基于语音的输入。输入生成组件110可以生成触发短语以发起动作的执行。
数据处理系统102(例如,输入生成组件110或NLP组件106)可以包括基于日志126训练的机器学习组件或模型128。数据处理系统102可以使用基于日志126训练的模型128来基于所选择的动作生成触发短语。日志126可以包括由计算设备140的传感器142检测到的历史触发短语,以发起应用或具有与该应用相同的类型或域的其他应用的动作的执行。输入生成组件110可以生成触发短语,该触发短语被配置为经由对话接口114发起由应用对动作的执行。输入生成组件110可以构建触发短语以经由应用的对话接口114输入到应用中。
例如,针对共享汽车类型应用的打车的动作,输入生成组件110可以生成触发短语,诸如:“我想打车去工作(I would like to get a ride to work)”、“我需要打车去主街上的电影院(I need a ride to the movie theater on Main Street)”、“打车回家多少钱?(How much is a ride to go home?)”。输入生成组件110可以使用自然语言处理(例如,经由NLP组件106)来生成各种类型的触发短语以针对应用的类型发起动作的执行。
输入生成组件110可以将句子构造为触发短语。输入生成组件110可以使用NLP组件106来为所选择的动作构造句子。输入生成组件110可以利用名词和动词来构造句子。输入生成组件110可以利用对动作的请求来构造句子。例如,NLP组件106可以包括自然语言生成器。输入生成组件110可以使用NLP组件106的自然语言生成器来通过结构化数据(诸如,知识库或逻辑形式(例如,语言学))来生成自然语言。输入生成组件110可以构造术语、短语或句子,所述术语、短语或句子发起动作的执行或者有助于动作的执行或实现。由输入生成组件110生成的句子或触发短语可以包括对所选择的动作的指示。由输入生成组件110生成的句子或触发短语可以包括对应用的指示。例如,触发短语可以包括“使用(应用A)(Application_A)来播放来自播放列表1(Number_1)的音乐”。
为此,输入生成组件110可以使用一种或多种自然语言生成技术。输入生成组件110可以访问预定文本列表(例如,预定响应储存库),该预定文本列表被复制和粘贴,可能与其他文本链接。输入生成组件110可以在计划和合并信息的阶段生成短语,以允许生成看起来自然且不会重复的文本。例如,输入生成组件110可以基于动作使用以下阶段中的一个或多个来生成触发短语或附加短语:确定内容以标识要在短语中提到什么信息;使文档结构化以组织要传达的信息;聚合以合并类似的术语、短语或句子以提高可读性和自然性;选择词汇(lexical)以将单词应用于概念;引用表达式生成以创建标识物体和区域的引用表达式;以及实现以创建可以符合语法、词态学和正字学的规则的实际文本。
输入生成组件110可以使用机器学习来建立系统,而不用像上文那样使用单独阶段。例如,输入生成组件110可以对输入数据的大数据集(例如,日志126)和对应的(人手写的)输出文本使用由机器学习引擎(例如,人工递归神经网络,诸如,长短期记忆)训练的模型。因此,输入生成组件110可以使用一种或多种技术来基于针对应用所选择的动作生成触发短语以输入到应用中。
输入生成组件110可以确定使用哪种技术来构造或生成句子、文本、短语或响应。输入生成组件110可以评估模型128的质量以确定模型128是否已经得到了足够的训练来生成短语。输入生成组件110可以确定模型128的度量,其可以指示模型128的质量。该度量可以对应于用于训练模型128的日志126的数量、与模型128相关联的置信度分数、使用模型128构造的句子质量或者其他质量指示符。基于与利用历史日志126训练的模型相关联的度量,检查组件116可以选择模型128或预定响应储存库中的一个来用于生成查询。输入生成组件110可以基于该选择,从而经由模型128或预定响应储存库(例如,存储在动作储存库124、应用数据122或模板134中)中的一个来生成响应。
输入生成组件110可以基于上下文(诸如,动作)来模拟意图。输入生成组件110可以基于对话中的先前的上下文来模拟意图。例如,如果先前的动作是订购物品,那么输入生成组件110可以生成后续短语,诸如,“我的订单状态是什么?(What is the status of myorder?)”、“我的订单已经发货了吗?(Has my order been shipped?)”、“我的订单何时会到达?(When will my order arrive?)”、“我的订单多少钱?(How much was my order?)”。输入生成组件110可以经由对话接口114建立与应用136的对话。
输入生成组件110可以确定从触发短语或者要输入到由应用执行组件112执行的应用136中的其他句子或短语中省略某些信息。输入生成组件110可以确定省略用于执行所选择的动作的参数的值。例如,打车的动作可以包括关于乘车目的地和下车目的地的参数。输入生成组件110可以通过如下那样省略下车目的地来生成触发短语“我想打车去某个地方(I would like to order a ride to go somewhere)”。输入生成组件110可以被配置为包括参数的值或者省略参数的值,以使由应用执行组件执行的应用136经由对话接口114生成查询,以请求由输入生成组件110省略的参数的值。
数据处理系统102可以包括、访问应用执行组件112或者以其他方式与应用执行组件112接口连接。应用执行组件112可以被设计、构造为或被操作以执行由应用开发者设备160提供的应用136。应用执行组件112可以在数据处理系统102上执行应用136。应用执行组件112可以在数据处理系统102上的沙盒环境中执行应用136。沙盒环境可以指在限制访问数据处理系统102的其他存储器、组件或功能的计算环境或存储器中执行应用136。可以限制在沙盒环境中执行的应用136访问在数据处理系统102的沙盒环境外部或之外的组件或功能。沙盒环境可以将所执行的应用与数据处理系统102的其他组件、功能或资源隔离。沙盒环境可以提供要执行应用136的安全环境,使得应用中的错误功能可能不会对数据处理系统102的其他组件产生负面影响。
应用执行组件112可以在虚拟机中执行应用136。例如,应用执行组件112可以调用执行应用的虚拟机。应用执行组件112可以将虚拟机或者由虚拟机在数据处理系统102上执行的应用的实例实例化。应用执行组件112可以使用一个或多个配置参数来配置或建立虚拟机。配置参数可以存储在应用数据122中。例如,应用开发者设备160可以指示用于执行应用的软件或硬件配置。应用开发者设备160可以指示与应用相兼容的软件或硬件的类型。应用执行组件112可以从应用数据122获得配置,并且基于配置信息配置虚拟机,使得虚拟机可以执行应用。例如,虚拟机可以配置有与要执行应用136的计算设备140相当的处理器类型(例如,处理器频率、核心、速度、性能)或内存量。
应用执行组件112可以利用对话接口114执行应用136。应用执行组件112可以使用对话接口来将输入提供给应用,并且呈现来自应用的输出。应用136可以访问网络(例如,网络101)以请求其他输入或者传输输出。应用执行组件112可以提供对话接口114以模拟将由输入生成组件110生成的语音输入提供给经由应用执行组件112被执行的应用(例如,由应用执行组件112调用的虚拟机)。
应用执行组件112可以接收由输入生成组件110生成的触发短语,并且将触发短语提供给由应用执行组件112执行的应用136。输入生成组件110可以将触发短语提供给接口104,该接口104可以将触发短语转发给应用的对话接口114。对话接口114可以由应用136执行,或者应用136可以使用NLP组件106来解析和处理触发短语。
应用136可以解析或处理触发短语以标识动作。触发短语可以指用于启动或命令应用的初始短语或第一短语或查询。例如,触发短语可以包括“打车去餐馆_A(Restaurant_A)(Order a ride to Restaurant_A)”。应用执行组件112可以以类似于执行应用136的客户端计算设备140的方式执行应用。例如,由应用执行组件112执行的应用136可以处理触发短语以标识动作。该动作可以与由输入生成组件110预先选择的以生成触发短语的动作相同或类似的动作。
应用136可以标识用于执行动作的参数。应用136可以访问应用的数据储存库或者应用136的其他存储器、索引或数据文件以标识参数。在一些情况下,应用136可以对数据处理系统102或其一个或多个组件进行远程程序呼叫,以进一步处理动作。应用136可以对应用开发者设备160进行远程程序呼叫以进一步处理动作或触发短语。
应用136可以标识被用于执行在触发短语中标识的动作的一个或多个参数。应用136可以标识来自动作储存库124的参数。例如,动作储存库124可以包括将参数映射到动作。动作储存库124可以包括动作与用于实现该动作的参数之间的关联。应用开发者160可以建立应用136的数据结构,该数据结构指示应用136使用哪些参数来实现动作。参数可以包括有助于执行或实现动作的任何类型或形式的参数或值。例如,共享汽车动作的参数可以包括:乘车(pick up)位置、下车位置、乘客数量、乘车时间、下车时间或者车辆类型。播放音乐动作的参数可以包括:艺术家姓名、歌曲名称、专辑名称、播放列表名称或者无线电台名称。购票动作的参数可以包括:地点名称、行为、艺术家、运动、运动队名称、日期、票的数量、价格或者座位位置。
应用执行组件112可以执行应用136以标识一个或多个参数,然后基于所标识的参数来生成查询。例如,响应于接收到触发短语,应用136可以标识动作和用于执行动作的参数。应用136可以确定用于所标识的一个或多个参数的值丢失、不可用或者以其他方式未向触发短语提供。例如,由输入生成组件110生成的触发短语可以包括打车的请求,但是缺少打车的下车或乘车位置。
应用136可以确定生成查询以获得用于执行动作的参数的值。由数据处理系统102的应用执行组件112(例如,在数据处理系统102或虚拟机的沙盒计算环境中)执行的应用136可以基于该参数生成查询。应用136可以使用应用的对话接口114来生成查询。对话接口114可以由数据处理系统102的一个或多个组件提供。应用136可以使用对话接口114来生成查询,该对话接口114可以使用NLP组件106或输入生成组件110。
响应于请求缺少了用于执行动作的参数的值的所述动作的动作,应用136可以生成查询以获得参数的值以便有助于执行所述动作。应用136可以根据对话接口114以对话形式生成查询。例如,在触发短语或其他输入短语中可能不存在用于执行动作的参数的值。应用136可以生成查询以请求用于执行动作的参数的值。例如,如果动作是打车并且在触发短语或其他输入短语中缺少目的地参数的值,则应用136可以生成查询“您想去哪里?(Wherewould you like to go?)”、“目的地是哪里?(What is the destination?)”、“当然,我可以为您请求车辆。下车位置是哪里?(Sure,I can request a ride for you.What is thedrop off location?)”。
应用136可以经由对话接口114提供所生成的查询,该查询请求用于执行动作的参数的值。数据处理系统102可以经由输入生成组件110生成对查询的响应。该响应可以包括所请求的用于执行动作的参数的值。输入生成组件110可以利用该值来生成响应。输入生成组件110可以使用自然语言生成器来利用该值生成响应。输入生成组件110可以根据参数标识任何值。输入生成组件110可以利用实体访问结构化数据库以选择值。输入生成组件110可以访问参数的值的预定列表(例如,在应用数据122的动作储存库124中)。输入生成组件110可以通过日志126来标识或选择参数的值。
应用136可以接收对查询的响应,该响应包含参数的值。应用136可以使用参数的值来执行动作。在一些情况下,应用136可以针对附加参数的附加值生成附加查询。输入生成组件110可以利用所请求的参数的值来生成附加响应。应用136可以经由对话接口114将查询提供给数据处理系统102的组件,并且经由对话接口114从数据处理系统102的组件接收对查询的响应。应用136可以继续执行动作并且实现动作。应用136可以利用一个或多个参数的一个或多个值来填充动作的动作数据结构(例如,使用直接动作API 108的组件或功能),并且处理或传输动作数据结构以实现对动作的请求。
输入生成组件110可以生成一个或多个响应。输入生成组件110可以响应于来自应用136的附加查询来生成附加响应。输入生成组件110可以基于对第一响应、来自应用的第一查询和触发短语的语义分析来生成第二响应。输入生成组件110可以提供第二响应以通过由数据处理系统102执行的应用136进行处理。因此,数据处理系统102可以利用应用136与数据处理系统102的一个或多个组件之间的多个响应和查询进行对话。对话可以包括执行一个或多个动作。
数据处理系统102可以包括、执行虚拟化组件118或者以其他方式与虚拟化组件118接口连接。虚拟化组件118可以被设计、构造为或被操作以模拟经由应用执行组件112执行的应用136与虚拟计算设备之间的交互。虚拟计算设备可以模仿或表示客户端计算设备140。虚拟化组件118可以模拟或模仿应用开发者设备160。虚拟化组件118可以模仿或模拟内容提供商、服务提供商或者其他第三方提供商设备。
虚拟化组件118可以模拟客户端计算设备140。虚拟化组件118可以提供用于模拟客户端计算设备140的用户的电子账户。虚拟化组件118可以提供用于模拟第三方服务提供商的电子账户。虚拟化组件118可以包括虚拟账户,其包括例如用户名、标识符、偏好、位置信息、金融账户信息或由应用136用于执行动作的其他信息。虚拟化组件118可以允许由应用执行组件112执行的应用136执行动作,就好像应用136在客户端计算设备140上执行动作一样。
例如,由应用执行组件112执行的应用136可以利用一个或多个参数的一个或多个值来执行动作。应用可以通过传输动作数据结构(例如,该动作数据结构是使用直接动作API 108的一个或多个功能生成的)来执行动作。应用136可以尝试将动作(例如,打车动作)传输给提供车辆的第三方服务提供商。应用执行组件112可以拦截请求。应用执行组件112可以包括被配置为拦截和重定向请求的挂钩组件。应用执行组件112可以接收与动作数据结构相对应的数据分组,并且修改数据分组的目的地地址以防止数据分组被发送到第三方服务提供商。
虚拟化组件118可以提供虚拟用户账户和虚拟服务提供商账户。虚拟化组件118可以允许应用136在与应用开发者设备160相关联的设备和由虚拟化组件118提供的虚拟客户端设备之间建立电信信道。虚拟化组件118可以将虚拟用户账户信息提供给与应用开发者设备160相关联的设备(例如,服务提供商)。数据处理系统102(例如,输入生成组件110)可以使用虚拟化组件118来将响应提供给与应用开发者设备160相关联的设备。
数据处理系统可以在虚拟客户端设备和与应用开发者设备160相关联的应用或设备之间建立电信信道。输入生成组件110可以生成输入以经由电信信道传输到应用或应用开发者设备160。输入可以包括对查询或其他输入(诸如,短语、触发短语或执行动作的参数的值)的响应。电信信道可以指音频通信信道、聊天通信、SMS文本通信、基于蜂窝的通信、电话呼叫或者互联网语音协议。例如,应用136可以包括聊天机器人,并且输入生成组件110可以建立与应用的聊天机器人的电信信道。
例如,应用136可以确定由应用使用的参数是电子账户标识符。应用136可以生成查询,其具有对电子账户标识符的请求。应用136可以经由对话接口114生成查询。虚拟化组件118可以接收查询。虚拟化组件118(例如,经由NLP组件106或输入生成组件110)可以生成响应,该响应包括电子账户标识符的模拟值。模拟值可以指虚拟电子账户。虚拟电子账户可以是测试账户或者与数据处理系统102或应用开发者设备160的管理员相关联的账户。虚拟账户可以包括与应用136或客户端计算设备140的实际用户不对应的参数的值。虚拟账户可以由虚拟化组件118、管理员或应用开发者建立以有助于评估应用136。
虚拟化组件118可以提供标记、指示或者值(作为模拟值或虚拟账户的值)以输入到应用136中。模拟值可以指示该值与实际用户不对应。模拟值可以向应用执行组件112指示应用136无法执行动作的某方面。应用执行组件112可以基于检测到模拟值或虚拟值来确定防止或阻止应用136利用模拟值执行动作。例如,模拟值可以是金融账户标识符,并且可能不是具有与模拟值相对应的资金的实际金融账户。因此,在检测到模拟值时,应用执行组件112可以阻止或防止执行需要从模拟金融账户转移资金的那部分动作。在另一示例中,共享汽车动作的模拟值可以包括乘车和下车位置,在这种情况下,应用执行组件112(例如,经由虚拟化组件118)可以防止应用136命令实际服务提供商实现打车请求。
应用执行组件112可以基于与值相关联的标记、标签、指示或符号来确定由输入生成组件110或虚拟化组件118提供的该值是模拟值。在一些情况下,应用执行组件112可以确定某些参数可以具有是虚拟值的值,并且阻止执行动作的使用这种参数(例如,金融账户标识符或者乘车或下车位置)的方面。
虚拟化组件118可以使用接口104和网络101来允许应用136建立与数据处理系统102外部的设备的电信信道、链接或会话。在一些情况下,虚拟化组件118可以模拟电信信道、链接或会话,使得由应用执行组件112执行的应用136可以继续处理和执行来自沙盒计算环境的动作。在一些情况下,虚拟化组件118可以从应用136接收请求,并且经由对话接口114将响应传输给应用136。例如,虚拟化组件118可以使用NLP组件106或输入生成组件110的一个或多个组件或功能来与由应用执行组件112执行的应用136通信。
应用136可能利用这些值成功或未成功执行了动作。应用136可能或可能未成功请求用于执行动作的参数的值。例如,应用136可能未能请求用于执行动作的参数的值。应用136可以在没有参数的值的情况下继续执行动作,这可能导致错误执行动作,未成功实现动作或者应用136崩溃、冻结或终止。
数据处理系统102可以包括、执行检查组件116或者以其他方式与检查组件116接口连接。检查组件可以被设计、构造为或者被操作以验证应用136。检查组件116可以确定由应用执行组件112执行的应用136的状态。检查组件116可以评估应用136的状态。检查组件116可以基于应用136的状态来标识错误代码。检查组件116可以基于错误代码将通知提供给应用开发者设备160。
检查组件116可以验证应用。验证可以指或包括确定应用通过了由数据处理系统102执行的某些测试。验证可以指或包括确定应用不包括错误或漏洞(例如,不会在某些动作期间崩溃或冻结)。验证可以指或包括确认应用可以执行动作或者实现意图。验证可以指或包括确定应用未消耗过多的计算资源(例如,内存、处理器使用率、网络带宽、远程程序呼叫、存储、音频输出或者屏幕显示亮度级别)。如果应用可以执行动作而不消耗大于或等于计算资源阈值的计算资源的量,则数据处理系统102可以验证应用。阈值可以是动态阈值、百分比、比率或者绝对阈值。阈值可以基于应用的类型、与应用相兼容的操作系统或者与应用相关联的设备配置而变化。因此,数据处理系统102可以基于各种因素来验证应用。
检查组件116可以确定应用136是否已经崩溃或者处于冻结状态。检查组件116可以确定,如果应用136变得没有响应,则应用已经崩溃。例如,检查组件116可以访问应用执行组件112的或者执行应用136的虚拟机的任务管理器以确定与应用136相关联的进程的状态是否是正在运行、没有响应、暂停或终止。如果应用136状态是没有响应,则检查组件116可以评估该没有响应的状态以确定应用136未能执行动作。检查组件116可以确定与未能执行动作相对应的错误代码。错误代码可以包括字母数字代码、文本、术语、短语、符号或者错误的其他指示。检查组件116可以从存储在数据储存库120中的错误代码储存库132检索错误代码。错误代码储存库132可以包括应用状态或者与应用状态相关联的状况到错误代码的索引或映射。
检查组件116可以通过评估应用136的输出来确定应用136的状态。检查组件116可以解析应用136的输出。检查组件116可以经由对话接口114获得、接收或标识应用136的输出。检查组件116可以经由虚拟化组件118获得应用的输出。例如,应用136可以提供音频或视觉输出以经由客户端计算设备140呈现。然而,由于应用136可以出于验证目的由应用执行组件112执行,所以应用执行组件112可以将输出转发给虚拟化组件118。检查组件116可以解析视觉输出或者分析音频输出以确定应用136的状态。例如,视觉输出可以包括错误消息(诸如,错误弹窗)或者指示错误的空屏。音频输出可以指示应用136的错误或冻结状态。应用136的视觉或音频输出可以以其他方式指示应用的状态。应用136的视觉或音频输出可以指示应用136成功执行了应用136。
例如,如果应用136是共享汽车应用,则检查组件116可以确定应用的输出是否指示正在请求或预定车辆。检查组件116可以进一步确定输入到应用136的参数的值是否正确用于执行动作。检查组件116可以解析应用136的输出以确定乘车位置或下车位置与经由对话接口114输入到应用136中的参数的值相对应。
检查组件116可以确定应用136是否请求了用于执行动作的所有参数的值。检查组件116可以经由动作储存库124确定用于执行动作的参数。检查组件116可以验证应用136是否生成了一个或多个查询以在执行动作之前获得了用于执行动作的参数的值。如果检查组件116确定应用136未能请求用于执行动作的参数的值,而是在缺少参数的情况下继续执行动作,则检查组件116可以确定应用136错误地或未能获得参数的值。检查组件116可以将应用的状态确定为故障状态或失败状态。检查组件116可以为该状态选择错误代码,该错误代码指示应用136未能请求用于执行动作的参数的值。错误代码可以指示应用136尝试在缺少参数或只有部分数据的情况下执行动作。检查组件116可以确定在缺少参数的情况下执行动作可能未成功或者导致动作的执行效率低下,从而消耗过多的计算资源。
例如,打车的动作可以包括乘车位置、下车位置和电子账户标识符的参数。应用136可以请求乘车和下车位置的值,但是未能获得电子账户标识符。应用136可以尝试在没有所请求的电子账户标识符的情况下继续执行动作。然而,这可能效率低下或者导致故障模式,因为应用136可能无法获得此次打车的支付信息或者验证用户。因此,检查组件116可以通过标识应用136所请求的参数的值、动作的类型以及应用136的状态来评估状态以确定应用136尝试在缺少值的情况下执行动作。检查组件116可以评估应用的这种状态以确定错误代码,该错误代码指示应用136未能请求用于执行动作的参数的值。
在一些情况下,检查组件116可以在执行动作之前评估状态,以确定参数的值丢失并且应用136未能请求该值,并且然后防止应用执行动作。
检查组件116可以在执行动作之前、期间和之后评估应用136的资源消耗。检查组件116可以使用任务管理器或其他实用程序来监测处理器使用率、内存利用率、输入/输出读取、数据存储读取/写入、网络带宽使用率或者其他计算资源度量。检查组件116可以在执行应用136的虚拟机或者执行应用136的其他组件或系统上评估该度量。检查组件116可以基于计算资源消耗度量来评估应用136的状态。检查组件116可以将计算资源消耗度量与阈值(例如,存储在错误代码132储存库中的阈值)相比较以确定错误代码。如果资源消耗度量大于或等于阈值,则检查组件116可以分配错误代码,该错误代码指示哪种资源消耗度量大于或等于阈值。检查组件116可以选择错误代码,该错误代码可以指示应用136在执行动作之前、执行动作期间或者执行动作之后消耗了过多的计算资源。
检查组件116可以基于传感器使用率来评估应用136的状态。检查组件116可以评估应用136使用了哪些传感器来执行动作。检查组件116可以确定传感器在完成动作或者终止应用136时是否仍然是活动的。检查组件116可以确定应用136是否不必要地将传感器保持在活动状态。检查组件116可以确定应用136是否未能停用传感器。检查组件116可以经由虚拟化组件118来确定传感器是活动的还是不活动的。检查组件116可以基于由应用136提供的命令或通信来确定传感器是否正在由应用136使用。检查组件116可以确定应用136可能正在使用哪些端口来与传感器通信。示例传感器可以包括传感器142,诸如,麦克风、扬声器、环境光传感器、温度传感器、加速度计、陀螺仪或其他传感器。
例如,应用136可以使用麦克风来与应用开发者设备160的设备建立基于语音的通信信道,诸如,电话呼叫。应用136可以终止或结束电话呼叫。检查组件116可以确定在终止电话呼叫之后是否已经停用麦克风。检查组件116可以评估应用136的状态以确定应用136在终止电话呼叫时未能停用麦克风,并且然后确定错误代码,该错误代码指示应用136未能停用麦克风。例如,数据处理系统102可以确定应用的状态是终止状态。数据处理系统102可以评估应用的状态以确定由应用使用的资源(例如,存储器、处理器、显示器、扬声器、输入设备)或传感器(例如,麦克风或环境光传感器)是活动的。数据处理系统102可以生成错误代码,该错误代码指示应用未能响应于终止状态而停用资源或传感器。
例如,应用136可以在与应用开发者相关联的设备与虚拟客户端设备(例如,由虚拟化组件118提供)之间建立电信信道。可以响应于由输入生成组件110提供(经由对话接口114)的请求或响应来建立电信信道。例如,输入生成组件110可以请求与应用开发者的技术支持代理、销售员或客户服务代表交谈。输入生成组件110可以自动地生成和提供输入以发起该请求。响应于该请求,应用136可以建立电信信道。检查组件116可以检测电信信道的终止。例如,输入生成组件110可以提供输入以挂断电话呼叫。响应于电信信道的终止,检查组件116可以标识虚拟客户端设备的麦克风的状态(例如,活动的或不活动的)。数据处理系统102可以基于虚拟客户端设备的麦克风的状态是活动的来设置错误代码。该错误代码可以指示应用136在终止电话呼叫时未能停用麦克风。
图2是验证基于数字助理的应用中的动作的方法的图示。方法200可以由图1或图3所描绘的一个或多个组件或系统执行,包括例如数据处理系统。在202处,数据处理系统可以标识应用。数据处理系统可以响应于验证应用的请求来标识应用。应用可以由应用开发者的应用开发者设备提供。应用可以包括或使用对话接口以进行输入或输出。数据处理系统可以基于检测到尚未发布应用(例如,尚未在在线应用商店上上架以交付给客户端计算设备)来标识应用。数据处理系统可以标识应用是新应用或者是先前提供的应用的新版本。数据处理系统可以标识尚未验证、评估或测试的应用。数据处理系统可以标识应用的先前版本评估失败或者未通过验证过程。数据处理系统可以基于先前版本失败来确定要验证新提交的版本。
在204处,数据处理系统可以确定应用的域。数据处理系统可以确定应用的类型或域,诸如,音乐流或共享汽车。数据处理系统可以使用各种技术来标识应用的类型或域,包括例如解析与应用相关联的元数据,访问与应用开发者相关联的在线资源以解析在线资源上可用的内容或者分析与应用的先前版本相关联的历史日志。
在206处,数据处理系统可以确定动作储存库是否可用于在204处确定的应用的类型或域。如果应用储存库是可用的(例如,可以由应用的类型执行的动作列表),那么数据处理系统可以在210处从动作列表中选择动作。然而,如果动作列表在用于这类应用的动作储存库中不可用,则数据处理系统可以在208处使用强力触发机制。
在208处,强力触发机制可以包括选择初始或默认动作。默认动作可以是通用的或对于动作的类型是不可知的,或者可以在不同类型的动作之间具有共形。默认动作可以包括查询应用以确定应用的类型,诸如,“您可以执行什么类型的动作?(what type ofactions can you execute?)”。强力触发机制可以包括将储存库中的针对每种类型的应用的动作循环进行。例如,在动作储存库中可能存在20种不同类型的应用。每种类型的应用可以与一个或多个动作相关联。强力触发机制可以包括数据处理系统选择第一类型和第一类型的第一动作。如果第一动作成功,那么数据处理系统可以继续选择第一类型的第二动作。如果第一动作未成功,或者应用未响应或指示它无法执行这些类型的动作,那么数据处理系统可以选择第二类型的第一动作以进行处理。
在210处,数据处理系统可以基于所选择的动作生成触发短语。数据处理系统可以使用自然语言生成器和所选择的动作来生成触发短语。数据处理系统可以基于机器学习或者预定的短语模板来生成触发短语。
在212处,数据处理系统可以执行应用。数据处理系统可以经由对话接口将在210处生成的触发短语输入到应用。由数据处理系统执行的应用可以解析或处理触发短语。应用可以由虚拟机执行或者在沙盒计算环境中执行。应用可以基于触发短语确定动作。应用可以从模板或动作储存库来标识用于执行动作的参数。应用可以确定触发短语不包括用于执行动作的参数的值。响应于确定请求用于执行动作的参数的值,由数据处理系统执行的应用可以针对参数的值生成第一查询。
在214处,数据处理系统可以接收由应用生成的查询。数据处理系统可以确定提供对查询的响应。在214处,数据处理系统可以选择自然语言生成技术来生成对来自应用的查询的响应。数据处理系统可以通过以下方式来生成响应:选择数据处理系统的自然语言处理器、基于历史日志训练的模型;从历史日志中选择短语;或者使用强力技术(例如,具有占位符字段的模板响应)。
在216处,数据处理系统可以使用在214处选择的技术来生成响应。数据处理系统可以生成响应,该响应包括所请求的参数的值。该值可以是模拟值。数据处理系统可以将该值作为输入提供给应用。响应可以包括:建立通信信道,执行另一动作,请求帮助或任何其他类型的响应。该响应可以响应于查询,或者在一些情况下对于该查询来说是没有响应的。例如,数据处理系统可以有意地生成和输入响应,该响应与来自应用的查询无关或对于来自应用的查询来说是没有响应的,以评估应用如何处理没有响应的响应。数据处理系统可以评估应用的错误处理能力。数据处理系统可以评估应用是否基于来自数据处理系统的没有响应的响应生成了相同的查询或替代的查询。
在218处,应用或数据处理系统可以确定是否要建立通信信道(例如,电话呼叫、音频呼叫、聊天通信或文本通信)。应用数据处理系统可以基于所生成的响应或来自应用的查询确定生成通信信道。如果应用确定建立通信信道,则数据处理系统可以在220处继续建立通信信道。通信信道可以在应用开发者的设备与模拟客户端计算设备的数据处理系统提供的虚拟计算设备之间。输入生成组件可以提供语音输入以通过通信信道传输到应用开发者的设备。
如果数据处理系统在218处确定不建立通信信道,则数据处理系统可以在222处继续确定应用的状态并且生成错误代码。数据处理系统可以评估应用的状态。例如,该状态可以指示应用是否是活动、不活动、待命、终止或者未响应。数据处理系统可以基于应用的状态来分配错误代码。数据处理系统可以基于与应用的状态相关联的一个或多个因素或者执行动作(包括例如应用是否成功执行动作)来分配错误代码。
在224处,数据处理系统可以确定是否终止执行应用。数据处理系统可以确定终止或结束与应用相关联的进程、线程或通信信道。数据处理系统可以基于动作的类型、执行动作的状态、计算资源消耗度量、传感器活动状态或者是否提供了模拟值以进行执行来确定终止应用的方面。如果数据处理系统确定终止与应用相关联的进程或通信信道,则数据处理系统可以行进到动作226以传输终止命令。然而,如果数据处理系统确定不终止进程或通信信道(例如,过程成功完成或崩溃,或者在218处没有建立通信信道),那么数据处理系统可以行进到228以提供通知。
在228处,数据处理系统可以将错误代码的通知提供给应用开发者设备。数据处理系统可以尝试应用补丁来解决与应用相关联的问题。数据处理系统可以从应用交付服务器中移除应用。数据处理系统可以基于错误代码防止应用被交付给客户端计算设备。例如,响应于指示了应用未能停用传感器,使用过多的计算资源或者未能请求用于执行动作的参数的值的错误代码,数据处理系统可以确定防止或阻止应用被交付给客户端计算设备。数据处理系统可以确定延迟发布应用,直到应用开发者解决了应用中导致不满意的错误代码的问题。因此,数据处理系统可以在发布应用或将应用交付给客户端计算设备之前验证基于数字助理的应用中的动作,以防止在客户端计算设备上错误地或故障地执行应用。
图3是示例计算机系统300的框图。计算机系统或计算设备300可以包括或用于实施系统100或其组件,诸如,数据处理系统102。数据处理系统102可以包括智能个人助理或基于语音的数字助理。计算系统300包括用于通信信息的总线305或其他通信组件以及耦合至总线305以处理信息的处理器310或处理电路。计算系统300还可以包括耦合至总线以处理信息的一个或多个处理器310或者处理电路。计算系统300还包括耦合至总线305以存储信息和要由处理器310执行的指令的主存储器315,诸如,随机存取存储器(RAM)或其他动态存储设备。主存储器315可以是或包括数据储存库120。主存储器315还可以用于在由处理器310执行指令期间存储位置信息、临时变量或者其他中间信息。计算系统300可以进一步包括耦合至总线305的用于为处理器310存储静态信息和指令的只读存储器(ROM)320或其他静态存储设备。存储设备325(诸如,固态设备、磁盘或光盘)可以耦合至总线305以持久地存储信息和指令。存储设备325可以包括或者是数据储存库120的一部分。
计算系统300可以经由总线305耦合至显示器335(诸如,液晶显示器或有源矩阵显示器)以向用户显示信息。输入设备330(诸如,包括数字字母键和其他键的键盘)可以耦合至总线305以向处理器310通信信息和命令选择。输入设备330可以包括触摸屏显示器335。输入设备330还可以包括光标控制(诸如,鼠标、轨迹球或光标方向键)以向处理器310通信方向信息和命令选择并且用于控制显示器335上的光标移动。例如,显示器335可以是数据处理系统102、客户端计算设备140或图1的其他组件的一部分。
本文描述的过程、系统和方法可以响应于处理器310执行包含在主存储器315中的指令的布置由计算系统300来实施。可以从另一计算机可读介质(诸如,存储设备325)将这种指令读取到主存储器315中。执行包含在主存储器315中的指令的布置使计算系统300执行本文描述的说明性过程。多处理布置中的一个或多个处理器也可以用于执行包含在主存储器315中的指令。硬连线的电路系统可以代替软件指令以及本文描述的系统和方法来使用或者与所述软件指令以及本文描述的系统和方法组合使用。本文描述的系统和方法并不限于硬件电路系统和软件的任何特定组合。
尽管在图3中已经描述了示例计算系统,但是可以利用其他类型的数字电子电路系统或者利用计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等效物)或者它们中的一个或多个的组合来实施包括有本说明书中描述的操作的主题。
针对本文讨论的系统收集与用户有关的个人信息或者可以利用个人信息的情况,可以为用户提供如下机会:控制程序或者特征是否可以收集个人信息(例如,与用户的社交网络、社交动作或活动、用户的偏好或者用户的位置有关的信息)或者控制是否和/或如何从内容服务器或其他数据处理系统接收可能与用户更相关的内容。另外,在存储或者使用特定数据之前,可以按照一种或多种方式来匿名化处理该特定数据,使得在生成参数时去除个人可标识信息。例如,可以匿名化处理用户的身份,使得无法确定用户的个人可标识信息,或者可以将用户的从此处获得位置信息(诸如,城市、邮政编码或者州县等级)的地理位置一般化,使得无法确定用户的特定位置。因此,用户可以控制如何收集关于他或她的并且由内容服务器使用的信息。
可以利用数字电子电路系统或者利用计算机软件、固件或硬件(包括在本说明书中公开的结构及其结构等效物)或者它们中的一个或多个的组合来实施本说明书中描述的主题和操作。可以将本说明书中描述的主题实施为一个或多个计算机程序,即,计算机程序指令的一个或多个电路,所述计算机程序指令被编码在一个或多个计算机存储介质上以由数据处理装置执行或者控制该数据处理装置的操作。可替代地或者另外地,程序指令可以编码在人工生成的传播信号(例如,机器生成的电气、光学或者电磁信号,生成该信号是为了对信息进行编码,所述信息用于传输至合适的接收器装置以供数据处理装置执行)上。计算机存储介质可以是计算机可读存储设备、计算机可读存储衬底、随机或串行存取存储器阵列或设备或者它们中的一个或多个的组合,或者包括在其中。当计算机存储介质不是传播信号时,计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或者目的地。计算机存储介质也可以是一个或多个单独的组件或者介质(例如,多个CD、磁盘或者其他存储设备),或者包括在所述一个或多个单独的组件或者介质中。可以将本说明书中描述的操作实施为由数据处理装置对存储在一个或多个计算机可读存储设备上的或者从其他源接收到的数据执行的操作。
术语“数据处理系统”、“计算设备”、“组件”或“数据处理装置”涵盖了用于处理数据的各种装置、设备和机器,例如,包括可编程处理器、计算机、片上系统或者前述中的多种或者组合。该装置可以包括专用逻辑电路系统,例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为探讨中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机或者它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础架构,诸如,网络服务、分布式计算和网格计算基础架构。例如,直接动作API108或NLP组件106和其他数据处理系统102组件可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。
可以用任何形式的编程语言(包括编译语言或者解释语言、陈述性语言或者程序性语言)来编写计算机程序(也称为程序、软件、软件应用、应用、脚本或者代码),并且可以按照任何形式(包括作为独立式程序或者作为模块、组件、子例程、对象或者适合用于计算环境的其他单元)来部署计算机程序。计算机程序可以与文件系统中的文件相对应。可以将计算机程序存储在保持其他程序或者数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中,或者存储在专用于所探讨中的程序的单个文件中,或者存储在多个协作文件(例如,存储一个或多个模块、子程序或者部分代码的文件)中。可以将计算机程序部署为在一个计算机上执行或者在位于一个站点处或者分布在多个站点上并且通过通信网络互相连接的多个计算机上执行。
可以通过一个或多个可编程处理器来执行本说明书中描述的过程和逻辑流,该一个或多个可编程处理器执行一个或多个计算机程序(例如,数据处理系统102的组件)以通过操作输入数据和生成输出来执行动作。也可以通过专用逻辑电路系统(例如,FPGA(现场可编程门阵列)或者ASIC(专用集成电路))来执行过程和逻辑流,并且也可以将装置实施为该FPGA或者ASIC。适合于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括:例如,半导体存储器设备(例如,EPROM、EEPROM和闪存设备);磁盘(例如,内部硬盘或者可移动盘);磁光盘以及CD-ROM盘和DVD-ROM盘。处理器和存储器可以由专用逻辑电路系统补充或者可以并入该专用逻辑电路系统中。
可以将本文描述的主题实施在包括后端组件的计算系统(例如,作为数据服务器)、或者包括中间件组件的计算系统(例如,应用服务器)、或者包括前端组件的计算系统(例如,具有图形用户界面或者网络浏览器的客户端计算机,用户可以通过该图形用户界面或者该网络浏览器来与本说明书中描述的主题的实施方式交互)、或者包括一个或多个这种后端组件、中间件组件或前端组件的组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的组件相互连接。通信网络的示例包括:局域网(“LAN”)和广域网(“WAN”)、互联网络(例如,互联网)以及点对点网络(例如,自组织点对点网络)。
诸如系统100或系统300等计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络(例如,网络101)进行交互。通过在相应的计算机上运行的并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。在一些实施方式中,服务器将数据(例如,表示数字组件的数据分组)传输至客户端设备(例如,为了向与客户端设备交互的用户显示数据并且接收来自该用户的用户输入)。可以在服务器处从客户端设备接收(例如,数据处理系统102从计算设备140或应用开发者设备160接收)在客户端设备处(例如,由于用户交互)生成的数据。
尽管在附图中以特定顺序描绘了操作,但是这种操作不需要以所示的特定顺序或相继顺序执行,并且不需要执行所有图示的操作。本文描述的动作能够以不同的顺序执行。
各种系统组件的分离不需要在所有实施方式中都分离,并且所描述的程序组件可以包括在单个硬件或软件产品中。例如,NLP组件106或直接动作API 108可以是单个组件、应用或程序或者是具有一个或多个处理电路的逻辑设备或者是数据处理系统102的一个或多个服务器的一部分。
现在已经描述了一些说明性实施方式,显而易见的是,前述内容是说明性的而非限制性的,通过示例进行呈现。具体地,尽管本文呈现的许多示例涉及方法行为或系统元件的特定组合,但是这些行为和这些元件能够以其他方式组合以实现相同的目标。结合一种实施方式讨论的行为、元件和特征不意图被排除在其他实施方式或实施方式中的类似角色之外。
本文使用的措辞和术语是出于描述的目的,并且不应该被认为是限制性的。本文中“包括(including)”、“包括(comprising)”、“具有”、“包含”、“涉及”、“特征在于(characterized by)”、“特征在于(characterized in that)”及其变型的使用意在涵盖其后列出的项目、其等同物和附加项以及排外地包含其后列出的项目的替代实施方式。在一种实施方式中,本文描述的系统和方法包括一个、多个中的每个组合或者所有描述的元件、行为或组件。
对本文中以单数形式涉及的系统和方法的实施方式或元件或行为的任何引用还可以包含包括多个这些元件的实施方式,并且对本文中的任何实施方式或元件或行为的复数形式的任何引用还可以包含仅包括单个元件的实施方式。单数形式或复数形式的引用都不意图将当前公开的系统或方法、其组件、行为或元件限制为单个或多个配置。对基于任何信息、行为或元件的任何行为或元件的引用可以包括所述行为或元件至少部分地基于任何信息、行为或元件的实施方式。
本文公开的任何实施方式可以与任何其他实施方式或实施例组合,并且对“实施方式”、“一些实施方式”、“一种实施方式”等的引用不一定相互排斥,并意图指示结合实施方式描述的特定特征、结构或特性可以被包括在至少一种实施方式或实施例中。本文使用的这种术语不一定都涉及相同的实施方式。任何实施方式能够以与本文公开的方面和实施方式一致的任何方式包含或者排外地与任何其他实施方式组合。
对“或者”的引用可以被解释为包含性的,使得使用“或者”描述的任何术语可以指示单个术语、多个术语和所有描述的术语中的任何一个。对术语的连接列表中的至少一个的引用可以被解释为包含性的“或者”(OR)以指示单个术语、多个术语和所有描述的术语中的任何一个。例如,对“‘A’和‘B’中的至少一个”的引用可以包括仅‘A’、仅‘B’以及‘A’和‘B’。结合“包括”或其他开放术语使用的这种引用可以包括附加项目。
在附图、详细说明或任何权利要求中的技术特征后面附有附图标记的情况下,为了增加附图、详细说明和权利要求的可理解性,已经包括了附图标记。因此,附图标记或者其缺失都不会对任何权利要求元素的范围产生任何限制性作用。
本文描述的系统和方法可以在不脱离其特性的情况下体现为其他特定形式。前述实施方式是说明性的,而不是限制所描述的系统和方法。本文描述的系统和方法的范围因此由随附权利要求而不是前述说明指示,并且落入权利要求的等同物的含义和范围内的改变被包含在其中。
Claims (20)
1.一种用于验证基于数字助理的应用中的动作的系统,所述系统包括:
数据处理系统,所述数据处理系统包括一个或多个处理器,所述数据处理系统用于:
标识由应用开发者的应用开发者设备提供的应用,所述应用具有对话接口;
针对所述应用,从所述数据处理系统的动作储存库中选择动作;
基于所述动作并且经由所述数据处理系统的自然语言处理器,生成触发短语以输入到所述应用中;
执行所述应用以经由所述对话接口处理所述触发短语,并且响应于所述触发短语标识所述应用的动作;
标识由所述应用使用的用于执行所述应用的所述动作的参数;
基于所述参数并且经由执行所述应用的所述对话接口,生成响应于所述触发短语的第一查询;
经由所述自然语言处理器,生成对所述第一查询的第一响应以输入到所述应用中;
基于执行所述应用以处理所述第一响应,确定所述应用的状态;
评估所述应用的所述状态以确定错误代码;以及
基于所述错误代码将通知提供给所述应用开发者设备。
2.根据权利要求1所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
确定由所述应用使用的所述参数包括电子账户标识符;
生成所述第一查询,所述第一查询包括对所述电子账户标识符的请求;以及
经由所述自然语言处理器,生成所述第一响应,所述第一响应包括所述电子账户标识符的模拟值。
3.根据权利要求1或2所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
防止所述应用响应于与所述第一响应一起提供的值而执行所述应用的所述动作。
4.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
确定所述应用的所述状态是终止状态;
评估所述应用的所述状态以确定由所述应用利用的资源是活动的;以及
生成所述错误代码,所述错误代码指示所述应用未能响应于所述终止状态而停用所述资源。
5.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
确定所述应用的所述状态是终止状态;
检测由所述应用利用的传感器是活动的;以及
生成所述错误代码,所述错误代码指示所述应用未能响应于所述终止状态而停用所述传感器。
6.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
基于利用历史日志训练的模型来生成所述第一响应,所述历史日志包括由计算设备的麦克风检测到的响应。
7.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
基于与利用历史日志训练的模型相关联的度量,选择所述模型或预定响应储存库中的一个,以生成所述第一查询;以及
基于所述选择,经由所述模型或所述预定响应储存库中的所述一个生成所述第一响应。
8.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
响应于所述第一响应,在虚拟客户端设备与所述应用之间建立电信信道;以及
经由所述虚拟客户端设备并且通过所述电信信道,将第二响应提供给所述应用。
9.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
响应于所述第一响应,在与所述应用开发者相关联的设备与虚拟客户端设备之间建立电信信道;以及
经由所述虚拟客户端设备并且通过所述电信信道,将第二响应提供给与所述应用开发者相关联的所述设备。
10.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
响应于所述第一响应,在与所述应用开发者相关联的设备与虚拟客户端设备之间建立电信信道;
检测所述电信信道的终止;
响应于所述电信信道的终止,标识所述虚拟客户端设备的麦克风的状态;以及
基于所述虚拟客户端设备的所述麦克风的所述状态是活动的来设置所述错误代码。
11.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
基于对所述第一响应、所述第一查询和所述触发短语的语义分析来生成第二响应;以及
提供所述第二响应以通过由所述数据处理系统执行的所述应用进行处理。
12.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
标识虚拟客户端账户;以及
将与所述虚拟客户端账户相关联的信息提供给所述应用以响应于所述第一响应处理所述应用的所述动作。
13.根据前述权利要求中任一项所述的系统,所述系统包括所述数据处理系统,所述数据处理系统用于:
标识虚拟客户端账户;
将与所述虚拟客户端账户相关联的信息提供给所述应用以响应于所述第一响应处理所述动作;以及
响应于检测到所述虚拟客户端账户,阻止由所述应用执行所述应用的所述动作。
14.一种验证基于数字助理的应用中的动作的方法,所述方法包括:
通过包括至少一个处理器的数据处理系统,标识由应用开发者的应用开发者设备提供的应用,所述应用具有对话接口;
通过所述数据处理系统,基于所述应用,从所述数据处理系统的动作储存库中选择动作;
经由所述数据处理系统的自然语言处理器并且基于所述动作,生成触发短语以输入到所述应用中;
通过所述数据处理系统,执行所述应用以经由所述对话接口处理所述触发短语;
通过所述数据处理系统,响应于所述触发短语标识所述应用的动作;
通过所述数据处理系统,标识由所述应用使用的用于执行所述应用的所述动作的参数;
通过所述数据处理系统,基于所述参数并且经由执行所述应用的所述对话接口,生成响应于所述触发短语的第一查询;
通过所述数据处理系统的所述自然语言处理器,生成对所述第一查询的第一响应以输入到所述应用中;
通过所述数据处理系统,基于执行所述应用以处理所述第一响应,确定所述应用的状态;
通过所述数据处理系统,评估所述应用的所述状态以确定错误代码;以及
通过所述数据处理系统,基于所述错误代码将通知提供给所述应用开发者设备。
15.根据权利要求14所述的方法,所述方法包括:
确定由所述应用使用的所述参数包括电子账户标识符;
生成所述第一查询,所述第一查询包括对所述电子账户标识符的请求;
经由所述自然语言处理器,生成所述第一响应,所述第一响应包括所述电子账户标识符的模拟值;以及
16.根据权利要求14或15所述的方法,所述方法包括:
防止所述应用响应于与所述第一响应一起提供的值而执行所述应用的所述动作。
17.根据权利要求14至16中任一项所述的方法,所述方法包括:
确定所述应用的所述状态是终止状态;
评估所述应用的所述状态以确定由所述应用利用的资源是活动的;以及
生成所述错误代码,所述错误代码指示所述应用未能响应于所述终止状态而停用所述资源。
18.根据权利要求14至17中任一项所述的方法,所述方法包括:
确定所述应用的所述状态是终止状态;
检测由所述应用利用的传感器是活动的;以及
生成所述错误代码,所述错误代码指示所述应用未能响应于所述终止状态而停用所述传感器。
19.根据权利要求14至18中任一项所述的方法,所述方法包括:
基于利用历史日志训练的模型来生成所述第一响应,所述历史日志包括由计算设备的麦克风检测到的响应。
20.根据权利要求14至19中任一项所述的方法,所述方法包括:
响应于所述第一响应,在虚拟客户端设备与所述应用之间建立电信信道;以及
经由所述虚拟客户端设备并且通过所述电信信道,将第二响应提供给所述应用。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2019/035616 WO2020246975A1 (en) | 2019-06-05 | 2019-06-05 | Action validation for digital assistant-based applications |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112334871A true CN112334871A (zh) | 2021-02-05 |
Family
ID=67297246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980002145.6A Pending CN112334871A (zh) | 2019-06-05 | 2019-06-05 | 用于基于数字助理的应用的动作验证 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11461221B2 (zh) |
EP (2) | EP3776175B1 (zh) |
CN (1) | CN112334871A (zh) |
WO (1) | WO2020246975A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200388280A1 (en) | 2019-06-05 | 2020-12-10 | Google Llc | Action validation for digital assistant-based applications |
US11256870B2 (en) * | 2019-09-25 | 2022-02-22 | Rovi Guides, Inc. | Systems and methods for inserting dialogue into a query response |
SE2050465A1 (en) * | 2020-04-23 | 2021-10-24 | Checkin Com Group Ab | Method and system for generating a data collection process in a user device |
US20220058042A1 (en) * | 2020-08-24 | 2022-02-24 | Juniper Networks, Inc. | Intent-based telemetry collection service |
US11989254B2 (en) * | 2020-09-10 | 2024-05-21 | Taboola.Com Ltd. | Semantic meaning association to components of digital content |
US20220245489A1 (en) * | 2021-01-29 | 2022-08-04 | Salesforce.Com, Inc. | Automatic intent generation within a virtual agent platform |
US11579841B1 (en) * | 2021-12-10 | 2023-02-14 | Amazon Technologies, Inc. | Task resumption in a natural understanding system |
US11689486B1 (en) | 2022-03-02 | 2023-06-27 | Microsoft Technology Licensing, Llc | Topic overlap detection in messaging systems |
US11838682B2 (en) * | 2022-03-15 | 2023-12-05 | My Job Matcher, Inc. | Apparatus and method for generating a video record using audio |
US11558580B1 (en) * | 2022-03-15 | 2023-01-17 | My Job Matcher, Inc. | Apparatus and method for generating a video record using audio |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168591A1 (en) * | 2005-12-08 | 2007-07-19 | Inter-Tel, Inc. | System and method for validating codec software |
US20110054898A1 (en) * | 2007-03-07 | 2011-03-03 | Phillips Michael S | Multiple web-based content search user interface in mobile search application |
US20140037075A1 (en) * | 2012-08-06 | 2014-02-06 | Angel.Com | Preloading Contextual Information for Applications Using a Conversation Assistant |
CN103827963A (zh) * | 2011-09-27 | 2014-05-28 | 感官公司 | 使用说话者检验的背景语音辨识助理 |
US20150381742A1 (en) * | 2014-06-30 | 2015-12-31 | Verizon Patent And Licensing Inc. | Automated web services validation |
US20160227337A1 (en) * | 2015-01-30 | 2016-08-04 | Dts, Inc. | System and method for capturing, encoding, distributing, and decoding immersive audio |
US20170201613A1 (en) * | 2014-02-28 | 2017-07-13 | Robert M. Engelke | Semiautomated Relay Method and Apparatus |
CN107111516A (zh) * | 2015-01-09 | 2017-08-29 | 微软技术许可有限责任公司 | 数字个人助理内的无头任务完成 |
US20170256256A1 (en) * | 2016-03-01 | 2017-09-07 | Google Inc. | Developer voice actions system |
US20180247654A1 (en) * | 2016-12-30 | 2018-08-30 | Google Llc | Device identifier dependent operation processing of packet based data communication |
US10129720B1 (en) * | 2011-12-30 | 2018-11-13 | Genesys Telecommunications Laboratories, Inc. | Conversation assistant |
US20180336893A1 (en) * | 2017-05-18 | 2018-11-22 | Aiqudo, Inc. | Talk back from actions in applications |
US20190115018A1 (en) * | 2017-10-18 | 2019-04-18 | Motorola Mobility Llc | Detecting audio trigger phrases for a voice recognition session |
CN109698856A (zh) * | 2017-10-21 | 2019-04-30 | 苹果公司 | 安全的设备到设备通信信道 |
US20190141031A1 (en) * | 2017-11-09 | 2019-05-09 | International Business Machines Corporation | Authenticating a user to a cloud service automatically through a virtual assistant |
US20190147346A1 (en) * | 2017-11-13 | 2019-05-16 | D.R. Systems, Inc. | Database systems and interactive user interfaces for dynamic conversational interactions |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260617B2 (en) * | 2005-04-18 | 2012-09-04 | Nuance Communications, Inc. | Automating input when testing voice-enabled applications |
US9886953B2 (en) * | 2015-03-08 | 2018-02-06 | Apple Inc. | Virtual assistant activation |
US10200824B2 (en) * | 2015-05-27 | 2019-02-05 | Apple Inc. | Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device |
US10049670B2 (en) * | 2016-06-06 | 2018-08-14 | Google Llc | Providing voice action discoverability example for trigger term |
US20180052664A1 (en) * | 2016-08-16 | 2018-02-22 | Rulai, Inc. | Method and system for developing, training, and deploying effective intelligent virtual agent |
US10311856B2 (en) * | 2016-10-03 | 2019-06-04 | Google Llc | Synthesized voice selection for computational agents |
EP3526789B1 (en) * | 2016-10-17 | 2022-12-28 | Harman International Industries, Incorporated | Voice capabilities for portable audio device |
US10891152B2 (en) * | 2016-11-23 | 2021-01-12 | Amazon Technologies, Inc. | Back-end task fulfillment for dialog-driven applications |
US10224031B2 (en) * | 2016-12-30 | 2019-03-05 | Google Llc | Generating and transmitting invocation request to appropriate third-party agent |
US10297255B2 (en) * | 2017-01-23 | 2019-05-21 | Bank Of America Corporation | Data processing system with machine learning engine to provide automated collaboration assistance functions |
US10467509B2 (en) * | 2017-02-14 | 2019-11-05 | Microsoft Technology Licensing, Llc | Computationally-efficient human-identifying smart assistant computer |
US11947978B2 (en) * | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
US11301477B2 (en) * | 2017-05-12 | 2022-04-12 | Apple Inc. | Feedback analysis of a digital assistant |
US10652170B2 (en) * | 2017-06-09 | 2020-05-12 | Google Llc | Modification of audio-based computer program output |
US11269938B2 (en) * | 2017-06-21 | 2022-03-08 | Salesforce.Com, Inc. | Database systems and methods for conversational database interaction |
US10853490B2 (en) * | 2017-10-26 | 2020-12-01 | Futurewei Technologies, Inc. | Method and apparatus for managing hardware resource access in an electronic device |
US10818288B2 (en) * | 2018-03-26 | 2020-10-27 | Apple Inc. | Natural assistant interaction |
US10884901B2 (en) * | 2018-08-24 | 2021-01-05 | Microsoft Technology Licensing, Llc | System and method for configurable and proactive application diagnostics and recovery |
US11017771B2 (en) * | 2019-01-18 | 2021-05-25 | Adobe Inc. | Voice command matching during testing of voice-assisted application prototypes for languages with non-phonetic alphabets |
US10964322B2 (en) * | 2019-01-23 | 2021-03-30 | Adobe Inc. | Voice interaction tool for voice-assisted application prototypes |
WO2020160683A1 (en) * | 2019-02-07 | 2020-08-13 | Thomas Stachura | Privacy device for smart speakers |
US20200304636A1 (en) * | 2019-03-19 | 2020-09-24 | International Business Machines Corporation | Proxy Virtual Agent for Issue Resolution |
US11080490B2 (en) | 2019-03-28 | 2021-08-03 | Servicenow, Inc. | Pre-training of virtual chat interfaces |
-
2019
- 2019-06-05 US US16/482,187 patent/US11461221B2/en active Active
- 2019-06-05 CN CN201980002145.6A patent/CN112334871A/zh active Pending
- 2019-06-05 WO PCT/US2019/035616 patent/WO2020246975A1/en unknown
- 2019-06-05 EP EP19740095.5A patent/EP3776175B1/en active Active
- 2019-06-05 EP EP23197070.8A patent/EP4270172A3/en active Pending
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070168591A1 (en) * | 2005-12-08 | 2007-07-19 | Inter-Tel, Inc. | System and method for validating codec software |
US20110054898A1 (en) * | 2007-03-07 | 2011-03-03 | Phillips Michael S | Multiple web-based content search user interface in mobile search application |
CN103827963A (zh) * | 2011-09-27 | 2014-05-28 | 感官公司 | 使用说话者检验的背景语音辨识助理 |
US10129720B1 (en) * | 2011-12-30 | 2018-11-13 | Genesys Telecommunications Laboratories, Inc. | Conversation assistant |
US20140037075A1 (en) * | 2012-08-06 | 2014-02-06 | Angel.Com | Preloading Contextual Information for Applications Using a Conversation Assistant |
US20170201613A1 (en) * | 2014-02-28 | 2017-07-13 | Robert M. Engelke | Semiautomated Relay Method and Apparatus |
US20150381742A1 (en) * | 2014-06-30 | 2015-12-31 | Verizon Patent And Licensing Inc. | Automated web services validation |
CN107111516A (zh) * | 2015-01-09 | 2017-08-29 | 微软技术许可有限责任公司 | 数字个人助理内的无头任务完成 |
US20160227337A1 (en) * | 2015-01-30 | 2016-08-04 | Dts, Inc. | System and method for capturing, encoding, distributing, and decoding immersive audio |
US20170256256A1 (en) * | 2016-03-01 | 2017-09-07 | Google Inc. | Developer voice actions system |
US20180247654A1 (en) * | 2016-12-30 | 2018-08-30 | Google Llc | Device identifier dependent operation processing of packet based data communication |
US20180336893A1 (en) * | 2017-05-18 | 2018-11-22 | Aiqudo, Inc. | Talk back from actions in applications |
US20190115018A1 (en) * | 2017-10-18 | 2019-04-18 | Motorola Mobility Llc | Detecting audio trigger phrases for a voice recognition session |
CN109698856A (zh) * | 2017-10-21 | 2019-04-30 | 苹果公司 | 安全的设备到设备通信信道 |
US20190141031A1 (en) * | 2017-11-09 | 2019-05-09 | International Business Machines Corporation | Authenticating a user to a cloud service automatically through a virtual assistant |
US20190147346A1 (en) * | 2017-11-13 | 2019-05-16 | D.R. Systems, Inc. | Database systems and interactive user interfaces for dynamic conversational interactions |
Also Published As
Publication number | Publication date |
---|---|
US20210294724A1 (en) | 2021-09-23 |
EP3776175A1 (en) | 2021-02-17 |
EP4270172A2 (en) | 2023-11-01 |
US11461221B2 (en) | 2022-10-04 |
EP4270172A3 (en) | 2024-01-10 |
EP3776175B1 (en) | 2023-10-18 |
WO2020246975A1 (en) | 2020-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3776175B1 (en) | Action validation for digital assistant-based applications | |
JP2020064308A (ja) | 選択的センサポーリング | |
US11893993B2 (en) | Interfacing with applications via dynamically updating natural language processing | |
US11514896B2 (en) | Interfacing with applications via dynamically updating natural language processing | |
US11935536B2 (en) | Action validation for digital assistant-based applications | |
CN110892385B (zh) | 用于基于数字助理的应用的沉浸式基于web的模拟器 | |
US11556454B2 (en) | Immersive web-based simulator for digital assistant-based applications | |
US20220308987A1 (en) | Debugging applications for delivery via an application delivery server | |
EP3729259B1 (en) | Assessing applications for delivery via an application delivery server |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |