一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

使用应用模板生成和更新基于语音的软件应用的制作方法

2021-11-15 15:56:00 来源:中国专利 TAG:

使用应用模板生成和更新基于语音的软件应用


背景技术:

1.应用可以安装在计算设备上。计算设备可以执行应用。


技术实现要素:

2.本公开总体上涉及使用应用模板生成并更新基于语音的软件应用。应用开发者可能希望产生一种具有基于语音的组件的应用。终端用户可以使用这样的应用来执行广泛的功能,这些功能可能涉及应用开发者所提供的一个或多个服务。对于应用开发者而言,以高效的方式以及向终端用户呈现执行与应用相关联的功能的信息和控件的格式来创建应用可能具有挑战性。例如,可能要求应用开发者编写或以其他方式生成与应用相对应的低级计算机指令或代码,这可能是耗时且易错的过程。本公开的系统和方法可以基于应用的期望功能为应用开发者选择应用模板。应用模板可以包括一个或多个模块,每个模块对应于应用的特定功能。应用开发者可以提供与应用模板的至少一个模块的空白字段相对应的输入,并且数据处理系统可以基于从应用开发者接收到的输入以自动化方式生成应用。例如,数据处理系统可以维护对应于模块的标准化或可重新使用代码,以及可以用可定制代码填充以为应用开发者定制模块的功能的占位符或空白字段。数据处理系统可以使用应用开发者所提供的与空白字段相对应的输入来填充可定制代码并自动生成应用。此外,当对模块的标准化或可重新使用代码的更新变得可用时,数据处理系统可以基于已更新的代码和应用开发者先前所提供的输入来自动更新应用。因此,数据处理系统可以自动更新应用而无需来自应用开发者的任何附加输入或动作。结果,数据处理系统可以允许更高效地开发和自动更新软件应用。
3.至少一个方面涉及一种生成基于语音的软件应用的系统。该系统可以包括数据处理系统,该数据处理系统包括至少一个处理器和存储器。数据处理系统可以从应用开发者计算设备接收构建基于语音的软件应用的请求。数据处理系统可以基于策略和请求从多个应用模板中选择应用模板。所选择的应用模板可以包括与基于语音的软件应用的功能相对应的至少一个模块并且具有至少一个字段。数据处理系统可以将所选择的应用模板提供给应用开发者计算设备以使所选择的应用模板显示在应用开发者计算设备上。数据处理系统可以从应用开发者计算设备接收对于所选择的应用模板的至少一个模块的至少一个字段的输入。数据处理系统可以基于所选择的应用模板和对于所选择的应用模板的至少一个模块的至少一个字段的输入来生成基于语音的软件应用,以允许基于语音的软件应用响应于语音输入而执行与所选择的应用模板的至少一个模块相对应的功能。数据处理系统可以检测已更新的功能,包括对与所选择的应用模板的至少一个模块相对应的功能的更改。对功能的更改可以是由不同于应用开发者计算设备的数据处理系统的管理员计算设备提供的。数据处理系统可以响应于检测到已更新的功能而更新基于语音的软件应用,以允许基于语音的软件应用执行已更新的功能。
4.该系统的示例性可选特征可以如下。数据处理系统可以被配置成解析请求以确定基于语音的软件应用的类型。数据处理系统可以被配置成基于该类型来选择应用模板。数
据处理系统可以被配置成向应用开发者计算设备提供应用类型的列表,以使该列表被显示在应用开发者计算设备上。数据处理系统可以被配置成从应用开发者计算设备接收对多种类型中的第一类型的选择。数据处理系统可以被配置成基于该类型来选择应用模板。数据处理系统可以被配置成确定基于语音的软件应用的类型。数据处理系统可以被配置成识别未包含在所选择的应用模板中的第二模块。第二模块可以与基于语音的软件应用的第二功能相对应。数据处理系统可以被配置成修改所选择的应用模板以生成经修改的应用模板。数据处理系统可以被配置成将经修改的应用模板提供给应用开发者计算设备,以使经修改的应用模板被显示在应用开发者计算设备上。数据处理系统可以被配置成确定基于语音的软件应用的类型。数据处理系统可以被配置成识别具有相同类型的第二基于语音的软件应用。数据处理系统可以被配置成基于第二基于语音的软件应用的第二功能来选择应用模板。数据处理系统可以被配置成解析请求以确定意图。数据处理系统可以被配置成识别与意图相关联的多个模块。数据处理系统可以被配置成基于与意图相关联的所识别的多个模块与所选择的应用模板的至少一个模块之间的重叠来选择应用模板。数据处理系统可以被配置成接收指示基于语音的应用包含视频功能的请求。数据处理系统可以被配置成选择包含视频模块以支持视频功能的应用模板。数据处理系统可以被配置成接收指示基于语音的应用包含视频功能的请求。数据处理系统可以被配置成选择包含视频模块以支持视频功能的应用模板。视频模块可以与暂停功能、播放功能、倒退功能和前进功能中的至少一项相对应。数据处理系统可以被配置成接收指示基于语音的应用包含视频功能的请求。数据处理系统可以被配置成选择包含视频模块以支持视频功能的应用模板。视频模块与暂停功能、播放功能、倒退功能或前进功能中的至少一项相对应。数据处理系统可以被配置成检测已更新的功能与用于暂停功能、播放功能、倒退功能或前进功能中的至少一项的图形用户界面元素的变化相对应。数据处理系统可以被配置成向应用开发者计算设备提供基于web的图形用户界面,在该图形用户界面内显示所选择的应用模板。数据处理系统可以被配置成向应用开发者计算设备提供由开发者计算设备执行的软件开发应用。软件开发应用可以包括图形用户界面,在该图形用户界面内显示所选择的应用模板。
5.至少一个方面涉及一种生成基于语音的软件应用的方法。该方法可以包括由包括至少一个处理器和存储器的数据处理系统从应用开发者计算设备接收构建基于语音的软件应用的请求。该方法可以包括由数据处理系统基于策略和请求来从多个应用模板中选择应用模板。所选择的应用模板可以包括与基于语音的软件应用的功能相对应的至少一个模块并且具有至少一个字段。该方法可以包括由数据处理系统将所选择的应用模板提供给应用开发者计算设备,以使所选择的应用模板被显示在应用开发者计算设备上。该方法可以包括由数据处理系统从应用开发者计算设备接收对于所选择的应用模板的至少一个模块的至少一个字段的输入。该方法可以包括由数据处理系统基于所选择的应用模板和对于所选择的应用模板的至少一个模块的至少一个字段的输入来生成基于语音的软件应用,以允许基于语音的软件应用响应于语音输入而执行与所选择的应用模板的至少一个模块相对应的功能。该方法可以包括由数据处理系统检测已更新的功能,包括对与所选择的应用模板的至少一个模块相对应的功能的更改。对功能的更改可以是由不同于应用开发者计算设备的数据处理系统的管理员计算设备提供的。该方法可以包括由数据处理系统响应于检测到已更新的功能而更新基于语音的软件应用,以允许基于语音的软件应用执行已更新的功
能。
6.该方法的示例性可选特征可以如下。该方法可以包括由数据处理系统解析请求以确定基于语音的软件应用的类型。该方法可以包括由数据处理系统基于该类型来选择应用模板。该方法可以包括由数据处理系统向应用开发者计算设备提供应用类型的列表,以使该列表被显示在应用开发者计算设备上。该方法可以包括由数据处理系统从应用开发者计算设备接收对多种类型中的第一类型的选择。该方法可以包括由数据处理系统基于该类型来选择应用模板。该方法可以包括由数据处理系统确定基于语音的软件应用的类型。该方法可以包括由数据处理系统识别未包含在所选择的应用模板中的第二模块。第二模块可以与基于语音的软件应用的第二功能相对应。该方法可以包括由数据处理系统修改所选择的应用模板以生成经修改的应用模板。该方法可以包括由数据处理系统将经修改的应用模板提供给应用开发者计算设备,以使经修改的应用模板被显示在应用开发者计算设备上。该方法可以包括由数据处理系统确定基于语音的软件应用的类型。该方法可以包括由数据处理系统识别具有相同类型的第二基于语音的软件应用。该方法可以包括由数据处理系统基于第二基于语音的软件应用的第二功能来选择应用模板。该方法可以包括由数据处理系统解析请求以确定意图。该方法可以包括由数据处理系统识别与意图相关联的多个模块。该方法可以包括由数据处理系统基于与意图相关联的所识别的多个模块与所选择的应用模板的至少一个模块之间的重叠来选择应用模板。该方法可以包括由数据处理系统接收指示基于语音的应用包含视频功能的请求。该方法可以包括由数据处理系统选择包含视频模块以支持视频功能的应用模板。该方法可以包括由数据处理系统接收指示基于语音的应用包含视频功能的请求。该方法可以包括由数据处理系统选择包含视频模块以支持视频功能的应用模板,该视频模块与暂停功能、播放功能、倒退功能和前进功能中的至少一项相对应。该方法可以包括由数据处理系统接收指示基于语音的应用包含视频功能的请求。该方法可以包括由数据处理系统选择包含视频模块以支持视频功能的应用模板。视频模块可以与暂停功能、播放功能、倒退功能或前进功能中的至少一项相对应。该方法可以包括由数据处理系统检测已更新的功能与用于暂停功能、播放功能、倒退功能或前进功能中的至少一项的图形用户界面元素的变化相对应。
7.至少一个方面涉及一种计算机程序产品,该计算机程序产品当在应用交付组件的数据处理系统上实现时被配置成使该数据处理系统执行所述生成基于语音的软件应用的方法。
8.上文根据本发明的任何方面或下文关于本发明的任何具体实施例的各个特征和/或特征组合可以各自单独地、单个地、独立地或与本发明的任何其他方面或实施例中的任何其他定义特征组合地使用。
9.另外,本发明旨在涵盖被配置成执行本文关于方法所述的任何特征的装置和/或使用或生产、使用或制造本文所述的任何装置特征的方法。
10.下面详细讨论这些方面和其他方面以及实施方式。以上信息和以下详细描述包括各个方面和实施方式的说明性示例并提供用于理解所要求保护的方面和实施方式的性质和特征的概述或框架。附图提供对各个方面和实施方式的说明和进一步理解并且并入本说明书且构成本说明书的一部分。
附图说明
11.附图并非旨在按比例绘制。各图中相同的附图标号和标记指示相同的元件。为清楚起见,可以不在每个附图中标记每个组件。图中:
12.图1是生成基于语音的软件应用的示例系统的图示;
13.图2是生成基于语音的软件应用的应用模板的图形表示的图示;
14.图3是生成基于语音的软件应用的系统的示例操作的图示;
15.图4是生成基于语音的软件应用的示例方法的图示;以及
16.图5是示出计算机系统的总体架构的框图,该计算机系统可用于实现本文描述和图示的系统和方法中的元件,例如包括图1和图3中描绘的系统、图2中描绘的应用模板以及图4中描绘的方法。
具体实施方式
17.下面更详细地描述关于生成基于语音的软件应用的方法、装置和系统的各种构思及其实施方式。上面介绍和下面更详细讨论的各种概念以许多方式中的任一方式来实现。
18.本公开总体上涉及使用应用模板生成并且更新基于语音的软件应用。例如,本公开的系统和方法可以基于应用开发者提供的有限数目的输入来自动构建基于语音的软件应用。应用开发者可能希望创建可由终端用户用来执行任意广泛功能的应用,这些功能可能涉及应用开发者所提供的一个或多个服务或特征。软件应用可以在客户端计算设备上执行,该客户端计算设备可以是诸如智能电话或平板型计算机、膝上型计算机、桌面型计算机等移动计算设备。该应用可以使用客户端计算设备的任何输入或输出特征,诸如电子显示器、扬声器或其他音频输出设备、麦克风或其他音频输入设备、键盘、触摸屏、无线通信接口等。因此,软件应用可以被配置成在客户端计算设备上显示文本、图像或视频,以及允许用户与软件应用交互的用户界面元素。软件应用也可以被配置成使客户端计算设备与诸如远程服务器设备的一个或多个外部计算设备进行通信。
19.对于应用开发者而言,可能难以采用高效的方式以及向终端用户呈现执行与应用相关联的功能的信息和控件的格式来创建应用。例如,可能要求应用开发者编写或以其他方式生成与应用相对应的低级计算机指令或代码,这可能是耗时且易错的过程。本公开的系统和方法可以基于应用的期望功能为应用开发者选择应用模板。相对于手动编写应用的计算机代码,应用开发者可以使用应用模板来更快速且更轻松地开发应用。
20.本发明的技术方案包括一种数据处理系统,其可以基于应用要提供的功能来选择应用模板。例如,该系统可以响应于从开发者接收到构建应用的请求而确定或选择应用模板。数据处理系统可以维护一个或多个可用于选择应用模板的策略。策略可以是用于基于应用开发者的请求来选择一个或多个应用模板的任何一组规则或启发式。例如,数据处理系统可以基于请求来确定应用开发者的意图。意图可以是或可以涉及应用的目的、应用要提供的功能或应用的类型。例如,意图可以涉及应用开发者希望构建提供与允许用户通过拼车服务请求汽车、提供天气预报、来自第三方内容提供者的流视频、流音乐、提供社交媒体平台等相关的功能的应用。
21.具有共同类型或目的的应用可能倾向于具有至少一些共同特征。例如,旨在向客户端计算设备提供流视频的应用可以大体上包括视频显示功能、视频控制功能等。结果,用
于构建此类应用的至少一些代码可以是跨应用通用的(例如,可重新使用的)。为了提高构建此类应用的速度和便利性,可以向应用开发者提供与可重新使用代码相对应的模块以及一个或多个字段,开发者可以在该字段中键入输入以定制模块的不可重新使用或定制的方面。例如,视频显示模块可以包括可重新使用功能,诸如视频显示区域、倒退界面元素(例如,按钮或声控界面元素)、播放界面元素、暂停界面元素和快进界面元素。这种模块的不可重新使用或可定制的方面可以涉及要在视频显示区域内显示的特定视频内容。因此,使用这样的模块,应用开发者可以通过提供与要显示的视频内容相关的输入而快速构建软件应用,并且数据处理系统可以自动生成构建视频显示应用的可重新使用方面所需的代码。结果,开发者不需要花费附加的时间来编写与应用的可重新使用方面、诸如视频控制特征(例如,界面元素)相对应的代码,从而提高可以生成应用的效率。
22.数据处理系统可以选择具有一个或多个模块的模板并且可以将该模板提供给应用开发者。数据处理系统可以基于应用开发者的意图来从多个可用模板当中选择模板。数据处理系统可以解析从应用开发者接收到的构建应用的请求以确定开发者的意图。例如,请求可以包括从应用开发者接收到的文本字符串或音频输入(例如,语音输入)。数据处理系统可以例如使用自然语言处理来解析文本字符串或音频输入,以确定应用开发者的意图。数据处理系统也可以例如经由构建应用的请求而直接从应用开发者接收意图。例如,数据处理系统可以提供可能意图的列表(例如,包括多种类型的应用或应用要启用的功能的列表),并且开发者可以提供与对数据处理系统的可能意图之一的选择相对应的输入。
23.基于意图,数据处理系统可以使用一个或多个策略来选择要提供给开发者的模板。策略可以是或可以包含意图与相应模板的映射。数据处理系统可以参考一个或多个策略来选择适当的模板。策略可以基于单个意图来识别多于一个的模板。数据处理系统可以将全部识别出的模板提供给应用开发者,或可以从根据策略所识别的多个模板当中选择一个模板以提供给应用开发者。数据处理系统也可以在将模板提供给应用开发者之前修改模板。例如,模板可以包括一个或多个模块,诸如上述视频显示模块。数据处理系统可以从模板中添加一个或多个附加模块或者移除一个或多个模块,以生成经修改的模板。数据处理系统可以基于从应用开发者接收的输入来从模板中添加或移除模块。例如,数据处理系统可以将可用模块的列表提供给应用开发者,并且应用开发者可以对一个或多个可用模块作出选择。数据处理系统可以生成包含所选择的模块的新模板,或可以选择具有所选择的模块的现有模板。数据处理系统也可以修改现有模板以创建具有所选择的模块的经修改的模板。
24.应用开发者可以提供对于模板的每个模块的一个或多个输入。例如,输入可以与模板的模块中的未填充或空白字段相对应。例如,视频显示模块可以包含字段,应用开发者可以在该字段中键入与要显示的特定视频内容相关的信息。应用开发者可以提供视频内容本身(例如,视频文件),或可以指定可以从中检索视频内容的位置(例如,托管视频内容的web站点的统一资源定位符(url))。在其他示例中,应用开发者可以对于与要在地图相关模块等中显示的文本内容(例如,要在标题模块中显示的文本字符串)位置相关的模块提供基于文本的输入。数据处理系统可以接收来自应用开发者的输入并可以基于该输入来生成应用。例如,数据处理系统可以通过用与应用开发者所提供的输入相对应的代码来填充应用代码中的占位符时隙而自动生成应用。与每个模块的可重新使用或不可定制的方面相对应
的代码可以保持不变。例如,数据处理系统可以维护与数据存储库中的每个模块或模板相对应的代码的可重新使用部分,并且可以根据需要从数据存储库中检索这些可重新使用部分。然后,数据处理系统可以基于应用开发者所提供的输入来填充代码的空白占位符部分,以生成应用的代码。
25.当对模块的标准化或可重新使用代码的更新变得可用时,数据处理系统可以自动更新应用。例如,数据处理系统可以将从应用开发者接收到的输入连同输入所对应的模块或模板一起存储在数据存储库中。当对模块或模板之一的更新变得可用时,数据处理系统可以基于已更新的模块或模板来重新生成应用。例如,更新可以包括对模块代码的可重新使用部分的功能的更改,诸如对用户界面元素的更改或改进(例如,在更早版本的视频显示模块中不可用的附加或修改的视频控件)。因此,数据处理系统可以自动更新应用而无需来自应用开发者的任何附加输入或动作。结果,数据处理系统可以允许更高效地开发和自动更新软件应用。使用应用模板来开发应用可以确保模块更新后应用与模块保持兼容。这可以允许数据处理系统的管理员例如经由已更新的模块将附加功能添加到应用,而不会因更新而无意中将错误引入到应用中。另外,应用可以立即使用该附加功能,而无需来自应用开发者的任何附加输入或动作。
26.图1示出生成基于语音的软件应用的示例系统100。系统100可以包括应用交付基础架构。系统100可以包括在线应用商店或市场。系统100可以包括数据处理系统102。数据处理系统102可以经由网络105与应用开发者设备160、第三方设备162或客户端计算设备140中的一个或多个进行通信。系统100也可以与诸如内容提供者设备或数字表面设备的其他设备进行通信。
27.网络105可以包括诸如因特网、局域网、广域网、城域网或其他区域网的计算机网络、内联网、卫星网络以及诸如语音或数据移动电话网络的其他通信网络。网络105可以被用于访问诸如web页面、web站点、域名或url的信息资源,可以在诸如膝上型计算机、桌面型计算机、平板型计算机、数字助理设备、智能电话、可穿戴设备、便携式计算机或扬声器的至少一个客户端计算设备140上呈现、输出、渲染或显示这些信息资源。例如,经由网络105,客户端计算设备140的用户可以访问由数据处理系统102或应用开发者设备160提供的信息或数据。
28.网络105可以包括或构成显示网络,例如,因特网上可用的与内容放置或搜索引擎结果系统相关联或者有资格包括第三方数字组件作为一部分数字组件放置活动的信息资源的子集。数据处理系统102可以使用网络105来访问可以通过客户端计算设备140呈现、输出、渲染或显示的信息资源,诸如web页面、web站点、域名或统一资源定位符。例如,经由网络105,客户端计算设备140的用户可以访问由数据处理系统102或应用开发者设备160提供的信息或数据。
29.网络105可以是任何类型或形式的网络并可以包括以下任何一种:对等网络、广播网络、广域网、局域网、电信网络、数据通信网络、计算机网络、atm(异步传输模式)网络、sonet(同步光纤网络)网络、sdh(同步数字体系)网络、无线网络和有线网络。网络105可以包括无线链路,诸如红外信道或卫星频带。网络105的拓扑可以包括总线型、星形或环形网络拓扑。网络可以包括移动电话网络,其使用任何一种或多种用于在移动设备之间进行通信的协议,包括高级移动电话协议(“amps”)、时分多址(“tdma”)、码分多址(“cdma”)、全球
移动通信系统(“gsm”)、通用分组无线服务(“gprs”)或通用移动电信系统(“umts”)。可以经由不同的协议传送不同类型的数据,或者可以经由不同的协议传送相同类型的数据。
30.系统100可以包括至少一个数据处理系统102。数据处理系统102可以包括至少一个逻辑器件,诸如具有处理器的计算设备,该处理器经由网络105与例如客户端计算设备140、或应用开发者设备160或者其他联网设备或第三方设备162进行通信。数据处理系统102可以包括至少一个计算资源、服务器、处理器或存储器。例如,数据处理系统102可以包括位于至少一个数据中心的多个计算资源或服务器。数据处理系统102可以包括多个逻辑分组的服务器并可以促进分布式计算技术。服务器的逻辑组可以被称为数据中心、服务器场或机器场。服务器也可以在地理位置上分散。数据中心或机器场可以作为单个实体来管理,或者该机器场可以包括多个机器场。每个机器场内的服务器可以是异构的

