CN110710158B - 验证与数字助理应用交接的代理的操作状态 - Google Patents

验证与数字助理应用交接的代理的操作状态 Download PDF

Info

Publication number
CN110710158B
CN110710158B CN201880028333.1A CN201880028333A CN110710158B CN 110710158 B CN110710158 B CN 110710158B CN 201880028333 A CN201880028333 A CN 201880028333A CN 110710158 B CN110710158 B CN 110710158B
Authority
CN
China
Prior art keywords
response
agent
proxy service
request
component
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.)
Active
Application number
CN201880028333.1A
Other languages
English (en)
Other versions
CN110710158A (zh
Inventor
卡齐·侯赛因
尼基·拉奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to CN202210853089.0A priority Critical patent/CN115346525A/zh
Publication of CN110710158A publication Critical patent/CN110710158A/zh
Application granted granted Critical
Publication of CN110710158B publication Critical patent/CN110710158B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • H04L43/55Testing of service level quality, e.g. simulating service usage
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/223Execution procedure of a spoken command

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Cardiology (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开总体涉及用于确定与数字助理应用交接的代理的操作状态的数据处理***。数据处理***可以访问日志数据库。日志数据库可以维护代理服务的响应度量。每个响应度量可以对应于代理服务对数字助理应用响应于输入音频信号生成的请求的响应。数据处理***可以向代理服务传输ping请求,并且可以等待来自代理服务的第二响应。数据处理***可以基于响应度量和自ping请求传输以来流逝的时间来确定代理服务的操作状态。数据处理***可以使数字助理应用基于操作状态执行动作。

Description

验证与数字助理应用交接的代理的操作状态
背景技术
计算设备之间网络业务数据的基于分组或其他方式的过多网络传输会妨碍计算设备正确处理网络业务数据、完成与网络业务数据相关的操作或及时响应网络业务数据。当响应计算设备达到或超过其处理容量时,网络业务数据的过多网络传输也可能使数据路由复杂化或降低响应品质,这可能导致低效的带宽利用。过多网络传输的一部分可能包括对是无效请求的请求的传输。
发明内容
根据本公开的一个方面,确定与数字助理应用交接的代理的操作状态的***可以包括具有一个或多个处理器的数据处理***。由数据处理***执行的响应记录器组件可以访问日志数据库。日志数据库可以维护代理服务的多个响应度量。每个响应度量可以对应于代理服务作出的、针对与数字助理应用交接的代理的多个功能之一的第一请求的响应,该第一请求由数字助理应用响应于输入音频信号而生成。由数据处理***执行的探测监视器组件可以向代理服务传输针对代理的多个功能之一的第二请求,并且可以等待来自代理服务响应于第二请求的第二响应。由数据处理***执行的状态评估器组件可以基于在代理的日志数据库中维护的所述多个响应度量以及基于自传输第二请求以来流逝的时间来确定代理的代理服务的操作状态。由数据处理***执行的代理管理器组件可以使得数字助理应用执行基于代理的操作状态而与代理交接的动作。
根据本公开的一个方面,确定与数字助理应用交接的代理的操作状态的方法可以包括访问维护代理服务的多个响应度量的日志数据库。日志数据库可以维护代理服务的多个响应度量。每个响应度量可以对应于代理服务作出的、针对与数字助理应用交接的代理的多个功能之一的第一请求的响应,该第一请求由数字助理应用响应于输入音频信号而生成。该方法可以包括向代理服务传输针对代理的多个功能之一的第二请求,以等待来自代理服务的响应于第二请求的第二响应。该方法可以包括基于在代理的日志数据库中维护的所述多个响应度量以及基于自传输第二请求以来流逝的时间来确定代理的代理服务的操作状态。该方法可以包括使数字助理应用执行基于代理服务的操作状态而与代理交接的动作。
下面将详细讨论这些以及其他方面和实施方式。前述信息和以下详细描述包括各种方面和实施方式的说明性示例,并且提供了用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,并且被并入并构成本说明书的一部分。
附图说明
附图不是按比例绘制的。不同附图中相似的附图标记和名称表示相似的元件。为了清楚起见,并非每个组件都可以在每个图中进行标记。在附图中:
图1示出了根据本公开的示例的确定与数字助理应用交接的代理的操作状态的示例***的框图。
图2示出了根据本公开的示例的用于确定与图1所示***中的数字助理应用交接的代理的操作状态的示例数据流的顺序图。
图3示出了根据本公开的示例的具有请求消息的客户端计算设备和请求消息。
图4示出了根据本公开的示例的在联网的计算机环境中生成语音激活线程的方法的流程图。
图5示出了根据本公开的示例的使用图1所示的示例***来确定与数字助理应用交接的代理的操作状态的方法的流程图。
图6是示例计算机***的框图。
具体实施方式
以下是确定与数字助理应用交接的代理的操作状态的方法、装置和***相关的各种概念和实施方式的更详细描述。上面介绍的和下面更详细讨论的各种概念可以以多种方式中的任何一种来实现。
数字助理应用可以根据应用编程接口(API)协议经由调用函数与代理进行交接。函数调用可以使代理向代理服务发送请求,以访问各种资源来执行各种功能。使用这些函数,可以扩展数字助理应用的功能。响应于完成预定义的条件可以调用或执行某些函数(有时被称为HTTP回调或web hook)。
然而,通过调用这些函数,代理服务的执行会对与代理交接的数字助理应用的操作产生负面影响。首先,代理的函数调用有时可能无法正确执行。例如,函数调用可能导致代理服务崩溃并返回服务器端错误消息(例如,带有5xx状态代码的HTTP响应)。此外,函数调用本身也可能在API协议下无效或不正确,并可能导致代理服务以客户端错误消息(例如,具有4xx状态代码的HTTP响应)进行响应。任何错误都可能导致数字助理应用与代理之间的交接中断。其次,即使需要确定错误的原因,数字助理应用可能无法访问代理服务和代理的内部操作。例如,数字助理应用可以访问代理的元数据(例如,包和列表),但是不能访问代理或代理服务的全部能力。对代理服务进行索引(有时也称为爬网)以确定代理的全部能力在数字助理应用的上下文中可能很难执行。
为了减轻代理服务的执行对数字助理应用的操作的不利影响,本***和方法可以通过分析响应日志和查询代理服务来监视代理服务的执行并对代理能力进行索引。为了监视代理服务的执行,代理监视器可以通过使用预定义的函数调用之一发送请求来ping代理服务。该请求可以与由与代理交接的数字助理应用响应于针对代理的功能之一的输入音频信号而生成的请求具有相同的格式。代理监视器可以等待来自代理服务的响应,直到预定时间。一旦接收到响应,代理监视器可以解析该响应,以确定反应于该请求的响应的响应度量。通过ping,代理监视器可以确定代理和代理服务向与数字助理应用交接的代理提供资源的功能。
连同代理服务的ping,代理监视器还可以访问代理服务的日志数据库。日志数据库可以维护代理服务生成的对在与代理交接的客户端上运行的数字助理应用的请求的响应的响应度量。该请求可以是响应于针对代理的功能之一的输入音频信号而生成的。每个响应的响应度量指示响应与相应请求之间流逝的时间以及代理服务是否成功执行请求的指示等。
使用来自ping的响应和日志数据库中维护的响应度量,代理监视器可以确定代理服务的操作状态指示代理服务是响应还是不响应。基于操作状态,代理监视器可以设置或配置与代理服务所关联的代理交接的数字助理应用。当操作状态指示代理服务当前不响应时,数字助理应用可以被设置为响应于接收到针对代理功能之一的输入音频信号,呈现代理不响应的警告。通过确定代理的能力,数字助理应用还可以选择替选代理,该替选代理也可以执行输入音频信号中指示的任务。另一方面,当操作状态指示代理服务当前响应时,数字助理应用可以继续调用代理来访问由代理服务提供的资源以执行输入音频信号中指示的任务。
参考图1,描绘了确定与数字助理应用交接的代理的操作状态的示例***100。***100可以包括至少一个数据处理***102、一个或多个客户端设备104以及一个或多个代理服务106。一个或多个客户端设备104可以通信地耦合到一个或多个代理服务106,反之亦然。至少一个数据处理***102、一个或多个客户端设备104以及一个或多个代理服务106可以经由网络116彼此通信耦合。
数据处理***102可以包括数字助理应用108的实例。数字助理应用108可以包括自然语言处理器(NLP)组件118来解析基于音频的输入。数字助理应用108可以包括音频信号发生器组件120以生成基于音频的信号。数字助理应用108可以包括直接动作处理程序122。数字助理应用108可以包括响应选择器组件124以选择对基于音频的输入信号的响应。NLP组件118、音频信号发生器组件120、数据储存库128、方向动作处理程序122和响应选择器组件124与数字助理应用108分离。数据处理***102可以包括数据储存库128。数据储存库128可以存储正则表达式130、参数132、策略134、响应数据136和模板138。数据处理***102还可以包括代理监视器110和代理112的实例等。代理监视器110可以包括响应记录器组件140、探测监视器组件142、状态评估器组件144、代理管理器组件146和数据储存库148。数据储存库148可以存储和维护响应度量150。代理监视器110可以是单独的应用。代理监视器110可以是数字助理应用108的一部分。数据处理***102可以包括一个或多个代理112的实例。
数据处理***102的功能例如数字助理应用108可以被包括在一个或多个客户端设备104中,或者可以由一个或多个客户端设备104访问。数据处理***102的功能可以对应于在客户端设备104上执行的数字助理应用108的功能或者与数字助理应用108交接。客户端设备104可以各自包括并执行数字助理应用108的一个或多个组件的单独实例。客户端设备104可以经由网络116访问远程数据处理***102上的数字助理应用108的组件的功能。例如,客户端设备104可以包括NLP组件118的功能,并且经由网络116使数字助理应用108的其余组件访问数据处理***102。
客户端设备104可以各自包括至少一个逻辑设备,例如具有处理器的计算设备,以经由网络116与数据处理***102相互通信。客户端设备104可以包括关于数据处理***102描述的组件中任何组件的实例。客户端设备104可以包括数字助理应用108的实例。客户端设备104可以包括桌面型计算机、膝上型计算机、平板计算机、个人数字助理、智能电话、移动设备、便携式计算机、精简客户端计算机、虚拟服务器、基于扬声器的数字助理或其他计算设备。
***100的组件可以通过网络116通信。网络116可以包括例如点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET网络(同步光网络)、SDH(同步数字体系)网络、NFC(近场通信)网络、局域网(LAN)、无线网络或有线网络及其组合。网络116可以包括无线链路,例如红外信道或卫星频带。网络116的拓扑可以包括总线、星形或环形网络拓扑。网络116可以包括移动电话网络,移动电话网络使用用于在移动设备之间通信的任何协议,包括高级移动电话协议(AMPS)、时分多址(TDMA)、码分多址(CDMA)、全球移动通信***(GSM)、通用分组无线业务(GPRS)或通用移动电信***(UMTS)。不同类型的数据可以经由不同的协议传输,或者相同类型的数据可以经由不同的协议传输。
客户端设备104可以包括、执行、交接或以其他方式与数字助理应用108的至少一个实例、代理112的至少一个实例、至少一个传感器158、至少一个换能器154和至少一个***设备156中的一个或多个通信。传感器158可以包括例如相机、环境光传感器、接近传感器、温度传感器、加速度计、陀螺仪、运动检测器、GPS传感器、位置传感器、麦克风、视频、图像检测或触摸传感器。换能器154可以包括扬声器或麦克风或者是扬声器或麦克风的一部分。客户端设备104可以包括音频驱动器。音频驱动器可以向硬件换能器154提供软件接口。音频驱动器可以执行由数据处理***102提供的音频文件或其他指令,以控制换能器154产生相应的音波或声波。***设备156可以包括用户输入/输出设备,例如键盘、显示器和耳机等。显示器可以包括一个或多个硬件或软件组件,其被配置为提供视觉指示或光输出,例如发光二极管、有机发光二极管、液晶显示器、激光器或显示器。
客户端设备104上的数字助理应用108的实例可以包括一个或多个处理器、逻辑阵列或存储器或者由一个或多个处理器、逻辑阵列或存储器执行。客户端设备104上的数字助理应用108的实例可以检测关键字并基于关键字执行动作。客户端设备104上的数字助理应用108可以是在数据处理***102处执行的数字助理应用108的实例,或者可以执行数字助理应用108的功能中的任何功能。客户端设备104上的数字助理应用108的实例可以过滤掉一个或多个词项,或者在将词项作为数据传输到数据处理***102(例如,数据处理***102上的数字助理应用108的实例)用于进一步处理之前修改词项。客户端设备104上的数字助理应用108的实例可以将换能器154检测到的模拟音频信号转换成数字音频信号,并且经由网络116将携带数字音频信号的一个或多个数据分组传输到数据处理***102。客户端设备104上的数字助理应用108的实例可以响应于检测到执行这种传输的指令来传输携带输入音频信号中的一些或全部的数据分组。该指令可以包括例如触发关键字或其他关键字或批准,以向数据处理***102传输包括输入音频信号的数据分组。
客户端设备104上的数字助理应用108的实例可以对输入音频信号执行预滤波或预处理,以去除某些音频频率。预滤波可以包括滤波器,例如低通滤波器、高通滤波器或带通滤波器。滤波器可以应用于频域。滤波器可以使用数字信号处理技术来应用。滤波器可以被配置为保持对应于人类语音或人类话音的频率,同时消除人类话音的典型频率之外的频率。例如,带通滤波器可以被配置为去除低于第一阈值(例如,70Hz、75Hz、80Hz、85Hz、90Hz、95Hz、100Hz或105Hz)和高于第二阈值(例如,200Hz、205Hz、210Hz、225Hz、235Hz、245Hz或255Hz)的频率。应用带通滤波器可以降低下游处理中的计算资源利用率。客户端设备104上的数字助理应用108的实例可以在将输入音频信号传输到数据处理***102之前应用带通滤波器,从而降低网络带宽利用率。然而,基于客户端设备104可用的计算资源和可用的网络带宽,向数据处理***102提供输入音频信号以允许数据处理***102执行滤波可能更有效。
客户端设备104上的数字助理应用108的实例可以应用附加的预处理或预滤波技术例如降噪技术,以降低可能干扰自然语言处理器的环境噪声水平。降噪技术可以提高自然语言处理器的精度和速度,从而改进数据处理***102的性能,并管理经由显示器提供的图形用户界面的渲染。
客户端设备104可以与终端用户相关联,其将语音查询作为音频输入录入到客户端设备104中(经由传感器158或换能器154),并且从数据处理***102或代理服务106接收音频(或其他)输出以呈现、显示或渲染给客户端设备104的终端用户。数字组件可以包括计算机生成的语音,该语音可以从数据处理***102或代理服务106提供给客户端设备104。客户端设备104可以经由换能器154(例如,扬声器)向终端用户渲染计算机生成的语音。计算机生成的语音可以包括来自真人的录音或计算机生成的语言。客户端设备104可以经由通信耦合到客户端设备104的显示设备提供视觉输出。
向客户端设备104录入语音查询的终端用户可以与多个客户端设备104相关联。例如,终端用户可以与可以是基于扬声器的数字助理设备的第一客户端设备104、可以是移动设备(例如智能电话)的第二客户端设备104以及可以是桌面型计算机的第三客户端设备104相关联。数据处理***102可以通过公共登录、位置、网络或其他链接数据来关联客户端设备104中每一个。例如,终端用户可以用相同的账户用户名和密码登录到客户端设备104中每一个。
客户端设备104可以包括或执行代理112的实例。客户端设备104可以包括或执行代理112的实例。代理112可以包括具有与数字助理应用108相似功能的一个或多个组件。代理112的实例可以在数据处理***102和代理服务106上执行。数字助理应用108可以与代理112交接,反之亦然,以执行预定义的功能。代理112可以在执行输入音频信号中指示的功能时访问代理服务106上的资源。客户端设备104可以接收由客户端设备104的传感器158(例如麦克风)检测的输入音频信号。基于对输入音频信号的解析,数字助理应用108可以确定在处理输入音频信号时与哪个代理112交接。输入音频信号可以包括例如自然语言中的查询、问题、命令、指令或其他语句。输入音频信号可以包括问题或请求所指向的第三方(例如,与代理服务106相关联的代理112的提供商之一)的标识符或名称。例如,语音查询可以在输入音频信号中包括基于订阅的音乐服务的名称(例如,与代理服务106相关联的代理112的提供商之一)。数字助理应用108可以确定语音查询包括音乐服务的名称,并且可以识别要与之交接的代理服务106和代理112。例如,输入音频信号可以包括“Play my musicplaylist on XYZ Music Service(在XYZ音乐服务上播放我的音乐播放列表)”。音乐服务可以通过网络116向客户端设备104或向代理服务106或数据处理***102提供与播放列表相关联的音频文件。代理服务106或数据处理***102可以通过网络116向客户端设备104提供与播放列表相关联的歌曲。一旦接收到音频文件,客户端设备104上的代理112或数字助理应用108可以回放音频文件。输入音频信号可以包括引用第三方功能的一个或多个预定义关键字(例如,“ride(搭乘)”、“pay(付费)”和“airplane(飞机)”)。例如,输入音频信号的语音查询可以包括“Get me a ride(载我一程)”。数字助理应用108可以确定语音查询引用了拼车服务的功能,并且可以将语音查询转发给处理对代理112的语音查询的代理服务106。代理112相对于代理服务106和数字助理应用108的功能将在下面详细描述。
数据处理***102和代理服务106各自可以包括具有至少一个处理器的至少一个服务器。例如,数据处理***102和代理服务106各自可以包括位于至少一个数据中心或服务器群中的多个服务器。数据处理***102可以从音频输入信号中确定请求和与该请求相关联的触发关键字。基于请求和触发关键字,数据处理***102可以确定是将音频输入信号转发给代理服务106还是在内部处理音频输入信号。响应于确定音频输入信号将在内部处理,数据处理***102生成或选择响应数据。响应数据可以是基于音频的或基于文本的。例如,响应数据可以包括一个或多个音频文件,这些音频文件当被渲染时提供音频输出或声波。响应数据中的数据也可以被称为内容项。除了音频内容之外,响应数据可以包括其他内容(例如,文本、视频或图像内容)。响应于确定音频输入信号将被转发,数据处理***102可以向代理服务106发送音频输入信号。代理服务106可以解析音频输入信号以识别要执行的命令。代理服务106可以执行该命令并将命令的结果返回给数据处理***102或客户端设备104。
数据处理***102和代理服务106各自可以包括多个逻辑分组的服务器,并且便于分布式计算技术。服务器的逻辑组可以称为数据中心、服务器群或机器群。服务器可以在地理上分散。数据中心或机器群可以作为单个实体来管理,或者机器群可以包括多个机器群。每个机器群中的服务器可以是异构的——服务器或机器中的一个或多个可以根据一种或多种类型的操作***平台进行操作。数据处理***102和代理服务106各自可以包括数据中心中的服务器,其与相关联的存储***一起存储在一个或多个高密度机架***中,例如位于企业数据中心。这样,具有整合服务器的数据处理***102或代理服务106可以通过将服务器和高性能存储***定位在本地化的高性能网络上来提高***可管理性、数据安全性、***的物理安全性和***性能。将包括服务器和存储***在内的所有数据处理***102或代理服务106组件或其中的一些集中化,并将它们与高级***管理工具耦合,允许更高效地使用服务器资源,这节省了功率和处理需求,并减少了带宽使用。数据处理***102的组件中的每个组件可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、电器或其他逻辑设备,例如被配置为与数据储存库128和148以及其他计算设备通信的可编程逻辑阵列。代理服务106还可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、电器或其他逻辑设备,例如被配置为与数据存储库和其他计算设备通信的可编程逻辑阵列。
数据处理***102可以包括数据储存库128。数据储存库128可以包括一个或多个本地或分布式数据库,并且可以包括数据库管理***。数据储存库128可以包括计算机数据存储装置或存储器,并且可以存储一个或多个正则表达式130、一个或多个参数132、一个或多个策略134、响应数据136和模板138以及其他数据。参数132、策略134和模板138可以包括诸如关于客户端设备104与数据处理***102之间基于语音的会话的规则的信息。正则表达式130可以包括关于客户端设备104与数据处理***102之间的基于语音的会话何时包括代理112和代理服务106的规则。正则表达式130、参数132、策略134和模板138还可以包括经由接口114从另一个源(例如,数据处理***102和客户端设备104)接收的另一个数字助理应用108的信息。响应数据136可以包括用于音频输出或相关元数据的内容项,以及可以是与客户端设备104的一个或多个通信会话的一部分的输入音频消息。
可以在客户端设备104上安装与数据处理***102相关联的应用、脚本、程序或其他组件。该应用可以使客户端设备104能够将输入音频信号(和其他数据)传送到数据处理***102的接口114。
数据处理***102可以包括至少一个计算资源或服务器。数据处理***102可以包括至少一个接口114、与至少一个接口114交接或以其它方式与至少一个接口114通信。数据处理***102可以包括数据处理***102上的数字助理应用108的至少一个实例、与之交接或以其它方式与之通信。数据处理***102上的数字助理应用108的实例可以包括至少一个NLP组件118、至少一个音频信号发生器组件120和至少一个直接动作处理程序组件122,与之交接或以其它方式与之通信。数据处理***102可以包括至少一个数字组件选择器120、与之交接或以其它方式与之通信。数据处理***102可以包括至少一个数据储存库128、与之交接或以其它方式与之通信。至少一个数据储存库128可以在一个或多个数据结构或数据库中包括或存储正则表达式130、参数132、策略134、响应数据136和模板138。数据储存库128可以包括一个或多个本地或分布式数据库,并且可以包括数据库管理。
数据处理***102的组件中各自可以包括至少一个处理单元或其他逻辑设备,例如被配置为与数据库储存库128或148通信的可编程逻辑阵列引擎或模块。数据处理***102的组件可以是单独的组件、单个组件或多个数据处理***102的一部分。***100及其组件例如数据处理***102可以包括硬件元件,例如一个或多个处理器、逻辑设备或电路。
数据处理***102可以包括接口114。接口114可以被配置、构造或操作成使用例如数据分组来接收和传输信息。接口114可以使用一个或多个协议例如网络协议来接收和传输信息。接口114可以包括硬件接口、软件接口、有线接口或无线接口。接口114可以是使***100的组件能够相互通信的数据接口或网络接口。数据处理***102的接口114可以经由网络116向客户端设备104或代理服务106提供或传输包括动作数据结构、音频信号或其他数据的一个或多个数据分组。例如,数据处理***102可以将来自数据储存库128或来自音频信号发生器组件120的输出信号提供给客户端设备104。数据处理***102还可以经由数据分组传输指导客户端设备104执行动作数据结构中指示的功能。输出信号可以作为一个或多个数据分组(或其他通信协议)从数据处理***102(或其他计算设备)获得、生成、变换或传输到客户端设备104。接口114可以便于将数据从一种格式转变或格式化成另一种格式。例如,接口114可以包括应用编程接口(“API”),该接口包括用于在诸如软件组件的各种组件之间通信的定义。
数据处理***102可以包括安装在客户端设备104上的应用、脚本或程序,例如客户端设备104上的数字助理应用108的实例,以将输入音频信号传送到数据处理***102的接口114,并驱动客户端计算设备的组件来渲染输出音频信号或视觉输出。数据处理***102可以接收数据分组、数字文件或包括或识别输入音频信号(或多个输入音频信号)的其他信号。客户端设备104可以经由换能器154检测音频信号,并且经由模数转换器将模拟音频信号转换成数字文件。例如,音频驱动器可以包括模数转换器组件。预处理器组件可以将音频信号转换成可以通过网络116经由数据分组传输的数字文件。
数据处理***102的数据处理***102上的数字助理应用108的实例可以执行或运行NLP组件118,以接收或获得包括由客户端设备104的传感器158检测到的输入音频信号的数据分组。数据分组可以提供数字文件。NLP组件118可以接收或获得包括音频信号的数字文件或数据分组,并解析音频信号。例如,NLP组件118可以提供人与计算机之间的交互。NLP组件118可以配置有用于理解自然语言并使数据处理***102能够从人类或自然语言输入中导出含义的技术。NLP组件118可以包括或配置有基于机器学习的技术,例如统计机器学习。NLP组件118可以利用决策树、统计模型或概率模型来解析输入音频信号。NLP组件118可以执行例如以下功能:命名实体识别(例如,给定文本流,确定文本中的哪些项目映射到名称,例如人或地方,以及每个这样的名称的类型是什么,例如人、位置(例如,“home(家)”)或组织),自然语言生成(例如,将来自计算机数据库或语义意图的信息转换成可理解的人类语言),自然语言理解(例如,将文本转换成更正式的表示,例如计算机模块可以操纵的一阶逻辑结构)、机器翻译(例如,将文本从一种人类语言自动翻译成另一种语言)、词态分割(例如,将词分成个别语素并识别语素的类别,这可以是基于所考虑的语言的词的词态或结构的复杂性的挑战)、问题回答(例如,确定对人类语言问题的答案,其可以是特定的或开放式的)、或语义处理(例如,在识别词并编码其含义以便将所识别的词与具有相似含义的其他词相关联之后发生的处理)。
NLP组件118可以通过将输入信号与存储的(例如,在数据储存库128中)代表性音频波形集进行比较并选择最接近的匹配,将输入音频信号转换成辨别的文本。该组音频波形可以存储在数据储存库128或数据处理***102可访问的其他数据库中。代表性波形根据大量用户生成,然后可以用来自用户的语音样本来增强。在音频信号被转换成识别的文本之后,NLP组件118例如经由跨用户训练或通过手动指定将文本与数据处理***102可以服务的动作相关联的文本或词进行匹配。NLP组件118可以将图像或视频输入转换成文本或数字文件。NLP组件118可以处理、分析或解释图像或视频输入,以执行动作、生成请求或选择或识别数据结构。
除了输入音频信号或代替输入音频信号,数据处理***102可以接收图像或视频输入信号。数据处理***102可以使用例如图像解释技术、计算机视觉、机器学习引擎或其他技术来处理图像或视频输入信号,以辨识或解释图像或视频,从而将图像或视频转换成数字文件。一种或多种图像解释技术、计算机视觉技术或机器学习技术可以统称为成像技术。除了或代替音频处理技术,数据处理***102(例如,NLP组件118)可以配置有成像技术。
NLP组件118可以获得输入音频信号。根据输入音频信号,NLP组件118可以识别至少一个请求、对应于该请求的至少一个触发关键字以及一个或多个实体。该请求可以指示输入音频信号的意图、数字组件或主题。触发器关键字可以指示可能采取的动作类型。例如,NLP组件118可以解析输入音频信号,以识别至少一个请求以在晚上离家参加晚餐和看电影。触发关键字可以包括指示要采取的动作的至少一个词、短语、词根或部分词或衍生词。例如,来自输入音频信号的触发关键字“go(去)”或“to go to(去做)”可以指示需要交通。在该示例中,输入音频信号(或识别的请求)不直接表达交通意图,然而触发关键字指示运输是由请求指示的至少一个其他动作的辅助动作。
NLP组件118可以解析输入音频信号,以识别、确定、检索或以其他方式获得请求和触发关键字。例如,NLP组件118可以将语义处理技术应用于输入音频信号,以识别触发关键字或请求。NLP组件118可以将语义处理技术应用于输入音频信号,以识别包括一个或多个触发关键字的触发短语,例如第一触发关键字和第二触发关键字。例如,输入音频信号可以包括句子“Play my favorite song(播放我最喜欢的歌曲)”。NLP组件118可以确定输入音频信号包括触发关键字“play(播放)”。NLP组件118可以确定该请求是针对终端用户最喜欢的歌曲(数字组件)。
NLP组件118可以确定从输入音频信号中识别的一个或多个关键字是否引用代理112之一。一个或多个关键字可以包括触发关键字或关键字短语。从输入音频信号中识别的一个或多个关键字可以包括代理标识符。代理标识符可以指示终端用户想要执行该请求的代理112。例如,输入音频信号可以包括“Play song ABC from music service X(播放来自音乐服务X的歌曲)”。在该输入音频信号中,短语“music service X(音乐服务X)”可以是基于订阅的音乐服务的代理112的代理标识符。NLP组件118可以从输入音频信号的一个或多个关键字中识别代理标识符。基于包括代理标识符的输入音频信号,NLP组件118可以确定输入音频信号引用代理112。响应于确定输入音频信号中没有关键字包括代理标识符,NLP组件118可以确定没有关键字引用代理112。
NLP组件118可以确定从输入音频信号中识别的一个或多个关键字是否引用代理112中至少一个的功能。一个或多个关键字可以包括触发关键字或关键字短语。触发关键字或关键字短语可以引用代理112中至少一个的功能。引用代理112中至少一个的功能的触发关键字或关键字短语可以使用正则表达式130(有时称为格式)来定义。可以使用正则表达式130来定义为代理112识别的代理。正则表达式130可以包括可由代理服务106配置的功能的预定义关键字集合。该预定义关键字集合可以包括功能标识符(例如,“ride”或“play”)。该预定义关键字集合也可以被维护在数字助理应用108的数据储存库128中。例如,输入音频信号可以包括“Get me a ride home(让我搭车回家)”这句话。用于连接拼车应用的驱动器的预定义关键字集可以包括“ride”或“take me to(带我去)”,等等。NLP组件118可以识别触发关键字“ride”,并且可以确定音频输入信号包含引用代理112的功能的关键字。NLP组件118可以将从输入音频信号中识别的一个或多个关键字与代理112的功能的正则表达式130进行比较。NLP组件118可以确定输入音频信号的至少一个关键字与代理112的功能的正则表达式130之间的匹配。基于匹配,NLP组件118可以将至少一个关键字与对应于代理112功能的功能标识符相关联。
基于匹配,NLP组件118可以确定输入音频信号引用代理112和代理112的功能。响应于确定输入音频信号引用代理112的功能,NLP组件118还可以从输入音频信号的关键字中识别针对该功能的一个或多个参数。在前面的示例中,“Get me a ride home”中的“home”一词可以被识别为该功能的参数之一。NLP组件可以确定至少一个关键字与多个代理112的功能的正则表达式130之间的匹配。可以基于由代理监视器110确定的每个代理服务106的操作状态来确定选择多个代理112中的哪一个,如下所述。基于不匹配,NLP组件118可以确定输入音频信号没有引用代理112的功能中的任何功能。
数据处理***102可以执行或运行直接动作处理程序组件122的实例。直接动作处理程序组件122可以基于从NLP组件118接收的输入来执行脚本或程序。代理服务106可以提供脚本或程序。代理服务106可以通过API或webhook使脚本或程序对数据处理***102可用。直接动作处理程序组件122可以确定参数或对输入字段的响应,并且可以将数据打包成动作数据结构。动作数据结构可以通过应用API或webhook提供给数据处理***102。直接动作处理程序组件122可以将动作数据结构传输到代理服务106用于实现,或者数据处理***102可以实现动作数据结构。
直接动作处理程序组件122可以基于输入音频信号中识别的请求或触发关键字,生成或选择用于线程或对话动作的数据结构。基于由NLP组件118解析的请求,直接动作处理程序组件122可以确定消息应该被发送到多个代理服务106中的哪一个。如上所描述,NLP组件118可以确定输入音频信号引用代理112或代理112的功能。直接动作处理程序组件122可以确定输入音频信号包括对显式代理服务106的请求(例如,“Order a car with CarService XYZ(用XYZ汽车服务叫一辆汽车)”,其中该请求具体请求由汽车服务XYZ实现该请求),或者可以从多个代理服务106中选择可以满足该请求的服务。如下所描述,直接动作处理程序组件122可以基于由代理监视器110确定的每个代理服务106的操作状态,从多个代理服务106中选择一个代理服务106。
直接动作处理程序组件122可以将请求打包成动作数据结构,以作为另一个请求(有时也称为消息)传输到代理服务106。直接动作处理程序组件122可以向代理112的代理服务106传输请求。直接动作处理程序组件122也可以使用该请求调用或呼叫代理112。该请求可以根据超文本传输协议(HTTP)生成。该请求可以包括报头和正文。请求的报头可以包括一个或多个字段,请求的正文可以包括动作数据结构。动作数据结构可以包括用于完成请求的信息,例如功能标识符和对应于功能标识符、代理112要实现的功能的一个或多个参数。该信息可以是代理服务106用来完成请求的数据。继续上述汽车服务请求的示例,该信息可以包括搭载位置和目的地位置。直接动作处理程序组件122可以从储存库128中检索模板138,以确定动作数据结构中包括哪些字段。直接动作处理程序组件122可以从储存库128检索内容,以获得数据结构字段的信息。直接动作处理程序组件122可以用该信息填充模板中的字段,以生成数据结构。直接动作处理程序组件122还可以用来自输入音频信号或先前输入音频信号的数据填充字段。模板138可以针对代理112的类别标准化,或者可以针对特定代理服务106标准化。例如,拼车代理服务106可以使用以下标准化模板138来创建数据结构:{client_deviceidentifier;authentication_credentials;pick_uplocation;destination_location;no_passengers;service_level}。标准化模板138还可以包括在输入音频信号中识别的功能标识符和一个或多个参数。
直接动作处理程序组件122可以被配置成扩展响应或包含在响应中的实体。直接动作处理程序组件122可以扩展NLP组件118在输入音频信号中识别的实体。直接动作处理程序组件122可以扩展实体,以将实体转换成代理服务106对于代理服务106的动作数据结构的给定字段所需的格式。实体可以包括对代理服务106来说可能模糊或不清楚的信息。例如,当代理服务106请求街道地址时,终端用户可以提供是位置或企业的正确名称的实体。直接动作处理程序组件122可以基于数据处理***102从客户端设备104接收的内容或偏好自动生成扩展实体。直接动作处理程序组件122可以基于数据处理***102在后续基于音频的输入请求中从客户端设备104请求的内容或偏好来生成扩展实体。例如,数据处理***102可以接收输入音频信号,该信号包括“Ok,request a car service to pick me up athome(好的,请求汽车服务来接我回家)”。NLP组件118可以将词项“home”识别为代理服务106无法辨识的实体。例如,NLP组件118可以将“home”识别为位置实体,作为该功能的一个或多个参数之一;但是,动作数据结构中的位置字段可能需要街道地址、城市、州和邮递区号。在这个示例中,“home”位置实体不是代理服务106所请求的格式。当客户端设备104的终端用户先前向数据处理***102提供了终端用户的家庭地址时,直接动作处理程序组件122可以将“home”扩展成服务提供商设备的动作数据结构的字段所请求的格式(例如,{street_address:“123Main St.”,city:“Anytown”,state:“CA”})。如果终端用户先前没有向数据处理***102提供终端用户的家庭地址,则数据处理***102可以生成并传输基于音频的输入请求,该请求向终端用户请求指示具体地址而不是“home”。在将实体传输到代理服务106之前扩展实体可以减少所需网络传输的数量,因为代理服务106在接收到未扩展的实体之后可能不需要请求阐明或附加信息。
代理112的代理服务106可以经由网络116从直接动作处理程序组件122接收请求。请求可以包括动作数据结构。代理服务106可以根据模板138解析请求,以识别来自直接动作处理程序组件122的请求中包括的动作数据结构。代理服务106也可以具有模板138的副本。通过应用模板138,代理服务106可以确定该请求是否有效。响应于确定请求无效(例如,不正确的语法),代理服务106可以生成指示错误的响应。响应可以根据HTTP生成,并且包括指示请求无效的错误代码(例如,具有4xx状态代码的HTTP消息)。代理服务106有时也可能不操作、不可用或由于其他原因无法响应来自数字助理应用108的请求。代理服务106可以生成具有错误代码的响应,该错误代码指示代理服务106不操作(例如,具有5xx状态代码的HTTP消息)。代理服务106可以向数字助理应用108传输或提供指示错误的响应。
响应于确定请求有效,代理服务106可以从请求的动作数据结构中识别一个或多个字段,例如功能标识符和该功能的一个或多个参数。代理服务106可以识别对应于功能标识符的功能。代理服务106可以使用来自请求的动作数据结构的一个或多个参数来执行或实现对应于该功能的功能。例如,如果来自直接动作处理程序组件122的请求是播放指定的歌曲,则代理服务106可以访问音频数据库以检索对应于指定歌曲的音频文件。如果来自直接动作处理程序组件122的请求是拼车请求,则代理服务106可以在请求中的位置标识符中识别一个或多个可用车辆,并且可以向可用车辆之一的计算设备(例如智能电话)发送通知以请求拼车。在执行该功能时,代理服务106可以生成对该请求的响应。代理服务106可以将响应打包到动作数据结构中,以传输到数字助理应用108。响应可以根据HTTP生成。响应可以包括报头和正文。响应的报头可以包括一个或多个字段,响应的正文可以包括动作数据。动作数据结构可以包括执行功能的成功或失败的指示符。动作数据结构可以包括用于显示或用于输出音频信号的具有一个或多个词的响应短语。基于功能的执行,代理服务106可以识别哪个指示符和哪个响应短语包括对来自数字助理应用108的请求的响应。代理服务106可以向数字助理应用108传输或提供响应。
响应于从代理服务106接收到响应,音频发生器组件120可以解析该响应以识别动作数据结构。根据动作数据结构,音频发生器组件120可以识别响应短语的一个或多个关键字。音频发生器组件120可以基于来自代理服务106的响应中的响应短语的一个或多个词来生成输出音频文件。音频发生器组件120可以在执行代理112的功能时播放(例如,经由扬声器152)来自代理服务106的响应短语的一个或多个词的输出音频文件。例如,音频发生器组件120可以播放拼车服务的响应短语“Ride home is en route in five minutes(五分钟后搭车回家)”。数字助理应用108还可以显示响应短语的一个或多个词。数字助理应用108还可以将来自代理服务106的响应转发给代理监视器110,代理监视器110的功能在下面详细描述。
响应选择器组件124可以从数据储存库128获得信息,其中该信息可以被存储为响应数据136的一部分。响应选择器组件124可以查询数据储存库128,以便例如从响应数据136中为输出音频信号选择或以其他方式识别响应短语。响应于确定输入音频信号没有引用任何代理112或代理112的任何功能,响应选择器组件124可以被NLP组件118和直接动作处理程序组件122调用来选择响应数据136中的响应短语之一。直接动作处理程序组件122可以将请求打包成动作数据结构,以作为消息传输到响应选择器组件124。直接动作处理程序组件122可以获得来自数据储存库128的响应数据136(或参数132或策略134),以及在终端用户同意的情况下从客户端设备104接收以确定位置、时间、用户账户以及后勤或其他信息的数据,从而从汽车共享服务预订汽车。响应数据136(或参数132或策略134)可以被包括在动作数据结构中。当包括在动作数据结构中的内容包括用于认证的终端用户数据时,数据可以在存储在数据储存库128中之前通过散列函数传递。音频信号发生器组件124可以生成或以其他方式获得包括响应数据136的音频输出信号。数据处理***102可以执行音频信号发生器组件124来生成或创建对应于响应数据136的输出信号。例如,一旦实现了请求,音频信号发生器组件120可以生成包括短语“The action was completed(动作完成)”的音频输出信号。
数据处理***102上的代理监视器110可以执行响应记录器组件140。响应记录器组件140可以在数据储存库148(有时称为日志数据库)上维护每个代理服务106的响应度量150。响应记录器组件140可以访问数据储存库148来检索响应度量150。代理服务106的响应度量150可以包括代理服务106对数字助理应用108生成的请求的响应的日志。数字助理应用108生成的请求可以响应于针对与数字助理应用108交接的代理112的功能之一的输入音频信号。如上所讨论,数字助理应用108的NLP组件118可以确定在输入音频信号中识别的一个或多个关键字引用一个或多个代理112或一个或多个代理112的功能。响应于该确定,数字助理应用108的直接动作处理程序组件122可以基于输入音频信号生成与动作数据结构打包的请求,然后将该请求传输到代理服务112以实现该请求。响应于该请求,代理服务106可以执行包括在来自直接动作处理程序组件122的请求的动作数据结构中的功能,并且可以将响应传输回数字助理应用108。
结合起来,响应记录器组件140可以为引用代理112或代理112的功能的数字助理应用108处接收的每个请求生成响应度量150。响应于确定输入音频信号引用代理112或代理112的功能之一,响应记录器组件140可以在数据储存库148中开始请求的响应度量150的新条目。响应记录器组件140可以识别接收请求的时间。响应记录器组件140可以将接收时间写入数据存储库148中该请求的响应度量150中。响应于基于请求生成动作数据结构,响应记录器组件140可以识别代理标识符、功能标识符、一个或多个参数和其他字段等。响应记录器组件140可以将代理标识符、功能标识符、一个或多个参数和字段写入数据存储库148中的该请求的响应度量150中。响应记录器组件140可以识别发送到代理服务106的请求的传输时间。响应于从代理服务106接收到响应,响应记录器组件140可以解析该响应,以识别动作数据结构的指示符和响应短语。响应记录器组件140可以识别从代理112接收响应的时间。响应记录器组件140可以将来自代理112的响应的接收时间写入数据存储库148中的响应度量150。
在跟踪数字助理应用108与代理112之间的请求和响应的通信时,响应记录器组件140可以在数据存储库148上为来自代理112的响应生成响应度量150。响应度量150可以包括代理服务106的响应时间、响应中的错误率或错误指示、代理112执行的功能等。响应记录器组件140可以计算或确定代理服务106的响应与直接动作处理程序组件122向代理服务106传输的请求之间的代理服务106的响应时间。响应记录器组件140可以基于来自直接动作处理程序组件122的请求的传输时间与来自代理服务106的响应的接收时间来确定代理服务106的响应时间。响应记录器组件140可以通过解析来自代理服务106的响应来确定错误指示和代理服务106执行的功能。响应记录器组件140可以解析来自代理服务106的响应的动作数据结构。响应记录器组件140可以从动作数据结构中识别成功指示符和功能。该指示符可以指定该功能被代理服务106成功执行或者导致失败。该功能可以指定代理服务106请求并执行哪个功能。响应记录器组件140还可以解析响应以识别报头和正文。报头可以包括状态代码。响应记录器组件140可以从响应的报头识别状态代码。基于状态代码,响应记录器组件140可以确定代理服务106是否成功执行了该功能。
使用来自代理112的响应短语,响应记录器组件140可以确定代理112的一个或多个功能。响应记录器组件140还可以解析响应的正文以识别响应短语。代理服务106可能没有在正则表达式130中为代理112预定义功能中的至少一些。响应记录器组件140可以配置有用于理解自然语言的技术,以从人类或自然语言输入中导出含义。响应记录器组件140可以包括或配置有基于机器学习的技术,例如统计机器学习。响应记录器组件140可以利用决策树、统计模型或概率模型来解析响应于请求而生成的来自代理服务106的响应中的响应短语。响应记录器组件140可以执行例如命名实体辨别、自然语言生成、自然语言理解、机器翻译、词态分割问答、语义处理或语义网络等功能。
通过从响应短语中导出语义含义,响应记录器组件140可以确定对代理服务106的请求的响应度量。响应记录器组件140可以通过分析来自代理服务106的响应短语来确定或识别代理112的新功能。例如,来自拼车服务的响应的响应短语可以包括响应于输入音频信号“Get me a ride home”的“Would you like to carpool(你想合伙用车吗)?”。通过将机器学习应用到响应短语,响应记录器组件140可以确定需要与“ride”相关联的“carpool(合伙用车)”的新功能。响应记录器组件140可以基于来自代理服务106的响应短语的语义分析来确定请求是否被代理112成功执行。响应记录器组件140可以使用语义知识映射基于识别响应短语中指示请求没有成功执行的一个或多个词来确定请求没有被代理112成功执行。例如,响应短语可以包括“Sorry.Cannot find song(对不起,找不到歌曲)”等词。通过应用语义知识图,响应记录器组件140可以确定请求没有被成功执行。响应记录器组件140可以使用语义知识映射基于识别响应短语中指示成功地执行了该请求的一个或多个词来确定代理112没有成功地执行该请求。
响应记录器组件140可以基于为代理112确定的功能来识别具有与代理112相似功能的替选代理112。例如,代理112和替选代理112都可以是拼车应用。响应记录器组件140可以基于确定的代理112功能和确定的替选代理112功能来确定替选代理112能够替换代理112。通过应用机器学习技术,响应记录器组件140可以为代理112确定来自代理服务106的响应的响应短语的语义含义。响应记录器组件140还可以为替选代理112确定来自另一代理服务106的响应的响应短语的语义含义。使用语义知识图,响应记录器组件140可以确定代理112的响应短语的语义含义与替选代理112的响应短语的语义含义之间的语义接近度量度。语义知识图可以定义词与短语之间的关系和语义距离。在语义知识图中,语义距离较低的词或短语在语义含义上可能相互靠近。相反,语义距离较高的词或短语在语义含义上可能彼此更接近。响应记录器组件140可以将语义接近度量度与阈值距离进行比较。响应记录器组件140可以确定语义接近度量度大于或等于阈值距离。响应于该确定,响应记录器组件140可以确定代理112不能被替选代理112替换。响应记录器组件140可以确定语义接近度量度小于阈值距离。响应于该确定,响应记录器组件140可以确定代理112可被替选代理112替换。
代理监视器110可以被数字助理应用108调用。响应于确定输入音频信号引用代理112,数字助理应用108的直接动作处理程序组件122可以向代理监视器110和代理服务106提供或传输请求。响应于接收到请求,代理监视器110可以执行响应记录器组件140、探测监视器组件142、状态评估器组件144和代理管理器组件146的功能。代理监视器110还可以根据预定时间表执行响应记录器组件140、探测监视器组件142、状态评估器组件144和代理管理器组件146的功能。预定时间表可以指定时间集合(例如,每15分钟、1小时或1天的间隔)。
数据处理***102上的代理监视器110可以执行探测监视器组件142。探测监视器组件142可以生成ping请求以传输到代理服务106。ping请求可以用作对应于样本输入音频信号的伪请求,以测量或测试为代理112提供资源的代理服务106的操作状态和性能。ping请求可以包括要执行的代理112的功能之一的功能标识符。ping请求还可以包括用于执行该功能的一个或多个参数。探测监视器组件142可以访问数据储存库148,以识别其中维护的响应度量150。探测监视器组件142可以选择记录在数据存储库中的响应之一,以选择ping请求的功能标识符和一个或多个参数。探测监视器组件142还可以在生成ping请求时选择预定义的功能标识符和一个或多个参数。探测监视器组件142可以将ping请求打包到动作数据结构中,以传输到代理服务106。动作数据结构可以包括用于完成请求的信息,例如功能标识符和对应于功能标识符、代理112要实现的功能的一个或多个参数。该信息可以是代理服务106用来完成请求的数据。探测监视器组件142可以检索模板(例如,来自数据存储库128的模板138),以确定动作数据结构中包括哪些字段。探测监视器组件142可以用该信息填充模板中的字段,以生成数据结构。随着ping请求的生成,探测监视器组件142可以经由网络116将ping请求传输到代理服务106。在传输ping请求时,探测监视器组件142可以识别ping请求传输到代理服务106的时间。在传输ping请求之后,探测监视器组件142可以等待来自代理服务106的对ping请求的响应。
代理服务106可以从探测监视器组件142接收ping请求。代理服务106可以解析ping响应以识别动作数据结构。代理服务106也可以具有模板138的副本。通过应用模板138,代理服务106可以确定该请求是否有效。响应于确定请求无效(例如,不正确的语法),代理服务106可以生成指示错误的响应。响应可以根据HTTP生成,并且包括指示请求无效的错误代码(例如,具有4xx状态代码的HTTP消息)。当代理服务106不操作时,代理服务106可以生成具有指示代理服务106不操作的错误代码的响应(例如,具有5xx状态代码的HTTP消息)。代理服务106可以向探测监视器组件142传输或提供指示错误的响应。当没有错误时,代理服务106可以从ping请求的动作数据结构中识别一个或多个字段,例如功能标识符和该功能的一个或多个参数。代理服务106可以识别对应于功能标识符的功能。代理服务106可以使用来自请求的动作数据结构的一个或多个参数来执行或实现对应于该功能的功能。在执行该功能时,代理服务106可以生成对ping请求的响应(有时称为ping响应)。代理服务106可以将响应打包到动作数据结构中,以传输到探测监视器组件142。ping响应可以根据HTTP生成。ping响应可以包括报头和正文。ping响应的报头可以包括一个或多个字段,响应的正文可以包括动作数据。动作数据结构可以包括执行功能的成功或失败的指示符。动作数据结构可以包括具有用于显示或用于输出音频信号的一个或多个词的响应短语。基于功能的执行,代理服务106可以识别在ping响应中包括哪个指示符和哪个响应短语。代理服务106可以向探测监视器组件142传输或提供ping响应。
随后,探测监视器组件142可以从代理服务106接收ping响应。对于响应于ping请求而生成的来自代理服务106的响应,探测监视器组件142可以重复与响应记录器组件140的功能类似的功能。探测监视器组件142可以基于代理112响应于ping请求而生成的ping响应来生成响应度量。响应于确定输入音频信号引用代理112或代理112的功能之一,探测监视器组件142可以在数据存储库148中开始ping请求的响应度量的新条目。探测监视器组件142可以识别ping请求的接收时间。探测监视器组件142可以将接收时间写入数据存储库148中对ping请求的响应度量。响应于基于ping请求的动作数据结构的生成,探测监视器组件142可以识别代理标识符、功能标识符、一个或多个参数和其他字段等。探测监视器组件142可以将代理标识符、功能标识符、一个或多个参数和字段写入数据存储库148中ping请求的响应度量。探测监视器组件142可以识别发送到代理服务106的ping请求的传输时间。响应于从代理服务106接收到ping响应,探测监视器组件142可以解析ping响应,以识别动作数据结构的指示符和响应短语。探测监视器组件142可以识别从代理112接收ping响应的时间。探测监视器组件142可以将来自代理112的ping响应的接收时间写入数据存储库148中的响应度量。
对ping请求的ping响应的响应度量可以包括代理服务106的响应时间、响应中的错误率或错误指示、代理112执行的功能等。探测监视器组件142可以计算或确定代理服务106的ping响应与对代理服务106的ping请求之间的代理服务106的响应时间。探测监视器组件142可以基于ping请求的传输时间与来自代理服务106的ping响应的接收时间来确定代理服务106的响应时间。探测监视器组件142可以通过解析来自代理服务106的ping响应来确定错误指示和由代理服务106执行的功能。探测监视器组件142可以解析来自代理服务106的ping响应的动作数据结构。探测监视器组件142可以从动作数据结构中识别成功指示符和功能。该指示符可以指定该功能被代理服务106成功执行或者导致失败。该功能可以指定代理服务106请求并执行了哪些功能。探测监视器组件142还可以解析ping响应以识别报头和正文。报头可以包括状态代码。探测监视器组件142可以从ping响应的报头中识别状态代码。基于状态代码,探测监视器组件142可以确定代理服务106是否成功执行了该功能。
使用响应于ping请求生成的来自代理112的响应短语,探测监视器组件142可以确定代理112的一个或多个功能。探测监视器组件142还可以解析ping响应的正文以识别响应短语。代理服务106可能没有在正则表达式130中为代理112预定义功能中的至少一些。探测监视器组件142可以配置有用于理解自然语言的技术,以从人类或自然语言输入中导出含义。探测监视器组件142可以包括或配置有基于机器学习的技术,例如统计机器学习。探测监视器组件142可以利用决策树、统计模型或概率模型来解析响应于ping请求而生成的来自代理服务106的响应短语。探测监视器组件142可以执行例如命名实体辨别、自然语言生成、自然语言理解、机器翻译、词态分割问答、语义处理或语义网络等功能。
通过从响应短语中导出语义含义,探测监视器组件142可以确定对代理服务106的请求的响应度量。探测监视器组件142可以根据对来自代理服务106的响应短语的分析来确定或识别代理112的新功能。例如,来自拼车服务的ping响应的响应短语可以包括响应于输入音频信号“Get me a ride home”的“Would you like to luxury car for your ride(您想乘坐豪华车吗)?”通过将机器学习应用到响应短语,探测监视器组件142可以确定呼叫与“ride”相关联的“luxury car(豪华汽车)”的新功能。探测监视器组件142可以基于来自代理服务106的响应短语的语义分析来确定请求是否被代理112成功执行。探测监视器组件142可以使用语义知识映射基于识别响应短语中指示请求未被成功执行的一个或多个词来确定请求未被代理112成功执行。例如,响应短语可以包括“Sorry.Cannot find thesong(对不起,找不到这首歌)”等词。通过应用语义知识图,探测监视器组件142可以确定请求没有被成功执行。探测监视器组件142可以使用语义知识映射基于识别响应短语中指示成功地执行了该请求的一个或多个词来确定该请求未被代理112成功执行。
探测监视器组件142可以基于为代理112确定的功能来识别具有与代理112相似功能的替选代理112。例如,代理112和替选代理112可以都是拼车应用。探测监视器组件142可以基于为代理112确定的功能和为替选代理112确定的功能来确定替选代理112能够替换代理112。通过应用机器学习技术,探测监视器组件142可以为代理112确定来自代理服务106的ping响应的响应短语的语义含义。探测监视器组件142还可以为替选代理112确定来自另一代理服务106的ping响应的响应短语的语义含义。使用语义知识图,探测监视器组件142可以确定代理112的响应短语的语义含义与替选代理112的响应短语的语义含义之间的语义接近度量度。语义知识图可以定义词和短语之间的关系和语义距离。在语义知识图中,语义距离较低的词或短语在语义含义上可能彼此更接近。相反,语义距离较高的词或短语在语义含义上可能彼此较远。探测监视器组件142可以将语义接近度量度与阈值距离进行比较。探测监视器组件142可以确定语义接近度量度大于或等于阈值距离。响应于该确定,探测监视器组件142可以确定代理112不能被替选代理112替换。探测监视器组件142可以确定语义接近度量度小于阈值距离。响应于该确定,探测监视器组件142可以确定代理112可被替选代理112替换。
在等待来自代理服务106的ping响应时,探测监视器组件142可以维护计时器来测量、识别或确定自ping请求传输到代理服务106以来流逝的时间。探测监视器组件142可以将自传输以来流逝的时间与预定义时间段进行比较。预定义的时间窗口可以对应于网络超时事件,网络超时事件指示代理服务106不操作或者由于其它原因不能响应ping请求。探测监视器组件142可以确定自传输以来流逝的时间大于或等于预定义时间段,而没有从代理服务106接收到ping响应。响应于确定流逝的时间大于或等于预定义时间段,探测监视器组件142可以生成指示代理服务106未能响应的ping请求的响应度量。探测监视器组件142还可以响应于ping请求,确定代理服务106处已经发生超时事件。探测监视器组件142可以确定流逝的时间小于预定义时间段,在预定义时间段之前接收到ping响应。响应于确定流逝的时间小于预定义时间段,探测监视器组件142可以基于接收到的ping响应生成代理服务106的响应度量。
探测监视器组件142可以在多个ping请求上重复上述功能。代理服务106还可以在多个ping请求上重复上述功能。探测监视器组件142可以生成多个ping请求以传输到代理服务106。多个ping请求可以一个接一个地相继生成。每个ping请求可以包括功能标识符和不同于另一个ping请求的一个或多个参数。以这种方式,可以测试代理112的各种功能。探测监视器组件142可以向代理服务106传输每个ping请求。探测监视器组件142可以为传输到代理服务106的许多ping请求维护计数器。每次传输一个ping请求,探测监视器组件142可以递增计数器。探测监视器组件142可以将传输的ping请求的数量与预定义的最大数量进行比较。探测监视器组件142可以确定传输的ping请求的数量大于或等于预定义的最大数量。响应于该确定,探测监视器组件142可以停止向代理服务106传输附加ping请求。探测监视器组件142可以确定传输的ping请求的数量小于预定义的最大数量。响应于该确定,探测监视器组件142可以继续生成附加ping请求并将其传输到代理服务106。
随后,对于传输的ping请求中的至少一些,探测监视器组件142可以接收由代理服务106生成的ping响应。每次接收到一个ping响应,探测监视器组件142可以生成ping响应的响应度量(例如,ping响应时间、错误指示符或功能标识符)。探测监视器组件142可以使用为ping响应生成的响应度量来更新维护在数据储存库148上的响应度量150。探测监视器组件142可以为响应于ping请求的传输从代理服务106接收的ping响应的数量维护计数器。探测监视器组件142可以将从代理服务106接收的ping响应的数量与预定义的最大数量进行比较。探测监视器组件142可以确定ping响应的数量大于或等于预定义的最大数量。响应于该确定,探测监视器组件142可以停止向代理服务106传输附加ping请求。探测监视器组件142还可以聚合响应于ping请求而为从代理服务106接收的ping响应生成的响应度量。探测监视器组件142可以确定ping响应的数量小于预定义的最大数量。响应于该确定,探测监视器组件142可以生成附加的ping请求并将其传输到代理服务106。
数据处理***102上的代理监视器110可以执行状态评估器组件144。状态评估器组件144可以基于代理服务106的响应度量150来确定代理112的代理服务106的操作状态。状态评估器组件144可以访问代理服务106的响应度量150。状态评估器组件144可以进一步基于自传输第二请求以来流逝的时间来确定代理112的代理服务106的操作状态。操作状态可以指示代理服务106是响应的(也称为操作的、活动的或启用的)还是不响应的(也称为不操作的、不活动的或禁用的)。操作状态也可以特定于代理112的功能之一。
状态评估器组件144可以使用数据储存库148上维护的响应度量150和自传输ping请求以来流逝的时间来确定代理服务106的聚合响应度量。状态评估器组件144还可以基于代理服务106响应于ping请求生成的响应的响应度量来确定聚合响应度量。状态评估器组件144还可以基于代理服务106响应于多个ping请求而生成的多个响应的响应度量来确定聚合响应度量。聚合响应度量可以包括代理服务106的平均响应时间或错误率等或者它们的组合。状态评估器组件144可以将聚合响应度量与阈值响应度量进行比较。阈值响应度量可以对应于或者可以表示代理服务106被认为不响应或者响应的响应度量。状态评估器组件144可以确定聚合响应度量大于或等于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率大于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106的操作状态确定为不响应(unresponsive)。状态评估器组件144可以确定聚合响应度量小于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率小于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106的操作状态确定为响应(responsive)。
在确定代理112的代理服务106的操作状态时,状态评估器组件144可以基于响应于ping请求而生成的来自代理服务106的响应来过滤维护在数据存储库148上的响应度量150。状态评估器组件144可以访问数据储存库148以检索响应度量150。状态评估器组件144可以基于响应于ping请求而生成的来自代理服务106的响应来识别响应度量150的子集。状态评估器组件144可以解析响应于ping请求而生成的来自代理服务106的响应,以识别动作数据结构。状态评估器组件144可以解析动作数据结构以识别功能标识符。状态评估器组件144还可以从传输到代理服务106的ping请求的动作数据结构中识别功能标识符。状态评估器组件144可以遍历数据存储库148上维护的响应度量150的响应日志。对于每个响应,状态评估器组件144可以解析该响应以识别由代理服务106执行的功能标识符。状态评估器组件144可以将来自数据储存库148的响应的功能标识符与响应于ping请求而生成的响应的功能标识符进行比较。状态评估器组件144可以确定来自数据储存库148的响应的功能标识符与响应于ping请求生成的响应的功能标识符相匹配。响应于确定匹配,状态评估器组件144可以包括请求的响应度量150,作为用于确定操作状态的响应度量150的子集的一部分。状态评估器组件144可以确定来自数据储存库148的响应的功能标识符与响应于ping请求生成的响应的功能标识符不匹配。通过任一确定,状态评估器组件144可以继续遍历数据储存库148上维护的响应度量150。
使用响应度量150的子集,状态评估器组件144可以确定代理112的功能的聚合响应度量。聚合响应度量可以包括代理服务106在执行对应于功能标识符的功能时的平均响应时间或错误率等或者它们的组合。状态评估器组件144可以将聚合响应度量与阈值响应度量进行比较。阈值响应度量可以对应于或者可以表示在执行对应于功能标识符的功能时代理服务106被认为不响应或者响应的响应度量。状态评估器组件144可以确定聚合响应度量大于或等于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率大于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106在执行对应于功能标识符的功能时的操作状态确定为不响应。状态评估器组件144可以确定聚合响应度量小于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率小于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106执行对应于功能标识符的功能的操作状态确定为响应。
状态评估器组件144可以配置有用于理解自然语言的技术,以从人类或自然语言输入中导出含义。状态评估器组件144可以包括或配置有基于机器学习的技术,例如统计机器学习。状态评估器组件144可以利用决策树、统计模型或概率模型来解析来自代理服务106的是在响应度量150的响应短语中生成的响应短语。状态评估器组件144可以执行例如命名实体辨别、自然语言生成、自然语言理解、机器翻译、词态分割问答、语义处理或语义网络等功能。
通过应用机器学习技术,状态评估器组件144可以确定响应于ping请求而生成的来自代理112的代理服务106的响应的响应短语的语义含义。状态评估器组件144还可以从数据储存库148中维护的响应中确定响应的响应短语中每一个的语义含义。使用语义知识图,状态评估器组件144可以确定响应于ping请求而生成的代理112的响应短语的语义含义与数据存储库148中维护的响应的响应短语的语义含义之间的语义接近度量度。语义知识图可以定义词和短语之间的关系和语义距离。在语义知识图中,语义距离较低的词或短语在语义含义上可能彼此更接近。相反,语义距离较高的词或短语在语义含义上可能彼此较远。状态评估器组件144可以将语义接近度量度与阈值距离进行比较。状态评估器组件144可以确定语义接近度量度大于或等于阈值距离。响应于该确定,状态评估器组件144可以确定响应于ping请求生成的响应短语在语义上不同于维护在数据储存库148上的响应短语。状态评估器组件144还可以包括被确定为语义上类似于将用于确定代理服务106的操作状态的响应度量150的子集的响应的响应度量150。状态评估器组件144可以确定语义接近度量度小于阈值距离。响应于该确定,状态评估器组件144可以确定响应于ping请求而生成的响应短语在语义上与在数据储存库148上维护的响应短语相似。状态评估器组件144可以继续遍历数据储存库148上维护的响应。
使用响应度量150的子集,状态评估器组件144可以确定如语义相似的响应短语所指示的代理112的功能的聚合响应度量。聚合响应度量可以包括代理服务106在执行对应于功能标识符的功能时的平均响应时间或错误率等或者它们的组合。状态评估器组件144可以将聚合响应度量与阈值响应度量进行比较。阈值响应度量可以对应于或者可以表示代理服务106在执行功能时被认为不响应或者响应的响应度量。状态评估器组件144可以确定聚合响应度量大于或等于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率大于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106在执行功能时的操作状态确定为不响应。状态评估器组件144可以确定聚合响应度量小于阈值响应度量。例如,状态评估器组件144可以确定代理服务106的响应时间或错误率小于容许响应时间或容许错误率。响应于该确定,状态评估器组件144可以将代理服务106执行该功能的操作状态确定为响应。
数据处理***102上的代理监视器110可以执行代理管理器组件146。代理管理器组件146可以基于代理服务106的操作状态来配置、设置或以其他方式使数字助理应用108执行与代理112交接的动作。代理管理器组件146可以基于代理服务106的操作状态生成配置指令并向数字助理应用108提供配置指令。配置指令可以指定数字助理应用108在与代理112交接时要执行的动作。当操作状态指示代理服务106是响应的时,代理管理器组件146可以配置数字助理应用108继续调用在输入音频信号中被识别为引用的代理112的代理服务106。由数字助理应用108执行的动作可以包括与代理112交接的继续操作(例如,代理服务106的调用)。当操作状态指示代理服务106不响应时,代理管理器组件146可以配置数字助理应用108不调用在输入音频信号中被识别为引用的代理112的代理服务106。数字助理应用108要执行的动作可以包括响应于接收到引用代理112或代理112执行的功能之一的输入音频信号,终止代理服务106的调用。由数字助理应用108执行的动作可以包括呈现代理服务106的操作状态的输出(例如,作为经由扬声器152的音频输出信号或者作为显示器上的文本内容项)。该动作还可以包括响应于引用原始代理112的输入音频信号的接收,呈现一个或多个替选代理112来执行该功能。如前文所讨论,每个替选代理112可以由响应记录器组件140或探测监视器组件142确定为能够替换原始代理112。
代理管理器组件146可以将代理服务106的操作状态识别为响应。响应于识别,代理管理器组件146可以配置、设置或促使数字助理应用108响应于引用代理112的功能之一的后续音频输入信号继续调用代理112。代理管理器组件146可以传输指示代理112响应的配置指令。代理管理器组件146可以根本不执行任何动作来维护数字助理应用继续调用代理112来处理引用代理112的功能之一的音频输入信号。通过代理管理器组件146对数字助理应用108的配置,NLP组件118可以接收或获得包括输入音频信号的数据分组。使用机器学习技术,NLP组件118可以确定输入音频信号引用代理112或代理112要执行的功能。直接动作处理程序组件122可以使用输入音频信号作为请求的一部分来生成动作数据结构。直接动作处理程序组件122可以将动作数据结构传输到代理服务106。代理服务106可以执行请求中指示的功能,并且可以将响应传输回数字助理应用108。
相反,代理管理器组件146可以将代理服务106的操作状态识别为不响应。响应于识别,代理管理器组件146可以配置、设置或促使数字助理应用108呈现指示代理服务106的操作状态的输出(例如,作为经由扬声器152的音频输出信号或作为显示器上的文本内容项)。代理管理器组件146可以传输配置指令。配置指令可以指示数字助理应用108将代理112的操作状态呈现为不响应。通过代理管理器组件146对数字助理应用108的配置,NLP组件118可以接收或获得包括输入音频信号的数据分组。使用机器学习技术,NLP组件118可以确定输入音频信号引用代理112或代理112要执行的功能。响应于该确定,响应选择器组件124可以将代理112的操作状态识别为不响应。基于该识别,响应选择器组件124可以选择指示代理112不可用的响应数据136。音频信号发生器组件120还可以使用指示代理112不可用的响应数据136来生成音频输出信号。例如,代理监视器110可能已经将订阅音乐服务代理的操作状态确定为不响应,并相应地配置数字助理应用108。当数字助理应用108接收到带有引用订阅音乐服务代理的语音查询“Play song X from music service A(从音乐服务A播放歌曲X)”的音频输入信号时,可以呈现文本内容项和声明“Music service A iscurrently down(音乐服务A当前关闭)”的输出语音信号。
此外,响应于将代理112的代理服务106识别为不响应,代理管理器组件146还可以配置、设置或促使数字助理应用108呈现替选代理112,以响应于引用原始代理112的输入音频信号的接收来执行该功能。代理管理器组件146可以传输配置指令。配置指令可以包括一个或多个替选代理112来执行该功能。如前文所讨论,响应记录器组件140或探测监视器组件142可以基于所确定的代理112的功能来确定具有与代理112相似功能的替选代理112。代理管理器组件146还可以识别一个或多个替选代理112。对于每个替选代理112,代理管理器组件146可以识别由状态评估器组件144确定的替选代理112的代理服务106的操作状态。当替选代理112的代理服务106的操作状态被识别为响应时,代理管理器组件146可以将替选代理112的代理标识符包括在配置指令中,以提供给数字助理应用108。
通过代理管理器组件146对数字助理应用108的配置,NLP组件118可以接收或获得包括输入音频信号的数据分组。使用机器学习技术,NLP组件118可以确定输入音频信号引用代理112或代理112要执行的功能。响应于该确定,响应选择器组件124可以将代理112的操作状态识别为不响应。基于该识别,响应选择器组件124基于该配置选择指示代理112不可用的响应数据136。使用配置指令,响应选择器组件124还可以选择指示一个或多个替选代理112来执行该功能的响应数据136。音频信号发生器组件120可以使用指示代理112不可用的响应数据136来生成音频输出信号。音频信号发生器组件120还可以使用指示一个或多个替选代理112执行该功能的响应数据136来生成音频输出信号。
例如,代理监视器110可能已经将拼车服务“A”的代理服务106的操作状态确定为不响应,并且将拼车服务“B”和“C”的代理服务106的操作状态确定为响应。使用该确定,代理监视器110可以相应地配置数字助理应用108。当数字助理应用108接收到带有语音查询“Get me a ride home”的音频输入信号时,数字助理应用108可以呈现文本内容项和输出语音信号,该输出语音信号陈述“Ridesharing app‘A’is down(拼车app‘A’关闭)”和“Would you like to try Ridesharing app‘B’or‘C?’(你想要尝试拼车app‘B’还是‘C’?)”在呈现音频输出信号或文本内容项之后,NLP组件118可以接收后续的输入音频信号。例如,NLP组件118可以接收输入音频信号“App‘B’Please(请尝试App‘B’)”。使用机器学习技术,NLP组件118可以识别后续输入音频信号引用替选代理112中哪一个。直接动作处理程序122可以使用后续输入音频信号生成动作数据结构,并且可以将动作数据结构作为请求提供给代理服务106。代理服务106可以执行初始请求中指示的功能,并且可以将响应传输回数字助理应用108。
现在参考图2,描绘了示例数据流200的顺序图,以确定与图1所示***中的数字助理应用108交接的代理112的操作状态。数据流200可以由上面结合图1描述的***100或下面结合图6详细描述的***600来实施或执行。数据流200可以包括客户端设备104、数据处理***102和代理服务106之间经由网络116的分组(例如,HTTP消息)形式的通信。
在客户端设备104上运行的数字助理应用108的本地实例可以经由传感器158检测输入音频信号,并且对输入音频信号执行初始处理以生成请求205。请求205可以包括输入音频信号本身或者使用机器学习技术在输入音频信号中识别的一个或多个词。客户端设备104可以向数据处理***102传输请求205。运行在数据处理***102上的数字助理应用108的远程实例可以对请求205执行附加处理。运行在数据处理***102上的NLP组件118可以解析请求205,以确定请求205正在引用将由代理112执行的功能。代理112可以由代理服务106维护。使用请求205的解析,运行在数据处理***102上的直接动作处理程序组件122可以生成动作数据结构,以作为请求210提供给代理服务106。请求210还可以包括由代理112执行的功能。数据处理***102继而可以向代理服务106传输请求210。
代理服务106可以执行请求210中指示的功能。在执行该动作时,代理服务106可以生成响应215并将其传输给数字助理应用108。响应215可以指示代理112的代理服务106执行的功能的结果。运行在数据处理***102上的数字助理应用108可以对响应215执行处理。例如,运行在数据处理***102上的响应选择器组件124可以使用响应215选择响应数据。使用响应数据,运行在数据处理***102上的响应选择器组件124可以生成响应220并将其传输给客户端设备104。运行在客户端设备104上的音频信号发生器组件120可以使用响应220中的响应数据来生成并呈现指示代理112在代理服务106处的功能执行结果的输出音频信号。结合起来,运行在数据处理***102上的代理监视器110可以使用请求205或210以及响应215或220来生成响应度量150。
随后,代理监视器110可以生成并传输ping请求225。ping请求225可以是与请求205或210相同的格式。ping请求225可以包括动作数据结构,该动作数据结构具有将由代理服务106维护的代理112执行的功能之一的功能标识符。一旦接收到ping请求225,代理服务106可以执行ping请求225中指示的功能。在执行该动作时,代理服务106可以生成对数字助理应用108的ping响应230。当代理服务106成功执行ping请求225中指示的功能时,ping响应230可以包括指定该功能被成功执行的指示符。相反,当代理服务106未能执行ping请求225中指示的功能时,ping响应230可以包括指定代理服务106处的错误的指示符。代理服务106可以向数据处理***102传输ping响应230。
代理监视器110随后可以接收ping响应230。代理监视器110可以基于使用请求205或210以及响应215或220生成的响应度量150来确定代理112的代理服务106的操作状态。代理监视器110可以进一步基于ping请求225和ping响应230来确定代理服务106的操作状态。例如,代理监视器110可以计算请求210的传输时间与响应215的接收时间之间的响应时间以及ping请求225与ping响应230之间的响应时间。代理监视器110可以使用这两个响应时间来计算代理服务106的平均响应时间。代理监视器110可以将平均响应时间与容许的最大响应时间进行比较。当平均响应时间大于或等于容许的最大响应时间时,代理监视器110可以确定代理服务106不响应。相反,当平均响应时间小于容许的最大响应时间时,代理监视器110可以确定代理服务106是响应的。基于确定代理服务106的操作状态,代理监视器110可以生成配置指令235以提供给数字助理应用108。当代理服务106被确定为响应时,配置指令235可以指定数字助理应用108将继续调用代理服务106。当代理服务106被确定为不响应时,配置指令235可以指定数字助理应用108将呈现指示代理服务106不响应的输出。代理监视器110可以向运行在数据处理***102上的数字助理应用108提供配置指令235,并且可以向运行在客户端设备104上的数字助理应用108传输配置指令235。
现在参考图3,描绘了在两种配置300和350下具有请求消息的客户端设备104和请求消息。在配置300和350中,代理监视器110可能已经确定代理112的代理服务106的操作状态不响应。代理监视器110还可以配置在客户端设备104上运行的数字助理应用108,以基于确定代理服务106的操作状态不响应来执行动作。
在配置300下,运行在客户端设备104上的数字助理应用108可以经由传感器158检测输入音频信号。数字助理应用108可以应用自然语言处理技术来识别检测到的输入音频信号中的一个或多个词。数字助理应用108可以将输出显示为文本内容项305,包括从输入音频信号中识别的词“Play Song‘X’(播放歌曲‘X’)”。数字助理应用108还可以从输入音频信号中识别的词中确定输入音频信号正在引用基于订阅的音乐服务的代理112。代理监视器110可能已经将基于订阅的音乐服务的代理服务106的操作状态确定为不响应,并且已经基于操作状态配置了数字助理应用108。这样,当数字助理应用108确定输入音频信号正在引用基于订阅的音乐服务的代理112时,数字助理应用108可以将代理服务106的操作状态识别为不响应。作为响应,数字助理应用108可以在客户端设备104的显示器上呈现文本内容项310“I’m sorry.Streaming Service‘A”is currently unresponsive(对不起。流媒体服务“A”当前不响应)”。文本内容项310还可以伴随有指示代理112的代理服务106不响应的输出音频信号。
在配置350下,运行在客户端设备104上的数字助理应用108可以经由传感器158检测输入音频信号。数字助理应用108可以应用自然语言处理技术来识别检测到的输入音频信号中的一个或多个词。数字助理应用108可以将输出显示为文本内容项355,包括从输入音频信号中识别的词“Get me a ride home”。数字助理应用108还可以从输入音频信号中识别的词中确定输入音频信号正在引用用于拼车应用“A”的代理112。代理监视器110可能已经将拼车应用“A”的代理服务106的操作状态确定为不响应。代理监视器110可能已经确定替选代理112能够替换为由输入音频信号引用所确定的原始代理112。代理监视器110可能已经确定替选代理112的代理服务106例如拼车应用“B”也是响应的。代理监视器110可能已经基于这些确定配置了数字助理应用108。
因此,当数字助理应用108确定输入音频信号正在引用拼车应用“A”的代理112时,数字助理应用108可以将代理服务106的操作状态识别为不响应。作为响应,数字助理应用108可以在客户端设备104的显示器上呈现文本内容项360“I’m sorry.Ridesharing App‘A”is currently unresponsive(对不起。拼车App‘A’当前不响应)”。文本内容项360还可以伴随有指示代理112的代理服务106不响应的输出音频信号。数字助理应用108还可以在文本内容项365“Would you like to use Ridesharing App‘B?’(你想使用拼车App‘B’吗?)”中呈现替选代理112作为选择。文本内容项365还可以伴随有指示替选代理112的输出音频信号。随后,数字助理应用108可以经由传感器158检测输入音频信号。数字助理应用108可以应用自然语言处理技术来识别检测到的输入音频信号中的一个或多个词。数字助理应用108可以将输出显示为文本内容项370包括从输入音频信号中识别的词“Yes(是)”。数字助理应用108还可以使用自然语言处理技术来确定该词是对文本内容项365的语义内容的接受。作为响应,数字助理应用108可以呈现文本内容项375“Requesting RidesharingApp‘B’for a ride…(请求拼车App‘B’来搭载)”,以指示数字助理应用108正在与替选代理112交接。文本内容项375还可以伴随有输出音频信号。
图4示出了在联网的计算机环境中生成语音激活线程的示例方法400的框图。方法400可以由上面结合图1-3描述的***100或下面结合图6详细描述的***600来实施或执行。该方法可以包括接收输入音频信号(405)。方法400可以包括解析输入音频信号(410)。方法400可以包括选择动作数据结构(415)。方法400可以包括扩展响应实体(420)。该方法可以包括填充动作数据结构(425)。方法400可以包括传输数字组件(430)。
方法400可以包括接收输入信号(405)。该方法可以包括由数据处理***执行的NLP组件接收输入信号。输入信号可以是由第一客户端设备处的传感器检测到并传输到数据处理***的输入音频信号。传感器可以是第一客户端设备的麦克风。例如,至少部分由包括一个或多个处理器和存储器的数据处理***执行的数字助理组件可以接收输入音频信号。输入音频信号可以包括由数字助理促成的对话。对话可以包括一个或多个输入和输出。对话可以基于音频、基于文本或音频和文本的组合。输入音频信号可以包括文本输入,或者可以提供对话信息的其他类型的输入。数据处理***可以接收对应于对话的会话的音频输入。
方法400可以包括解析输入信号(410)。数据处理***的NLP组件可以解析输入信号以识别请求。NLP组件可以识别输入信号中的至少一个实体。该请求可以是可以由一个或多个服务提供商设备实现的意图或请求。该请求可以是对话短语的一部分。例如,请求可以是“Ok,order a car to take me home(好吧,叫辆车送我回家)。”由NLP组件识别的实体可以是请求中的在实现请求时映射到服务提供商设备所请求的输入字段或类型的短语或词项。例如,提供汽车服务的服务提供商设备可以请求当前位置输入字段和目的地输入字段。继续上面的示例,NLP组件可以将词项“home”映射到目的地输入字段。
方法400可以包括选择动作数据结构(415)。数据处理***可以基于从输入信号解析的请求来选择动作数据结构。数据处理***可以基于能够实现请求的服务提供商设备来选择动作数据结构。动作数据结构可以是由服务提供商设备创建的数据结构或对象。服务提供商设备可以向数据处理***提供动作数据结构。动作数据结构可以指示服务提供商设备用来实现请求的字段、数据或信息。服务提供商设备可以标记字段中的一个或多个,以请求数据处理***扩展为该字段返回的实体。当字段被标记为扩展时,数据处理***可以设计并生成与客户端设备104的基于对话的数据交换,以检索标记字段的信息或数据,而不是服务提供商设备160设计基于对话的数据交换。
方法400可以包括扩展响应实体(420)。如果实体不是服务提供商设备指定的格式,则数据处理***可以确定映射到输入字段的实体需要扩展。继续上面的示例,NLP组件可以确定“home”是映射到目的地的实体。直接动作处理程序组件可以确定更新动作数据结构以将实体“home”包括在目的地字段中。直接动作处理程序组件可以确定响应实体的格式与目的地字段的格式不匹配。例如,目的地字段可以具有请求街道地址、城市、州和邮递区号的对象格式。检测到响应实体的格式与字段的格式之间不匹配,数据处理***可以将实体扩展到街道地址、城市、州和邮递区号格式。例如,数据处理***可以查找终端用户提供给数据处理***的地址作为终端用户的“home”地址。数据处理***可以基于扩展策略来扩展实体。扩展策略可以指示数据处理***是否具有扩展该词项的许可,或者可以指示哪个终端用户或客户端计算设备提供的数据可以被包括在扩展的实体中。
数据处理***可以根据服务提供商设备的请求扩展实体。例如,数据处理***可以生成具有未扩展实体的第一动作数据结构。数据处理***可以将第一动作数据结构传输给服务提供商设备进行处理以实现请求。如果服务提供商设备不能处理或理解动作数据结构的字段中一个或多个字段的数据,则服务提供商设备可以将动作数据结构(或其一部分)返回到数据处理***。例如,服务提供商设备可以尝试处理目的地字段中的“home”实体,然后在服务提供商设备确定它不能处理或理解该实体之后,请求数据处理***扩展“home”实体。
方法400可以包括填充动作数据结构(425)。直接动作处理程序组件可以用扩展的实体填充动作数据结构。直接动作处理程序组件可以用实体填充动作数据结构。例如,动作数据结构可以是存储实体或扩展实体的对象。填充动作数据结构也可以用来更新动作数据结构。
方法400可以包括传输动作数据结构(430)。数据处理***可以将填充的动作数据结构传输到服务提供商设备。一旦接收到动作数据结构,服务提供商设备可以实现请求或者从数据处理***或客户端计算设备请求附加信息。
现在参考图5,描绘了确定与数字助理应用交接的代理的操作状态的示例方法500。方法500可以由上面结合图1-3描述的***100或下面结合图5详细描述的***600来实施或执行。简而言之,方法500可以包括识别响应度量(505)。方法500可以包括向代理服务发送ping请求(510)。该方法可以包括从代理服务接收响应(515)。该方法可以包括确定代理服务的操作状态(520)。该方法可以包括基于操作状态配置数字助理应用(525)。
更详细地,方法500可以包括识别响应度量(505)。在数据处理***上执行的响应记录器组件可以在日志数据库中维护响应度量。请求的响应度量可以包括响应时间、错误率和功能类型等。响应记录器组件可以为来自数字助理应用的被确定引用代理的每个请求生成响应度量。响应记录器组件可以在生成响应度量时跟踪运行数字助理应用的数据处理***与代理的代理服务之间的通信。例如,响应记录器组件可以识别请求到代理服务的传输时间与从代理服务接收响应的时间。使用传输时间、接收时间和响应本身,响应记录器组件可以生成响应度量。
方法500可以包括向代理服务发送ping请求(510)。在维护响应度量的同时,在数据处理***上执行的探测监视器组件可以生成ping请求。ping请求可以包括代理服务要执行的功能的功能标识符和一组参数。探测监视器组件可以使用日志数据库中记录的响应度量来生成ping请求。探测监视器组件可以生成动作数据结构,以将ping请求打包在内以发送给代理服务。
该方法可以包括从代理服务接收响应(515)。代理服务可以从探测监视器组件接收ping请求。在处理ping请求时,代理服务可以成功地执行ping请求中指示的功能(例如,由于不正确的格式或网络超时),并且可以向数据处理***发送指示成功的响应。相反,代理服务可能无法执行ping请求中指示的功能,并且可以向数据处理***发送指示失败的响应。探测监视器组件可以接收代理服务响应于ping请求而生成的响应。探测监视器组件可以为响应于ping请求而生成的响应生成响应度量。请求的响应度量可以包括响应时间、错误率和功能类型等。例如,探测监视器组件可以识别请求到代理服务的传输时间与来自代理服务的响应的接收时间。使用传输时间、接收时间和响应本身,探测监视器组件可以生成响应度量。
该方法可以包括确定代理服务的操作状态(520)。在数据处理***上执行的状态评估器组件可以使用日志数据库中维护的响应度量以及代理服务对ping请求的响应。例如,状态评估器组件可以使用数据库中维护的响应度量和代理服务对ping请求的响应生成的响应度量来确定聚合响应度量。聚合响应度量可以包括代理服务的平均响应时间或错误率等或者它们的组合。状态评估器组件可以将聚合响应度量与预定阈值进行比较。状态评估器组件可以确定聚合响应度量大于或等于预定阈值。作为响应,状态评估器组件可以将代理服务的操作状态确定为不响应。状态评估器组件可以确定聚合响应度量小于预定阈值。作为响应,状态评估器组件可以将代理服务的操作状态确定为响应。
该方法可以包括基于操作状态配置数字助理应用(525)。在数据处理***上执行的代理管理器组件可以将代理的代理服务的操作状态识别为不响应。响应于该识别,代理管理器组件可以配置数字助理应用来呈现指示代理不响应的输出。代理管理器组件还可以配置数字助理应用来呈现指示执行该功能的替选代理的输出。数字助理应用可以响应于确定输入音频信号引用代理或代理执行的功能来呈现输出。代理管理器组件可以识别代理的代理服务的操作状态为响应。响应于该识别,代理管理器组件可以配置数字助理应用,以响应于确定输入音频信号正在引用代理或由代理执行的功能,继续调用代理服务。
图6是示例计算机***600的框图。计算机***或计算设备600可以包括或用于实施***100或其组件,例如数据处理***102。计算***600包括用于传递信息的总线605或其他通信组件,以及耦合到总线605用于处理信息的处理器610或处理电路。计算***600还可以包括一个或多个处理器610或耦合到总线用于处理信息的处理电路。计算***600还包括耦合到总线605的主存储器615,例如随机存取存储器(RAM)或其他动态存储设备,用于存储信息和将由处理器610执行的指令。主存储器615可以是或包括数据储存库128或148。主存储器615还可以用于在处理器610执行指令期间存储位置信息、临时变量或其他中间信息。计算***600还可以包括耦合到总线605的只读存储器(ROM)620或其他静态存储设备,用于为处理器610存储静态信息和指令。诸如固态设备、磁盘或光盘的存储设备625可以耦合到总线605,以持久存储信息和指令。存储设备625可以包括数据储存库128或148或者是数据储存库128或148的一部分。
计算***600可以经由总线605耦合到显示器635,例如液晶显示器或有源矩阵显示器,用于向用户显示信息。输入设备630例如包括字母数字键和其他键的键盘可以耦合到总线605,用于向处理器610传送信息和命令选择。输入设备630可以包括触摸屏显示器635。输入设备630还可以包括光标控件,例如鼠标、轨迹球或光标方向键,用于向处理器610传送方向信息和命令选择,并用于控制显示器635上的光标移动。例如,显示器635可以是数据处理***102、客户端设备104或图1的其他组件的一部分。
这里描述的过程、***和方法可以由计算***600响应于处理器610执行包含在主存储器615中的指令排列来实现。这些指令可以从另一个计算机可读介质例如存储设备625读入主存储器615。包含在主存储器615中的指令排列的执行使得计算***600执行这里描述的说明性过程。多处理布置中的一个或多个处理器也可以用来执行包含在主存储器615中的指令。硬连线电路可以代替软件指令或者与软件指令以及这里描述的***和方法结合使用。这里描述的***和方法不限于硬件电路和软件的任何特定组合。
尽管在图6中描述了示例计算***,但是包括在本说明书中描述的操作的主题可以在其他类型的数字电子电路中或者在计算机软件、固件或硬件中实施,包括在本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实施。
对于这里讨论的***收集关于用户的个人信息或者可以利用个人信息的情况,可以向用户提供控制程序或特征是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动;用户的偏好;或者用户位置的信息),或者控制是否或如何从内容服务器或其他可能与用户更相关的数据处理***接收内容的机会。此外,在存储或使用某些数据之前,可以以一种或多种方式对其进行匿名化,以便在生成参数时去除个人可识别信息。例如,用户的身份可以匿名化,从而不能为确定用户的个人可识别信息,或者可以在获得位置信息的地方概括用户的地理位置(例如到城市、邮政编码或州级),从而不能确定用户的特定位置。因此,用户可以控制内容服务器如何收集和使用关于他或她的信息。
本说明书中描述的主题和操作可以在数字电子电路或计算机软件、固件或硬件中实施,包括本说明书中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本说明书中描述的主题可以实现为编码在一个或多个计算机存储介质上的一个或多个计算机程序,例如计算机程序指令的一个或多个电路,用于由数据处理设备执行或控制数据处理设备的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号上,例如机器生成的电、光或电磁信号,该信号被生成以编码信息,用于传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是或包括在计算机可读存储设备、计算机可读存储衬底、随机或串行存取存储器阵列或设备、或它们中的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)中。本说明书中描述的操作可以实施为由数据处理设备对存储在一个或多个计算机可读存储设备上或从其他来源接收的数据执行的操作。
术语“数据处理***”、“计算设备”、“组件”或“数据处理装置”包括用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机、片上***,或多个这些装置,或前述的组合。该装置可以包括专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理***、操作***、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,例如web服务、分布式计算和网格计算基础设施。***100的组件可以包括或共享一个或多个数据处理设备、***、计算设备或处理器。
计算机程序(也称为程序、软件、软件应用、app、脚本或代码)可以以任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以对应于文件***中的文件。计算机程序可以存储在维护其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块、子程序或部分代码的文件)。计算机程序可以被部署为在位于一个站点或分布在多个站点并通过通信网络互连的一台或多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序(例如,数据处理***102的组件)的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以实施为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD-ROM以及DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。
这里描述的主题可以在计算***中实施,该计算***包括后端组件,例如作为数据服务器;或者包括中间件组件,例如应用服务器;或者包括前端组件,例如具有图形用户界面或web浏览器的客户端计算机,用户可以通过该图形用户界面或web浏览器与本说明书中描述的主题的实施方式交互;或者一个或多个这样的后端、中间件或前端组件的组合。***的组件可以通过任何形式或介质的数字数据通信例如通信网络互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如因特网)和对等网络(例如自组织对等网络)。
诸如***100或***500的计算***可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络(例如,网络116)进行交互。客户端和服务器的关系是通过在相应的计算机上运行并且彼此之间具有客户端-服务器关系的计算机程序产生的。在一些实施方式中,服务器将数据(例如,表示内容项目的数据分组)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据和从与客户端设备交互的用户接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以从服务器处的客户端设备接收(例如,由数据处理***102从客户端设备104或代理服务106接收)。
虽然在附图中以特定顺序描述了操作,但是这种操作不需要以所示的特定次序或顺序次序来执行,并且不需要执行所有示出的操作。这里描述的动作可以以不同的次序执行。
各种***组件的分离并不需要在所有实施方式中分离,并且所描述的程序组件可以包含在单个硬件或软件产品中。例如,NLP组件118和方向动作处理程序122可以是单个组件、app或程序,或者具有一个或多个处理电路的逻辑设备,或者数据处理***102的一个或多个服务器的一部分。
现在已经描述了一些说明性的实施方式,显然前面是说明性的而非限制性的,已经通过示例的方式给出。具体而言,尽管这里呈现的示例中的许多示例涉及方法动作或***元素的特定组合,但是这些动作和那些元素可以以其他方式组合以实现相同的目标。结合一个实施方式讨论的动作、元素和特征不旨在被排除在其他实施方式中的类似角色之外。
此处使用的措辞和术语是出于描述的目的,不应视为限制。这里使用的“包括”、“包含”、“具有”、“含有”、“涉及”、“以...为特征”、“特征在于”及其变型意味着包含其后列出的项、其等同物和附加项,以及仅由其后列出的项组成的替代实施方式。在一个实施方式中,这里描述的***和方法由一个、多于一个的每个组合或者所有描述的元件、动作或组件组成。
本文中以单数形式提及的***和方法的实施方式、元件或动作的任何引用也可以涵盖包括多个这些元件的实施方式,并且本文中以复数形式提及的任何实施方式、元件或动作的任何引用也可以涵盖仅包括单个元件的实施方式。单数或复数形式的引用并不旨在将当前公开的***或方法、其组件、动作或元件限制为单个或多个配置。对任何动作或元件基于任何信息、动作或元素的提及可以包括动作或元素至少部分基于任何信息、动作或元素的实施方式。
这里公开的任何实施方式可以与任何其他实施方式或实施例相结合,并且对“实施方式”、“一些实施方式”、“一个实施方式”等的提及不一定相互排斥,而是旨在指示结合该实施方式描述的特定特征、结构或特性可以被包括在至少一个实施方式或实施例中。这里使用的这些术语不一定都指相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式与任何其他实现相结合,包括性地或排他性地。
对“或”的提及可以被解释为包括性的,因此使用“或”描述的任何术语可以指示单个、多于一个和所有描述的术语中的任何一个。对“‘A’和‘B’中至少一个”的提及可以包括仅‘A’、仅‘B’,以及‘A’和‘B’二者。与“包括”或其他开放术语结合使用的这种引用可以包括附加项目。
在附图、详细描述或任何权利要求中的技术特征后面跟随有附图标记的地方,已经包括附图标记以增加附图、详细描述和权利要求的可理解性。因此,参考符号或其缺失对任何权利要求要素的范围都没有任何限制作用。
在不脱离其特征的情况下,本文描述的***和方法可以以其他特定形式实施。前述实施方式是说明性的,而不是对所描述的***和方法的限制。因此,这里描述的***和方法的范围由所附权利要求而不是前述描述来指示,并且落入权利要求等同物的含义和范围内的改变包含在其中。

