掌桥专利:专业的专利平台
掌桥专利
首页

车辆环境中的多个数字助理协调

文献发布时间:2024-01-17 01:27:33


车辆环境中的多个数字助理协调

分案说明

本申请属于申请日为2017年10月3日的中国发明专利申请No.201780091999.7的分案申请。

背景技术

计算设备之间的网络业务数据的基于分组或其他方式的过多网络传输会妨碍计算设备正确地处理网络业务数据、完成与网络业务数据有关的操作或及时响应网络业务数据。当响应计算设备达到或超过其处理能力时,网络业务数据的过多网络传输也会使数据路由复杂化或降低响应质量,这可能导致带宽利用效率低下。过量网络传输的一部分可以包括对为无效请求的请求的传输。

发明内容

根据本公开的方面,一种选择性地调用应用以执行的系统可以包括车辆的数据处理系统。由车辆的数据处理系统执行的自然语言处理器组件可以经由接口接收输入音频信号。自然语言处理器组件可以解析输入音频信号以识别请求和对应于请求的命令。由数据处理系统执行的配置跟踪器可以识别在车辆中的数据处理系统上托管的第一数字助理应用的第一功能和经由通信地耦合到所述数据处理系统的客户端设备可访问的第二数字助理应用的第二功能。由数据处理系统执行的应用选择器可以确定第一功能或第二功能中的一个支持对应于请求的命令。应用选择器可以基于确定第一功能或第二功能中的一个支持命令,选择在数据处理系统上托管的第一数字助理应用或经由客户端设备可访问的第二数字助理应用中的一个。应用选择器可以调用基于确定第一功能或第二功能中的一个支持命令而选择的第一数字助理应用或第二数字助理应用中的一个。

根据本公开的方面,一种用于验证车辆功能的方法可以包括由车辆的数据处理系统执行的自然语言处理器组件经由接口接收输入音频信号。该方法可以包括自然语言处理器组件解析输入音频信号以识别请求和对应于请求的命令。该方法可以包括由数据处理系统执行的配置跟踪器识别在车辆中的数据处理系统上托管的第一数字助理应用的第一功能和经由通信地耦合到所述数据处理系统的客户端设备可访问的第二数字助理应用的第二功能。该方法可以包括由数据处理系统执行的应用选择器确定第一功能或第二功能中的一个支持对应于请求的命令。该方法可以包括由应用选择器基于确定第一功能或第二功能中的一个支持命令,选择在数据处理系统上托管的第一数字助理应用或经由客户端设备可访问的第二数字助理应用中的一个。该方法可以包括应用选择器调用基于确定第一功能或第二功能中的一个支持命令而选择的第一数字助理应用或第二数字助理应用中的一个。

在下文中,详细讨论这些和其他方面以及实施方式。前述信息和以下详细描述包括各种方面和实施方式的示例性示例,并且提供用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供了对各个方面和实施方式的说明和进一步理解,以及包含在本说明书中并构成本说明书的一部分。

附图说明

附图不旨在按比例绘制。各附图中相似的附图标记和名称指示相似的元件。为清楚起见,可以并非在每个附图中标记每个组件。在附

图中:

图1示出了用于选择性地调用应用以执行的示例系统。

图2示出了车辆的俯视图,并且示出了图1中所示的车辆的内饰。

图3示出了使用图1示出的示例系统来选择性地调用应用以执行的方法。

图4是示例计算机系统的框图。

具体实施方式

以下是对与选择性地调用应用以在车辆环境中执行的方法、装置和系统有关的各种概念及其实施方式的更详细的描述。车辆环境可以包括车辆及其周围环境包括车辆周围的半径(例如100英尺),以及通过有线或无线电子通信系统连接到车辆的设备。可以以许多方式中的任何一种来实现上文介绍和下文更详细讨论的各种概念。

本公开一般地针对一种用于选择性地调用应用以在车辆环境中执行的数据处理系统。本文描述的系统和方法可以包括车辆中的数据处理系统,该数据处理系统可以接收音频输入查询,该音频输入查询在本文中也可以被称为音频输入信号。从该音频输入查询,数据处理系统可以识别请求。该请求可以对应于执行各种功能诸如车辆功能(例如,打开窗或激活挡风玻璃刮水器)或非车辆功能(例如,拨打电话或访问日历)中的一个的命令。数字助理应用可以携带、获取、响应或处理从音频输入查询中提取的命令。数字助理应用可以是在数据处理系统、车辆和经由云与数据处理系统连接的客户端设备(例如,智能电话、平板计算机、膝上型计算机、桌面型计算机等)上执行的程序或脚本。数字助理应用可以接收音频输入查询、使用自然语言处理算法处理与这些查询相关联的请求,然后以对话方式呈现音频响应。

可能有多个车辆环境中可用的数字助理应用,每个应用具有用于执行所请求的命令的各种功能。某些命令可以由车辆中的数据处理系统上托管的主数字助理应用执行,而其他命令可以由可经由客户端设备(例如,智能电话或平板计算机)访问的次级数字助理应用执行。客户端设备和数据处理系统已经彼此建立了通信链路。即使使用可以在数据处理系统上或通过客户端设备执行的命令,也可以在一个数字助理应用上相对于其他数字助理应用更快地或更有效地执行一些命令,因为这些命令可以通过网络访问来执行。但是,在车辆环境中,与网络的连接性受限。车辆本身上的数据处理系统可能未连接到网络。另外,客户端设备可以移入和移出无线网络的范围。这样,主或次级数字助理应用的功能可能会改变。

为了执行所识别的命令,数据处理系统可以识别车辆中托管的主数字助理应用的功能以及经由客户端设备可访问的次级数字助理应用的功能。通过所识别的两个应用的功能,数据处理系统可以确定哪个数字助理应用支持如在音频输入查询中所请求的命令。基于该确定,数据处理系统可以选择在执行所请求的命令时使用主或次级数字助理应用中的哪一个。一旦选择,数据处理系统可以调用相应的数字助理应用。当选择主数字助理应用时,数据处理系统可以经由主数字助理应用执行所请求的命令。相反,当选择次级数字助理应用时,数据处理系统可以经由通信链路将命令发送到客户端设备,以使用次级数字助理应用执行所请求的命令。

本解决方案可以通过选择适当的数字助理应用来执行包含在听觉数据分组中的请求的命令来提高听觉数据分组处理的效率和有效性。由于功能可能在多个数字助理应用之间变化,因此本解决方案还可以通过选择比其他应用更有效地执行命令的数字助理应用来减少网络带宽和计算资源消耗。从人机交互(HCI)的角度来看,选择性调用多个数字助理应用中的一个的无缝过渡可以提高车辆环境中可用的所有数字助理应用的效用。

图1示出了示例系统100,以选择性地调用应用以在车辆环境中执行。系统100可以包括至少一个数据处理系统102、一个或多个客户端设备132以及一个或多个车辆144。一个或多个客户端设备132可以通信地耦合到一个或多个车辆144,反之亦然。至少一个数据处理系统102、一个或多个客户端设备132以及一个或多个车辆144可以经由网络146彼此通信地耦合。