服务器或机器中的一个或多个可以根据一种或多种类型的操作系统平台来操作。
31.机器场中的服务器可以连同相关联的存储系统一起存放在高密度机架系统中并位于企业数据中心。例如,通过在本地化高性能网络上定位服务器和高性能存储系统,以这种方式整合服务器可以提高系统易管理性、数据安全性、系统的物理安全性和系统性能。集中包括服务器和存储系统在内的全部或一些数据处理系统102组件并将它们与高级系统管理工具耦合,允许更高效地使用服务器资源,这节省功率和处理需求并减少带宽使用。
32.系统100可以包括、访问至少一个第三方设备162,或以其他方式与之交互。第三方设备162可以包括至少一个逻辑器件,诸如具有处理器的计算设备,该处理器经由网络105与例如计算设备140、数据处理系统102或应用开发者设备160进行通信。第三方设备162可以包括至少一个计算资源、服务器、处理器或存储器。例如,第三方设备162可以包括位于至少一个数据中心的多个计算资源或服务器。
33.第三方设备162可以提供基于音频的数字组件以供客户端计算设备140呈现或显示为音频输出数字组件。数字组件可以包括对商品或服务的报价,诸如基于语音的消息,其说出:“would you like me to order you a taxi(需要帮您叫辆出租车吗)”?例如,第三方设备162可以包括存储器以存储可以响应于基于语音的查询而提供的一系列音频数字组件。第三方设备162也可以向数据处理系统102提供基于音频的数字组件(或其他数字组件),其中,这些数字组件可以存储在数据存储库118中。数据处理系统102可以选择音频数字组件并且向客户端计算设备140提供(或指示第三方设备162提供)音频数字组件。基于音频的数字组件可以仅为音频,或者可以与文本、图像或视频数据组合。
34.第三方设备162可以包括数据处理系统102,与之对接或以其他方式与之通信。第三方设备162可以包括客户端计算设备140,与之对接,或以其他方式与之通信。第三方设备162可以包括计算设备140,与之对接,或以其他方式与之通信,该计算设备140可以是移动计算设备。第三方设备162可以包括应用开发者设备160,与之对接,或以其他方式与之通信。例如,第三方设备162可以向客户端计算设备140提供数字组件以供客户端计算设备140执行。第三方设备162可以将数字组件提供给数据处理系统102以供数据处理系统102进行存储。第三方设备162可以向数据处理系统102提供与数字组件相关的规则或参数。
35.客户端计算设备140可以下载由应用开发者设备160开发的应用。客户端计算设备140可以经由网络105从数据处理系统102下载应用。客户端计算设备可以从应用交付组件110下载应用。客户端计算设备140可以安装应用。客户端计算设备140可以执行应用。客户
端计算设备140可以响应于用户输入或者触发事件或条件而执行、启动、触发或以其他方式访问或使用应用。应用可以包括前端组件和后端组件。客户端计算设备140可以执行或提供应用的前端组件,而数据处理系统102或应用开发者设备160提供应用的后端组件。
36.客户端计算设备140可以包括至少一个传感器144、换能器146、音频驱动器148或预处理器150,与之对接,或以其他方式与之通信。客户端计算设备140可以包括光源142或显示设备152,诸如光指示器、发光二极管(“led”)、有机发光二极管(“oled”)、或被配置成提供可视或光输出的其他可视指示器。传感器144可以例如包括环境光传感器、接近传感器、温度传感器、加速度计、陀螺仪、运动检测器、gps传感器、位置传感器、麦克风或触摸传感器。换能器146可以包括扬声器或麦克风。音频驱动器148可以向硬件换能器146提供软件接口。音频驱动器可以执行音频文件或由数据处理系统102提供的其他指令,以控制换能器146生成对应的音波或声波。预处理器150可以包括处理单元,其具有被配置成检测关键词并基于该关键词执行动作的软件。预处理器150可以过滤掉一个或多个词语,或在将词语传送到数据处理系统102以供进一步处理之前修改词语。预处理器150可以将由麦克风检测到的模拟音频信号转换成数字音频信号,并经由网络105将携带该数字音频信号的一个或多个数据分组传送到数据处理系统102。在一些情况下,预处理器150可以响应于检测到用于执行这种传送的指令而传送携带一些或全部输入音频信号的数据分组。该指令可以例如包括触发关键词或者其他关键词或批准将包括输入音频信号的数据分组传送到数据处理系统102。
37.客户端计算设备140可以与终端用户相关联,该终端用户将语音查询作为音频输入键入到客户端计算设备140(经由传感器144)并且接收计算机生成的语音形式的音频输出,可以将该音频输出从数据处理系统102(或者应用开发者设备160或第三方设备162)提供给客户端计算设备140,从换能器146(例如,扬声器)输出。计算机生成的语音可以包括来自真人的录音或计算机生成的语言。
38.客户端计算设备140(或计算设备、或客户端设备、或数字设备)可以包括或可以不包括显示器。例如,客户端计算设备140可以包括有限类型的用户接口,诸如麦克风和扬声器。在一些情况下,计算设备140的主用户接口可以是麦克风和扬声器,或语音接口。例如,客户端计算设备140的主用户接口可以包括基于语音或基于音频的用户接口。客户端计算设备140可以包括显示器并具有基于语音或基于音频的主用户接口。客户端计算设备140的主用户接口可以是谈话接口。谈话用户接口可以是指至少部分地由数据处理系统102的自然语言处理器(“nlp”)组件106驱动或促进的用户接口。
39.数据处理系统102可以包括具有至少一个计算资源或服务器的内容放置系统。数据处理系统102可以包括至少一个接口104,与之对接,或以其他方式与之通信。数据处理系统102可以包括至少一个nlp组件106,与之对接,或以其他方式与之通信。数据处理系统102可以包括至少一个直接动作应用编程接口(api)108,与之对接,或以其他方式与之通信。接口104、nlp组件106和直接动作api 108可以提供谈话api或数字助理功能。谈话api或数字助理可以与一个或多个基于语音的接口或者各种数字助理设备或表面进行通信或对接,以便提供数据或接收数据或执行其他功能。
40.数据处理系统102可以包括至少一个应用交付组件110,与之对接,或以其他方式与之通信。数据处理系统102可以包括至少一个请求管理组件112,与之对接,或以其他方式
与之通信。数据处理系统102可以包括至少一个模板管理组件114,与之对接,或以其他方式与之通信。数据处理系统102可以包括至少一个应用生成组件116,与之对接,或以其他方式与之通信。
41.接口104、nlp组件106、直接动作api 108、应用交付组件110、请求管理组件112、模板管理组件114和应用生成组件116可以各自包括至少一个处理单元或诸如可编程逻辑阵列引擎的其他逻辑器件,或被配置成与数据存储库118或其他数据库进行通信的模块。接口104、nlp组件106、直接动作api 108、应用交付组件110、请求管理组件112、模板管理组件114、应用生成组件116和数据存储库118可以是单独组件、单个组件或数据处理系统102的一部分。系统100及其组件、诸如数据处理系统102可以包括硬件元件,诸如一个或多个处理器、逻辑器件或电路。
42.数据处理系统102可以获得与多个客户端计算设备140(或计算设备,或数字助理设备)相关联的匿名计算机网络活动信息。客户端计算设备140或移动计算设备的用户可以肯定地授权数据处理系统102获得与客户端计算设备140或移动计算设备相对应的网络活动信息。例如,数据处理系统102可以提示计算设备140的用户准许获得一种或多种类型的网络活动信息。客户端计算设备140可以包括移动计算设备,诸如智能电话、平板型计算机、智能手表或可穿戴设备。客户端计算设备140的用户的身份可以保持匿名,并且计算设备140可以与唯一标识符(例如,由数据处理系统或计算设备的用户提供的用户或计算设备的唯一标识符)相关联。数据处理系统可以将每个观察结果与对应的唯一标识符相关联。
43.数据处理系统102可以与第三方设备162对接。第三方设备162可以包括或指内容提供者的设备。内容提供者可以建立电子内容活动。电子内容活动可以作为内容数据存储在数据存储库118中。电子内容活动可以指与共同主题相对应的一个或多个内容组。内容活动可以包括分层数据结构,该分层数据结构包括内容组、数字组件数据对象和内容选择准则。为了创建内容活动,内容提供者可以指定内容活动的活动级别参数值。活动级别参数可以例如包括活动名称、用于放置数字组件对象的优选内容网络、要用于内容活动的资源值、内容活动的开始和结束日期、内容活动的持续时间、数字组件对象放置的日程、语言、地理位置、提供数字组件对象的计算设备的类型。在一些情况下,印象可以指何时从其来源(例如,数据处理系统102或内容提供者)获取数字组件对象,并且是可计数的。在某些情况下,由于存在点击欺诈的可能性,可以将机器人活动作为印象过滤和排除。因此,在某些情况下,印象可以指web服务器对来自浏览器的页面请求的响应的测量,将其从机器人活动和错误代码中过滤出来,并记录在尽可能接近渲染数字组件对象以显示在计算设备140上的时机的一点处。在某些情况下,印象可以指可视或可听的印象;例如,数字组件对象至少部分地(例如,20%、30%、30%、40%、50%、60%、70%或更多)在客户端计算设备140的显示设备152上可视或经由计算设备140的扬声器136可听。点击或选择可以指用户与数字组件对象的交互,诸如对可听印象的语音响应、鼠标点击、触摸交互、手势、摇动、音频交互或键盘点击。转换可以指用户针对数字组件异议采取期望的动作;例如,购买产品或服务、完成调查、访问与数字组件相对应的实体店或完成电子交易。
44.内容提供者还可以建立内容活动的一个或多个内容组。内容组包括一个或多个数字组件对象和相对应的内容选择准则,诸如关键词、单词、词语、短语、地理位置、计算设备类型、当日时间、兴趣、主题或垂直应用。相同内容活动下的内容组可以共享相同的活动级
别参数,但可以具有特定内容组级别参数的定制规范,诸如关键词、否定关键词(例如,在主要内容上存在否定关键词的情况下阻止放置数字组件)、关键词竞标或者与竞标或内容活动相关联的参数。
45.为了创建新的内容组,内容提供者可以提供内容组的内容组级别参数值。内容组级别参数例如包括内容组名称或内容组主题,以及对不同内容放置时机(例如,自动放置或管理放置)或结果(例如,点击、印象或转换)的竞标。内容组名称或内容组主题可以是一个或多个词语,内容提供者可以使用该一个或多个词语来捕获要为其选择显示内容组的数字组件对象的题目或主题。例如,汽车经销商可以为其所经销的每个车品牌创建不同的内容组,并还可以为其所经销的每个车型创建不同的内容组。例如,汽车经销商可以使用的内容组主题的示例包括“a牌跑车”、“b牌跑车”、“c牌轿车”、“c牌卡车”、“c牌混合动力车”或“d牌混合动力车”。例如,示例内容活动主题可以是“混合动力车”,并包括“c牌混合动力车”和“d牌混合动力车”两者的内容组。
46.内容提供者可以向每个内容组提供一个或多个关键词和数字组件对象。关键词可以包括与数字组件对象相关联或由数字组件对象标识的产品或服务有关的词语。关键词可以包含一个或多个词语或短语。例如,汽车经销商可以包括“跑车”、“v6发动机”、“四轮驱动”、“燃油效率”作为内容组或内容活动的关键词。在某些情况下,内容提供者可以指定避免、防止、阻止或禁用关于某些词语或关键词的内容放置的否定关键词。内容提供者可以指定用于选择数字组件对象的匹配类型,诸如精准匹配、短语匹配或宽泛匹配。
47.内容提供者可以提供一个或多个关键词以供数据处理系统102用来选择由内容提供者提供的数字组件对象。内容提供者可以识别一个或多个要竞标的关键词,并进一步提供各种关键词的竞标额。内容提供者可以提供供数据处理系统102用来选择数字组件对象的附加内容选择准则。多个内容提供者可以对相同或不同的关键词进行竞标,并且数据处理系统102可以响应于接收到电子消息的关键词的指示而运行内容选择过程或广告竞拍。
48.内容提供者可以提供一个或多个数字组件对象以供数据处理系统102选择。当与资源分配、内容调度、最高竞价、关键词和针对内容组指定的其他选择准则相匹配的内容放置时机变得可用时,数据处理系统102可以选择数字组件对象。内容组中可以包含不同类型的数字组件对象,诸如语音数字组件、音频数字组件、文本数字组件、图像数字组件、视频数字组件、多媒体数字组件或数字组件链接。数字组件对象(或数字组件)可以例如包含内容项、在线文档、音频、图像、视频、多媒体内容或赞助内容。在选择数字组件时,数据处理系统102可以传送数字组件对象以便在计算设备140或计算设备140的显示设备152上渲染。渲染可以包括在显示设备上显示数字组件,或经由计算设备140的扬声器播放数字组件。数据处理系统102可以向计算设备140提供渲染数字组件对象的指令。数据处理系统102可以指令计算设备140或计算设备140的音频驱动器148生成音频信号或声波。
49.数据存储库118可以包括一个或多个本地数据库或分布式数据库,并可以包括数据库管理系统。数据存储库118可以包括计算机数据存储或存储器,并且可以存储应用数据120、模板122或策略124中的一个或多个,以及其他数据。数据存储库118可以将应用数据120、模板122或策略124中的一个或多个存储在一个或多个数据结构、数据库、数据文件、索引或其他类型的数据存储中。
50.应用数据120可以包含关于应用的信息。应用数据120可以包含关于应用开发者设
备160所提交的应用的信息。应用数据120可以包含与应用相关联的元数据。应用数据120可以包含例如应用标题、简短描述、详细描述、版本标识符、实体、动作、意图、兼容性信息、大小、应用类型、应用类别以及其他信息。应用数据120可以包含应用的唯一标识符,诸如字母数字标识符。应用数据120可以包含关于提供或提交应用的应用开发者的信息。
51.应用数据120也可以包含诸如与模板122相关的计算机代码的信息。模板122可以是或可以指用于构建软件应用的计算机代码的标准化、可重新使用或不可定制的部分,以及可以用定制代码填充的一个或多个空白或未填充字段。模板122的标准化部分可以是跨若干种应用通用的。结果,可以重新使用模板122的标准化部分以避免需要应用开发者设备160生成与模板122的标准化部分相对应的代码。例如,模板可以包括一个或多个模块,每个模块对应于应用的相应功能。每个模块可以包括一个或多个空白或未填充的字段,这些字段可以基于从应用开发者设备160接收到的输入来填充。模板的模块可以对应于如下功能:诸如显示视频内容项,显示文本,提供导航控件(例如,允许用户在应用的页面之间移动的按钮),提供到应用的其他页面或外部web站点的超链接,提供用户可选择的界面元素(例如,可填写的文本字段、单选按钮、复选框、下拉菜单等),或应用的任何其他特征。模板122可以包括任意数目的模块。每个模板122可以对应于一个或多个特定类型的应用。例如,包括视频显示模块的模板122可以对应于流视频应用,包括显示文本模块的模板122可以对应于电子阅读器应用等。在本公开中,应用的“类型”也可被称为“垂直应用”。一些模板122可以对应于多于一种应用类型。也可以使用多于一个模板122来构建应用。
52.现参照图2,描绘了生成基于语音的软件应用的应用模板122的图形表示的图示。图2中描绘的模板122仅为说明性的,并且其他模板122可以包括相比图2所示那些模块附加的或不同的模块。如图所示,图2中的模板122可以包括多个模块,每个模块对应于应用的一个或多个特征。例如,标题模块205可以对应于应用的标题或应用内页面的标题。副标题模块210可以对应于应用的副标题或应用页面的副标题。视频显示模块215可以提供视频显示区域,可以经由应用在该视频显示区域中显示视频内容。视频控件模块220可以提供用户界面元素,以允许用户控制视频显示模块215的各方面。文本显示模块225可以提供文本显示区域,可以经由应用在该文本显示区域中显示基于文本的内容。应用导航模块230可以提供用户界面元素以允许用户在应用的各页面之间进行导航。
53.模板122中所包括的每个模块可以包含至少一些标准化代码。例如,视频控件模块220可以包括与视频控件模块220内每个按钮的外观、排列或位置相对应的标准化文本,以及与视频控件模块220的每个按钮的用户交互相关的标准化代码。例如,视频控件模块220可以包括被配置成检测用户交互(例如,鼠标点击)并且对视频显示模块215的视频显示区域中所显示的视频执行关联动作(例如,响应于检测到用户与由视频控件模块220提供的暂停按钮的交互而暂停视频)的标准化代码。模板122的每个模块也可以包括与应用的非可视方面相关的标准化代码。例如,视频控件模块220可以包括允许用户经由基于音频的输入与视频显示模块215的视频显示区域中的视频内容进行交互的标准化代码。相应地,视频控件模块220可以包括被配置成检测音频输入(例如,用户的语音)并且解析音频输入以确定可以与视频显示模块215的视频显示区域中所显示的视频内容进行交互的触发词的标准化代码。例如,视频控件模块220可以包括检测音频输入中的单词“play(播放)”并且通过在视频显示模块215的视频显示区域中播放视频内容来作出响应的标准化代码。
54.模板122的其他模块也可以包括提供对应功能的标准化代码。例如,标题模块205、副标题模块210和文本显示模块225可以各自包括与要在相应模块中显示的文本内容的字体、颜色、位置、取向或任何其他方面相关的标准化代码。模板122的至少一些模块也可以包括与模块的可定制方面相对应的占位符或空白字段。例如,标题模块205、副标题模块210和文本显示模块225可以各自包括与这些模块要显示的一个或多个文本字符串相对应的空白字段。类似地,视频显示模块215可以包括与要在视频显示区域中显示的特定视频内容相对应的空白字段。视频内容可以被指定为视频文件或指向可以从中检索视频内容的位置的指针(例如,托管要在视频显示模块215的视频显示区域中显示的视频内容的网站的url)。
55.使用模板122,应用开发者可以提供与模板122中包括的每个模块的可定制部分相对应的输入。例如,再参照图1,数据处理系统102可以向应用开发者设备160提供图2中的模板122。开发者可以使用应用开发者设备160来键入对于标题模块205、副标题模块210、视频显示模块215和文本显示模块225的可定制部分的输入。应用开发者设备160可以将输入经由网络105传送回数据处理系统102。作为响应,数据处理系统102或其组件、诸如应用生成组件116可以使用每个模块的标准化代码连同与模板122的每个模块的可定制方面相对应的用户输入来生成应用。因此,应用开发者设备160可以仅提供有限量的信息(例如,对于模板122的模块的空白或未填充字段的输入),并且数据处理系统102可以使用这样有限的信息来生成完整的应用。
56.图2中描绘的模板122仅为说明性的。例如,模板122可以包括相比图2中模板122所描绘的模块附加的或不同的模块。此外,模板122可以采取与图2中所描绘的不同方式格式化。例如,虽然图2将模板122图示为标题模块205、副标题模块210、视频显示模块215、视频控件模块220、文本显示模块225和应用导航模块230的相对位置和排列的图形表示,但在一些实施方式中,模板122可以不以图形方式格式化。例如,模板122可以替代地格式化为可扩展标记语言(xml)文档、超文本传送协议(html)文档或另一种非图形文件类型。模板122可以被显示在应用开发者设备160上的图形用户界面内。图形用户界面可以是基于web的图形用户界面。图形用户界面可以是专用软件开发应用的界面。
57.再参照图1,每个策略124可以是或可以包括数据处理系统102可以用来选择被提供给应用开发者设备160的一个模板122的一个或多个规则、启发式、指令或其他信息。数据处理系统102或其组件(诸如请求管理组件112)可以从应用开发者设备160接收构建应用的请求。数据处理系统102可以基于请求和策略124来选择一个或多个模板122以提供给应用开发者设备160。例如,请求可以是或可以包括开发者的意图,并且策略124可以被用于基于意图来选择一个或多个模板。在一些实施方式中,策略124可以包括意图与相应模板122的一个或多个映射。策略124也可以包括用于基于要生成的应用的类型来选择模板122的规则、启发式或其他指令。例如,类型可以是或可以包括意图。数据处理系统102也可以从意图导出应用的类型。
58.数据处理系统102可以包括接口104(或接口组件),该接口被设计、配置、构建或可操作成例如使用数据分组来接收并传送信息。接口104可以使用诸如网络协议的一个或多个协议来接收并传送信息。接口104可以包括硬件接口、软件接口、有线接口或无线接口。接口104可以促进将数据从一种格式转译或格式化成另一种格式。例如,接口104可以包括应用编程接口,该应用编程接口包括用于在诸如软件组件的各种组件之间进行通信的定义。
接口104可以经由网络105与客户端计算设备140、应用开发者设备160或第三方设备162中的一个或多个进行通信。
59.数据处理系统102可以与安装在客户端计算设备104处的应用、脚本或程序对接,诸如用于将输入音频信号通信到数据处理系统102的接口104以及用于驱动本地客户端计算设备的组件来渲染输出音频信号的app。数据处理系统102可以接收包括或识别音频输入信号的数据分组或者一个或多个其他信号。
60.数据处理系统102可以包括nlp组件106。例如,数据处理系统102可以执行或运行nlp组件106以接收或获得音频信号并解析音频信号。例如,nlp组件106可以提供人与计算机之间的交互。nlp组件106可以被配置有用于理解自然语言并允许数据处理系统102从人类或自然语言输入中推导出含义的技术。nlp组件106可以包括或被配置有基于诸如统计机器学习的机器学习的技术。nlp组件106可以利用决策树、统计模型或概率模型来解析输入音频信号。nlp组件106可以例如执行以下功能:诸如命名实体辨识(例如,给定文本流,确定文本中的哪些项目映射到合适的名称,诸如人或地点,以及每个这样的名称是何种类型,诸如人、位置或组织)、自然语言生成(例如,将来自计算机数据库的信息或语义意图转换成可理解的人类语言)、自然语言理解(例如,将文本转换成更正式的表达,诸如计算机模块可以操纵的一阶逻辑结构)、机器翻译(例如,将文本从一种人类语言自动翻译成另一种人类语言)、语素切分(例如,将单词分为各个词素并识别词素的分类,这基于所考虑的语言的单词的词法或结构的复杂度而具有挑战性)、问题解答(例如,确定对人类语言问题的答案,这可能是具体或可扩展的),语义处理(例如,在识别单词并对其含义进行编码以便将所识别的单词与具有相似含义的其他单词相关之后可能发生的处理)。
61.nlp组件106可以通过将输入信号与存储的代表性音频波形集(例如,在数据存储库118中)进行比较并选取最接近的匹配,将音频输入信号转换成已辨识的文本。该音频波形集可以被存储在数据存储库118或数据处理系统102可访问的其他数据库中。代表性波形是跨大批用户而生成的,然后可以用来自用户的话音样本来增强。在音频信号被转换成已辨识的文本之后,nlp组件106将该文本与例如经由跨用户的训练或通过手动指定而与数据处理系统102可以服务的动作相关联的单词进行匹配。nlp组件106的各方面或功能可以由数据处理系统102或客户端计算设备140来执行。例如,本地nlp组件可以在客户端计算设备140上执行,以执行将输入音频信号转换为文本并且经由数据分组将文本传送到数据处理系统102以便进一步自然语言处理的各方面。
62.可以由客户端计算设备140的传感器144或换能器146(例如,麦克风)检测音频输入信号。经由换能器146,客户端计算设备140的音频驱动器148或其他组件可以将音频输入信号提供给数据处理系统102(例如,经由网络105),其中该音频输入信号可以被接收(例如,由接口104)并被提供给nlp组件106或存储在数据存储库118中。
63.客户端计算设备140可以包括音频驱动器148、换能器146、传感器144和预处理器150。传感器144可以接收或检测输入音频信号(例如,语音输入)。预处理器150可以耦合到音频驱动器、换能器和传感器。预处理器150可以对输入音频信号进行滤波以创建经滤波的输入音频信号(例如,通过去除某些频率或抑制噪声)。预处理器150可以将经滤波的输入音频信号转换成数据分组(例如,使用软件或硬件数模转换器)。在一些情况下,预处理器150可以将未经过滤的输入音频信号转换成数据分组并将数据分组传送到数据处理系统102。
预处理器150可以将数据分组传送到包括执行自然语言处理器组件、接口、说话者辨识组件和直接动作应用编程接口的一个或多个处理器和存储器的数据处理系统102。
64.数据处理系统102可以经由接口从预处理器组件接收包括由传感器检测到的经滤波的(或未经滤波的)输入音频信号的数据分组。数据处理系统102可以识别输入音频信号中的声学签名。数据处理系统102可以基于在数据存储库中的查找(例如,查询数据库)来识别与声学签名相对应的电子账户。数据处理系统102可以响应于识别电子账户而建立会话和会话中使用的账户。该帐户可以包括具有一个或多个策略的简档。数据处理系统102可以解析输入音频信号以识别请求和与该请求相对应的触发关键词。
65.数据处理系统102可以向客户端计算设备140的预处理器150提供状态。客户端计算设备140可以接收状态的指示。音频驱动器可以接收简档状态的指示,并基于该指示生成输出信号。音频驱动器可以将该指示转换成诸如声音信号的输出信号,或声学输出信号。音频驱动器可以驱动换能器146(例如,扬声器)以基于由音频驱动器生成的输出信号来生成声音。
66.在一些情况下,客户端计算设备140可以包括光源142。光源可以包括一个或多个led、灯、显示器或被配置成提供光输出或可视输出的其他组件或器件。预处理器150可以使光源提供与状态相对应的可视指示。例如,可视指示可以是打开的状态指示灯、灯的颜色变化、具有一种或多种颜色的光图案或者文本或图像的可视显示。
67.nlp组件106可以获得输入音频信号。根据输入音频信号,nlp组件106可以识别至少一个请求或与该请求相对应的至少一个触发关键词。该请求可以指示输入音频信号的意图或主题。触发关键词可以指示可能采取的动作类型。触发关键词可以是向客户端计算设备140指示将后续音频输入转换成文本并将文本传送到数据处理系统102以供进一步处理的唤醒信号或热词。例如,nlp组件106可以解析输入音频信号,以识别对于晚上离开家吃晚餐和看电影的至少一个请求。触发关键词可以包括至少一个单词、短语、词根或部分单词或者指示要采取的动作的派生词。例如,来自输入音频信号的触发关键词“go(去)”或“to go to(想去)”可以指示交通需求。在这个示例中,输入音频信号(或所识别的请求)未直接表达交通意图,然而,触发关键词指示交通是该请求所指示的至少一个其他动作的辅助动作。
68.nlp组件106可以解析输入音频信号以识别、确定、检索或以其他方式获得请求和触发关键词。譬如,nlp组件106可以将语义处理技术应用于输入音频信号以识别触发关键词或请求。nlp组件106可以将语义处理技术应用于输入音频信号,以识别包括诸如第一触发关键词和第二触发关键词的一个或多个触发关键词的触发短语。例如,输入音频信号可以包括语句“i want a ride to the airport(我想要搭车去机场)”。nlp组件106可以对包括该语句的数据分组应用语义处理技术或其他自然语言处理技术,以识别请求或触发关键词“want a ride(想要搭车)”和“airport(机场)”。nlp组件106可以进一步识别多个触发关键词,诸如“want(想要)”和“ride(搭车)”。例如,nlp组件106可以确定触发短语包括该触发关键词和第二触发关键词。
69.nlp组件106可以过滤输入音频信号以识别触发关键词。例如,携带输入音频信号的数据分组可以包括“it would be great if i could get someone that could help me go to the airport(如果我能找到可帮我去机场的人就好了)”,在此情况下,nlp组件106可以过滤掉以下一个或多个词语:“it”、“would”、“be”、“great”、“if”、“i”、“could”、