Claims (20)

1.一种确定与数字助理应用交接的代理的操作状态的***,包括:
响应记录器组件,由具有一个或多个处理器的数据处理***执行以访问日志数据库,所述日志数据库维护代理服务的多个响应度量,每个响应度量对应于所述代理服务作出的、针对与数字助理应用交接的代理的多个功能之一的第一请求的响应,所述第一请求由所述数字助理应用响应于输入音频信号而生成;
探测监视器组件,由所述数据处理***执行,用于向所述代理服务传输针对所述代理的多个功能之一的第二请求,并等待来自所述代理服务的响应于所述第二请求的第二响应;
状态评估器组件,由所述数据处理***执行,以基于在所述代理的日志数据库中维护的所述多个响应度量以及基于自传输所述第二请求以来流逝的时间来确定所述代理的所述代理服务的操作状态;和
代理管理器组件,由所述数据处理***执行,以使得所述数字助理应用执行以下动作:基于所述代理服务的所述操作状态与所述代理交接。
2.根据权利要求1所述的***,包括所述代理管理器组件,用于:
将所述代理服务的所述操作状态识别为不响应;和
使得所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二输入音频信号,将所述代理服务的所述操作状态呈现为不响应。
3.根据权利要求1所述的***,包括所述代理管理器组件,用于:
将所述代理服务的所述操作状态识别为不响应;和
使得所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二输入音频信号,基于所述操作状态被识别为不响应,选择预定能够替换所述代理的第二代理。
4.根据权利要求1所述的***,包括代理管理器组件,用于:
将所述代理服务的所述操作状态识别为响应;和
使得所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二音频输入信号,继续调用所述代理。
5.根据权利要求1所述的***,包括:
所述探测监视器组件,用于基于向所述代理服务传输所述第二请求和从所述代理服务接收所述第二响应或超时事件之一之间流逝的时间来确定所述代理服务的第二响应度量;
所述状态评估器组件,用于将所述第二响应度量与所述日志数据库中维护的所述代理服务的所述多个响应度量进行比较,并基于所述第二响应度量与所述多个响应度量的比较来确定所述代理服务的所述操作状态。
6.根据权利要求1所述的***,包括:
所述探测监视器组件,用于识别针对所述代理的多个功能之一的对所述代理服务的第二请求中包括的功能标识符;和
所述状态评估器组件,用于从所述多个响应度量中识别与所述第二请求中包括的所述功能标识符匹配的响应度量子集,并基于与所述第二请求中包括的所述功能标识符匹配的所述响应度量子集来确定所述代理服务的所述操作状态。
7.根据权利要求1所述的***,包括
所述探测监视器组件,用于:
对于所述日志数据库中维护的所述多个响应度量中的每个响应度量,解析所述响应以识别第一响应短语;
解析来自所述代理服务的响应于所述第二请求的所述第二响应以识别第二响应短语;
所述状态评估器组件,用于:
从所述多个响应度量中识别与语义上类似于所述第二响应短语的所述第一响应短语的响应对应的响应度量子集;和
基于与语义上类似于所述第二响应短语的所述第一响应短语的响应对应的所述响应度量子集来确定所述代理服务的所述操作状态。
8.根据权利要求1所述的***,包括:
所述探测监视器组件,用于向所述代理服务传输针对所述代理的多个功能之一的包括所述第二请求的多个第二请求,所述多个第二请求具有预定数量,并且响应于所述多个第二请求聚合来自所述代理服务的多个第二响应;和
所述状态评估器组件,用于基于从所述代理服务聚合的所述多个第二响应来确定所述操作状态。
9.根据权利要求1所述的***,包括所述响应记录器组件,用于基于从所述代理服务接收到响应于所述第二请求的所述第二响应来更新所述日志数据库中维护的所述多个响应度量。
10.根据权利要求1所述的***,包括所述响应记录器组件,用于访问维护所述代理服务的多个响应度量的日志数据库,每个响应度量包括以下至少一个:所述代理服务的响应与所述数字助理应用生成所述第一请求之间的响应时间;所述代理响应于所述第一请求的响应中的错误指示;以及所述代理的用于生成所述第一请求的功能的功能标识符。
11.一种确定与数字助理应用交接的代理的操作状态的方法,包括:
由具有一个或多个处理器的数据处理***访问日志数据库,所述日志数据库维护代理服务的多个响应度量,每个响应度量对应于所述代理服务作出的、针对与数字助理应用交接的代理的多个功能之一的第一请求的响应,所述第一请求由所述数字助理应用响应于输入音频信号而生成;
由所述数据处理***向所述代理服务传输对所述代理的多个功能之一的第二请求,以等待来自所述代理服务的响应于所述第二请求的第二响应;
由所述数据处理***基于在所述代理的所述日志数据库中维护的所述多个响应度量以及基于自传输所述第二请求以来流逝的时间来确定所述代理的所述代理服务的操作状态;和
由所述数据处理***使得所述数字助理应用执行以下动作:基于所述代理服务的所述操作状态与所述代理交接。
12.根据权利要求11所述的方法,包括:
由所述数据处理***将所述代理服务的所述操作状态识别为不响应;和
由所述数据处理***使所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二输入音频信号将所述代理服务的所述操作状态呈现为不响应。
13.根据权利要求11所述的方法,包括:
由所述数据处理***将所述代理服务的所述操作状态识别为不响应;和
由所述数据处理***使所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二输入音频信号,基于将所述操作状态识别为不响应,选择预定能够替换所述代理的第二代理。
14.根据权利要求11所述的方法,包括:
由所述数据处理***将所述代理服务的所述操作状态识别为响应;和
由所述数据处理***使所述数字助理应用执行以下动作:响应于针对所述代理的多个功能之一的第二音频输入信号,继续调用所述代理。
15.根据权利要求11所述的方法,包括:
由所述数据处理***基于向所述代理服务传输所述第二请求与从所述代理服务接收所述第二响应或超时事件之一之间流逝的时间来确定所述代理服务的第二响应度量;
由所述数据处理***将所述第二响应度量与所述日志数据库中维护的所述代理服务的所述多个响应度量进行比较;和
由所述数据处理***基于所述第二响应度量与所述多个响应度量的比较来确定所述代理服务的所述操作状态。
16.根据权利要求11所述的方法,包括:
由所述数据处理***识别包括在针对所述代理的多个功能之一的对所述代理服务的第二请求中的功能标识符;
由所述数据处理***从所述多个响应度量中识别与所述第二请求中包括的所述功能标识符匹配的响应度量子集;和
由所述数据处理***基于与所述第二请求中包括的所述功能标识符匹配的所述响应度量子集来确定所述代理服务的所述操作状态。
17.根据权利要求11所述的方法,包括:
由所述数据处理***针对所述日志数据库中维护的所述多个响应度量中的每个响应度量解析所述响应,以识别第一响应短语;
由所述数据处理***解析来自所述代理服务的响应于所述第二请求的所述第二响应,以识别第二响应短语;
由所述数据处理***从所述多个响应度量中识别与语义上类似于所述第二响应短语的所述第一响应短语的响应对应的响应度量子集;和
由所述数据处理***基于与语义上类似于所述第二响应短语的所述第一响应短语的所述响应对应的所述响应度量子集确定所述代理服务的所述操作状态。
18.根据权利要求11所述的方法,包括:
由所述数据处理***向所述代理服务传输针对所述代理的多个功能之一的包括所述第二请求的多个第二请求,所述多个第二请求具有预定数量,并且用于响应于所述多个第二请求聚合来自所述代理服务的多个第二响应;和
由所述数据处理***基于从所述代理服务聚合的所述多个第二响应来确定所述操作状态。
19.根据权利要求11所述的方法,包括:
由所述数据处理***基于等待来自所述代理服务的响应于所述第二请求的所述第二响应来更新所述日志数据库中维护的所述多个响应度量。
20.根据权利要求11所述的方法,包括:
由所述数据处理***访问维护所述代理服务的所述多个响应度量的日志数据库,每个响应度量包括以下至少一个:在所述代理服务的响应与所述数字助理应用生成所述第一请求之间的响应时间;所述代理响应于所述第一请求的所述响应中的错误指示;以及所述代理的用于生成所述第一请求的功能的功能标识符。
CN201880028333.1A 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态 Active CN110710158B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210853089.0A CN115346525A (zh) 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2018/031452 WO2019216877A1 (en) 2018-05-07 2018-05-07 Verifying operational statuses of agents interfacing with digital assistant applications

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210853089.0A Division CN115346525A (zh) 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态

