人工智能数字代理的制作方法

文档序号:15445698发布日期:2018-09-14 23:20阅读:177来源:国知局

用户(例如,企业的客户)可以向呼叫中心呼叫以试图解决问题、收集信息和/或使用服务。呼叫中心已经引入了自动化服务,自动化服务使得用户能够深度挖掘菜单,例如,以试图集中资源来致力于特定用户(例如,标识可能最适合于解决用户需求的特定部门和/或客户服务代表)。示例自动化服务可以包括人工智能,其处理用户说出的单词以将呼叫路由到特定资源。然而,这样的自动化服务可能有缺点。例如,尽管自动化服务可能能够路由呼叫,但是自动化服务在其他功能(例如,执行所请求的服务)方面受到限制。



技术实现要素:

本公开的实现总体上涉及用于基于人工智能(ai)的数字代理的计算机实现的平台。更具体地,本公开的实现涉及能够可听地与用户交互并且能够基于用户交互来执行一个或多个动作的基于ai的数字代理。

在一些实现中,动作包括:从设备接收通信数据,通信数据包括由设备的用户输入的数据;基于通信数据接收文本数据;基于通过人工智能服务处理文本数据来提供意图集合和实体集合,意图集合包括在文本数据中指示的一个或多个意图,实体集合包括在文本数据中指示的一个或多个实体,人工智能服务实现一个或多个卷积神经网络(cnn);基于文本数据、意图集合和实体集合中的一项或多项来标识动作集合,动作集合包括要由一个或多个计算机实现的服务执行的一个或多个动作;接收结果集合,该结果集合包括来自执行动作集合中的动作的计算机实现的服务的至少一个结果;提供包括描述至少一个结果的数据的结果数据;以及向设备传输结果数据。这个方面的其他实现包括对应的系统、装置、以及体现在计算机存储设备上被配置为执行方法的动作的计算机程序。

这些和其他实现每个可以可选地包括以下特征中的一个或多个特征:人工智能服务包括使用自然语言处理(nlp)来提供意图集合的意图分类模型;nlp包括单词嵌入;人工智能服务包括使用命名实体识别(ner)来提供实体集合的实体提取模型;动作还包括确定意图集合和实体集合中的一者或两者为空,并且作为响应,向设备传输至少一个消歧问题;动作还包括基于意图集合中的意图确定预期实体不在实体集合中,并且作为响应,向设备传输至少一个消歧问题;动作还包括确定结果集合包括缺陷,并且作为响应,向设备传输至少一个消歧问题;通信数据包括音频数据,并且结果数据包括音频结果数据;通信数据包括文本数据,并且结果数据包括文本结果数据;并且结果数据包括由语音响应合成模块基于文本结果数据提供的音频数据。

本公开还提供了一种计算机可读存储介质,其耦合到一个或多个处理器并且具有在其上存储的指令,该指令在由一个或多个处理器执行时使得一个或多个处理器根据本文中提供的方法的实现来执行操作。

本公开还提供了一种用于实现本文中提供的方法的系统。该系统包括一个或多个处理器以及耦合到一个或多个处理器的计算机可读存储介质,计算机可读存储介质具有在其上存储的指令,该指令在由一个或多个处理器执行时使得一个或多个处理器根据本文中提供的方法的实现来执行操作。

应当理解,根据本公开的方法可以包括本文中描述的方面和特征的任何组合。也就是说,根据本公开的方法不限于本文中具体描述的方面和特征的组合,而是还包括所提供的方面和特征的任何组合。

下面在附图和说明书中阐述了本公开的一个或多个实现的细节。本公开的其他特征和优点将从说明书和附图以及权利要求书中显而易见。

附图说明

图1描绘了根据本公开的实现的示例高级架构;

图2描绘了根据本公开的实现的示例架构;以及

图3描绘了根据本公开的实现能够被执行的示例过程。

具体实施方式

本公开的实现总体上涉及用于基于人工智能(ai)的数字代理的计算机实现的平台。更具体地,本公开的实现涉及能够可听地与用户交互并且能够基于用户交互来执行一个或多个动作的基于ai的数字代理。