get”、“someone”、“that”、“could”或“help”。通过过滤掉这些词语,nlp组件106可以更准确并且可靠地识别触发关键词,诸如“go to the airport(去机场)”,并确定这是对出租车或拼车服务的请求。
70.在一些情况下,nlp组件106可以确定携带输入音频信号的数据分组包括一个或多个请求。例如,输入音频信号可以包括语句“i want to purchase an audiobook and monthly subscription to movies(我想要购买有声读物并包月订阅电影)”。nlp组件106可以确定这是对有声读物和多媒体流服务的请求。nlp组件106可以确定这是单个请求或多个请求。nlp组件106可以确定这是两个请求:对提供有声读物的服务提供者的第一请求,以及对提供电影流的服务提供者的第二请求。在一些情况下,nlp组件106可以将多个确定的请求组合成单个请求,并且将该单个请求传送到第三方设备162。在一些情况下,nlp组件106可以将各个请求传送到另一个服务提供者设备,或将两个请求分别传送到同一个第三方设备162。
71.数据处理系统102可以包括直接动作api 108,其被设计且被构造成基于触发关键词来生成响应于请求的动作数据结构。直接动作api 108可以生成动作数据结构以使应用执行对应动作。直接动作api 108可以将动作数据结构传送到安装在客户端计算设备140上的应用,以使客户端计算设备140执行对应动作或发起动作。直接动作api 108所生成的动作数据结构可以包括用于安装在客户端计算设备140上的应用的深层链接。然后,安装在客户端计算设备140上的应用可以执行动作或者与应用开发者设备160或第三方设备162进行通信以执行动作。
72.数据处理系统102的处理器可以调用直接动作api 108来执行生成数据结构以提供给安装在客户端计算设备140、应用开发者设备160或第三方设备162或其他服务提供者设备上的应用的脚本,以获得数字组件,订购服务或产品(诸如通过汽车共享服务订车或订购有声读物)。直接动作api 108可以获得来自数据存储库118的数据以及在终端用户同意的情况下从客户端计算设备140接收到的数据,以确定允许第三方设备162执行操作(诸如从汽车共享服务订车)的位置、时间、用户账户、物流或其他信息。使用直接动作api 108,数据处理系统102也可以与第三方设备162进行通信以通过在本示例中进行汽车共享接人预订而完成转换。
73.如数据处理系统102所确定的,直接动作api 108可以执行满足终端用户的意图的指定动作。根据其输入中指定的动作以及数据存储库118中的参数或规则,直接动作api 108可以执行识别履行用户请求所需的参数的代码或对话脚本。直接动作api 108可以执行满足或履行终端用户的意图的应用。这样的代码可以例如在数据存储库118中查找附加信息,诸如住家自动化服务或第三方服务的名称,或者它可以提供用于在客户端计算设备140处渲染的音频输出以询问终端用户问题,诸如所请求出租车的预期目的地。直接动作api 108可以确定参数并且可以将信息打包到动作数据结构中,然后可以将该动作数据结构发送到要履行的另一组件,诸如应用交付组件110。
74.直接动作api 108可以从nlp组件106或数据处理系统102的其他组件接收指令或命令以生成或构造动作数据结构。直接动作api 108可以确定动作类型以便选择存储在数据存储库118中的模板。动作可以由应用交付组件110提供并且由应用开发者设备160提交的应用来履行。应用可以执行或促进动作的执行。动作的示例类型可以例如包括观看动作、
收听动作、阅读动作、导航动作或天气动作。动作的类型可以包括或被配置成提供例如服务、产品、预订、票务、多媒体内容、有声读物、管理订阅、调整订阅、转移数字货币、采购或音乐。动作的类型还可以包括服务或产品的类型。例如,服务的类型可以包括汽车共享服务、送餐服务、洗衣服务、保姆服务、维修服务、家政服务、设备自动化服务或媒体流服务。产品的类型可以例如包括服装、鞋类、玩具、电子产品、计算机、书籍或珠宝。预订的类型可以例如包括晚餐预订或美发沙龙预约。票务的类型可以例如包括电影票、体育场馆门票或机票。在某些情况下,服务、产品、预订或票务的类型可以基于价格、位置、运输类型、可用性或其他属性来分类。
75.nlp组件106可以解析输入音频信号以识别请求和与该请求相对应的触发关键词,并将请求和触发关键词提供给直接动作api 108以使直接动作api基于触发关键词来生成响应于请求的第一动作数据结构。在识别请求的类型后,直接动作api 108可以访问来自模板存储库(例如,数据存储库118)的对应模板。模板可以包括结构化数据集中的字段,该字段可以由直接动作api 108填充以进一步执行经由客户端计算设备140检测到的输入音频所请求的操作(诸如发送出租车在接人位置接到终端用户并且将该终端用户送往目的地的操作)。直接动作api 108或客户端计算设备140可以启动或触发应用来履行输入音频中的请求。例如,汽车共享服务应用可以包括以下一个或多个字段:设备标识符、接人位置、目的地位置、乘员人数或服务类型。直接动作api 108可以用值填充字段。为了用值填充字段,直接动作api 108可以从计算设备140的一个或多个传感器144或设备140的用户接口查验、轮询或以其他方式获得信息。例如,直接动作api 108可以使用诸如gps传感器的位置传感器来检测源位置。直接动作api 108可以通过向计算设备140的用户端提交调查、提示或查询来获得进一步的信息。直接动作api可以经由数据处理系统102的接口104和计算设备140的用户接口(例如,音频接口、基于语音的用户接口、显示器或触摸屏)来提交调查、提示或查询。因此,直接动作api 108可以基于触发关键词或请求来选择动作数据结构的模板,用由一个或多个传感器144检测到或经由用户接口获得的信息来填充模板中的一个或多个字段,并且生成、创建或以其他方式构造动作数据结构以促进由第三方设备162执行操作。
76.数据处理系统102可以包括、对接或以其他方式访问应用交付组件110。应用交付组件110也可以与数据处理系统102分离。例如,应用交付组件110可以是与数据处理系统102分离的系统或服务器。数据处理系统102可以经由网络105与应用交付组件110进行通信。
77.应用交付组件110可以接收部分地基于应用开发者设备160所提供的输入来提交或生成的应用。例如,应用开发者设备160可以提供对于一个或多个模板122的空白或未填充模块的输入,并且数据处理系统102可以基于一个或多个模板122和应用开发者设备160所提供的输入来生成应用。应用交付组件110可以维护一个或多个版本的应用。应用交付组件110可以将应用传送到客户端计算设备140。应用交付组件110可以将应用下载到客户端计算设备140上。应用交付组件110可以维护在线应用商店或市场。应用交付组件110可以管理或维护应用开发者设备160或客户端计算设备140的账户。应用交付组件110可以维护账户的简档。帐户或简档可以与唯一标识符相关联。账户可以包括可用来购买或订阅应用的金融账户或代币账户。应用交付组件110可以通过提供诸如电子金融账户的电子账户信息而提示客户端计算设备140的用户支付应用。
78.数据处理系统102也可以以一个或多个输入的形式从应用开发者设备160接收与应用相关的信息。输入可以不包括完整的应用,然而,数据处理系统102可以被配置成基于从应用开发者设备160接收到的输入来生成应用。例如,数据处理系统102可以从应用开发者设备160接收输入,该输入对应于用来填充一个或多个模板122的一个或多个模块的空白字段的信息。数据处理系统102可以基于模板和从应用开发者设备160接收到的输入来生成、构造、构建或以其他方式创建应用。
79.数据处理系统102可以包括、对接或以其他方式访问请求管理组件112。请求管理组件112可以接收、处理和管理来自应用开发者设备160的请求。该请求可以是或可以包括对数据处理系统102生成应用的请求。请求管理组件112可以与应用开发者设备160进行通信,以征求或以其他方式提示应用开发者设备160提供请求。例如,请求管理组件112可以提供用于在应用开发者设备160上显示的界面(例如,图形用户界面)。应用开发者设备160的用户可以与该界面相交互以提供请求。该界面可以提供应用开发者设备160的用户在提供请求时可以选择的一个或多个可选的选项。例如,选项可以对应于与应用相关的开发者的意图。意图可以是或可以涉及应用的一个或多个功能或目的。意图也可以对应于应用的类型。请求管理组件112可以提供具有可用意图或类型列表的界面,并且应用开发者设备160的用户可以在作出请求时选择一个或多个可用意图或类型。
80.请求管理组件112也可以被配置成处理、解析或以其他方式从请求中提取意图或类型。例如,从应用开发者设备160接收到的请求可以包括自然语言组件(例如,对应于自然语言的文本或对应于自然语言的音频输入)。请求管理组件112可以被配置成处理请求以识别至少一个意图。请求管理组件112可以基于请求中所包括的关键词或短语而从请求中提取意图。
81.数据处理系统102可以包括、对接或以其他方式访问模板管理组件114。模板管理组件114可以维护模板122。模板管理组件114可以生成、修改和更新模板122。模板管理组件114可以生成包括一个或多个模块的模板122。模块可以指与模板122相关联的特定功能或特征。模板管理组件114可以基于与模板122相关联的应用类型,或者基于提供了构建应用的请求的应用开发者设备160的使用意图而选择要被包括在每个模板122中的相关模块。例如,应用或意图的类型可以与一个或多个功能相关联,并且模板管理组件114可以维护具有与其相关联的应用类型或意图的功能的映射。对于每种应用类型或意图,模板管理组件114可以生成至少一个模板122,该至少一个模板122包括与该应用类型相关联的一个或多个功能相对应的至少一个模块。
82.模板管理组件114可以例如从请求管理组件112接收与构建应用的请求相关的信息。模板管理组件114可以基于与请求相关的信息来选择要提供给应用开发者设备160的一个或多个模板122。例如,模板管理组件114可以从请求管理组件112接收应用类型或意图的指示。模板管理组件114可以选择对应于应用类型或意图的模板122。每个模板122可以包括指示模板122所对应的一种或多种应用类型或意图的元数据,或可以与之相关联。模板管理组件114可以基于包含在每个模板中或与之相关联的元数据,将从接收自应用开发者设备160的请求中提取或确定的应用的类型与对应于该类型的模板进行匹配。模板管理组件114也可以修改现有模板122。例如,模板管理组件114可以确定从请求管理组件112接收到的信息指示应用应当包括可能不包括在任何现有模板122中的模块组合的功能。作为响应,模板
管理组件114可以修改现有模板122以添加或移除模块,使得经修改的模板122包括适当的模块组合。
83.模板管理组件114或请求管理组件112可以将所选择的模板提供给应用开发者设备160。模板管理组件114可以通过使模板122的表示被显示在应用开发者设备160的电子显示器上的方式将所选择的模板122提供给应用开发者设备160。例如,模板管理组件114可以以允许模板122被显示在由应用开发者设备160执行或以其他方式显示在应用开发者设备160上的web浏览器的图形用户界面内的格式,来提供对应于所选择的模板122的信息。模板管理组件114也可以向应用开发者设备160提供专用的软件开发应用。例如,软件开发应用可以包括独立应用供应用开发者设备160的用户向数据处理系统102提供信息(例如,构建应用的请求、与模板122相关的输入等)。然后,模板管理组件114可以以允许模板122被显示在应用开发者设备160上的软件开发应用的图形用户界面内的格式来提供所选择的模板122。
84.数据处理系统102可以包括、对接或以其他方式访问应用生成组件116。应用生成组件116可以部分地基于从应用开发者设备160接收到的信息来构建或生成应用。例如,应用生成组件116可以生成与应用相对应的计算机代码,并且可以编译该代码以构建或生成应用。计算机代码可以包括可以与包括在提供给应用开发者设备160的一个或多个模板中的一个或多个模块的标准化特征相对应的标准化或可重新使用代码。计算机代码也可以包括与从应用开发者设备160接收到的输入相对应的定制代码。
85.应用生成组件116可以使用应用数据120来生成应用。例如,至少一些应用数据120可以对应于每个模板122的每个模块的标准化或可重新使用代码。应用生成组件116可以从应用开发者设备160接收已填充的模板122。例如,应用开发者设备160提供的输入可以填充被提供给应用开发者设备160的模板122的一个或多个模块的空白字段。应用生成组件116可以在应用数据120内定位与已填充的模板122的模块相对应的可重新使用代码,并且可以用与应用开发者设备160所提供的输入相对应的代码填入代码的空白部分。应用生成组件116可以编译代码以生成应用。应用可以被存储在数据存储库118中。例如,应用可以是数据存储库118中的应用数据120的一部分。应用交付组件110可以将应用交付到应用开发者设备160或客户端计算设备140。
86.应用生成组件116也可以被配置成在已经生成应用之后更新该应用。应用生成组件116可以以自动化方式更新应用。例如,应用生成组件116可以在不从应用开发者设备160接收任何附加输入的情况下更新应用。应用生成组件116可以基于对用来生成应用的一个或多个模板122的一个或多个模块的功能的更新来更新应用。可以更新模块以更改或升级模块的功能。例如,参照图2,视频控件模块220可以被更新为包括更多、更少或附加的按钮或其他控件。视频显示模块215可以被更新为更改其相关联的视频显示区域的大小或分辨率。一般而言,任何模块都可以以致使其底层计算机代码更改的方式而被更改、修改、升级或以其他方式变更。应用生成组件116可以检测对模块或模板122的更改,并且可以自动更新包括或基于那些模块或模板122的任何应用。例如,响应于检测到对用来构建应用的模块的更改,应用生成组件116可以使用与已更改或已更新的模块相对应的新计算机代码来重新生成应用。当更新应用时,应用生成组件116可以使用先前由应用开发者设备160提供的相同输入。结果,已更新的应用可以包括与原始应用的可定制部分相同或相似的可定制部
分。应用生成组件116可以将已更新的应用存储在数据存储库118中。应用生成组件116可以将已更新的应用自动提供给应用开发者设备160和客户端计算设备140中的任一者或这两者。
87.图3是系统300生成基于语音的软件应用的操作的图示。系统300可以包括图1描绘的系统100或图5描绘的系统500的一个或多个组件。系统300可以包括数据处理系统102。数据处理系统102可以与应用开发者设备160进行通信,与之对接,或以其他方式与之交互。
88.在动作305处,应用开发者设备160可以生成请求。该请求可以是对数据处理系统102构建基于语音的软件应用的请求。请求可以包括与应用相关的信息。例如,请求可以包括意图。意图可以对应于要构建的应用的一个或多个期望特征。请求也可以识别一种或多种应用的类型。应用的类型可以对应于应用所属的类别(例如,视频流应用、天气预报应用、地图应用、社交媒体应用、拼车服务应用、游戏应用等)。应用开发者设备160可以将请求传送到数据处理系统102。
89.在动作310处,数据处理系统102可以从应用开发者设备160接收请求。例如,可以由图1所示的请求管理组件112接收请求。数据处理系统102可以处理请求以从请求中确定或提取意图或应用类型。在动作320,数据处理系统102可以选择一个或多个模板122以提供给应用开发者设备160。可以由图1所示的模板管理组件114选择模板122。模板122可以协助应用开发者设备160提供允许数据处理系统102构建应用的附加信息。数据处理系统102可以基于请求来选择模板122。例如,数据处理系统102可以基于从在动作310处接收到的请求中提取或确定的意图或应用类型来选择模板122。数据处理系统102可以使用诸如图1所示的策略124的一个或多个策略来选择一个或多个模板122。例如,策略124可以是用于基于从应用开发者设备160接收到的请求的特性(诸如意图或应用类型)来选择一个或多个模板122的任何规则或启发式。数据处理系统102可以将所选择的一个或多个模板122提供给应用开发者设备160。
90.在动作325处,应用开发者设备160可以从数据处理系统102接收所选择的模板122。应用开发者设备160可以被配置成显示模板122的表示。例如,应用开发者设备160可以在基于web的图形用户界面内显示模板122。应用开发者设备160也可以在专用软件开发应用的图形用户界面内显示模板122。在动作330处,应用开发者设备160可以生成一个或多个输入。输入可以对应于模板122中所包括的模块的空白字段。例如,每个模板122可以包括至少一个模块。至少一些模块可以包括与可以由应用开发者设备160定制的信息或特征相对应的空白或未填充字段。可以由应用开发者设备160填充空白字段,例如以指定要结合一个或多个模块显示的文本、要结合一个或多个模块显示的视频内容、要结合一个或多个模块显示的图像内容、要结合一个或多个模块显示的用户界面元素(例如,可选按钮)等。应用开发者设备160可以向数据处理系统102提供输入。
91.在动作335处,数据处理系统102可以从应用开发者设备160接收输入。数据处理系统102也可以接收与输入对应的模板或模块的指示。然后,数据处理系统102可以执行动作340至360以基于输入来生成应用。例如,在动作340处,数据处理系统102可以识别下一个模板。在一些示例中,可以使用多个模板122来生成应用。例如,数据处理系统102可以在动作320处选择多个模板122,并且应用开发者设备160可以在动作330处生成对于多个模板122的输入。可以一次一个模板地构建应用。因此,数据处理系统102可以在动作340处识别下一
个模板122。
92.在动作345处,数据处理系统102可以识别当前模板122的下一个模块。对于所识别的模块,数据处理系统102可以在act350处生成相对应的计算机代码。该模块可以对应于应用的基于语音或语音激活的特征或功能。至少一些计算机代码可以被选择、识别或生成为与所选择的模块相对应的可重新使用或标准化代码。例如,模块的标准化或可重新使用代码可以被存储在诸如图1所示的数据存储库118的存储器元件中。数据处理系统102可以识别与当前模块相对应的标准化或可重新使用代码。数据处理系统102也可以生成与由应用开发者设备160对当前模块提供的任何输入相对应的计算机代码。例如,数据处理系统102可以使用这些输入来填入当前模块的标准化代码的空白或未填充部分。标准化代码与基于应用开发者设备160所提供的输入来生成的代码可以一起构成当前模块的代码。可以编译当前模块的代码以提供与应用中的当前模块相对应的特征。例如,该模块可以对应于应用的基于语音或语音激活的特征或功能。
93.在动作355处,数据处理系统102可以确定是否存在当前模板122的附加模块。例如,模板122可以包括多于一个的模块。数据处理系统102可以依序生成每个模块的代码。因此,如果存在当前模板122的附加模块,则数据处理系统102可以重复执行动作345和350,直到数据处理系统102已经生成与当前模板122的每个模块相对应的代码为止。当已经生成当前模板122的所有模块的代码时,数据处理系统102可以在动作360处确定是否存在用于应用的附加模板122。如果存在附加模板122,则数据处理系统102可以返回到动作340以识别下一个模板122,并可以重复动作340、345、350、355和360,直到所有数据处理系统102都已经生成所有模板122的所有模块的代码。数据处理系统102可以编译构建应用的代码并且可以在动作365处存储应用。例如,数据处理系统102可以将应用存储在数据存储库118中。
94.在动作370处,数据处理系统102可以检测应用的功能是否已被更新。例如,当用来创建应用的任何模板122的模块被更新时,应用的功能可以被更新。对模块的更新可以包括对模块的任何更改,例如改进或以其他方式变更对应的功能或特征。如果未检测到对功能的更改,则数据处理系统102可以简单地继续检查更改。当检测到已更新的功能时,数据处理系统102可以返回到动作345以识别对应于已更新的功能的模块。然后,数据处理系统102可以在动作350处重新生成已更新的模块的代码。数据处理系统102可以执行检查以查看在动作355和360处是否存在附加的已更新模块或模板,直到生成所有已更新的代码为止。然后,数据处理系统102可以在动作365处存储已更新的应用。因此,数据处理系统102可以定期地或连续地自动更新应用,而无需从应用开发者设备160接收任何附加的输入。
95.图4是生成基于语音的软件应用的示例方法400的图示。方法400可以由图1描绘的系统100、图3描绘的系统300或图5描绘的系统500的一个或多个组件、系统或元件来执行。例如,方法400可以由诸如图1所示的数据处理系统102的数据处理系统来执行。在动作405处,数据处理系统102可以接收构建应用的请求。该应用可以是基于语音的软件应用。数据处理系统102可以从图1所示的应用开发者设备160接收请求。该请求可以包括与应用相关的信息。例如,请求可以包括意图。意图可以对应于要构建的应用的一个或多个期望特征。请求也可以识别一种或多种应用的类型。应用的类型可以对应于应用所属的类别。例如,可以由图1所示的请求管理组件112接收请求。
96.在动作410处,数据处理系统102可以选择一个或多个应用模板,诸如图1所示的模
板122。数据处理系统102可以处理请求以从请求中确定或提取意图或应用类型。数据处理系统102可以选择一个或多个模板122来协助应用开发者设备160提供允许数据处理系统102构建应用的附加信息。数据处理系统102可以基于请求来选择模板122。例如,数据处理系统102可以基于从在动作405处接收到的请求中提取或确定的意图或应用类型来选择模板122。数据处理系统102可以使用诸如图1所示的策略124的一个或多个策略来选择一个或多个模板122。例如,策略124可以是用于基于从应用开发者设备160接收到的请求的特性(诸如意图或应用类型)来选择一个或多个模板122的任何规则或启发式。
97.在动作415处,数据处理系统102可以将所选择的一个或多个模板122提供给应用开发者设备160。可以以使模板122被显示在应用开发者设备160上的方式将模板122提供给应用开发者设备160。例如,模板122可以被显示在应用开发者设备160上的图形用户界面内。图形用户界面可以是基于web的图形用户界面。图形用户界面可以是在应用开发者设备160上执行或由应用开发者设备160以其他方式访问的软件开发应用的界面。模板122可以与可以使用应用开发者设备160填充的模板122的未填充部分的空白字段或其他指示一起显示。例如,应用开发者设备160可以键入对于每个模板122的每个空白字段的一个或多个输入以定制与该字段相关联的功能。
98.在动作420处,数据处理系统102可以接收对于每个字段的输入。数据处理系统102可以从应用开发者设备160接收输入。数据处理系统102也可以接收与输入相对应的模块和空白字段的指示。
99.在动作425处,数据处理系统102可以生成软件应用。数据处理系统102可以基于模板122和应用开发者设备160所提供的输入来生成软件应用。数据处理系统102可以通过相继生成每个模板122的每个模块的代码而生成应用。例如,对于应用可以有多于一个模板122,每个模板122有多于一个模块。对于给定的模板122,数据处理系统102可以选择第一模块,并且可以为该模块生成计算机代码。模块的某些代码可以是标准化或可重新使用代码。例如,标准化或可重新使用代码可以被存储在诸如图1所示的数据存储库118的存储器元件中。数据处理系统102可以识别对应于模块的可重新使用代码,并且可以从数据存储库118中检索代码。数据处理系统102也可以生成与由应用开发者设备160对当前模块提供的任何输入相对应的计算机代码。例如,数据处理系统102可以使用这些输入来填入模块的标准化代码的空白或未填充部分。标准化代码与基于应用开发者设备160所提供的输入来生成的代码可以一起构成模块的代码。该模块可以对应于应用的基于语音或语音激活的特征或功能。数据处理系统102也可以对给定模板的其他模块以及任何附加模板122的模块重复该过程,以便生成整个应用的代码。
100.在动作430处,数据处理系统102可以检测对功能的更新。已更新的功能可以对应于用来构建应用的模板122的至少一个模块。例如,当用来创建应用的任何模板122的模块被更新时,应用的功能可以被更新。对模块的更新可以包括对模块的任何更改,例如改进或以其他方式变更对应的功能或特征。数据处理系统102可以识别与已更新的功能相对应的模块。在动作435处,数据处理系统102可以更新应用以生成已更新的应用。数据处理系统102可以重新生成已更新的模块的代码。例如,数据处理系统102可以通过对已更新的模块重复动作425而生成代码。数据处理系统102可以更新其对应功能已被更新的任何模块的代码。更新至少一个模块的代码可以产生已更新的应用。然后,数据处理系统102可以将已更
新的应用例如存储在数据存储库118中。因此,数据处理系统102可以自动更新应用而无需来自应用开发者设备160的任何附加输入或动作。结果,数据处理系统102可以允许高效开发和自动更新软件应用。
101.图5是示例计算机系统500的框图。计算机系统500也可以被称为计算设备500。计算机系统500可以包括或被用于实现系统100或其组件,诸如数据处理系统102。数据处理系统102可以包括智能个人助理或基于语音的数字助理。计算机系统500包括用于通信信息的总线505或其他通信组件或者耦合到总线505以处理信息的处理器510或处理电路。计算机系统500也可以包括耦合到总线以处理信息的一个或多个处理器510或处理电路。计算机系统500也包括耦合到总线505以存储信息的主存储器515,诸如随机存取存储器(ram)或其他动态存储设备,以及要由处理器510执行的指令。主存储器515可以是或包括数据存储库118。在由处理器510执行指令期间,主存储器515也可以被用于存储位置信息、临时变量或其他中间信息。计算机系统500可以进一步包括耦合到总线505以存储用于处理器510的静态信息和指令的只读存储器(rom)520或其他静态存储设备。诸如固态设备、磁盘或光盘的存储设备525可以耦合到总线505以永久性存储信息和指令。存储设备525可以包括数据存储库118或是其一部分。
102.计算机系统500可以经由总线505耦合到显示器535,诸如液晶显示器或主动矩阵显示器,以将信息显示给用户。诸如包括字母数字键和其他键的键盘的输入设备530可以耦合到总线505,以将信息和命令选择通信给处理器510。输入设备530可以包括触摸屏显示器535。输入设备530也可以包括光标控件,诸如鼠标、跟踪球或光标方向键,以将方向信息和命令选择通信到处理器510并控制显示器535上的光标移动。显示器535可以例如是数据处理系统102、客户端计算设备140或图1中其他组件的一部分。
103.本文所述的过程、系统和方法可以通过计算机系统500响应于处理器510执行包含在主存储器515中的指令布置来实现。可以从诸如存储设备525的另一个计算机可读介质将这样的指令读入主存储器515。执行包含在主存储器515中的指令布置使计算机系统500执行本文所述的说明性过程。也可以采用多处理布置中的一个或多个处理器来执行包含在主存储器515中的指令。硬接线电路可以代替或组合软件指令与本文所述的系统和方法一起使用。本文所述的系统和方法不限于硬件电路和软件的任何具体组合。
104.虽然图5中已经描述了示例计算系统,但包括本说明书中描述的操作的主题可以以包括本说明书中公开的结构及它们的等同结构的其他类型的数字电子电路、或者计算机软件、固件或硬件、或者它们中一个或多个的组合来实现。
105.针对本文讨论的系统收集有关用户的个人信息或者可以利用个人信息的情况,可以为用户提供用于控制程序或特征是否可以收集个人信息(例如,有关用户的社交网络、社交动作或活动、用户的偏好或用户的位置的信息)或者用于控制是否或如何从内容服务器或与用户更相关的其他数据处理系统接收内容的机会。此外,某些数据可以在存储或使用其之前以一种或多种方式匿名化,以便当生成参数时移除个人可标识信息。例如,用户的身份可以被匿名化,以便无法针对该用户确定任何个人可识别信息,或者在获得位置信息的情况下,用户的地理位置可以被概括化(诸如城市、邮政编码或州级),以便无法确定用户的特定位置。因此,用户可以控制如何收集有关他或她的信息以及如何供内容服务器使用。
106.本说明书中描述的主题和操作可以以包括本说明书中公开的结构及它们的等同
结构的数字电子电路、或者计算机软件、固件或硬件、或者它们中的一个或多个的组合来实现。本说明书中描述的主题可以被实现为一个或多个计算机程序,例如,在供数字处理装置执行或控制其操作的一个或多个计算机存储介质上编码的计算机程序指令的一个或多个电路。替选地或附加地,程序指令可以被编码在人工生成的传播信号上,例如,机器生成的电信号、光信号或电磁信号,所述信号被生成用来编码信息以便传送到合适的接收器装置,以供数据处理装置执行。计算机存储介质可以是计算机可读存储设备、计算机可读存储基板、随机或串行存取存储器阵列或设备或者它们中一个或多个的组合,或者被包括于其中。虽然计算机存储介质并非传播信号,但计算机存储介质可以是以人工生成的传播信号编码的计算机程序指令的源或目的地。计算机存储介质也可以是一个或多个单独的组件或介质(例如,多个cd、磁盘或其他存储设备),或者被包含于其中。本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
107.词语“数据处理系统”、“计算设备”、“组件”或“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,例如包括一个或多个可编程处理器、计算机、片上系统或者上述的组合。该装置可以包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。除硬件之外,该装置也可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或者它们中一个或多个的组合的代码。装置和执行环境可以实现各种不同的计算模型基础结构,诸如web服务、分布式计算和网格计算基础结构。例如,直接动作api 108或nlp组件106和其他数据处理系统102组件可以包括或共享一个或多个数据处理装置、系统、计算设备或处理器。
108.计算机程序(又称为程序、软件、软件应用、app、脚本或代码)可以以任何形式的编程语言来编写,包括编译语言或解释语言、声明性语言或过程性语言,并且可以以任何形式来部署,包括作为独立程序或者作为模块、组件、子例程、对象或者适用于计算环境的其他单元。计算机程序可以对应于文件系统中的文件。计算机程序可以被存储在保存其他程序或数据的文件部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论的程序的单个文件中或多个协同文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署成在位于一个站点或跨多个站点分布并通过通信网络互联的一台计算机上或多台计算机上执行。
109.本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器(例如,数据处理系统102的组件)来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由例如fpga(现场可编程门阵列)或asic(专用集成电路)的专用逻辑电路来执行,并且装置也可以被实现为该专用逻辑电路。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,例如包括:半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如,内置硬盘或可移动盘;磁光盘;以及cd