数据处理系统102可以包括接口104。数据处理系统102可以包括自然语言处理器(NLP)组件106以解析基于音频的输入。数据处理系统102可以包括接口管理组件108,以检测和管理系统100中的其他设备的接口。数据处理系统102可以包括音频信号生成器组件110,以生成基于音频的信号。数据处理系统102可以包括直接动作应用编程接口(API)112。数据处理系统102可以包括响应选择器组件114,以选择对基于音频的输入信号的响应。NLP组件106、接口管理组件108、音频信号生成器组件110、数据储存库122、直接动作API 112和响应选择器组件114可以是数字助理应用142的一部分。数据处理系统102可以包括数据储存库122。数据储存库122可以存储参数124、策略126、响应数据128和模板130。数据处理系统102还可以包括配置跟踪器组件116、应用选择器组件118和性能评估器组件120等。

数据处理系统102的功能诸如数字助理应用142可以被包括在一个或多个客户端设备132和一个或多个车辆144中,或者可以以其他方式从一个或多个客户端设备132和一个或多个车辆144可访问。数据处理系统102的功能可以对应于在客户端设备132或车辆144上执行的数字助理应用142的功能或接口。客户端设备132可以每个包括并执行数字助理应用142的一个或多个组件的单独实例。客户端设备132可以以其他方式经由网络146访问远程数据处理系统102上的数字助理应用142的组件的功能。例如,客户端设备132可以包括NLP组件106的功能,并且经由到数据处理系统102的网络146访问数字助理应用142的其余组件。车辆144可以包括并执行数据处理系统102的组件的单独实例,诸如数字助理应用142、配置跟踪器组件116、应用选择器组件118和性能评估器组件120。例如,数字助理应用142可以被预安装在车辆144的头部单元(head unit)上。在客户端设备132和车辆144上可访问或执行的数字助理应用142可以每个具有不同的功能。

客户端设备132和车辆144可以每个包括至少一个逻辑设备,诸如具有处理器以经由网络146与数据处理系统102相互通信的计算设备。客户端设备132和车辆144可以包括关于数据处理系统102描述的任何组件的实例。客户端设备132和车辆144可以包括数字助理应用142的实例。客户端设备132可以包括桌面型计算机、膝上型计算机、平板计算机、个人数字助理、智能电话、移动设备、便携式计算机、瘦客户端计算机、虚拟服务器、基于扬声器的数字助理或其他计算设备。车辆144可以是汽车、卡车、摩托车、飞机、飞艇、船、潜艇或其他运输设备。车辆144可以包括一个或多个处理器,该处理器可以执行数字助理应用142或其任何组件的实例。处理器可以是设置在车辆144中的头部单元,例如汽车中的头部单元的组件。

系统100的组件可以通过网络146进行通信。在一些实施方式中,一个或多个客户端设备132可以位于车辆144的实例内。例如,客户端设备132可以是驾驶车辆144的驾驶员的移动电话。在一些实施方式中,一个或多个客户端设备132可以远离车辆144。例如,在驾驶员停车并离开车辆144去工作之后,驾驶员的移动电话可以远离车辆144。

网络146可以包括例如点对点网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光网络)网络、SDH(同步数字体系)网络、NFC(近场通信)网络、局域网(LAN)、无线网络或有线网络及其组合。网络146可以包括无线链路,诸如红外信道或卫星频带。网络146的拓扑可以包括总线、星形或环形网络拓扑。网络146可以包括使用用于在移动设备之间进行通信的任何一种或多种协议的移动电话网络,包括高级移动电话协议(AMPS)、时分多址(TDMA)、码分多址(CDMA)、全球移动通信系统(GSM)、通用分组无线服务(GPRS)或通用移动电信系统(UMTS)。可以经由不同的协议传输不同类型的数据,或者可以经由不同的协议传输相同类型的数据。

网络146可以包括使用蓝牙、低功耗蓝牙、专用短程通信(DSRC)或近距离通信(NFC)协议在客户端设备132与车辆144之间建立的短程通信链路(例如,距离可达30米)。使用这样的协议,数据处理系统102可以经由接口104与一个或多个客户端设备132建立通信链路。数据处理系统102可以经由接口104与一个或多个车辆144建立通信链路。可以经由配对协议,在客户端设备132与车辆144之间建立短程通信链路。

客户端设备132可以包括传感器134、扬声器136、外围设备138、接口104和换能器140。客户端设备132可以执行数字助理应用142的实例。车辆144可以包括传感器134、扬声器136、外围设备138、接口104和换能器140。车辆144可以执行NLP组件106的实例。客户端设备132的外围设备138可以包括用户输入/输出设备诸如键盘、监视器和耳机等。车辆144的外围设备138可以包括任何其他设备,诸如车库门开启器、窗户开启器、乘客门开启器、行李箱开启器、多媒体设备播放器和温度控制等。

客户端设备132和车辆144可以包括至少一个传感器134、至少一个换能器140、至少一个音频驱动器和至少一个扬声器136。传感器134可以包括麦克风或音频输入传感器。传感器134还可以包括GPS传感器、接近传感器、环境光传感器、温度传感器、运动传感器、加速度计或陀螺仪中的至少之一。该传感器可以包括占用或重量传感器。换能器140可以将音频输入转换成电子信号。音频驱动器可以包括由客户端设备132或车辆144的一个或多个处理器执行的脚本或程序以控制扬声器136。扬声器136可以通过将电信号转换为可听波来渲染音频信号。

客户端设备132和车辆144可以与终端用户相关联,该终端用户将语音查询作为输入音频信号(经由传感器134)输入到客户端设备132或车辆144中,并且接收以可以从数据处理系统102提供的计算机生成的语音形式的音频输出。响应于输入音频信号,客户端设备132和车辆144还可以接收动作数据结构以执行预定功能或动作。接口104可以接收数据消息或向数据处理系统102的直接动作API 112提供数据消息,并且实现系统100的组件之间的通信。客户端设备132和车辆144还可以包括用户界面,该用户界面使用户能够与系统100的组件进行交互。

数据处理系统102可以包括具有至少一个处理器的至少一个服务器。例如,数据处理系统102可以包括位于至少一个数据中心或服务器场中的多个服务器。数据处理系统102可以从音频输入信号确定请求和与该请求相关联的触发关键字。基于请求和触发关键字,数据处理系统102可以生成或选择响应数据。响应数据可以基于音频或基于文本。例如,响应数据可以包括一个或多个音频文件,这些音频文件在被渲染时提供音频输出或声波。响应数据内的数据也可以被称为内容项。除了音频内容之外,响应数据还可以包括其他内容(例如,文本、视频或图像内容)。