如本文中进一步详细描述的,本公开的实现包括以下动作:从设备接收通信数据,通信数据包括由设备的用户输入的数据;基于通信数据接收文本数据;基于通过人工智能服务处理文本数据来提供意图集合和实体集合,意图集合包括在文本数据中指示的一个或多个意图,实体集合包括在文本数据中指示的一个或多个实体,人工智能服务实现一个或多个卷积神经网络(cnn);基于文本数据、意图集合和实体集合中的一项或多项来标识动作集合,动作集合包括要由一个或多个计算机实现的服务执行的一个或多个动作;接收结果集合,该结果集合包括来自执行动作集合中的动作的计算机实现的服务的至少一个结果;提供包括描述至少一个结果的数据的结果数据;以及向设备传输结果数据。

图1描绘了根据本公开的实现的示例高级架构100。示例架构100包括设备102、后端系统108和网络110。在一些示例中,网络110包括局域网(lan)、广域网(wan)、因特网、蜂窝电话网络、公共交换电话网络(pstn)、专用分支交换机(pbx)或其任何适当的组合,并且连接网站、设备(例如,设备102)和后端系统(例如,后端系统108)。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。例如,诸如智能电话等移动设备可以利用蜂窝网络来访问网络110。

在所描绘的示例中,后端系统108包括至少一个服务器系统112和数据存储库114(例如,数据库)。在一些示例中,至少一个服务器系统112托管用户可以使用设备与之交互的一个或多个计算机实现的服务。例如,服务器系统112可以托管根据本公开的实现的基于ai的数字代理。在一些示例中,设备102每个可以包括任何适当类型的计算设备,诸如台式计算机、膝上型计算机、手持式计算机、平板电脑、个人数字助理(pda)、蜂窝电话、网络设备、相机、智能手机、电话、移动电话、增强通用分组无线电服务(egprs)移动电话、媒体播放器、导航设备、电子邮件设备、游戏机、或者这些设备或其他数据处理设备中的任何两个或更多个的适当组合。

在所描绘的示例中,设备102由用户120使用。根据本公开,用户120使用设备102来可听地与本公开的基于ai的数字助理交互。在一些示例中,用户120可以包括提供基于ai的数字代理的企业的客户,或者代表提供基于ai的数字助理的客户。例如,用户120可以包括使用设备102呼叫企业的呼叫中心并且连接到基于ai的数字助理(例如,托管在后端系统108上)的客户。根据本公开的实现,并且如本文中进一步详细描述的,用户120可以向基于ai的数字助理提供口头输入(例如,语音),基于ai的数字助理能够处理口头输入以请求附加信息(例如,消歧)、执行一个或多个动作、和/或提供一个或多个可听响应。

图2描绘了根据本公开的实现的示例架构200。在一些示例中,示例架构200的部件可以托管在一个或多个后端系统(例如,图1的后端系统108)上。在所描绘的示例中,示例架构200包括交互管理器202、动作处理器204、语音到文本服务206、人工智能(机器智能)服务208和训练数据服务210。在一些示例中,示例架构200的每个部件被提供作为由一个或多个计算设备执行的一个或多个计算机可执行程序。在一些示例中,交互管理器202和动作处理器204由企业或者代表企业来操作(例如,托管在由企业或者代表企业来操作的图1的后端系统108上)。

在一些示例中,语音到文本服务206、人工智能服务208和/或训练数据服务210由企业或者代表企业来操作(例如,托管在由企业或者代表企业来操作的图1的后端系统108上),或者由一个或多个第三方服务提供商来提供(例如,托管在不同于后端系统108的后端系统上,其由一个或多个第三方服务提供商或者代表一个或多个第三方服务提供商来操作)。示例语音到文本服务206包括由加利福尼亚州山景城的google公司提供的googlecloudspeech。在一些示例中,googlecloudspeech通过经由神经网络模型处理音频数据来将音频数据转换成文本数据。虽然本文中引用了示例语音到文本服务206,但是本公开的实现可以使用任何适当的语音到文本服务来实现。示例人工智能服务208包括由加利福尼亚州山景城的google公司提供的tensorflow。在一些示例中,tensorflow可以被描述为用于使用数据流图进行数值计算的开源软件库。