rom盘和dvd

rom盘。处理器和存储器可以辅以专用逻辑电路或并入其中。
110.本文所述的主题可以以计算系统来实现,该计算系统包括后端组件(例如,作为数据服务器),或者该计算系统包括中间件组件(例如,应用服务器),或者该计算系统包括前
端组件(例如,具有用户可以借以与本说明书所述主题的实施方式相交互的图形用户界面或web浏览器的客户端计算机),或者一个或多个这样的后端组件、中间件组件或前端组件的组合。系统的组件可以通过数字数据通信的任何形式或者媒介来互联,例如,通信网络。通信网络的示例包括局域网(“lan”)和广域网(“wan”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
111.诸如系统100或系统500的计算机系统可以包括客户端和服务器。客户端与服务器一般彼此远离并通常通过通信网络(例如,网络105)来进行交互。客户端与服务器的关系借助在相应计算机上运行并彼此具有客户端

服务器关系的计算机程序来产生。在一些实施方式中,服务器将数据(例如,表示数字组件的数据分组)传送到客户端设备(例如,出于向与客户端设备相交互的用户显示数据并从该用户接收用户输入的目的)。可以在服务器处从客户端设备接收(例如,由数据处理系统102从客户端计算设备140或应用开发者设备160或第三方设备162接收)在客户端设备处生成的数据(例如,用户交互的结果)。
112.虽然在附图中以特定顺序描绘了操作,但不要求以所示的特定顺序或者以序列顺序执行这样的操作,并不要求执行全部示出的操作。本文所述的动作可以以不同的顺序执行。
113.各种系统组件的分立不要求在全部实施方式中都分立,并且所述的程序组件可以被包含在单个硬件或软件产品中。例如,nlp组件106或内容选择器组件108可以是单个组件、app或程序,或者是具有一个或多个处理电路的逻辑器件,或者是数据处理系统102的一个或多个服务器中的一部分。
114.现已描述了一些说明性实施方式,显然,上述内容为说明性而非限制性并已举例说明。特别地,虽然本文呈现的许多示例涉及方法行为或系统元件的具体组合,但那些行为和那些元件可以其他方式组合实现相同的目标。所讨论的行为、元件和特征与一种实施方式组合并非旨在排除其他实施方式中的相似作用。
115.本文所用的短语和词语是出于描述目的,而不应视为限制性。本文中使用“包含”、“包括”、“具有”、“含有”、“涉及”、“其特征是”、“其特征在于”及它们的变形旨在涵盖其后列举的项目、其等同方案和附加项目以及由其后排他性列举的项目组成的替选实施方式。在一种实施方式中,本文所述的系统和方法由所述元件、行为或组件中的一个、一个以上的每种组合或其全体组成。
116.对本文中系统和方法的实施方式或元件或行为以单数形式提及的任何引用也可以涵盖包括多个这些元件的实施方式,并且对本文中任何实施方式或元件或行为以复数形式的任何引用也可以涵盖仅包含单个元件的实施方式。单数或复数形式的引用并非旨在将本发明公开的系统或方法、它们的组件、行为或元件限制为单个或多个配置。对基于任何信息、行为或元件的任何行为或元件的引用可以包括该行为或元件至少部分地基于任何信息、行为或元件的实施方式。
117.本文公开的任何实施方式可以与任何其他实施方式或实施例组合,并且对“一种实施方式”、“一些实施方式”、“一个实施方式”等的引用并非必然互斥并旨在指示结合该实施方式描述的特定特征、结构、特性可以被包含在至少一个实施方式或实施例中。这样如本文所用的词语并非必然全部指代相同的实施方式。任何实施方式可以包含性或排他性以符合本文公开的方面和实施方式的任何方式与任何其他实施方式组合。
118.对“或”的引用可以解释为包含性,从而使用“或”描述的任何词语可以指示单个、一个以上和全部所述词语中的任何一个。对
“‘
a’和

b’中至少一个”的引用可以仅包括“a”,仅包括“b”以及既包括“a”也包括“b”。这类结合“包括”或其他开放式词语使用的引用可以包括附加项目。
119.在附图、具体实施方式或任何权利要求中的技术特征后标有附图标记的情况下,包含这些附图标记来提高对附图、具体实施方式和权利要求的理解性。相应地,有无附图标记不会对任何权利要求要素的范围存在任何限制作用。
120.本文所述的系统和方法可以其他特定形式来体现,而不脱离其特性。上述实施方式为说明性,而不限制所述的系统和方法。因此,本文所述的系统和方法的范围由所附权利要求而非上述描述来指定,并且权利要求的等同含义和范围内的更改被涵盖于其中。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献