数据处理系统102可以包括多个逻辑上分组的服务器,并且有助于分布式计算技术。服务器的逻辑组可以被称为数据中心、服务器场或机器场。服务器还可以在地理位置上分散。数据中心或机器场可以被管理为单个实体,或者机器场可以包括多个机器场。每个机器场内的服务器可以是异构的——一个或多个服务器或机器可以根据一种或多种操作系统平台操作。数据处理系统102可以包括存放在一个或多个高密度机架系统中的、数据中心中的服务器以及例如位于企业数据中心中的相关联的存储系统。以这种方式,具有整合的服务器的数据处理系统102可以通过在本地化的高性能网络上定位服务器和高性能存储系统,提高系统的可管理性、数据安全性、系统的物理安全性和系统性能。包括服务器和存储系统并且将它们与高级系统管理工具耦合在一起的所有或一些数据处理系统102组件的集中化允许更有效地利用服务器资源,从而节省了功率和处理需求并且减少了带宽使用。数据处理系统102的每个组件可以包括至少一个处理单元、服务器、虚拟服务器、电路、引擎、代理、设备或其他逻辑设备,诸如被配置为与数据储存库122以及其他计算设备通信的可编程逻辑阵列。

数据处理系统102可以包括数据储存库122。数据储存库122可以包括一个或多个本地或分布式数据库,并且可以包括数据库管理系统。数据储存库122可以包括计算机数据存储或存储器,并且可以存储一个或多个参数124、一个或多个策略126、响应数据128和模板130等。参数124、策略126和模板130可以包括诸如关于客户端设备132、数据处理系统102和车辆144之间的基于语音的对话的规则的信息。参数124、策略126和模板130还可以包括经由接口104从另一源(例如,数据处理系统102、客户端设备132和车辆144)接收的用于另一数字助理应用142的信息。例如,存储在车辆144上托管的数字助理应用142的数据储存库122中的参数124、策略126和模板130可以包括来自可经由客户端设备132访问的数字助理应用142的数据储存库122的参数124、策略126和模板130,或反之亦然。以这种方式,不同的数字助理应用142的参数124、策略126和模板130可以彼此共享和使用。响应数据128可以包括用于音频输出或关联的元数据的内容项,以及可以是与客户端设备132的一个或多个通信对话的一部分的输入音频消息。

可以在客户端设备132或车辆144处安装与数据处理系统102相关联的应用、脚本、程序或其他组件。该应用可以使客户端设备132或车辆144能够将输入音频信号(和其他数据)传送到数据处理系统102的接口104。该应用可以使客户端设备132和车辆144驱动客户端设备132和车辆144的组件以渲染输出音频信号。

NLP组件106可以接收输入音频信号。数据处理系统102可以从客户端设备132或车辆144(例如,经由换能器140)接收包括在数据分组中的输入音频信号。第一设备可以执行NLP组件106,并且NLP组件106可以从第二设备接收输入音频信号。例如,客户端设备132可以从中接收输入音频信号,并且数据处理系统102可以执行NLP组件106。

NLP组件106可以通过将输入音频信号与所存储的代表性音频波形集进行比较并选择最接近的匹配,将输入音频信号转换为识别的文本。可以跨大的输入音频信号集生成代表性波形。一旦输入音频信号被转换成识别的文本,则NLP组件106可以将文本与例如经由学习阶段与动作或输出音频信号相关联的词匹配。

NLP组件106可以从输入音频信号识别至少一个请求或与该请求相对应的至少一个命令。该请求可以指示输入音频信号的意图或主题。该命令可以指示可能采取的动作类型。例如,NLP组件106可以解析输入音频信号以识别打开车窗或跳到音乐播放列表中的下一音频文件的至少一个请求。该命令可以包括指示要采取的动作的至少一个单词、短语、词根或部分单词,或派生词。该请求还可以包含触发器关键字。触发关键字可以与可经由客户端设备132访问或在车辆144上运行的特定数字助理应用相关联。例如,触发关键字“go”可以与经由客户端设备132可访问的数字助理应用相关联,而“ok”可以与在车辆144上运行的数字助理应用相关联。本文详述选择哪个数字助理应用来执行所指示的命令。

NLP组件106还可以确定对应于输入音频信号的请求的至少一个命令是否与车辆144的车辆功能或客户端设备132的非车辆功能有关。在从输入音频信号中提取意图、主题和命令后,NLP组件106可以将单词、短语、词根或部分单词或派生词与语义知识图进行比较。语义知识图可以指定单词、短语、词根或部分单词或与车辆功能和非车辆功能有关的派生词的集合。例如,“挡风玻璃”可以被标记为与车辆功能相关,而“电话簿”可以被标记为与非车辆功能相关。语义知识图还可以指定每个单词、词组、词根或部分单词或派生词之间的关系。语义知识图可以被维护在数据储存库122处。基于与语义知识图的比较,NLP组件106可以确定命令的单词、短语、词根或部分单词或派生词是否与车辆功能或非车辆功能有关。

响应选择器组件114可以从数据储存库122中获取信息,该信息可以存储为响应数据128的一部分。响应选择器组件114可以查询数据储存库122以例如从响应数据128中选择或以其他方式识别响应短语或内容项。

音频信号生成器组件110可以生成或以其他方式获得包括内容项的输出信号。数据处理系统102可以执行音频信号生成器组件110以生成或创建对应于内容项或请求的输出信号。例如,一旦履行请求,音频信号生成器组件110就可以生成包括短语“动作已完成”的音频输出信号。

接口104可以是使系统100的组件能够彼此通信的数据接口或网络接口。数据处理系统102的接口104可以经由网络146向客户端设备132或车辆144提供或发送包括动作数据结构、音频信号或其他数据的一个或多个数据分组。例如,数据处理系统102可以将来自数据储存库122或音频信号生成器组件110的输出信号提供给客户端设备132。数据处理系统102还可以经由数据分组传输来指示客户端设备132或车辆144执行动作数据结构中指示的功能。可以从数据处理系统102(或其他计算设备)获得或生成输出信号,或该输出信号变换为一个或多个数据分组(或其他通信协议),或将该输出信号作为一个或多个数据分组(或其他通信协议)从数据处理系统102(或其他计算设备)传送到客户端设备132或车辆144。

数据处理系统102的直接动作API 112可以基于例如请求来生成动作数据结构。动作数据结构可以包括用于执行指定动作以履行请求的数据或指令。在一些实施方式中,动作数据结构可以是JSON格式的数据结构或XML格式的数据结构。在应用选择器组件118调用之前,可以阻止直接动作API 112执行请求中指定的动作。在下文中,说明与直接动作API112有关的应用选择器组件118的功能的细节。

取决于请求中指定的动作,直接动作API 112可以执行识别履行请求所需的参数的代码或对话脚本。可以响应于请求来生成动作数据结构。动作数据结构可以被包括在发送到客户端设备132或车辆144或由客户端设备132或车辆144接收的消息中。基于由NLP组件106解析的请求,直接动作API 112可以确定消息应当被发送到客户端设备132或车辆144中的哪一个以进行处理。在下文中,参考应用选择器组件118,详述选择客户端设备132还是车辆144来处理消息。直接动作API 112可以将请求打包成动作数据结构,以传输到车辆144。直接动作API 112可以从响应数据128访问车辆ID,以确定哪一车辆与生成该请求的用户相关联。一旦接收到,车辆144就可以处理动作数据结构并且可以执行所指示的动作。直接动作API 112还可以将请求打包成动作数据结构,以由客户端设备132执行。一旦接收到,客户端设备132就可以使用数字助理应用142或在客户端设备132上运行的一个或多个应用来处理动作数据结构。