在所描绘的示例中,交互管理器202包括文本分类模块220、动作标识模块222、消歧问题模块224、文本响应合成模块226和语音响应合成模块228。动作处理器204包括参数提取模块230(可选的)、动作编排模块232和动作结果模块234。人工智能服务208包括意图分类模型(例如,基于自然语言处理(nlp))和实体提取模型242(例如,基于命名实体识别(ner))。训练数据服务210包括文本标记/分类模块250和训练数据准备模块252。

根据本公开的实现,人工智能服务208实现卷积神经网络(cnn)。在一些示例中,cnn比其他类型的ai网络能够更高效和更快地处理文本数据。通常,cnn可以被描述为具有执行卷积任务的重叠“感受域”的神经网络。更具体地,cnn是一种前馈人工神经网络,其包括神经元之间的连接模式,其中不同神经元的感受野部分交叠。在cnn中,单个神经元对其感受野内的数据(刺激)的响应通过卷积运算在数学上被近似。

相反,诸如递归神经网络(rnn)等其他神经网络实现递归连接,递归连接形成rnn的拓扑中的循环。在一些示例中,rnn可以被描述为顺序的,而不是无状态的。rnn可能遭受所谓的梯度消失(或爆炸)问题,其中信息随时间(快速)丢失。因此,无论以往学到什么样的模型都可能会在未来被丢失,例如在它被密集的新信息覆盖的情况下。

根据本公开的实现,人工智能服务108在nlp中实现单词嵌入。在一些示例中,单词嵌入可以被描述为nlp内的一组语言建模和特征学习技术的总称,其中来自词汇表的单词和/或短语被映射到实数的向量。在概念上讲,单词嵌入涉及从具有每个单词一个维度的空间到具有低得多的维度的连续矢量空间的数学嵌入。通常,单词嵌入使得模型能够理解具有相同含义的不同单词(同义词),并且能够在不需要实际上向机器单独地教导每个单词的情况下理解这样的单词。

根据本公开的实现,并且如本文中进一步详细描述的,交互管理器202接收通信数据,并且处理通信数据以提供响应,和/或以发起一个或多个动作的执行。在一些实现中,通信数据被提供作为音频数据。在一些示例中,音频数据对应于记录的用户的语音(例如,在用户电话期间)。因此,响应可以包括音频响应。以这种方式,本公开的基于ai的数字助理可以作为基于语音的代理来操作。在一些实现中,通信数据被提供作为文本数据。在一些示例中,文本数据对应于由用户传输的消息(例如,文本消息、聊天消息)。因此,响应可以包括文本响应。以这种方式,例如,本公开的基于ai的数字助理可以作为聊天机器人来操作。

本文中参考处理包括音频数据的通信数据并且提供音频响应来进一步详细描述示例架构200。然而,可以设想,如上所述,通信数据可以包括文本数据。

在所描绘的示例中,用户120可以使用设备102可听地与交互管理器202通信。例如,用户120可以建立通信路径(例如,电话呼叫)以从设备102向交互管理器202传送数据(例如,通过图1的网络110)。在一些示例中,用户120可以向设备102说话,设备102将语音记录为音频数据260,其被传输到交互管理器202(例如,作为流式音频数据;在一个或多个音频数据文件中)。音频数据260可以以任何适当的格式(例如,.wav、.mp3、.wma)来提供。

交互管理器202将语音数据260提供给语音到文本服务206(例如,通过语音到文本服务206的应用程序接口(api))。语音到文本服务206处理音频数据260以提供文本数据262。文本数据262可以以任何适当的格式(例如,.txt、.csv)来提供。文本分类模块220接收文本数据262,并且与人工智能服务208协作处理文本数据。在一些示例中,文本分类模块220向人工智能服务208提供请求(例如,通过人工智能服务208的api),该请求包括文本数据262的至少一部分。在一些示例中,文本分类模块220可以基于一个或多个分类规则来注入一个或多个动作。示例分类规则可以包括过滤骂人的单词。