Publications (2)

Publication Number Publication Date
CN110710158A CN110710158A (zh) 2020-01-17
CN110710158B true CN110710158B (zh) 2022-08-09

Family

ID=62236023

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201880028333.1A Active CN110710158B (zh) 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态
CN202210853089.0A Pending CN115346525A (zh) 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202210853089.0A Pending CN115346525A (zh) 2018-05-07 2018-05-07 验证与数字助理应用交接的代理的操作状态

Country Status (4)

Country Link
US (2) US11144278B2 (zh)
EP (1) EP3607700B1 (zh)
CN (2) CN110710158B (zh)
WO (1) WO2019216877A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11539609B2 (en) * 2018-09-11 2022-12-27 Trilliant Networks, Inc. Method and apparatus for reporting power down events in a network node without a backup energy storage device
WO2020070878A1 (ja) * 2018-10-05 2020-04-09 本田技研工業株式会社 エージェント装置、エージェント制御方法、およびプログラム
CN115699167A (zh) * 2020-05-27 2023-02-03 谷歌有限责任公司 当确定是否从某些客户端设备卸载助理相关处理任务时补偿硬件差异
US20240078164A1 (en) * 2022-09-07 2024-03-07 Okta, Inc. Techniques for managing software agent health

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275641B1 (en) * 2014-09-14 2016-03-01 Speaktoit, Inc. Platform for creating customizable dialog system engines
CN106716404A (zh) * 2014-09-24 2017-05-24 甲骨文国际公司 计算机子网内的代理服务器