动作数据结构可以包括用于完成该请求的信息。例如,动作数据结构可以是XML或JSON格式的数据结构,其包括在完成或以其他方式履行请求中使用的属性。属性可以包括车辆144的位置、客户端设备132的位置、与客户端设备132相关联的用户的授权级别、车辆标识符、接口标识符、车辆状态或请求状态。在一些实施方式中,请求状态包括在履行动作之前应当满足的一个或多个属性。例如,利用请求“好,换首歌曲”,请求状态可以具有属性{请求者:[授权,乘客]},指示该请求应当是明确授权的用户或车辆中的乘客。

直接动作API 112可以从储存库122检索模板126,以确定哪些字段或属性要包括在动作数据结构中。直接动作API 112可以确定必要的参数,并且可以将信息打包成动作数据结构。直接动作API 112可以从储存库122检索内容以获得关于数据结构的属性的信息。

直接动作API 112可以用来自输入音频信号的数据填充字段。直接动作API 112还可以用来自客户端设备132或车辆144或来自另一源的数据填充字段。当填充字段时,直接动作API 112可以提示用户提供其他信息。模板130可以针对不同类型的动作标准化,诸如通过车辆的头部单元播放媒体文件、响应消息以及执行车辆144内的功能。动作数据结构最初可以由远程数据处理系统102执行的直接动作API 112生成。远程数据处理系统102可以将动作数据结构发送到车辆144的数据处理系统102,其可以向动作数据结构添加字段和属性。

直接动作API 112可以从数据储存库122获取响应数据128(或参数124或策略126),以及在终端用户许可下从客户端用户132接收的数据,以确定位置、时间、用户账户以及逻辑或其他信息,以便从汽车共享服务预订汽车。响应数据128(或参数124或策略126)可以被包含在动作数据结构中。当动作数据结构中包括的内容包括用于认证的终端用户数据时,可以在将数据存储在数据储存库122中之前通过哈希函数传递该数据。

数据处理系统102可以包括配置跟踪器组件116、与配置跟踪器组件116对接或以其他方式与配置跟踪器组件116通信。配置跟踪器组件116可以托管在车辆144上并从车辆144执行。配置跟踪器组件116可以识别每个数字助理应用的功能。配置跟踪器组件116可以识别在客户端设备132上运行或可经由客户端设备132访问的每个数字助理应用142。配置跟踪器组件116可以识别在车辆144上运行的每个数字助理应用142。客户端设备132可以(例如,经由网络146或经由短程通信链路)通信地耦合到数据处理系统102或车辆144。通过所建立的通信链路,可以防止从车辆144可访问的每个数字助理应用142诸如在车辆144上运行的数字助理应用142和可经由客户端设备132访问的数字助理应用142执行由该命令指定的动作直到该命令被应用选择器组件118调用为止。另外,也可以禁用客户端设备132处的换能器140,直到由应用选择器组件118调用数字助理应用142为止。在下文中,说明应用选择器组件118的功能的细节。

车辆144上托管的数字助理应用142(有时称为“主数字助理应用”)的功能可能不同于可经由客户端设备132访问的数字助理应用142(有时称为“次级数字助理应用”)的功能。例如,安装在车辆144上的数字助理应用142可以激活车辆144上的各种功能,诸如打开门、打开挡风玻璃或改变温度控制。另一方面,可以通过客户端设备132访问的数字助理应用142可以执行其他功能,诸如拨打电话或访问日历。对于不同于在车辆144上托管的数字助理应用142的功能的、可经由客户端设备132访问的数字助理应用142的功能,数字助理应用142中的一个可能能够更快或更有效地执行该功能。

配置跟踪器组件116可以识别可经由客户端设备132访问的每个数字助理应用142的功能。可以存在经由多个客户端设备132可访问的多个数字助理应用142。配置跟踪器组件116可以识别数字助理应用142的应用简档。该应用简档可以包括用于数字助理应用142的元数据,并且可以指示该应用的名称和类型。配置跟踪器组件116可以识别数字助理应用142的版本号。配置跟踪器组件116可以识别客户端设备132与车辆144或与外部网络(例如,网络146)的连接性,以访问远程数据处理系统102。配置跟踪器组件116可以识别由数字助理应用142支持或使用的一个或多个例程或过程(例如,应用编程接口(API)调用)。配置跟踪器组件116可以识别与客户端设备132连接的一个或多个外围设备138。一个或多个外围设备138可以包括连接到客户端设备132的输入/输出设备,诸如监视器、键盘和读卡器等。配置跟踪器组件116可以识别客户端设备132上的计算资源(例如,CPU时间、剩余电池寿命或存储器使用)的消耗,通过该客户端设备132访问数字助理应用142。

配置跟踪器组件116可以识别车辆144上托管的数字助理应用142的功能。配置跟踪器组件116可以识别数字助理应用142的应用简档。该应用简档可以包括用于数字助理应用142的元数据,并且可以指示该应用的名称和类型。配置跟踪器组件116可以识别数字助理应用142的版本号。车辆144上托管的数字助理应用142的版本号可以不同于可经由客户端设备132访问的数字助理应用142的版本号。配置跟踪器组件116可以识别车辆144与客户端设备132或与用于访问远程数据处理系统102的外部网络(例如,网络146)的连接性。配置跟踪器组件116可以识别由数字助理应用142支持或使用的一个或多个例程或过程(例如,应用编程接口(API)调用)。配置跟踪器组件116可以识别与车辆144对接的一个或多个外围设备138。一个或多个外围设备138可以包括可由从车辆144运行的数字助理应用142访问的、车辆144中的各种设备,诸如温度控制、乘客开门器、行李箱开门器、车库门开门器、方向盘和多媒体设备等。配置跟踪器组件116可以识别托管数字助理应用142的车辆144处的计算资源(例如,CPU时间、剩余电池寿命、存储器使用等)的消耗。

数据处理系统102可以包括应用选择器组件118,与应用选择器组件118对接或以其他方式与应用选择器组件118通信。应用选择器组件118可以被托管在车辆144上并从车辆144执行。应用选择器组件118可以确定可经由客户端设备132访问的数字助理应用142的功能或车辆144上托管的数字助理应用142的功能是否可以支持与该请求相对应的命令。应用选择器组件118可以识别由NLP组件106处理的命令指定的动作。应用选择器组件118可以解析由直接动作API 112生成的动作数据结构以识别指定的动作。