人工智能服务208处理所接收的文本数据以提供意图集合和实体集合。更具体地,人工智能服务208使用nlp通过意图分类模型240处理所接收的文本数据,以确定文本数据的一个或多个意图,一个或多个意图被包括在意图集合中。在一些示例中,意图指示关于用户为什么正与基于ai的数字助理进行通信的原因。例如,文本数据可以包括“我的飞行常客账户中有多少英里”,并且示例意图可以由意图分类模型240确定为accountquery(账户查询)和statusquery(状态查询)。在一些示例中,意图可能不从文本数据中被确定。因此,意图集合可以为空。人工智能服务208使用ner通过实体提取模型240处理所接收的文本数据,以确定文本数据内涉及的一个或多个实体,一个或多个实体被包括在实体集合中。在一些示例中,实体指示文本数据中涉及的人物、地点或事情(例如,人物、组织、位置、时间表达、数量、货币价值、百分比等)。例如,文本数据可以包括“我想预订从奥斯汀到法兰克福的旅行”,并且示例实体可以由实体提取模型240确定为locationaustin(位置奥斯汀)、locationfrankfurt(位置法兰克福)、thingtravel(事情旅行)。在一些示例中,实体可能不从文本数据中被确定。因此,实体集合可以为空。

在一些实现中,文本分类模块220提供用于机器学习的反馈。例如,文本分类模块220可以确定文本数据262中的一些文本数据由人工智能服务208不合适或者较差地分类。例如,人工智能服务208可以提供意图分类、以及指示类别被多么准确地标识的得分(例如,置信指数)。在一些示例中,得分(每个分类的一个得分)可以与相应的可定制的阈值(例如,每个类别)相比较。如果类别的得分没有超过阈值,则可以确定类别是差的/不合适的。

在一些示例中,文本分类220将文本数据264的至少一部分提供给训练数据服务210,训练数据服务210使用文本标记/分类模块250和训练数据准备模块252处理文本数据264以提供训练数据266。训练数据266被提供给人工智能服务208以进一步训练意图分类模型240和实体提取模型242中的一者或两者。虽然训练数据服务210被描绘为单独的服务,但是训练数据服务210可以被包括作为另一服务的一部分(例如,训练数据服务210可以被包括在人工智能服务208中)。

确定是否需要消歧270。虽然消歧270被示意性地描绘为独立功能,但是文本分类模块220和/或动作标识模块222可以确定是否需要消歧。在一些示例中,消歧可以被描述为对文本数据260、在文本数据260中标识的一个或多个实体和/或从文本数据260中确定的一个或多个意图的澄清。

在一些示例中,如果意图集合和/或实体集合为空,则需要消歧。例如,如果不能从文本数据262中确定意图,则可能需要消歧(例如,请求用户重复或澄清他们的问题)。在一些示例中,如果意图集合中的意图不对应于预定义的意图列表,则需要消歧。在一些示例中,可以为基于ai的数字代理正在其中操作的特定域(例如,航班预订)提供预定义的意图列表。在一些示例中,可以提供多个预定义的意图列表,每个预定义的意图列表对应于相应的域。在一些示例中,意图集合中提供的每个意图可以与预定义的意图列表中的意图相比较。如果意图集合中的意图没有被包括在预定义的意图列表中,则可能需要消歧。继续上面的示例,意图集合中的示例意图可以包括jewelrypurchase(珠宝购买),jewelrypurchase(珠宝购买)没有被包括在用于域航班预订的预定义的意图列表中。因此,考虑到意图jewelrypurchase(珠宝购买)被包括在意图集合中,可能需要消歧。

在一些示例中,如果实体集合中的实体的数目和/或类型不对应于意图集合中的意图,则可能需要消歧。例如,为了基于意图执行动作,可能需要两个或更多个实体(例如,需要出发城市和到达城市以确定航班)。然而,如果在实体集合中仅提供单个实体或者意图所要求的类型的单个实体(例如,仅提供到达城市),则可能需要消歧(例如,请求用户指定出发城市)。换言之,对于给定意图,可以预期一种或多种类型的实体。如果实体集合中没有预期实体(例如,出发城市),则可能需要消歧。在一些示例中,如果实体太笼统,则可能需要消歧。继续上面的示例,示例实体集可以包括locationaustin(位置奥斯汀)、locationfrankfurt(位置法兰克福)和thingtravel(事情旅行)。可以确定,旅行对于要确定的一个或多个动作来说过于笼统。因此,可能需要消歧来澄清文本数据260的含义(例如,请求用户澄清是否正在请求飞机、火车或汽车旅行)。