Family Cites Families (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69934871T2 (de) * 1999-03-05 2007-07-05 International Business Machines Corp. Verfahren und System zur optimalen Auswahl eines Webfirewalls in einem TCP/IP Netzwerk
US6829642B1 (en) * 1999-07-01 2004-12-07 International Business Machines Corporation Method and system for automatically and optimally selecting a TN3270 server in an internet protocol network
US7580996B1 (en) * 2000-05-31 2009-08-25 International Business Machines Corporation Method and system for dynamic update of an application monitoring agent using a non-polling mechanism
US6799147B1 (en) * 2001-05-31 2004-09-28 Sprint Communications Company L.P. Enterprise integrated testing and performance monitoring software
US6934745B2 (en) * 2001-06-28 2005-08-23 Packeteer, Inc. Methods, apparatuses and systems enabling a network services provider to deliver application performance management services
US20030005078A1 (en) * 2001-06-28 2003-01-02 Turicchi Thomas Edwin Apparatus and method for providing user-requested content through an alternate network service
US20030105763A1 (en) * 2001-11-30 2003-06-05 Gemini Networks, Inc. System, method, and computer program product for providing a wholesale provisioning service
US20040139194A1 (en) * 2003-01-10 2004-07-15 Narayani Naganathan System and method of measuring and monitoring network services availablility
US7243072B2 (en) * 2003-06-27 2007-07-10 Motorola, Inc. Providing assistance to a subscriber device over a network
US7366790B1 (en) * 2003-07-24 2008-04-29 Compuware Corporation System and method of active latency detection for network applications
US20050064821A1 (en) * 2003-09-22 2005-03-24 Telefonaktiebolaget Lm Ericsson (Publ) Alternative service management
US20050108133A1 (en) * 2003-11-14 2005-05-19 Infravio, Inc. Service shopping and provisioning system and method
CA2552481C (en) * 2004-01-09 2016-08-02 Npx Technologies Ltd. Detecting relayed communications
US7328265B2 (en) * 2004-03-31 2008-02-05 International Business Machines Corporation Method and system to aggregate evaluation of at least one metric across a plurality of resources
US7660888B2 (en) * 2004-05-21 2010-02-09 International Business Machines Corporation Indicating network resource availability methods, system and program product
US8738759B2 (en) * 2004-09-23 2014-05-27 Hewlett-Packard Development Company, L.P. System and method for service response monitoring
WO2007034826A1 (ja) * 2005-09-20 2007-03-29 Nec Corporation 資源量計算システム、方法およびプログラム
US7529540B2 (en) 2005-11-29 2009-05-05 International Business Machines Corporation Method and system for invoking push-to-service offerings
US7774428B2 (en) * 2006-04-27 2010-08-10 International Business Machines Corporation Automatic response time measurement of LDAP server operations
US7720954B2 (en) * 2006-08-03 2010-05-18 Citrix Systems, Inc. Method and appliance for using a dynamic response time to determine responsiveness of network services
US8141164B2 (en) * 2006-08-21 2012-03-20 Citrix Systems, Inc. Systems and methods for dynamic decentralized load balancing across multiple sites
US8116207B2 (en) * 2006-08-21 2012-02-14 Citrix Systems, Inc. Systems and methods for weighted monitoring of network services
US8493858B2 (en) * 2006-08-22 2013-07-23 Citrix Systems, Inc Systems and methods for providing dynamic connection spillover among virtual servers
US8312120B2 (en) * 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US7958230B2 (en) * 2008-09-19 2011-06-07 Mu Dynamics, Inc. Test driven deployment and monitoring of heterogeneous network systems
US8200842B1 (en) * 2006-10-25 2012-06-12 Cellco Partnership Automatic traffic control using dynamic DNS update
US8849981B2 (en) * 2006-12-01 2014-09-30 Ca, Inc. Response time benchmarking
US10122862B2 (en) * 2006-12-29 2018-11-06 Ubiquity Software Corporation Limited Systems and methods for connecting heterogeneous networks
JP4912158B2 (ja) * 2007-01-06 2012-04-11 富士通株式会社 処理速度算出方法、算出装置及びプログラム
US7730193B2 (en) * 2007-04-03 2010-06-01 Computer Associates Think, Inc. Automated time zone based grouping
US7953850B2 (en) * 2008-10-03 2011-05-31 Computer Associates Think, Inc. Monitoring related content requests
US8560695B2 (en) * 2008-11-25 2013-10-15 Citrix Systems, Inc. Systems and methods for health based spillover
US8219532B2 (en) * 2008-12-22 2012-07-10 International Business Machines Corporation Smart mediation system in a service oriented architecture
US8938532B2 (en) * 2009-04-08 2015-01-20 The University Of North Carolina At Chapel Hill Methods, systems, and computer program products for network server performance anomaly detection
US10241752B2 (en) * 2011-09-30 2019-03-26 Apple Inc. Interface for a virtual digital assistant
KR20110039905A (ko) * 2009-10-12 2011-04-20 삼성전자주식회사 광고 제공 방법 및 시스템
US9098335B2 (en) * 2009-12-23 2015-08-04 Citrix Systems, Inc. Systems and methods for managing spillover limits in a multi-core system
US8255528B2 (en) * 2009-12-23 2012-08-28 Citrix Systems, Inc. Systems and methods for GSLB spillover
US9609052B2 (en) * 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US9185725B2 (en) * 2011-12-15 2015-11-10 Nokia Technologies Oy Request-response procedure for wireless network
US9900231B2 (en) * 2012-01-27 2018-02-20 Microsoft Technology Licensing, Llc Managing data transfers over network connections based on priority and a data usage plan
EP2680145A3 (en) * 2012-06-29 2015-05-27 Orange Monitoring of heterogeneous saas usage
CN104823406A (zh) * 2012-10-10 2015-08-05 惠普发展公司,有限责任合伙企业 识别报告以解决网络问题
US20140122567A1 (en) * 2012-10-30 2014-05-01 Qualcomm Incorporated Preemptive framework for accessing short urls
US20140164476A1 (en) * 2012-12-06 2014-06-12 At&T Intellectual Property I, Lp Apparatus and method for providing a virtual assistant
US9264499B2 (en) * 2012-12-14 2016-02-16 Intel Corporation Cloud data storage location monitoring
US9692669B2 (en) * 2013-01-23 2017-06-27 Adobe Systems Incorporated Determination of internet access
US9219781B2 (en) * 2013-04-06 2015-12-22 Citrix Systems, Inc. Systems and methods for GSLB preferred backup list
US9596299B2 (en) * 2013-04-06 2017-03-14 Citrix Systems, Inc. Systems and methods for dynamically expanding load balancing pool
US9900379B2 (en) * 2013-04-06 2018-02-20 Citrix Systems, Inc. Systems and methods for startup round robin enhancement
US9692820B2 (en) * 2013-04-06 2017-06-27 Citrix Systems, Inc. Systems and methods for cluster parameter limit
US9875494B2 (en) * 2013-04-16 2018-01-23 Sri International Using intents to analyze and personalize a user's dialog experience with a virtual personal assistant
US10362081B2 (en) * 2013-08-30 2019-07-23 Citrix Systems, Inc. Methods and systems for quantifying the holistic quality of experience for internet multimedia
US20150120903A1 (en) * 2013-10-24 2015-04-30 KYOCERA Document Solutions Development America, Inc. System for monitoring XMPP-based communication services
WO2015095030A1 (en) * 2013-12-19 2015-06-25 Jvl Ventures, Llc Systems, methods, and computer program products for service processing
US10088972B2 (en) * 2013-12-31 2018-10-02 Verint Americas Inc. Virtual assistant conversations
US20150254248A1 (en) * 2014-03-07 2015-09-10 Printeron Inc. System for suggesting network resource for use by a network terminal based on network resource ranking
US9502031B2 (en) * 2014-05-27 2016-11-22 Apple Inc. Method for supporting dynamic grammars in WFST-based ASR
CN107209549B (zh) * 2014-12-11 2020-04-17 微软技术许可有限责任公司 能够实现可动作的消息传送的虚拟助理***
US9837081B2 (en) * 2014-12-30 2017-12-05 Microsoft Technology Licensing, Llc Discovering capabilities of third-party voice-enabled resources
US10007515B2 (en) * 2015-01-30 2018-06-26 Oracle International Corporation System and method for automatic porting of software applications into a cloud computing environment
US10142241B1 (en) * 2015-04-27 2018-11-27 F5 Networks, Inc. Methods for dynamic health monitoring of server pools and devices thereof
US20160321591A1 (en) * 2015-04-30 2016-11-03 International Business Machines Corporation Outcomes-based application monitoring
US10484257B1 (en) * 2015-07-15 2019-11-19 Amazon Technologies, Inc. Network event automatic remediation service
US9313098B1 (en) * 2015-09-10 2016-04-12 Pearson Education, Inc. Establishment of connection channels between complementary agents
EP3356912A1 (en) * 2015-09-28 2018-08-08 Microsoft Technology Licensing, LLC Unified virtual reality platform
US9781265B2 (en) * 2015-10-07 2017-10-03 Google Inc. Systems and methods for syncing data related to voice calls via a dynamically assigned virtual phone number
US10320680B1 (en) * 2015-11-04 2019-06-11 Amazon Technologies, Inc. Load balancer that avoids short circuits
US11158000B2 (en) * 2015-12-02 2021-10-26 Michael MAZIER Method and cryptographically secure peer-to-peer trading platform
US9912571B2 (en) * 2015-12-28 2018-03-06 International Business Machines Corporation Determining a transaction parallelization improvement metric
US9842045B2 (en) * 2016-02-19 2017-12-12 International Business Machines Corporation Failure recovery testing framework for microservice-based applications
US10440042B1 (en) * 2016-05-18 2019-10-08 Area 1 Security, Inc. Domain feature classification and autonomous system vulnerability scanning
US10115400B2 (en) * 2016-08-05 2018-10-30 Sonos, Inc. Multiple voice services
US10469598B2 (en) * 2016-10-27 2019-11-05 International Business Machines Corporation Continuous cognitive cloud service maximization
JP6731326B2 (ja) * 2016-10-31 2020-07-29 ファーハット ロボティクス エービー 音声対話装置及び音声対話方法
US10666722B2 (en) * 2016-11-22 2020-05-26 Salesforce.Com, Inc. Message delivery in a distributed server environment
JP6633008B2 (ja) * 2017-02-01 2020-01-22 ファーハット ロボティクス エービー 音声対話装置及び音声対話方法
US10157359B2 (en) * 2017-02-15 2018-12-18 International Business Machines Corporation Service device feedback
US10368147B2 (en) * 2017-02-15 2019-07-30 Schweitzer Engineering Laboratories, Inc. Service availability monitor
WO2018169372A1 (en) * 2017-03-17 2018-09-20 Samsung Electronics Co., Ltd. Method and system for routine disruption handling and routine management in a smart environment
US11183181B2 (en) * 2017-03-27 2021-11-23 Sonos, Inc. Systems and methods of multiple voice services
US10686865B2 (en) * 2017-04-10 2020-06-16 Ayla Networks, Inc. Third-party application control of devices in an IoT platform
US10282166B2 (en) * 2017-05-03 2019-05-07 The Reverie Group, Llc Enhanced control, customization, and/or security of a sound controlled device such as a voice controlled assistance device
US10176808B1 (en) * 2017-06-20 2019-01-08 Microsoft Technology Licensing, Llc Utilizing spoken cues to influence response rendering for virtual assistants
US10585991B2 (en) * 2017-06-29 2020-03-10 Microsoft Technology Licensing, Llc Virtual assistant for generating personalized responses within a communication session
US11263628B2 (en) * 2017-07-18 2022-03-01 Visa International Service Association Fallback authorization routing
EP3669282B1 (en) * 2017-09-20 2022-11-02 Samsung Electronics Co., Ltd. Method and apparatus for managing a service request in a blockchain network
US10558541B1 (en) * 2017-09-22 2020-02-11 Equinix, Inc. Agent-based monitoring of network resources
US11450314B2 (en) * 2017-10-03 2022-09-20 Google Llc Voice user interface shortcuts for an assistant application
US10565312B2 (en) * 2017-10-04 2020-02-18 Motorola Mobility Llc Context-based action recommendations based on a shopping transaction correlated with a monetary deposit as incoming communications
US10749855B2 (en) * 2017-10-30 2020-08-18 Vmware, Inc. Securely managing digital assistants that access third-party applications
US10452674B2 (en) * 2017-12-07 2019-10-22 Accenture Global Solutions Limited Artificial intelligence and robotic process automation for automated data management
US10867601B2 (en) * 2018-01-17 2020-12-15 Citrix Systems, Inc. In-band voice-assistant/concierge for controlling online meetings
US10762113B2 (en) * 2018-01-31 2020-09-01 Cisco Technology, Inc. Conversational knowledge graph powered virtual assistant for application performance management
US10671471B2 (en) * 2018-02-12 2020-06-02 Ca, Inc. Topology-based feature selection for anomaly detection
US10511690B1 (en) * 2018-02-20 2019-12-17 Intuit, Inc. Method and apparatus for predicting experience degradation events in microservice-based applications
US11404057B2 (en) * 2018-02-23 2022-08-02 Accenture Global Solutions Limited Adaptive interactive voice response system
US10522143B2 (en) * 2018-02-27 2019-12-31 Microsoft Technology Licensing, Llc Empathetic personal virtual digital assistant
US10693751B2 (en) * 2018-03-12 2020-06-23 Saudi Arabian Oil Company End-to-end IT service performance monitoring
US10628289B2 (en) * 2018-03-26 2020-04-21 Ca, Inc. Multivariate path-based anomaly prediction
US11037033B2 (en) * 2018-03-26 2021-06-15 Ca, Inc. Multivariate clustering-based anomaly detection
US11018967B2 (en) * 2018-03-29 2021-05-25 Viavi Solutions Inc. Determining an end user experience score based on client device, network, server device, and application metrics
US11276396B2 (en) * 2018-05-01 2022-03-15 Dell Products, L.P. Handling responses from voice services
US10854197B2 (en) * 2018-05-01 2020-12-01 Dell Products, L.P. Handling away messages with intelligent assistance using voice services

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275641B1 (en) * 2014-09-14 2016-03-01 Speaktoit, Inc. Platform for creating customizable dialog system engines
CN106716404A (zh) * 2014-09-24 2017-05-24 甲骨文国际公司 计算机子网内的代理服务器

Also Published As

Publication number Publication date
EP3607700B1 (en) 2023-04-05
US20210117150A1 (en) 2021-04-22
US20220027124A1 (en) 2022-01-27
CN110710158A (zh) 2020-01-17
CN115346525A (zh) 2022-11-15
WO2019216877A1 (en) 2019-11-14
US11144278B2 (en) 2021-10-12
EP3607700A1 (en) 2020-02-12

Similar Documents

Publication Publication Date Title
JP7044916B2 (ja) データ送信のためのフィードバックコントローラ
US11908459B2 (en) Detection of potential exfiltration of audio data from digital assistant applications
US20220027124A1 (en) Verifying operational statuses of agents interfacing with digital assistant applications
JP2020064308A (ja) 選択的センサポーリング
JP2020129145A (ja) パケット化されたオーディオ信号の変調
US20200257853A1 (en) Verifying operational statuses of agents interfacing with digital assistant applications
US11664025B2 (en) Activation of remote devices in a networked system
US11922209B2 (en) Invoking functions of agents via digital assistant applications using address templates
US20240202235A1 (en) Coordination of overlapping processing of audio queries
KR102664371B1 (ko) 음향 기반 디지털 어시스턴트 애플리케이션에서 트리거 키워드를 검증하는 시스템 및 방법
KR20210114515A (ko) 애플리케이션 전달 서버를 통해 전달을 위한 애플리케이션 디버깅

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
GR01 Patent grant
GR01 Patent grant