为了确定数字助理应用142支持(或不支持)特定的动作,应用选择器组件118可以将可经由客户端设备132访问的数字助理应用142的操作能力或功能与由该命令指定的动作进行比较。应用选择器组件118还可以比较车辆144上托管的数字助理应用142的操作能力或功能。应用选择器组件118可以基于因素的组合来确定数字助理应用142的功能可以支持由该命令指定的动作。应用选择器组件118可以确定对应于数字助理应用142的一个或多个例程或过程的动作与由该命令指定的动作相对应。响应于该确定,应用选择器组件118可以确定数字助理应用142的功能支持该动作。应用选择器组件118可以确定经由外部网络执行由命令指定的动作。响应于该确定,当访问外部网络(例如,网络146)时,应用选择器组件118可以确定数字助理应用142的功能支持该动作。应用选择器组件118可以确定经由特定外围设备138执行由该命令指定的动作。响应于该确定,应用选择器组件118可以识别特定外围设备138是否与客户端设备132连接,以及特定外围设备138是否与车辆144连接。应用选择器组件118可以确定由特定类型的应用(例如,车辆144上的数字助理应用142或客户端设备132上的数字助理应用142)执行由该命令指定的动作。响应于该确定,应用选择器组件118可以确定数字助理应用142的应用简档是否是可以执行指定动作的应用的类型。

基于确定各个数字应用142的功能,应用选择器组件118可以选择可经由客户端设备132访问的数字助理应用142或在车辆144上托管的数字助理应用142的功能中的一个。例如,应用选择器组件118可以将一起托管在车辆144上的数字助理应用142设置为默认数字助理应用,以及将可经由客户端设备132访问的数字助理应用142设置为次级数字助理应用。在没有次级数字助理应用的情况下,应用选择器组件118可以选择主数字助理应用以执行命令。应用选择器组件118可以确定可经由客户端设备132访问的数字助理应用142的功能可以支持该命令指定的动作。响应于该确定,应用选择器组件118可以选择可经由客户端设备132访问的数字助理应用142。应用选择器组件118可以确定存在可经由一个或多个客户端设备132访问的多个数字助理应用142。响应于确定存在多个数字助理应用14,应用选择器组件118可以选择可经由客户端设备132访问的一个数字助理应用142,其功能可以支持由该命令指定的动作。相反,应用选择器组件118可以确定车辆144上托管的数字助理应用142的功能,而不是可经由客户端设备132访问的数字助理应用142的功能可以支持由该命令指定的动作。响应于该确定,应用选择器组件118可以选择在车辆144上托管的数字助理应用142。

当确定可经由客户端设备132访问并且托管在车辆144上的数字助理应用142的两个功能均支持由该命令指定的动作时,数字助理应用142可以基于哪一数字助理应用142可以更快速地执行动作来选择。应用选择器组件118可以将车辆144上托管的数字助理应用142的版本号与可经由客户端设备132访问的数字助理应用142的版本号进行比较。应用选择器组件118可以选择具有更高版本号的数字助理应用142,因为对应的数字助理应用142可以是最新的。应用选择器组件118可以将车辆144处的计算资源消耗与客户端设备132处的计算资源消耗进行比较。应用选择器组件118可以基于哪一个具有较低计算资源消耗来选择客户端设备132或车辆144,因为当计算资源消耗较低时,由命令指定的动作很可能被更快地执行。

应用选择器组件118还可以基于其他因素来选择可经由客户端设备132访问的数字助理应用142或在车辆144上托管的数字助理应用142的功能。这些其他因素可以基于确定哪一数字助理应用142可以支持由该命令指定的动作来推翻选择。应用选择器组件118还可以基于经由车辆输入接口的输入选择可经由客户端设备132访问的数字助理应用142或托管在车辆144上的数字助理应用142。车辆输入接口可以是连接至车辆144的外围设备138中的一个,诸如方向盘上的按钮或车辆144中的中控面板上的触摸屏。例如,选择可以基于在车辆144的方向盘上的按钮上按下按钮的长度。应用选择器组件118可以确定按钮按下的长度大于或等于预定阈值(例如5秒)。响应于该确定,应用选择器组件118可以选择车辆144上托管的数字助理应用142。应用选择器组件118可以确定按钮按下的长度短于预定阈值。响应于该确定,应用选择器组件118可以选择可经由客户端设备132访问的数字助理应用142。触摸屏上的交互的位置还可以被用来选择可经由客户端设备132访问的数字助理应用142或车辆144上托管的数字助理应用142。

应用选择器组件118还可以基于在音频输入信号中识别的触发关键字来选择可经由客户端设备132访问的数字助理应用142或车辆144上托管的数字助理应用142的功能。应用选择器组件118可以将触发关键字与相应的数字助理应用148相关联的关键字集合进行比较。基于从音频输入信号中检测到的触发词与相关关键字集合的比较,应用选择器组件118可以选择相应的数字助理应用148。例如,在车辆144中可能存在两个客户端设备132,其具有与不同的触发关键字相关联的相应的数字助理应用148。触发词“okay”可以与第一客户端设备132上的数字助理应用148相关联,而触发词“hey”可以与第二客户端设备132上的数字助理应用148相关联。使用该关键字集合,当接收到包括“hey”的音频输入信号时,应用选择器组件118可以选择第二客户端设备132上的数字助理应用148。

应用选择器组件118还可以基于命令是否与车辆功能有关,选择可经由客户端设备132访问的数字助理应用142或车辆144上托管的数字助理应用142的功能。如上所述,NLP组件106可以使用语义知识图来确定命令是与车辆功能还是非车辆功能有关。使用该确定,应用选择器组件118可以选择相应的数字助理应用142。应用选择器组件118可以确定该命令与车辆功能有关。响应于该确定,应用选择器组件118可以选择车辆144上托管的数字助理应用142。应用选择器组件118可以确定该命令被确定为与非车辆功能有关。响应于该确定,应用选择器组件118可以选择可经由客户端设备132访问的数字助理应用142。应用选择器组件118可以确定存在可经由一个或多个客户端设备132访问的多个数字助理应用142。响应于该确定,应用选择器组件118可以选择可经由客户端设备132访问的一个数字助理应用142,其功能可以支持由被识别为与非车辆功能相关的命令指定的动作。

应用选择器组件118可以确定存在可访问的多个数字助理应用142,其功能可以支持由命令指定的动作。响应于该确定,应用选择器组件118可以基于质量得分来选择数字助理应用142中的一个。这些多个数字助理应用142可以包括可经由一个或多个客户端设备132访问的数字助理应用142和车辆144上托管的数字助理应用142。数据处理系统102可以包括性能评估器组件120、与性能评估器组件120对接连接、或以其他方式与性能评估器组件120通信。性能评估器组件120可以基于任何数量的因素来确定可经由一个或多个客户端设备132访问的每个数字助理应用142的质量得分。性能评估器组件120可以基于反馈指示符来确定质量得分。反馈指示符可以是代表用户对询问有关与数字助理应用142的交互的质量的提示的响应的数值。为了获得反馈指示符,可经由客户端设备132访问的数字助理应用142可以在显示数字助理应用142的客户端设备132上显示询问关于交互的质量的提示。在车辆144上托管的数字助理应用142或性能评估器组件120还可以在显示数字助理应用142的车辆144上显示询问交互的质量的提示。该提示可以包括一个或多个用户界面元素(例如,按钮、单选按钮、复选框等),每个都指示交互的质量。一旦在提示上的用户界面元素的一个上检测到交互事件,性能评估器组件120就可以识别与交互质量相对应的反馈指示符。性能评估器组件120可以使用反馈指示符来确定质量得分。