如果需要消歧,则文本数据260、意图集合和实体集合中的一项或多项的至少一部分被提供给消歧问题模块224。在一些示例中,消歧问题模块224提供一个或多个消歧问题。在一些示例中,消歧模块224包括基于用例(域)(例如,航班预订)的预定义的消歧问题列表,基于ai的数字代理正在该用例(域)中操作。在一些示例中,可以基于使用意图集合和/或实体集合的一个或多个缺陷的查找(例如,使用消歧问题的索引)来选择消歧问题。例如,如果意图集合为空,则可以选择消歧问题“很抱歉,我不理解您的请求,请重复您的问题”。作为另一示例,并且在航班预订的示例域中,如果实体集合为空,或者只包括单个实体,则示例消歧问题可以分别包括“什么是出发城市,到达城市呢?”或者“什么是出发城市?”。继续上面的示例,其中确定旅行对于要标识的一个或多个动作来说过于笼统,示例消歧问题可以包括“你喜欢汽车、船、火车和/或飞机旅行吗?”。

在一些示例中,消歧问题被提供作为文本数据,该文本数据被提供给语音响应合成模块226。语音响应合成模块226处理文本数据以提供音频数据272。例如,语音响应合成模块226基于文本数据的一个或多个分段来访问音频数据的库。在一些示例中,可以基于分段(例如,文本数据的一部分)来搜索索引,音频数据可以被检索。在一些示例中,相应分段的音频数据可以被附接在一起以提供音频数据272。音频数据272被提供给设备102(例如,通过网络110),并且设备102向用户120播放音频。

如果不需要消歧,则文本数据260、意图集合和实体集合中的一项或多项的至少一部分被提供给动作标识模块222。动作标识模块222提供要由动作处理器204执行的动作集合。在一些示例中,动作标识模块222参考可用动作库222a。在一些示例中,动作标识模块222基于意图和实体来访问可用动作库222a的索引。

在一些示例中,动作集合包括一个或多个动作。继续上面的示例,可以确定用户120将预订从德克萨斯州奥斯汀到德国法兰克福的航班,其在2017年2月26日离开并且在2017年3月2日返回(例如,在一轮或多轮消歧之后)。因此,示例动作可以包括向航班搜索引擎提交搜索查询,搜索查询包括一个或多个搜索项(例如,depcity:aus、arrcity:fra、depdate:2/26/17、retdate:3/2/17)。作为另一示例,可以确定,用户120将使用具有给定号码、到期数据和安全码的信用卡来购买票价。因此,示例动作可以包括向支付服务(例如,用户的信用卡公司)提交支付授权请求。

动作集合可以被提供给动作处理器204的参数提取模型230。参数提取模型230可以处理动作集合以包括一个或多个参数。如上所述,从人工智能服务208返回到文本分类模块220的响应应当是意图集合和实体集合。在提供意图集合之后,可以执行参数提取以选择适当的/需要的参数来执行每个动作。因此,参数提取可以消除任何不必要的参数。

在一些示例中,参数提取模块230是可选的。因此,动作集合可以从动作标识模块222直接提供给动作编排模块232。在一些示例中,在实体集合为空的情况下这是可选的。

动作编排模块232处理动作集合以发起动作集合中的每个动作的执行。在一些示例中,对于每个动作,动作编排模块232标识将被调用用于动作的执行的一个或多个服务280。在一些示例中,基于要执行的动作的类型(例如,航班搜索、信用卡支付)从预定义的服务列表(例如,对应于域)中标识服务280。服务280中的一个或多个服务可以由第三方服务提供商提供,并且可以托管在后端系统(例如,除了图1的后端系统108之外)上。在一些示例中,动作编排模块232向一个或多个服务280传输请求(例如,通过服务280的相应api),每个请求包括要由相应服务280处理以提供结果的信息。每个服务280处理相应的请求,并且向动作编排模块232传输一个或多个结果。

继续上面的示例,动作编排模块232可以确定特定的搜索服务将被调用以用于使用示例搜索查询[depcity:aus,arrcity:fra,depdate:2/26/17,retdate:3/2/17]来执行搜索。搜索服务可以处理请求,并且基于此来提供搜索结果。示例搜索结果可以包括响应于搜索查询的搜索项的一个或多个航班。动作编排模块232向动作结果模块234提供结果集合。在一些示例中,动作结果模块234将动作编排的结果(例如,结果是包括数据库结果集合还是api(soap/http)响应)解析为能够由交互管理器202读取的形式。