性能评估器组件120还可以基于来自应用分发平台的评分来确定每个数字助理应用142的质量评分。应用分发平台可以在可经由网络146访问的外部服务器上运行。外部服务器可以托管诸如数字助理应用142的应用,以供客户端设备132或车辆144下载。应用分发平台的外部服务器可以存储所有数字助理应用142的评分。从外部服务器上运行的应用分发平台,性能评估器组件120可以针对被识别为可经由客户端设备132访问或托管在车辆144上的每个数字助理应用142,识别评分。当具有与网络146的连接性时,性能评估器组件120可以将对评分的请求发送到外部服务器。使用每个数字助理应用142的评分,性能评估器组件120可以确定相应数字助理应用142的质量得分。

性能评估器组件120还可以运行自动测试评估,以确定相应的数字助理应用142的质量得分。可以使用与数字助理应用142接口的应用或性能评估器组件120来执行自动测试评估。自动测试评估可以包括一组音频输入信号刺激和用于音频输入信号刺激的相应的预期动作数据结构。自动测试评估可以与数字助理应用142的执行同时运行。在执行时,自动测试评估可以将每个音频输入信号激励馈送到数字助理应用142中。自动测试评估可以识别由数字助理应用142生成的动作数据结构。自动测试评估可以将数字助理应用142生成的动作数据结构与预期动作数据结构进行比较。通过比较,自动测试评估可以识别两个动作数据结构之间的匹配的数量和不匹配的数量。基于匹配的数量和不匹配的数量,性能评估器组件120可以确定数字助理应用142的质量得分。

一旦确定了每个数字助理应用142的质量得分,应用选择器组件118就可以选择具有支持命令指定的动作的功能的具有最高质量得分的数字助理应用142。质量得分可以基于反馈指示符、评分和自动测试评估的任意组合。应用选择器组件118可以识别其功能可以支持该命令指定的动作的数字助理应用142的子集。从数字助理应用142的子集中,应用选择器组件118可以识别具有如由性能评估器组件120确定的最高质量得分的数字助理应用142。

应用选择器组件118可以调用基于确定数字助理应用142的功能可以支持由命令指定的动作而选择的数字助理应用142。为了调用选择的数字助理应用142,应用选择器组件118可以识别与命令相对应的动作数据结构。应用选择器组件118可以调用所选数字助理应用142的直接动作API 112以执行和处理与音频输入信号中的命令相对应的动作数据结构。应用选择器组件118可以确定所选择的数字助理应用142可以经由客户端设备132访问。响应于该确定,应用选择器组件118可以将对车辆144的输入接口(例如,传感器134、接口104、换能器140和其他外围设备138)的控制分配给客户端设备132。例如,命令可以是在客户端设备132上播放音频文件,并且可以经由客户端设备132访问所选择的数字助理应用142。为了执行命令,应用选择器组件118可以将来自车辆144的扬声器136的控制分配给可经由客户端设备132访问的数字助理应用142(有时在这种情况下被称为“引入的数字助理应用”),以便从车辆144的扬声器136播放音频。

在调用选定的数字助理应用142时,应用选择器组件118可以使用来自未选择的数字助理应用142的应用数据。应用选择器组件118可以访问未选择的数字助理应用142的数据储存库122,以检索参数124、策略126、响应数据128、模板130和其他信息(例如,电话号码、日历事件等)。例如,当命令指定的动作是呼叫特定电话号码时,应用选择器组件118可以从在第一客户端设备132上运行的未选择的数字助理应用142(或另一个应用)中检索电话号码。应用选择器组件118可以将检索到的应用数据存储在本地数据储存库122中。在调用之前,应用选择器组件118可以修改动作数据结构以包括从未选择的数字助理应用142检索到的应用数据。然后,应用选择器组件118可以使用由从未选择的数字助理应用142检索到的应用数据修改的直接动作结构来调用所选择的数字助理应用142的直接动作API 112。继续前面的示例,应用选择器组件118可以调用可经由第二客户端设备132访问的所选择的数字助理应用142,以使用从第一客户端设备132检索到的电话号码进行电话呼叫。

图2示出了车辆144的俯视图,并且示出了车辆144的内饰。在车辆环境200中,车辆144的内饰可以包括四个座位、多个扬声器136以及两个客户端设备132(1)和132(2)。两个客户端设备132(1)和132(2)可能已经由车辆144的一个或多个乘客携带。车辆144还可以包括头部单元202。头部单元202可以执行关于数据处理系统102描述的一个或多个组件,诸如数字助理应用142(1)、配置跟踪器组件116、应用选择器组件118和性能评估器组件120。客户端设备132(1)可以执行或使得可访问关于数据处理系统102描述的一个或多个组件,诸如数字助理应用142(2)。客户端设备132(2)也可以执行或使得可访问关于数据处理系统102描述的一个或多个组件,诸如数字助理应用142(3)。客户端设备132(1)和132(2)可以已经与头部单元202建立了通信链路(例如,经由配对)。

参考图1,尤其,车辆144内的换能器140可以检测由车辆144内的乘客发出的音频输入信号。在检测到音频输入信号时,从车辆144的头部单元202操作的NLP组件106可以解析音频输入信号以识别命令。使用从音频输入信号解析的命令,在车辆144的头部单元202中运行的直接动作API 112可以生成动作数据结构。动作数据结构可以包括用于执行指定动作以履行命令的数据或指令。

从车辆144的头部单元202操作的配置跟踪器组件116可以识别在头部单元202上运行或与头部单元202通信的各个数字助理应用141(1)-(3)。数字助理应用141(1)-(3)可以具有不同的功能。例如,在头部单元202中运行的数字助理应用141(1)可以支持车辆有关的命令(例如“弹出后备箱”),而客户端设备132(1)的数字助理应用141(2)和客户端设备132(2)的数字助理应用141(2)可以支持与车辆无关的命令(例如,“播放歌曲”)。配置跟踪器组件116可以识别每个所识别的数字助理应用141(1)-(3)的一个或多个功能,诸如应用简档、版本号、与网络146或车辆144的连接性、外围设备138、计算资源消耗和支持的例程等。

在识别数字助理应用141(1)-(3)的功能之后,应用选择器组件118可以确定哪些数字助理应用141(1)-(3)可以支持命令指定的动作。应用选择器组件118可以基于哪些数字助理应用支持由命令指定的动作来选择数字助理应用141(1)-(3)。当两个或更多个数字助理应用141(1)-(3)可以支持命令指定的动作时,应用选择器组件118可以使用其他因素诸如版本号和计算资源消耗等来选择数字助理应用141(1)-(3)中的一个。一旦确定,应用选择器组件118可以通过调用相应的直接动作API 112来调用所选择的数字助理应用141(1)-(3)以根据所生成的动作数据结构执行。当来自一个数字助理应用141(2)的应用数据将由所选择的数字助理应用141(3)使用时,可以将该应用数据从所选择的数字助理应用141(2)传送到未选择的数字助理申请141(3)。应用选择器组件118可以使用所传送的数据结构来修改数据结构。可以调用直接动作API 112以执行由命令指定的动作。

图3示出了示例方法300,其选择性地调用应用以执行。方法300可以由上文结合图1和图2描述的系统100或下文结合图4描述的系统400来实现或执行。方法300可以包括接收音频信号(框305)。方法300可以包括解析音频信号以识别命令(框310)。方法300可以包括生成动作数据结构(框315)。方法300可以包括识别数字助理应用的功能(框320)。方法300可以包括确定该功能支持该命令(框325)。方法300可以包括选择数字助理应用(框330)。方法300可以包括调用所选择的数字助理应用(框335)。

方法300可以包括接收音频信号(框305)。数据处理系统可以接收输入音频信号。例如,由数据处理系统执行的NLP组件可以接收输入音频信号。数据处理系统(和NLP组件)可以是客户端设备、车辆的组件或以其他方式由客户端设备、车辆执行,或者可以是独立设备。客户端设备或车辆上的传感器诸如麦克风可以检测输入音频信号,然后相应的客户端设备或车辆可以将输入音频信号发送到数据处理系统。例如,在客户端设备上执行的应用可以检测到用户说“好的,打开天窗”。可以将检测到的话语编码为输入音频信号,然后传送到数据处理系统或车辆的NLP组件。

方法300可以包括解析音频信号以识别命令(框310)。NLP组件可以解析输入音频信号,以识别输入音频信号中的请求。NLP组件可以识别与该请求相关联的车辆。NLP组件可以识别与请求和车辆相关联的履行接口。履行接口可以是将执行动作数据结构以履行输入音频信号的请求的客户端设备或车辆中的一个的接口。

在上述示例中,请求可以是打开天窗。在该示例中,履行接口可以是包括天窗的车辆的接口。在一些实施方式中,可以在输入音频信号中明确规定车辆。例如,用户可以给他的车辆指定昵称(例如,用户可以将他的红色Toyota Camry命名为“红色汽车”)。当明确指出时,输入音频信号可以是“好的,打开我的红色汽车的天窗”。在一些实施方式中,数据处理系统可以确定与用户账户关联的哪些车辆可以执行该动作。例如,用户的红色汽车可能包括天窗,而用户的蓝色汽车可能没有。在接收到输入音频信号“好的,打开天窗”后,数据处理系统可以自动选择用户的红色轿车。在一些实施方式中,数据处理系统可以要求用户确认车辆。

方法300可以包括生成动作数据结构(框315)。直接动作API可以生成可以由客户端设备或车辆传送和处理的数据结构,以履行输入音频信号的请求。例如,继续以上示例,直接动作API可以生成用于打开用户汽车的天窗的第一动作数据结构。直接动作API可以使用从数据处理系统的数据储存库中检索到的模板来生成动作数据结构。动作数据结构可以包括用于履行请求的字段。例如,对于打开天窗的请求,动作数据结构可以包括用于当动作数据结构被准许时动作数据结构应当被发送至的车辆ID的字段(或属性)。

方法300可以包括识别数字助理应用的功能(框320)。例如,配置跟踪器组件可以识别车辆中的每个数字助理应用。数字助理应用可以托管在车辆本身上,也可以经由客户端设备访问。车辆中的所有数字助理应用都可以通过短程通信进行通信链接。对于所识别的每个数字助理应用,配置跟踪器组件可以识别数字助理应用的功能,诸如应用简档、版本号、与网络146或车辆144的连接性、外围设备138、计算资源的消耗以及支持的例程等。

方法300可以包括确定功能支持该命令(框325)。例如,应用选择器组件可以确定对相应的数字助理应用识别的功能是否支持该命令指定的动作。一些命令可能与车辆功能(例如,“打开天窗”)有关,而其他命令可能与非车辆功能(例如,“呼叫John”)有关。命令是与车辆功能有关还是非车辆功能有关的确定可以由NLP组件执行。应用选择器组件可以将每个数字助理应用的功能与命令指定的动作进行比较。

方法300可以包括选择数字助理应用(框330)。例如,应用选择器组件可以选择确定为能够支持该命令指定的动作的数字助理应用。当在车辆上托管的数字助理应用的功能可以支持命令指定的动作时,应用选择器组件可以选择在车辆上托管的数字助理应用,以代替经由客户端设备可访问的应用。当经由客户端设备可访问的数字助理应用的功能可以支持命令指定的动作时,应用选择器组件可以选择在车辆上托管的数字助理应用,以代替车辆上托管的应用。当两个数字助理应用都可以支持命令指定的动作时,应用选择器组件可以使用其他因素(例如,延迟或消耗的计算资源)来选择多个数字助理应用中的一个。

方法300可以包括调用所选择的数字助理应用(框335)。例如,应用选择器组件可以调用基于确定该应用可以支持命令所支持的动作选择的数字助理应用。应用选择器组件可以使用用于该命令的动作数据结构来调用所选择的数字助理应用的直接动作API。动作数据结构可以由应用选择器组件使用来自未选择的数字助理应用的应用数据来修改。

图4是示例计算机系统400的框图。计算机系统或计算设备400可以包括或用于实现系统100或其组件,诸如数据处理系统102。计算系统400包括总线405或用于传送信息的其他通信组件以及耦合到总线405以处理信息的处理器410或处理电路。计算系统400还可以包括耦合到总线的一个或多个处理器410或处理电路以处理信息。计算系统400还包括主存储器415,诸如随机存取存储器(RAM)或其他动态存储设备,其耦合到总线405以存储信息,以及要由处理器410执行的指令。主存储器415可以是或包括数据储存库122。主存储器415还可以被用于在处理器410执行指令期间存储位置信息、临时变量或其他中间信息。计算系统400可以进一步包括只读存储器(ROM)420或者其他静态存储设备,其耦合到总线405以存储用于处理器410的静态信息和指令。存储设备425诸如固态设备、磁盘或光盘可以耦合到总线405以持久存储信息和指令。存储设备425可以包括数据储存库122或者是数据储存库122的一部分。

计算系统400可以经由总线405耦合到显示器435诸如液晶显示器或有源矩阵显示器以向用户显示信息。输入设备430诸如包括字母数字键和其他键的键盘可以耦合到总线405,用于将信息和命令选择传送到处理器410。输入设备430可以包括触摸屏显示器435。输入设备430还可以包括光标控制,诸如鼠标、轨迹球或光标方向键,用于将方向信息和命令选择传送到处理器410并用于控制显示器435上的光标移动。例如,显示器435可以是图1的数据处理系统102、客户端计算设备132或其他组件的一部分。