可以确定是否需要消歧282。尽管消歧282被示意性地描绘为独立功能,但是交互处理器202的模块可以确定是否需要消歧。如果需要消歧,则如本文中描述的,结果集合的至少一部分被提供给消歧问题模块224,以发起音频数据272向设备102的供应,音频数据272提供一个或多个消歧问题。在一些示例中,如果确定结果集合包括一个或多个缺陷,则可能需要消歧。继续上面的示例,可以确定,作为示例缺陷,结果集合包括太多的结果要被高效地传送给用户120。因此,示例消歧问题可以包括“您是否喜欢直飞?”(例如,具有可以用于使结果集合中包括的结果变窄的答案的问题)。

如果不需要消歧,则结果集合被提供给文本响应合成模块228。文本响应合成模块228基于结果集合中的每个结果来提供文本数据。在一些示例中,文本合成模块228参考文本响应库228a。在一些示例中,文本合成模块228基于动作的类型和相应的结果来访问可用文本响应库228a的索引。例如,如果动作包括信用卡支付授权,则结果可以包括参数[visa,$489.07,abc123def],表示$489.07的visa支付已经被批准并且被分配确认号码abc123def。继续这个示例,从文本响应库228a检索的文本可以包括[信用卡,支付,金额,批准,确认]。

文本响应合成模块228将文本数据提供给语音响应合成模块226,语音响应合成模块226处理文本数据以提供音频数据272,如本文中描述的。继续上面的示例,示例语音响应可以包括“您的visa支付$489.07已经被批准,并且您的支付确认是abc123def。

根据本公开的实现,语音响应合成(例如,由语音响应合成模块226提供的)实现了基于ai的数字助理与用户之间的更自然的交互,并且还使得语音的更好的表示和正确单词的更好的选择能够被传递给用户。以这种方式,本公开的基于ai的数字助理向用户提供无缝体验,避免了与数字代理的交互中的潜在用户犹豫,因为它是机器。如本文中描述的,语音响应合成使用多个记录的语音实时地合成语音响应。以这种方式,用户体验到无缝过渡,其中与基于ai的数字助理和人类的交互之间的差异被最小化。

图3描绘了在本公开的实现中能够被执行的示例过程300。在一些示例中,示例过程300使用由一个或多个计算设备(例如,图1的后端系统108)执行的一个或多个计算机可执行程序来提供。在一些示例中,示例过程300可以被执行以提供如本文中描述的基于ai的数字助理。

接收音频数据(302)。例如,交互管理器202通过网络110从设备102接收音频数据260。向语音到文本服务提供音频数据(304)。例如,交互管理器202向语音文本服务206提供音频数据260。接收文本数据(306)。例如,交互管理器202从语音到文本服务206接收文本数据262。

向人工智能服务提供文本数据(308)。例如,交互管理器202(例如,文本分类模块220)向人工智能系统208提供文本数据262(或文本数据262的至少一部分)。接收人工智能服务的输出(310)。例如,交互管理器202(例如,文本分类模块220)接收人工智能系统208的输出。如本文中描述的,输出包括意图集合和实体集合。

确定是否需要消歧(312)。例如,如本文中描述的,交互管理器202确定是否需要消歧。如果需要消歧,则执行消歧(314)。例如,并且如本文中描述的,消歧问题模块224提供消歧问题作为文本数据,该文本数据被提供给语音响应合成模块226。语音响应合成模块226处理文本数据以提供音频数据272。音频数据272被提供给设备102(例如,通过网络110),并且设备102向用户120播放音频。

如果不需要消歧,则确定一个或多个动作(316)。例如,并且如本文中描述的,动作标识模块222通过参考可用动作库222a来提供要由动作处理器204执行的动作集合。发起一个或多个动作中的每个动作的执行(318)。例如,并且如本文中描述的,通过标识要被调用以用于动作的执行的一个或多个服务280并且向一个或多个服务280传输相应请求,动作编排模块232处理动作集合以发起动作集合中的每个动作的执行。