本文描述的过程、系统和方法可以由计算系统400响应于处理器410执行包含在主存储器415中的指令的布置来实现。这样的指令可以从另一计算机可读介质诸如存储设备425读入主存储器415中。执行包含在主存储器415中的指令的布置使得计算系统400执行本文描述的示例性过程。还可以采用多处理布置中的一个或多个处理器来执行包含在主存储器415中的指令。可以使用硬连线电路,代替软件指令或与软件指令连同本文所述的系统和方法结合。本文描述的系统和方法不限于硬件电路和软件的任何特定组合。

尽管图4中已经描述了示例计算系统,但是包括本说明书中描述的操作的主题可以以其他类型的数字电子电路,或者以计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物或者它们中的一个或多个的组合实现。

对于本文讨论的系统收集关于用户的个人信息或者可以利用个人信息的情况,可以向用户提供机会以控制程序或功能部件是否可以收集个人信息(例如,关于用户的社交网络、社交动作或活动、用户的偏好或用户的位置的信息)或控制是否或如何从内容服务器或其他数据处理系统接收可能与用户更相关的内容。另外,某些数据可以在存储或使用之前以一种或多种方式匿名化,以便在生成参数时移除个人可识别信息。例如,用户的身份可以匿名化,以便不能确定用户的个人可识别信息,或者可以概括获得位置信息的用户的地理位置(例如,到市、邮政编码或州级),以便不能确定用户的具体位置。因此,用户可以控制内容服务器如何收集并且使用关于他或她的信息。

本说明书中描述的主题和操作可以以数字电子电路,或者以计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物或者它们中的一个或多个的组合实现。本说明书中描述的主题可以实现为一个或多个计算机程序,例如编码在一个或多个计算机存储介质上的计算机程序指令的一个或多个电路,用于由数据处理装置执行或控制数据处理装置的操作。替选或附加地,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,其被生成以编码信息以便传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或可以被包括在计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备,或者它们的一个或多个的组合中。虽然计算机存储介质不是传播信号,但是计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是或可以被包括在一个或多个单独的组件或介质(例如,多个CD、磁盘或其他存储设备)中。本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。

术语“数据处理系统”“计算设备”“组件”或“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,包括举例来说,可编程处理器、计算机、片上系统、或多个片上系统,或前述的组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所述的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们的一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。系统100的组件可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。

计算机程序(也称为程序、软件、软件应用、应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适用于计算环境的其他单元。计算机程序可以对应于文件系统中的文件。计算机程序可以存储在保存其他程序或数据的文件的一部分(例如,存储在标记语言文档中的一个或多个脚本)中、存储在专用于所述的程序的单个文件中,或者存储在多个协调文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。可以部署计算机程序以在一个计算机上或在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序(例如,数据处理系统102的组件)的一个或多个可编程处理器执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,包括例如半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;和CD ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

本文描述的主题可以在包括后端组件(例如作为数据服务器)或者包括中间件组件(例如应用服务器)或者包括前端组件(例如,具有通过其用户可以与本说明书中描述的主题的实施方式进行交互的图形用户界面或网络浏览器的客户端计算机)或者一个或多个这样的后端、中间件或前端组件的组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、网络间(例如,互联网)和对等网络(例如,ad hoc对等网络)。

诸如系统100或系统400的计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络(例如,网络146)进行交互。客户端和服务器的关系通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而生成。在一些实施方式中,服务器将数据(例如,表示内容项的数据分组)发送到客户端设备(例如,为了向与客户端设备交互的用户显示数据或从其接收用户输入)。可以从服务器处的客户端设备接收在客户端设备处生成的数据(例如,用户交互的结果)(例如,由数据处理系统102从客户端设备132或车辆144接收)。

虽然在附图中以特定顺序描绘了操作,但是不需要以所示的特定顺序或按顺序执行这些操作,并且不需要执行所有示出的操作。本文描述的动作可以以不同的顺序执行。

各种系统组件的分离不需要在所有实施方式中均要求分离,并且所描述的程序组件可以包括在单个硬件或软件产品中。例如,NLP组件106和直接动作API 112可以是单个组件、应用或程序,或具有一个或多个处理电路的逻辑设备,或者数据处理系统102的一个或多个服务器的一部分。

现在已经描述了一些示例性实施方式,显而易见的是,前述内容是示例性的而非限制性的,已经通过示例呈现。特别地,尽管本文呈现的许多示例涉及方法动作或系统元件的特定组合,但是这些动作和那些元件可以以其他方式组合以实现相同的目标。结合一个实施方式讨论的动作、元件和特征不旨在从其他实施方式中的类似角色中排除。

本文使用的措辞和术语是出于描述的目的,不应当被视为限制。使用“包括”、“包含”、“具有”、“含有”、“涉及”、“特征在于”、“表征为”及其变形意味着涵盖其后列出的项目、其等同物和附加项目,以及由其后列出的项目组成的替代实施方式。在一个实施方式中,本文描述的系统和方法包括一个、多于一个的每个组合或所有所描述的元件、动作或组件。

以单数形式提及的对本文的系统和方法的实施方式、元件或动作的任何引用也可以涵盖包括多个这些元件的实施方式,并且对本文的任何实施方式、元件或动作的以复数形式的任何引用也可以涵盖仅包括一个元件的实施方式。以单数或复数形式的引用并不旨在将当前公开的系统或方法、它们的组件、动作或元件限定到单个或多个配置。对基于任何信息、动作或元件的任何动作或元件的引用可以包括动作或元件至少部分地基于任何信息、动作或元件的实施方式。

本文公开的任何实施方式可以与任何其他实施方式或实施例组合,并且对“实施方式”、“一些实施方式”、“一个实施方式”等的引用不一定是相互排斥的并且旨在指示结合实施方式描述的特定特征、结构或特性可以包括在至少一个实施方式或实施例中。本文使用的这些术语不一定都指的是相同的实施方式。任何实施方式可以以与本文公开的方面和实施方式一致的任何方式包含或排他地与任何其他实施方式组合。

对“或”的引用可以被解释为包含性的,使得使用“或”描述的任何术语可以指示单个、多于一个和所描述的术语中的任何一个。对“A”和“B”中的至少一个的引用可以仅包括“A”、仅包括“B”、以及“A”和“B”。与“包括”或其他开放术语结合使用的此类引用可以包括另外的项目。

在附图、详细说明或任何权利要求中的技术特征之后是附图标记的情况下,已经包括附图标记以增加附图、详细说明和权利要求的可懂度。因此,附图标记和它们的缺失都不会对任何权利要求要素的范围具有任何限制作用。

在不脱离其特性的情况下,本文描述的系统和方法可以以其他特定形式实现。前述实施方式是示例性的而不是限制所描述的系统和方法。因此,本文描述的系统和方法的范围由所附权利要求而不是前面的描述指示,并且在此涵盖在权利要求的等同物的含义和范围内的变化。

技术分类

06120116223960