接收一个或多个动作的执行结果(320)。例如,动作编排模块232从一个或多个服务280中的每个服务接收相应结果。确定是否需要消歧(322)。例如,如果结果集合包括太多的结果要被高效地传送给用户120,则可能需要消歧。如果需要消歧,则执行消歧(314),如本文中描述的。如果不需要消歧,则提供一个或多个文本响应(324)。例如,文本响应合成模块228基于结果集合中的每个结果(例如,参考文本响应库228a)提供文本数据。提供音频响应(326)。例如,文本响应合成模块228向语音响应合成模块226提供文本数据,语音合成模块226处理文本数据以提供音频数据272。传输音频响应(328)。例如,交互处理器202通过网络110向设备102传输音频数据272。

本说明书中描述的实现和所有功能操作可以以数字电子电路或以计算机软件、固件或硬件(包括本说明书中公开的结构及其结构等同物)来实现,或者以它们中的一个或多个的组合来实现。实现可以被实现为一个或多个计算机程序产品,即编码在计算机可读介质上用于由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读传播信号的物质的组合、或者它们中的一个或多个的组合。术语“计算系统”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或者多个处理器或计算机。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码(例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者其中的一个或多个的任何适当的组合的代码)。传播的信号是为了对信息进行编码以用于传输到合适的接收器装置而生成的人工生成的信号(例如,机器生成的电、光或电磁信号)。

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

本说明书中描述的过程和逻辑流程可以由一个或多个可编程处理器来执行,一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并且生成输出来执行功能。处理和逻辑流程也可以由专用逻辑电路(例如,fpga(现场可编程门阵列)或asic(专用集成电路))来执行,并且装置也可以实现为专用逻辑电路。

作为示例,适合于执行计算机程序的处理器包括通用和专用微处理器、以及任何适当类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者可操作地耦合到这样的大容量存储设备以从其接收数据或向其传输数据,或者两者兼而有之。然而,计算机不需要具有这样的设备。此外,计算机可以被嵌入到另一设备(例如,移动电话、个人数字助理(pda)、移动音频播放器、全球定位系统(gps)接收器)中。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备(例如,eprom、eeprom和闪存设备);磁盘(例如,内部硬盘或可拆卸磁盘);磁光盘;以及cdrom和dvd-rom盘。处理器和存储器可以由专用逻辑电路补充或被并入其中。

为了提供与用户的交互,实现可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)、lcd(液晶显示器)显示器)以及用户可以通过其向计算机提供输入的键盘和定点设备(例如,鼠标、轨迹球、触摸板)。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何适当形式的感觉反馈(例如,视觉反馈、听觉反馈、触觉反馈);并且来自用户的输入可以以任何适当的形式被接收,包括声音、语音或触觉输入。

实现可以在计算系统中实现,该计算机系统包括后端部件(例如,作为数据服务器)、中间件部件(例如,应用服务器)、和/或前端部件(例如,具有用户可以通过其与实现进行交互的图形用户界面或网络浏览器的客户端计算机),或者一个或多个这样的后端、中间件或前端部件的任何适当组合。系统的部件可以通过任何适当形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生的。

虽然本说明书包括很多细节,但是这些不应当被解释为对本公开的范围或可以要求保护的内容的限制,而是作为对特定于具体实现的特征的描述。本说明书中在单独实现的上下文中描述的某些特征也可以在单个实现中组合实现。相反,在单个实现的上下文中描述的各种特征也可以在多个实现中单独地或以任何合适的子组合来实现。此外,虽然上文可以将特征描述为以某些组合起作用并且甚至最初如此要求,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从组合中删除,并且所要求保护的组合可以涉及子组合或子组合的变型。

类似地,虽然操作在附图中以特定顺序被描述,但是这不应当被理解为要求以所示出的特定顺序或按顺序执行这样的操作,或者要求所有示出的操作被执行以达到期望的结果。在某些情况下,多任务和并行处理可以是有利的。而且,在上述实现中的各种系统部件的分离不应当被理解为在所有实现中都需要这样的分离,并且应当理解,所描述的程序部件和系统通常可以一起集成在单个软件产品中或者封装到多个软件产品中。

已经描述了多个实现。然而,应当理解,在不脱离本公开的精神和范围的情况下可以进行各种修改。例如,可以使用上面所示的各种形式的流程,其中步骤被重新排序、添加或去除。因此,其他实现在以下权利要求的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1