CN115668206A - 推动多语言、多轮次、多领域虚拟助理的并行假设推理 - Google Patents
推动多语言、多轮次、多领域虚拟助理的并行假设推理 Download PDFInfo
- Publication number
- CN115668206A CN115668206A CN202180034482.0A CN202180034482A CN115668206A CN 115668206 A CN115668206 A CN 115668206A CN 202180034482 A CN202180034482 A CN 202180034482A CN 115668206 A CN115668206 A CN 115668206A
- Authority
- CN
- China
- Prior art keywords
- user
- interpretations
- primary
- results
- highest
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 92
- 230000015654 memory Effects 0.000 claims abstract description 46
- 230000008569 process Effects 0.000 claims abstract description 32
- 206010048669 Terminal state Diseases 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims abstract description 21
- 230000009471 action Effects 0.000 claims description 111
- 238000012545 processing Methods 0.000 claims description 30
- 238000013518 transcription Methods 0.000 claims description 20
- 230000035897 transcription Effects 0.000 claims description 20
- 230000002730 additional effect Effects 0.000 claims description 15
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000013473 artificial intelligence Methods 0.000 claims 1
- 239000003795 chemical substances by application Substances 0.000 description 66
- 238000004891 communication Methods 0.000 description 23
- 230000003993 interaction Effects 0.000 description 13
- 230000001976 improved effect Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 8
- VEMKTZHHVJILDY-UHFFFAOYSA-N resmethrin Chemical compound CC1(C)C(C=C(C)C)C1C(=O)OCC1=COC(CC=2C=CC=CC=2)=C1 VEMKTZHHVJILDY-UHFFFAOYSA-N 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 5
- 230000000007 visual effect Effects 0.000 description 5
- 238000001994 activation Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 239000010409 thin film Substances 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 241000233805 Phoenix Species 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000010411 cooking Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- IRLPACMLTUPBCL-KQYNXXCUSA-N 5'-adenylyl sulfate Chemical compound C1=NC=2C(N)=NC=NC=2N1[C@@H]1O[C@H](COP(O)(=O)OS(O)(=O)=O)[C@@H](O)[C@H]1O IRLPACMLTUPBCL-KQYNXXCUSA-N 0.000 description 1
- 102100031102 C-C motif chemokine 4 Human genes 0.000 description 1
- 101100054773 Caenorhabditis elegans act-2 gene Proteins 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 239000003651 drinking water Substances 0.000 description 1
- 235000020188 drinking water Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000037390 scarring Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000008093 supporting effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000001755 vocal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1815—Semantic context, e.g. disambiguation of the recognition hypotheses based on word meaning
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/18—Speech classification or search using natural language modelling
- G10L15/1822—Parsing for meaning understanding
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
Landscapes
- Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Acoustics & Sound (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种虚拟助理系统,包括被配置为接收用户输入并向用户提供响应的接口以及被配置为运行机器可执行代码的处理器。存储非暂时性机器可执行代码的存储器,该代码被配置为处理用户输入以生成两个或更多个初级解释以及基于两个或更多个初级解释中的一个或多个的一个或多个次级解释。该代码还被配置为处理初级解释和替代解释以生成导致两个或更多个终端状态的结果,然后对两个或更多个终端状态进行评分以对两个或更多个终端状态进行排序,使得排序最高的终端状态是呈现给用户的最高结果。收发器可以通过网络与第二设备进行通信,第二设备被配置为辅助虚拟助理系统为用户生成最高结果。
Description
相关申请的交叉引用
本申请要求2020年03月10日提交的美国临时申请第62/987814号的优先权,并且通过引用将其并入。
技术领域
本发明涉及一种用于提供能够在对话(conversation)中跨多个领域操作任意数量的轮次的数字礼宾助理的方法。
背景技术
图1示出了现有技术的虚拟助理操作及其由于在线性的和基于孤立任务的方法上运行而导致的限制。通常以语音命令形式的用户输入发起操作过程。语音输入被记录为音频100,然后被转换成文本表示105。文本表示被递送给云辅助服务以确定用户意图110。基于所确定的用户意图,选择115并执行120动作。最后,所执行的动作的结果被呈现给用户125。
这种类型的过程有几个限制。第一,图1的过程仅考虑了用户执行意图的一个解释。如果对来自用户的语音输入的这种初始解释(诸如由于用户糟糕的发音、麦克风定位、背景噪声或任何其他因素)被不正确地解释,则解释可能是不正确的,这将产生提供给用户的次优结果。此外,可能存在多个有效的竞争解释,但是由于现有技术的单路径性质,仅追求一个解释。结果,没有为用户输入的附加的上下文或不同的解释留有空间。
第二,每个任务仅考虑最高(top)文本表示。例如,仅最高文本表示被选择105并被传递到下一个任务,其中仅最高用户意图110被确定并被传递到下一个任务。然后,仅选择最高动作115,依此类推。因此,没有为任务之间的协作留有空间。
第三,这个过程不允许回溯,并且每个任务不能被存储为用户历史的独立部分。因此,该过程不能很好地执行诸如“但不是(but not)”功能之类的排他命令(因为这些命令需要回溯),并且没有为多轮次用户交互留有空间。例如,如果第一音频100包括用以执行互联网搜索的命令,并且在递送结果125时,用户希望使用第二音频命令来修改搜索,则用户将不得不手动地将先前的结果125合并到他们的第二音频命令100中。现有技术的另一缺点是,图1所示的每个任务不允许任务之间的协作。
发明内容
为了克服现有技术的缺点并提供附加的好处,公开了一种用于提供虚拟辅助的方法。在一个实施例中,该方法包括:接收包括对动作或信息的用户请求的用户输入,然后通过处理用户输入来为用户输入生成两个或更多个初级解释。两个或更多个初级解释是针对用户输入的唯一可能转录。该方法还通过处理初级解释中的一个或多个以形成替代解释来为该两个或更多个初级解释中的一个或多个生成一个或多个次级解释。该方法还响应于两个或更多个初级解释和一个或多个次级解释来确定一个或多个初级动作,准备由执行一个或多个初级动作而得的一个或多个结果,并且还响应于一个或多个初级动作中的至少一个初级动作确定是否存在一个或多个次级动作。如果存在一个或多个次级动作,则继续处理初级解释、一个或多个次级解释、一个或多个初级动作和一个或多个次级动作中的两个或更多个以生成附加动作。当一个或多个附加动作不存在时,将没有对其预测附加动作的一个或多个结果指定为一个或多个终端结果,并且对一个或多个终端结果进行评分。该方法将具有最高得分的终端结果指定为最高结果,并且向用户至少输出最高结果,或者采取由最高结果定义的动作。
在一个实施例中,评分基于以下因素中的一个或多个。第一评分因素基于对话状态。对话状态包括一个或多个初级解释、一个或多个次级解释、一个或多个动作或者一个或多个结果。第二评分因素基于用户简档,使得用户简档包括存储在一个或多个服务器上的用户偏好和用户历史。第三个评分因素基于辅助元数据。辅助元数据包括存储在一个或多个服务器上的与用户偏好无关和与用户历史无关的数据。用户输入可以是用户说出的语音。预期为用户输入生成两个或更多个初级解释并发地并行发生。该方法还可以包括请求用户澄清一个或多个初级解释或者一个或多个次级解释中的哪一个是正确的。在一个配置中,该方法由在用户设备的操作系统上运行的人工智能层来执行。向用户至少输出最高结果或者采取由最高结果定义的动作可以包括以下一项或多项:播放歌曲、发起电话呼叫、向用户提供信息、播放视频、发送文本消息、记录视频、从用户设备发送信息以及控制灯。
本文还公开了一种虚拟助理系统。在一个实施例中,该虚拟助理包括被配置为接收来自用户的输入并向用户提供响应的用户接口、被配置为运行机器可执行代码的处理器、以及存储非暂时性机器可执行代码的存储器。机器可执行代码被配置为处理用户输入以生成两个或更多个初级解释。两个或更多个初级解释包括针对用户输入的唯一可能转录。机器可执行代码还被配置为通过处理初级解释中的一个或多个以形成替代解释来基于两个或更多个初级解释中的一个或多个生成一个或多个次级解释。机器可执行代码还处理初级解释和替代解释以生成导致两个或更多个终端状态的结果,对两个或更多个终端状态进行评分以对两个或更多个终端状态进行排序,使得排序最高的终端状态是最高结果。最高结果被呈现给用户或供用户执行。
在一个实施例中,用户接口包括麦克风和扬声器。在一个实施例中,用户接口还包括被配置为通过网络与第二设备进行通信的收发器。第二设备可以被配置为执行第二虚拟助理机器可执行代码,以辅助虚拟助理系统为用户生成最高结果。在一个实施例中,虚拟助理系统可以是智能电话。在一个实施例中,机器可执行代码被配置为向用户呈现多个终端状态。最高结果可以被呈现给用户或者通过以下动作之一来执行:显示文本、显示图像、播放音乐、播放视频、执行交易以及打开/关闭设备。在一个实施例中,机器可执行代码还被配置为向请求关于以下一项或多项的附加信息的用户呈现反馈:初级解释、替代解释、结果和终端状态。机器可执行代码还被配置为响应于从用户接收到附加信息,处理附加信息以生成附加替代解释或者对两个或更多个终端状态重新评分。
还公开了用于提供虚拟辅助的第二种方法。在一个实施例中,该第二方法包括:接收包括对动作或信息的请求的用户输入,以及通过处理用户输入来生成用户输入的两个或更多个解释。两个或更多个解释是针对用户输入的唯一可能转录。该方法还包括:基于被配置为处理两个或更多个解释中的至少一个解释的一个或多个初级代理,将至少一个解释与一个或多个初级代理匹配。在该方法中,一个或多个初级代理选择被配置为处理两个或更多个解释中的至少一个解释的一个或多个技能。一个或多个结果可以通过用一个或多个技能处理两个或更多个解释中的至少一个解释来生成。该方法还包括:确定一个或多个次级代理是否可以与一个或多个结果匹配,以供通过次级代理中的一个或多个进一步处理结果。如果一个或多个次级代理被匹配,则该方法继续处理一个或多个结果以生成附加结果。一个或多个结果中的至少一个和附加结果中的至少一个被指定为两个或更多个终端结果。对两个或更多个终端结果进行评分,并且具有最高得分的终端结果被指定为最高结果。该方法还包括向用户至少输出最高结果或者采取由最高结果定义的动作。
在一个实施例中,代理是可执行以执行并行假设推理的软件模块或例程。在一个实施例中,技能是可执行以响应于单个用户查询来执行任务或生成结果的软件模块或例程。在一个实施例中,该方法还可以包括为初级解释中的至少一个生成一个或多个次级解释。在一个实施例中,该方法还可以包括:接收用户输入包括接收来自用户的语音并将该语音转换成数字信号。
附图说明
附图中的组件不一定是按比例绘制的,而是强调说明本发明的原理。在附图中,在不同的视图中,相同的附图标记表示相应的部分。
图1示出了现有技术的虚拟助理操作及其由于在线性的和基于孤立任务的方法上运行而导致的限制。
图2示出了本文描述的虚拟辅助的示例使用环境。
图3示出了本文描述的虚拟助理系统的示例使用环境。
图4示出了实现虚拟助理的用户设备和相关元件的示例实施例。
图5A和图5B示出了展示出执行器模块的不同位置的本发明的两个实施例。
图6示出了展示出允许改进的跨领域技能协作的执行器、代理和技能之间的相互关系的框图。
图7示出了使用样本用户输入短语的改进的虚拟助理的实际应用。
图8示出了图7中讨论的分支转录方法的概况。
图9示出了可能结果路径的一个分支遍历结果树的方式。
图10示出了解释阶段期间的硬件交互。
图11A、图11B、图11C、图11D示出了各种实现方法。
图12A和图12B示出了一种可能操作方法的示例性操作流程图。
图13示出了示例性用户设备的框图。
图14示出了网络环境中的计算设备、移动设备或服务器的示例实施例。
具体实施方式
本发明涉及一种用于提供能够在对话中跨多个领域操作达任意数量的轮次的数字礼宾助理的方法。具体地,本发明涉及一种允许任意数量的领域特定代理利用使它们一起工作以实现目标的能力并行操作的新技术。此外,这种方法提供了一种可以用来根据跨所有代理的对话状态理解上下文语言的手段。这种方法还允许代理在本地设置中以及利用与云服务器相关的连接而被跨设备拆分。
图2示出了本文描述的虚拟辅助的示例使用环境。用户200经由用户输入与设备205进行交互。用户输入提示设备205向基于云的服务器210发送消息,基于云的服务器210然后选择技能215来满足请求。技能(skill)在本文被定义为用以响应于单个用户查询来执行任务或生成结果的可执行的软件模块或例程(诸如PlayMovie、PlayMusic、FindRecipe)。技能的其他示例可以是专注于特定领域(诸如但不限于葡萄酒信息、食谱信息或烹饪信息)的软件模块或例程。技能选择是指在给定输入文本的情况下计算机化的虚拟助理如何选择要使用的技能。如图2所示,所选择的技能215然后向云210返回消息或响应,云210然后又将该消息传递回设备205。设备205可以可选地向用户200通知技能215的一些结果。
本发明提供了一种通过提供要由虚拟助理在用户与虚拟助理之间处理的无限数量的轮次来克服现有技术的缺点的方法。此外,还存在针对无限数量的领域的选项。示例操作环境是在被配置为用于虚拟助理的用户接口的用户设备中。用户向设备中提供音频或文本输入以供虚拟助理处理,从而发起过程。用户设备可以包括任何计算设备,包括但不限于移动计算设备,诸如智能电话、智能手表、平板电脑、膝上型电脑、台式计算机、信息亭或者配置有麦克风、扬声器和可选显示器的联网单元。其他设备可以包括联网电视、电器、车辆或者能够或被配置为如本文所述那样运行的任何其他设备。
图3示出了本文描述的虚拟助理系统的示例使用环境。这只是一种可能的使用环境和系统。预期在阅读了下面结合附图提供的说明书之后,本领域普通技术人员可以获得不同的使用环境和配置。
在该环境中,用户设备305、306、307用于访问虚拟助理(包括用户的账户),经由网络315连接到远程服务器320A、320B、320C。用户设备305、306、307可以包括(1)能够捕捉语音、图像或其他类型输入的移动设备305,诸如智能电话、智能手表、平板电脑;(2)用户可以远程连接的蓝牙设备306,诸如扬声器和控制台,以及(3)任何其他设备307,诸如可远程控制的车辆播放器、温度控制器、灯开关等。
这些用户设备305、306、307被配置为连接到一个或多个网络315,一个或多个网络315又连接到一个或多个远程服务器320A、320B、320C。这种通信可以发生在局域网(“LAN”)、广域网(“WAN”)、个人区域网(“PAN”)、互联网、以太网、WiFi连接或任何其他有线或无线连接上。网络315可以包括单个网络或彼此通信的多个网络。网络315连接到一个或多个服务器320A、320B、320C。服务器320可以包括能够与用户设备305、306、307进行通信的任何类型的计算设备。用户设备305、306、307和服务器320被配置有处理器和存储器,并且还配置为执行存储在存储器中的机器可读代码或机器指令。
服务器320也可以经由一个或多个网络或者一个或多个服务器直接地或间接地彼此通信。在图3所示的示例中,网络315直接连接到一个服务器320A。服务器320A连接到它的服务器数据库325A和其他服务器320B、320C。这些其他服务器320B、320C也分别连接到它们的服务器数据库325B、325C。因此,所有用户设备305、306、307可以与所有服务器320和它们各自的数据库325进行通信。
如图所示,数据库325可以被存储在移动设备、次级本地设备或远程位置上,并且可以包含诸如用户账户之类的数据以识别用户,从而允许访问相关联的用户数据以及要提供给用户的信息。数据可以是用以允许访问另一服务器中的单独账户信息的例如与用户账户相关的信息。也可以包括其他数据,诸如GPS数据、设备识别信息、数据库、用户训练数据、偏好等。
在图3所示的实施例中,服务器320A处理来自用户设备305、306、307的请求。可以提供具有相关联的第二数据库325B的第二服务器320B和具有相关联的第三数据库325C的第三服务器320C,以包含在服务器320A和数据库325A上不可用的附加信息。例如,附加服务器320B或320C中的一个可以仅基于来自用户的请求被访问。图3的配置只是一个可能的实施例,并且预期其他实施例也是可能的。
图4示出了实现虚拟助理的用户设备和相关元件的示例实施例。如上所述,用户设备410包括执行器430,执行器430包括被配置为监督和指导虚拟助理的操作的软件、硬件或两者的组合。在该实施例中,执行器430位于用户设备410中,但是在其他实施例中,执行器430可以位于次级用户设备中或者云计算环境(云)或远程服务器中。在该实施例中,执行器430与本地数据库415和存储对话历史420的存储器或数据库一起被存储在用户设备410内部。执行器430如本文所述接收并处理用户输入。在接收到请求并执行处理之后,执行器430可以被配置为在请求之后经过了一定时间量之后超时,或者基于运行的结果状态集合利用不同的试探法来确定假设推理应当停止。一旦超时或确定假设推理应当停止,执行器430收集所有可能的状态并向用户呈现结果。评分模块可以被存储在远程数据库中。
图4中还示出了与执行器430进行通信的远程数据库400。用户请求也可以被发送到远程数据库400以进行附加处理。远程数据库400还与用户提供的数据405、用户历史数据406和辅助元数据407进行通信。用户提供的数据405包括用户在注册用户账户时可能已经提供的任何信息,诸如姓名、出生日期、用户选择的感兴趣领域、用户选择的设备主要用途、用户位置、用户指标(诸如在测量这种指标的设备上的心率)等。用户历史数据406包括对话历史、记录的基础状态(下面讨论)、动作(下面讨论)、结果(下面讨论)等。辅助元数据407包括由第三方生成的非用户信息,诸如最近的新闻、天气等。这些附加的数据源用于对结果进行评分。例如,如果用户简档指示他们对“赛车”感兴趣,并且他们的用户历史指示赛车是周末的初级话题,那么与赛车运动相关联的结果可能比指示问题是关于“脸部伤疤”的用户请求的解释排序更高。评分模块不仅考虑作为生成作为部分对话历史420的状态的一部分而采取的动作的所有置信度,还考虑用户提供的数据405、用户历史数据406和任何辅助元数据407,以对结果进行排序和/或丢弃并将结果作为输出状态425提供给用户。
在一个实施例中,改进的虚拟助理可以利用多个评分器。这样的多个评分器可以包括或利用由第三方提供的评分器,或者基于由第三方提供的辅助元数据。在一个实施例中,多个评分器可以彼此协作,以基于用户偏好以及所选择或访问的辅助元数据来定制评分。
图5A和图5B示出了展示出执行器模块的不同位置的本发明的两个实施例。这两幅图由于在一些元件中重叠而一起讨论。执行器500由基础节点(base node)(在硬件上执行的软件)组成。图5A示出了其中执行器500的基础节点被本地安装(定位和运行)在用户直接与之交互或者用户本地的用户设备505(诸如与智能手表或个人助理设备对接的智能电话)上的实施例。图5B示出了其中执行器500的基础节点安装在远程设备510上的实施例。远程设备510可以是与用户设备505在相同网络中的设备、独立数据中心中的设备、远程基于云的服务器或其组合。
执行器500可以访问任意数量的代理(agent)520。代理520由在硬件上执行的软件组成。执行器500使用一个或多个代理520来执行并行假设推理。代理520可以被安装在用户设备505上(诸如代理520A、520B、520C)或者在一个或多个远程设备510上(诸如代理520D、520E)。如图5A和图5B所示,执行器500、用户设备505、一个或多个远程设备510和代理520的位置是灵活的。无论执行器500相对于用户设备505被安装在哪里,用户设备505都可以访问执行器500。类似地,无论一个或多个代理520相对于执行器500被安装在哪里,执行器500都可以访问代理520。
本文公开的方法和装置还提出了对技能选择和执行的改进。如上所述,传统的虚拟助理通过以单路径线性方式执行任务来处理用户请求。每个任务可以通过从设备到云的单独请求来执行,以选择技能然后执行技能。针对一个任务所选择的技能与针对另一任务所选择的技能并不相关。相比之下,本文公开的方法和装置通过将用户请求分类到被称为领域(domain)的特定垂直主题中并且通过将一个或多个技能组合到技能模块中来允许所选择的技能彼此协作。
图6示出了展示出允许改进的跨领域技能协作的执行器、代理和技能之间的相互关系的框图。图6示出了软件模块的一种可能的布局或通信路径。领域、代理、技能模块和技能的数量和布置是基于用户偏好、用户简档以及当前和过去的用户交互而随时间变化的。在该示例实施例中,执行器650被配置为初级控制模块,并且被配置为与一个或多个其他软件模块进行通信。如图所示,执行器650被配置为直接与三个代理620(每个代理支持其自己的领域610)进行通信。每个代理620又与它们各自的领域610内的技能模块630-640进行通信。如下面更详细讨论的,每个技能模块630-640包括与领域610相关的一个或多个技能。
领域1 610A、代理1 620A和代理3 620C在领域3 610C内。领域1 610A包括许多技能模块,诸如技能模块630、632、634、636。这些技能模块630、632、634、636可由代理620A访问以执行来自用户的请求。如图所示,领域1 610A内的技能模块636被配置为(诸如如果在处理期间技能模块636确定它必须从代理3 620C寻找数据)也与代理3 620C进行通信以执行请求。
图6的系统还被配置成使得作为领域3 610C的一部分的代理3 620C可以与领域2610B进行通信。技能模块638和技能模块640在领域610B内。因此,领域3 610C中的代理3620C可以访问技能模块638并与之进行通信以执行请求处理。
不同的用户请求将导致不同的代理被激活,进而调用不同的技能模块来获得用户所请求的信息或动作。如上所述,可以同时开发多条路径来响应用户的请求。将该原理应用于图6,执行器650可以接收来自用户的语音命令形式的请求,然后执行器650使代理620能够对用户请求进行可能的解释。进而,每个代理620使技能模块630-640能够进一步为用户获得、开发和提供可选的响应。评分模块评估向用户提供哪一个响应以使得来自每个代理的输入可以是不同的响应。最初看起来有希望的路径,在用一个技能模块开发之后,可能成为不期望的响应。最初看似次优的路径,在用另一技能模块开发之后,可能产生最佳得分的路径。在向用户提供响应期间和之后,维护每个分支(代理路径和子路径),从而允许用户修改或澄清请求,从而允许快速和动态地转移到不同的分支(代理路径),或者使路径被进一步开发。
每个领域可以涵盖更小的领域。在图6中,领域1 610A在领域3 610C内部。例如,娱乐领域可以涵盖更小的领域,诸如电影领域、电视领域和音乐领域。另一方面,领域2 610B与领域1 610A和领域3 610C分离。
如图所示,在操作期间,每个领域可以利用一个或多个代理来处理与该领域相关联的请求。代理是可以依赖于多个技能模块来处理单个请求(尤其是在来自用户的请求涉及一个以上的技能的情况下)的软件模块或例程。在图6中,代理1 620A支持领域1 610A,代理2 620B支持领域2 610B,并且代理3 620C支持领域3 610C。预期一个以上的代理可以支持一个领域(图6中未示出)。
作为操作的一部分,执行器650控制或引导对代理620的请求,并且因此能够使用这些代理620来处理领域610中的用户请求以支持该请求。在一些情况下,执行器650可以仅利用一个代理620来处理单个领域中的用户请求。在其他情况下,执行器650可以利用跨多个领域的多个代理来处理用户请求。例如,用户请求寻找“有葡萄酒搭配的食物食谱”可以提示执行器650使用独立但并行的处理路径作为用于特定请求的相关代理620来调用来自“食谱”领域、“葡萄酒”领域和“烹饪”领域的代理同时运行。
在图6的示例性实施例中,在操作期间,每个代理可以被配置为访问至少一个技能模块。例如,代理1 620A可以访问几个技能模块630、632、634、636。代理2 620B可以访问技能模块640。代理3 620C可以访问技能模块636、638。预期代理可以访问相同的技能模块或者具有专用的技能模块。如图6所示,代理1 620A和代理3 620C都可以访问技能模块636。
在操作期间,技能模块630-640可以访问一个或多个技能。一些技能模块可以被配置为访问重叠的技能(例如,技能模块630、634都可以访问技能1)。其他技能模块可以被配置为以不同的次序访问相同的技能(例如,技能模块634可以被配置为在技能2之前访问技能1,而技能模块636可以被配置为在技能1之前访问技能2)。其他技能模块可以被配置为利用相同技能的多次迭代(例如,技能638可以被配置为利用技能2两次)。还公开了一些技能模块可以被配置为可选地和选择性地访问一个或多个技能。例如,即使技能模块630可以访问技能模块1和技能模块3,它也可以基于对请求的解释仅将技能1用于特定请求。
尽管在图6中示出了一种特定的布置,但是代理620相对于技能模块的位置或可访问性是灵活的。一个或多个技能模块可以被安装在用户设备内部(“本地技能模块”),而其他技能模块可以被安装在远程设备内部或者被容纳在远程的基于云的服务器中(“远程技能模块”)。类似地,一个或多个代理可以被安装在用户设备内部(“本地代理”),而其他代理可以被安装在远程设备内部或者被容纳在远程的基于云的服务器中(“远程代理”)。预期本地代理可以根据需要访问本地技能模块和远程技能模块。类似地,远程代理可以根据需要访问本地技能模块和远程技能模块。
通过允许技能模块共享技能、允许代理共享技能模块以及允许执行器同时使用一个或多个代理,本发明准许技能协作,而这在传统的虚拟助理中是不可能的。此外,传统的虚拟助理从云中取得每个单独的技能,并且以线性、单路径的方式执行所述技能。相比之下,本发明允许一个或多个代理本地和远程地访问技能模块,并且并行执行这些技能模块(以满足请求),从而增加了虚拟助理能力的速度和深度。
图7示出了使用样本用户输入短语“Harry Potter”的改进的虚拟助理的实际应用。如上所述,虚拟助理实现了用以提高准确性并改善用户体验的多路径并行处理方法。所公开的方法执行多个并行的同时处理路径(包括多个解释),而不是如图1所示的单个处理路径。
如图7所示,用户可以输入包括短语704的输入,诸如语音命令(或任何其他输入方法)。执行器(诸如通过使用语音识别技术创建表示用户音频的数字数据)将音频转换成数据表示708。语音识别和音频到数字转换是众所周知的,因而本文不再详细描述。执行器将数据表示708转换成附加的文本解释716,包括跨所有支持的语言的文本表示712。从示例性的文本解释716中可以看出,尽管用户可以说出单词“Harry Potter”,但是语音识别之后的数字数据708可能不正确,并且实际上可能被解释为“harry water”。正如我们所知,用户正在寻找关于“Harry Potter”而不是“harry water”的信息。在现有技术的系统中,由于“harry water”是无意义的,因此基于不正确但最高的解释,用户将被提供不正确的信息,或者根本没有信息。
所公开的方法和装置克服了现有技术的缺点,并且提供了一种用以即使当口头请求的初始解释不准确时也能对用户生成更好或最佳的响应的改进方法。为了克服现有技术的缺点,附加的文本表示712、716被进一步转换成可能的动作或解释720、724、728。这些可能的动作或解释又可以产生一个或多个可能结果730、732、734。所有结果将由评分模块评估,并且将选择一个最高结果736来进行输出。如本文更详细讨论的,当对可能结果730、732、734进行排序时,考虑了许多因素,诸如但不限于用户交互历史、网页浏览历史、用户账户信息和个人习惯。
如上所述,传统的虚拟助理使用用户输入的单个文本表示。相比之下,改进的虚拟助理使用分支转录方法来考虑所有可能的书面解释。因此,虽然文本表示708可以是用户输入的初始解释,但是执行器也将考虑其他文本表示716或跨所有支持的语言的解释712。这是通过允许由设备上的一些语言和云中的其他语言执行口头输入的转录来实现的。例如,终端用户设备可能支持语言A和B,但是云服务可能支持C-Z,在接收到用户的口头输入时,该设备将会转录成语言A和B,然后将其与C-Z的云服务转录能力相结合。然后,所有这些输入同时被认为是用户可能说过的话的可能解释。在一个实施例中,选择三个最高选项。
每个文本表示712和716触发执行器选择可能动作。在一个实施例中,选择三个最高动作。例如,“harry water”的文本表示716可以触发生成饮用水的可能类型列表720的最高动作。作为另一示例,文本表示716“Harry Potter”可以触发生成相关媒体(诸如电影732、书籍730和游戏734)的最高动作。作为又一示例,文本表示516“hairy spotter”可以触发编辑发廊列表的最高动作,或者用于搜索语音相似短语728的可能动作。也可以触发其他动作,但是在图7中没有示出。
每个结果都可能触发附加的动作并产生附加的结果。例如,电影类别的结果组724可以触发生成相关电影标题列表的最高动作。本发明可以选择三个最高电影标题730。作为另一示例,书籍结果724可以触发生成相关书籍标题列表的最高动作。本发明可以选择三个最高书籍标题732。作为另一示例,游戏结果724可以触发生成相关游戏标题列表的最高动作。本发明可以选择三个最高游戏标题734。
结果730-734也表示终端结果,终端结果是不保证进一步分支的结果。相比之下,结果716、720、724、728是非终端结果,非终端结果需要进一步分支。每个终端结果(诸如730下的“凤凰社”、732下的“历代魁地奇”、734下的“霍格沃茨之谜”)都将收到自己的结果得分。具有最高得分736的结果将被选择并呈现给用户。
与现有技术相比,本发明的实施例的另一新颖方面是对话可以执行多个轮次的性质。来自并行探索的所有先前的现有状态都被认为是用于向前推进对话的可能原点,而不是仅考虑传统系统中当前对话状态之后的下一轮次。例如,在接收到最高结果(其在图7所示的示例中是书籍标题“魔法石”732)时,用户可以输入新的语音命令,诸如“我想要电影”(图7中未示出)。然后,执行器将回溯到步骤724,并且将更高的得分附加到与电影动作相关的结果上以呈现具有新的最高得分的结果,该结果在该示例中可以是730下的电影标题“凤凰社”(图7中未示出)。替代地,执行器可以舍弃与电影无关的路径,并且进一步开发电影路径。
本文公开的方法和装置的另一新颖方面是使用附加数据来调整得分。例如,基于用户输入短语704“Harry Potter”、书籍标题730、电影标题732和游戏标题734可能收到相等得分。然而,来自用户历史的数据可能表明用户经常玩视频游戏或询问视频游戏。结果,游戏标题734可以获得比书籍标题730和电影标题732更高的得分。辅助元数据可能进一步表明一款以哈利波特为主角的题为“霍格沃茨之谜”的新视频游戏刚刚发布。结果,734下的“霍格沃茨之谜”可能收到最高得分(图7中未示出),而不是5年前发布的游戏收到最高得分。
图8示出了图7中讨论的分支转录方法的广泛概述。在用户输入(通常以语音命令形式,但也可以是任何数字格式)800时,执行器进入解释阶段810,其中,用户输入被解释成文本表示。接下来,执行器进入动作阶段820,其中,针对每个文本解释考虑所有可能动作。接下来,执行器进入结果阶段830,其中,准备每个动作的结果。
一些结果可能需要进一步的操作。对于这样的结果,执行器可以进入附加的动作阶段820,从而产生附加的结果阶段830。执行器重复动作阶段820和结果阶段830,直到结果不需要进一步的动作。对于那些结果,执行器进入终端结果阶段840,其中,结果被指定为终端结果并被发送到上面讨论的评分模块。注意,执行器可以并行处理动作阶段820、结果阶段830和终端结果阶段840。
在评分阶段850中,评分模块将得分附加到每个终端结果,并且选择具有最高得分的结果。执行器实现具有最高得分的结果,这意味着与该结果相关联的动作被执行,并且该结果作为(许多)最高结果或唯一结果或动作被呈现给用户860。在一个实施例中,实现前几个(a top number)(诸如3个)结果(图8中未示出)。如果用户提供附加用户输入801,则执行器可以根据需要回溯到先前的阶段810-850中的任何一个,以处理所述的附加用户输入801。
在解释阶段中,执行器将用户输入发送到一个或多个本地和/或远程代理,以生成文本表示。图8示出了1至N*k个解释811-819。并行生成这些解释811-819。在一个实施例中,在动作阶段820中,选择前几个(诸如3个)解释进行处理。
在动作阶段中,1至N*k个解释811-819中的每一个被处理成1至n个动作821-829。换句话说,执行器可以为解释1 811预测1至n个动作821-829的集合,为解释2 812预测1至n个动作821-829的集合,等等。注意,执行器能够预测所有动作821-829是并行的。在一个实施例中,在结果阶段830中,为每个解释选择前几个(诸如3个)动作进行处理。
在结果阶段中,为每个动作准备结果。例如,结果1 831是为动作1 821准备的,结果2 832是为动作2 822准备的,等等。例如,如果动作1 821正在播放视频,则结果1 831正在将视频文件排队以供输出。注意,执行器可以并行地并且通常同时或并发地准备所有结果831-839。
一些结果可能需要进一步的操作。例如,如果动作2 822是找到与“Harry Potter”相关的所有媒体,则结果2 832可以包括不同类型的媒体(电影、书籍、游戏等)的标识。执行器然后将执行附加动作,诸如用以查询与“Harry Potter”相关的所有电影的动作,从而产生包括电影标题列表的结果。注意,执行器能够为一些结果预测进一步的动作,同时将其他结果指定为终端结果。
如图7所示,执行器可以维护多个分支。每个分支定义了可能的用户含义和上下文,从而产生了自己的动作,这些动作导致结果,从而形成结果树。这些结果具有它们自己的中间状态或终端状态。术语“状态”通常被定义为用户与虚拟助理之间的交互点。图9示出了可能的结果路径的一个分支如何遍历结果树。用户输入(诸如语音命令“Harry Potter”)生成基础状态,该基础状态在解释阶段中变成另一基础状态,在动作阶段和结果阶段中又变成另一基础状态,直到它最终被指定为终端状态并进入评分阶段以达到其最高状态。
更具体地,用户的输入(唯一标识符或请求)被指定为初始基础状态900。在解释阶段970中,执行器905并行地910-913将前N*k个可能的转录假设应用于初始基础状态600。执行器905假定每个可能的转录都是正确的输入,并且使状态分叉。结果是N*k个后续基础状态915-918,每个所应用的转录假设910-913一个。
在动作阶段972中,执行器905并行预测每个后续基础状态915-918的所有可能动作。动作920-922中的一个或多个可以是等幂的和可逆的。在一个实施例中,执行器605为上述结果阶段选择前几个(诸如3个)动作。图9仅示出了后续基础状态(1)615的前k个动作920-933。
在结果阶段972中,准备每个动作925-927的结果,但是没有实现。例如,如果一个动作920包括搜索,则搜索结果925可以被准备用于显示,但是还没有显示给用户。如果另一动作921包括播放音频925,则该音频剪辑可以被准备用于输出。动作920-922导致k个新的后续基础状态930-932。如上所述,图9仅示出了针对基础状态(1)615的前k个动作920-933的新基础状态930-932。
执行器905可以确定一些基础状态需要进一步的动作,诸如基础状态(1,1)630和相应的预测635。在这种情况下,执行器为该基础状态重复动作阶段972和结果阶段974,以创建新的后续基础状态。在一个实施例中,执行器905可以被配置为在经过了一定时间量之后超时,或者基于运行的结果状态集合利用不同的试探法来确定假设推理应当停止。
另一方面,如果执行器905确定一些基础状态不需要进一步的动作,诸如基础状态(1,2)631、基础状态(1,k)632和相应的预测636、637,则基础状态631、632进入终端阶段976,使得这些状态被指定为终端状态940、941,然后进入评分阶段。如上所述,图9仅示出了基础状态(1)615的前k个动作920-933的终端结果。
在评分阶段978中,评分器945从终端结果阶段976接收一个或多个终端状态,并且给每一个终端状态660-662指派得分。评分器945可以考虑作为生成状态600-641的一部分而采取的所有步骤以及辅助元数据950和任何用户历史955(诸如用户简档、用户偏好和先前保存的动作或结果)。
具有最高得分的终端状态被指定为最高状态999并被实现。状态的实现意味着与该状态相关联的动作被永久地执行,并且准备好的结果被输出给用户。例如,如果基础状态931被指定为最高状态999,则动作921被实现,并且准备好的音频(诸如歌曲)926经由输出呈现给用户。在一个实施例中,所实现的结果被存储在用户历史955中,以避免重复并促进个性化。在一个实施例中,实现前几个(诸如3个)结果(图9中未示出)。
在一个实施例中,执行器905可以并行执动作作阶段、结果阶段和终端阶段,使得一些基础状态被指定为终端状态,而其他后续基础状态继续生成新的动作和结果。在一个实施例中,执行器905还与其他阶段并行地执行评分阶段,使得现有的终端状态收到它们的得分,而其他基础状态仍在进入新的动作阶段和结果阶段。在一个实施例中,最高状态随着新的终端状态收到其得分而改变。在一个实施例中,对用户的输出随着新的最高状态出现而被更新或添加。
为了从假设推理的角度执行搜索结果,可能需要搜索引擎能够处理具有特殊分支形式的查询,或者搜索引擎对许多不同的解释执行搜索,以获得针对各种不同解释的搜索结果。在一个实施例中,本文公开的方法和系统具有其自己的内部能够执行这些查询的搜索引擎,但是在其他实施例中,可以利用其他搜索引擎。这进而可能涉及到为所有可能被搜索的项目建立网页索引,并且将它们提取到改进假设推理的元数据表示中。
图10示出了在解释阶段期间的硬件交互。如上所述,执行器、代理、技能和技能模块都可以单独地安装,并且都可以在设备上或在云系统中上运行,或者两者兼有。图10示出了其中执行器被安装在设备1010中而用于解释阶段的代理位于一个或多个本地云或数据库1015以及一个或多个远程云或数据库1020中的示例。用户1000与包含用户输入(诸如但不限于语音、文本、图像、视频或任何其他类型的用户输入1005)的设备1010进行交互。设备1010可以与本地的云或数据库1015或远程的云或数据库1020进行交互。在一个实施例中,这样的交互包括设备1010将用户输入1005传输到云或数据库1015、1020,并且云或数据库1015、1020将转录结果1025传输回设备1010。在该阶段结束时,对于用户的语音或视觉输入1005的总共N*k个可能转录或解释,输出是针对所考虑的N种语言中的每种语言的可能转录的前k列表。
如上所述,当终端状态被指定为最高状态时,执行器实现动作并输出该最高状态的结果。实现最高状态,其中,执行被假定为作为推理的一部分而执行以达到终端状态的所有动作,并且通过音频、视觉或触觉反馈将其输出给用户。图11A、图11B、图11C、图11D示出了各种实现方法。如图11A所示,动作1100A可以调用本地或远程的过程1105、1110。如图11B所示,动作1100B可以连接到本地或远程的数据库1115、1120以修改或取得数据。如图11C所示,动作1100C可以在本地或远程的搜索引擎上或者在本地或远程的数据库1125、1130中执行搜索,以传递搜索结果1135。如图11D所示,动作1100D可以为输出1140(诸如播放保存的音频文件)准备现有结果1140(诸如存储在用户历史中的结果,如上所述)。如图11E所示,动作1100E可以与本地或远程的代理1150、1155连接以创建新的状态或修改现有状态1160。
一个或多个或所有可能被选择实现的状态被存储在执行器中。当接收到新的用户输入时,使用下面的方法继续向前进行对话:(1)假定来自前一轮次的每个可能的终端状态是正确的;(2)创建该状态的副本,并且将新的前N*k个输入假设作为输入,以便执行并行假设推理;以及(3)一旦利用每个可能的先前状态作为根执行了并行假设推理,则执行如上定义的评分过程以选择最高状态来继续对话。
图12A和图12B示出了一种可能的操作方法的示例性操作流程图。在步骤1200中,在用户设备上激活虚拟助理。该步骤假定用户设备本身已经在运行。在一个实施例中,虚拟助理被预先安置在用户设备上,并且每当用户设备本身正在运行时激活。在另一实施例中,虚拟助理稍后被安置在用户设备上(例如通过软件下载和安装,或者通过直接或间接连接到操作虚拟助理的另一设备)。在一个实施例中,虚拟助理在成功安置后被自动激活。在又一实施例中,虚拟助理需要进一步激活,诸如用户选择“开始”功能。如前所述,虚拟助理(更具体地,执行器)可以但不一定必须被安装或安置在用户设备内部。
在步骤1204中,在激活后,虚拟助理进入待机模式并监视用户输入。用户输入可以是直接的(诸如用户经由语音、文本、图像、视频或任何其他输入方法向用户设备发送命令)或间接的(诸如用户对诸如智能手表之类的中间设备直接输入,然后智能手表将其传送到诸如电话之类的用户设备)。
在一个实施例中,只要用户设备本身在运行,虚拟助理就处于待机模式。在另一实施例中,如步骤1208-1212所示,改进的虚拟助理可以被设置为在不活动时段(例如,没有用户输入)之后进入超时模式。超时模式使得虚拟助理停止当前会话并返回到步骤1204,并且监视用户输入或进入睡眠状态。这是在许多用户设备上用以节省诸如电力和数据之类的资源的期望特征。
在一个实施例中,虚拟助理可以停留在超时模式,直到用户执行进一步的激活,诸如步骤1200中所讨论的。在另一实施例中,虚拟助理停留在超时模式,直到用户在用户设备上执行任何活动。例如,如果用户去睡觉并停止使用他的电话达8个小时,则虚拟助理可以进入超时模式。当用户第二天早上醒来并开始在其电话上浏览新闻时,虚拟助理自动退出超时模式并进入待机模式。在又一实施例中,用户可以通过用户输入命令虚拟助理进入超时模式。
在步骤1216中,在接收到用户输入时,虚拟助理进入解释阶段,使得用户输入被转换成初级请求解释。更具体地,执行器将用户输入传输到本地和远程的数据库并接收一个或多个转录结果,然后并行输出N*k个可能转录。图12A将这N*k个可能转录称为初级请求解释(primary request interpretation,“PRI”)。
在步骤1220中,执行器评估每个PRI是否需要进一步的解释。如果是,则在步骤1224中,执行器并行开发次级请求解释(secondary request interpretation,“SRI”)。使用图7中讨论的其中用户尝试输入语音命令输入“Harry Potter”但是没有清楚地做到的示例,执行器可以生成“harry water”作为PRI,然后开发“harry water”、“Harry Potter”和“hairy spotter”作为SRI。在一个实施例中,评估SRI以进行进一步的解释,使得执行器可以开发第三请求解释、第四请求解释等等。在一个实施例中,执行器被设置为当开发了最高回合数量的解释时退出解释阶段(例如,在开发第三请求解释时退出解释阶段)。
在步骤1228中,执行器进入动作阶段,其中,执行器预测响应于每个PRI和SRI的多个适当的动作。在一个实施例中,执行器仅预测响应于前几个(诸如3个)PRI和SRI的动作。执行器可以同时运行解释阶段和动作阶段,使得PRI可以在开发SRI的同时进入动作阶段。
在步骤1232中,执行器进入结果阶段,其中,执行器并行地并且通常同时或通常并发地执行适当的动作以准备动作结果。在一些实施例中,动作可以顺序执行,但是这将减慢操作。例如,如果适当的动作是播放歌曲,则执行器准备歌曲的音频文件以供输出,但是不播放该歌曲。在一个实施例中,执行器针对每个PRI或SRI仅执行前几个(诸如3个)动作。
在步骤1236中,一个或多个动作结果可以使得执行器预测附加动作。如果动作结果需要附加动作,则重复步骤1228-1232。例如,初始动作可以是生成歌曲标题列表。歌曲标题列表可能需要检索要准备输出的所有或前几个(诸如3个)歌曲的附加动作。
在一个实施例中,如步骤1240所示,执行器确定是否应当提示用户进一步的输入。如果是,则在步骤1244中,执行器可以(诸如通过音频或文本通知)向用户输出提示以请求进一步的输入,并且重复步骤1204至1236。使用其中初始动作可以是生成歌曲标题列表的上述示例,执行器可以提示用户确认用户是否希望执行检索一个或多个歌曲的附加动作。在一个实施例中,步骤1240-1244可以在步骤1216-1264之间的任一点处执行。
在步骤1248中,在不能为动作结果预测附加动作的情况下,执行器进入终端结果阶段。在终端结果阶段中,没有附加动作的动作结果被指定为终端结果,并被提交给用于评分阶段的评分器。
在步骤1252的评分阶段,评分器将得分附加到所有终端结果。为了确定每个得分,评分器考虑(1)作为生成终端结果的一部分而采取的所有步骤1216-1248,(2)辅助元数据(与用户并不特别相关的任何数据),以及(3)用户历史(诸如用户简档、用户偏好以及先前保存的动作或结果)。例如,基于用户输入“Harry Potter”,所有与哈利·波特相关的书籍标题、电影标题和游戏标题可以收到相等的得分。然而,来自用户历史的数据可能表明用户经常玩视频游戏或询问视频游戏。结果,游戏标题可以收到比书籍标题和电影标题更高的得分。辅助元数据可能进一步表明一款以哈利波特为主角的题为“霍格沃茨之谜”的新视频游戏刚刚发布。结果,“霍格沃茨之谜”可能收到比其他游戏标题更高的得分。在一个实施例中,执行器可以与其他阶段并行地运行评分阶段,使得现有的终端结果收到它们的得分,而其他动作结果仍在进入新的动作阶段和结果阶段。
在步骤1256中,执行器实现具有最高得分的终端结果。如上所述,实现意味着执行与终端结果相关联的动作,并向用户呈现结果。例如,如果歌曲被确定为具有最高得分的终端结果,则向用户播放该歌曲的先前准备好的音频文件。在一个实施例中,最高状态随着新的终端结果收到其得分而改变。在一个实施例中,对用户的输出随着新的最高得分结果出现而被更新或添加。在一个实施例中,实现前几个(诸如3个)结果。
执行器可以被配置为维护贯穿步骤1216-1256的对话状态,即使是在终端结果收到最高得分并被呈现给用户之后。对话状态是与用户交互相关的状态。在一个实施例中,执行器无限期地维护对话状态。在另一实施例中,如步骤1260所示,执行器被设置为在用户没有提供进一步的输入的时段之后终止对话状态。在终止对话状态时,改进的虚拟助理返回到待机模式,如步骤1204中所讨论的。另一方面,如果用户确实提供了输入,如步骤1264所示,则执行器可以相应地更新和/或调整步骤1216-1256。
用以维护对话状态的能力是对现有技术的另一改进。在一个实施例中,对话状态包含用户在当前会话中说过什么的历史、代理/执行器在当前会话中说过什么的历史、以及用户已经看过当前会话以及相关元数据(电影标题、电影中的演员等)的结果。持续对话状态对应于超出单个交谈(dialogue)交互的范围的持续对话状态。本文公开的方法和系统在与用户交互期间维护状态信息和数据,从而允许系统开发多个分支以确定哪个分支将产生最佳结果,而这通常在确定实际结果之前无法确定。该过程还允许系统或用户出于任何原因(诸如进一步的用户输入或基于不满意的搜索结果)跳转或回溯到不同的分支。持续对话状态还允许用户通过稍后再次提出相同的主题恢复对话状态来继续相同的虚拟交互。在各种实施例中,稍后的时间可以是几分钟、几小时、几天或几周。
例如,在接收到游戏标题“霍格沃茨之谜”的建议的最高结果时,用户可以输入新的语音命令,诸如“我想要电影,而不是游戏”。执行器然后将回溯到步骤1248,并且将更高的得分附加到电影结果。替代地,执行器可以舍弃与电影无关的路径,并且进一步开发电影路径。
各个技能可以维护自己对对话状态的解释,以及查询其他技能/代理对对话状态的解释。这种对话状态在当前对话会话持续时间内以及在用户历史的整个过程中都是持续的。这种跨所有代理的历史对话状态在客户端和云数据库中都可以是持续的。代理可以查询该持续对话状态,以形成用于扩充输入的个性化简档。这种组合的用户简档是现有技术的进步,在现有技术中,需要每种技能来孤立地维护用户简档的表示。
如图13和图14所示,系统包括交换网络流量和数据所通过的网络连接。一个或多个服务器和一个或多个数据库也是系统的一部分。数据库可以与服务器、用户设备相关联,或者可以是第三方数据库。系统的用户设备由能够在音频或视觉方面混合输入方法的面向用户的设备、相机和/或麦克风构成。此外,它可以以灯、显示器、扬声器或触觉的形式为用户提供某种混合形式的显示。该设备可以是(如TV或壁挂式设备中的)手持式固定装置,也可以是(诸如桌面显示器中的)可移动设备外形。该设备可以由用户激活,或者如果内部系统确定它应当侦听,则提示用户它是活动的。激活过程可以由视听信号的组合来触发。一旦被激活,该设备就转变成收听状态,其中,它出于转录的目的而记录音频。系统的任何组件可以使用模型的组合将音频转录或翻译成文本。这些模型是每种语言和方言1个(例如,美国-西班牙语和西班牙-西班牙语将被认为是单独的模型)。
图13示出了移动设备的示例实施例,移动设备也称为用户设备,其可以是移动的,也可以不是移动的。这只是一种可能的移动设备配置,因而预期本领域普通技术人员可以不同地配置移动设备。移动设备1300可以包括能够如下所述执行的任何类型的移动通信设备。移动设备可以包括PDA、蜂窝电话、智能电话、平板PC、无线电子平板、IoT设备、“可穿戴”电子设备或任何其他计算设备。
在该示例实施例中,移动设备1300被配置有外壳1304,外壳1304被配置为保护和容纳下述组件。在外壳1304内是处理器1308以及第一总线1312A和第二总线1312B(统称为1312)。处理器1308通过总线1312与移动设备1300的其他组件进行通信。处理器1308可以包括能够如本文所述执行的任何类型的处理器或控制器。处理器1308可以包括通用处理器、ASIC、ARM、DSP、控制器或任何其他类型的处理设备。处理器1308和移动设备1300的其他元件从电池1320或其他电源接收电力。电气接口1324提供一个或多个电气端口以与移动设备电气对接,诸如与第二电子设备、计算机、医疗设备或电源/充电设备电气对接。接口1324可以包括任何类型的电气接口或连接器格式。
一个或多个存储器1310是移动设备1300的一部分,以用于存储在处理器1308上执行的机器可读代码以及用于存储数据,诸如图像数据、音频数据、用户数据、位置数据、加速度计数据或任何其他类型的数据。存储器1310可以包括RAM、ROM、闪存、光存储器或微驱动存储器。本文描述的机器可读代码(软件模块和/或例程)是非暂时性的。
作为该实施例的一部分,处理器1308连接到用户接口1316。用户接口1316可以包括被配置为接受用户输入来控制移动设备的任何系统或设备。用户接口1316可以包括以下一项或多项:麦克风、键盘、滚球、按钮、滚轮、指示键、相机(静态和视频)、触摸板和触摸屏。还提供了触摸屏控制器1330,其通过总线1312对接并连接到显示器1328。
显示器包括被配置为向用户显示视觉信息的任何类型的显示屏。屏幕可以包括LED、LCD、薄膜晶体管屏幕、OEL CSTN(彩色超扭曲向列)、TFT(薄膜晶体管)、TFD(薄膜二极管)、OLED(有机发光二极管)、AMOLED显示器(有源矩阵有机发光二极管)、电容式触摸屏、电阻式触摸屏或者这些技术的任意组合。显示器1328从处理器1308接收信号,并且如本领域所理解的,这些信号被显示器翻译成文本和图像。显示器1328还可以包括显示处理器(未示出)或与处理器1308对接的控制器。触摸屏控制器1330可以包括被配置为从覆盖在显示器1328上的触摸屏接收信号的模块。
该示例性移动设备的一部分还是扬声器1334和麦克风1338。扬声器1334和麦克风1338可以由处理器1308控制。麦克风1338被配置为基于处理器1308的控制来接收音频信号并将音频信号转换成电气信号。同样,处理器1308可以激活扬声器1334来生成音频信号。这些设备如本领域所理解的那样操作,因而在本文不再详细描述。
第一无线收发器1340和第二无线收发器1344也连接到总线1312中的一条或多条,两者中的每一个连接到各自的天线1348、1352。第一收发器1340和第二收发器1344被配置为从远程发送器接收输入信号,并且对信号执行模拟前端处理以生成模拟基带信号。输入信号可以通过转换成数字格式(诸如通过模数转换器)来进行进一步处理,以供处理器1308后续处理。同样,第一收发器1340和第二收发器1344被配置为从处理器1308或移动设备1308的另一组件接收输出信号,并且将这些信号从基带上变频到RF频率,以供通过各自的天线1348、1352进行传输。尽管示出了第一无线收发器1340和第二无线收发器1344,但是预期移动设备1300可以仅具有一个这样的系统或者两个或更多个收发器。例如,一些设备能够三频带或四频带,或者具有WiFi、蓝牙、NFC或其他通信能力。
预期移动设备可以被配置为根据任何现有的或未来开发的无线标准进行操作,从而第一无线收发器1340和第二无线收发器1344也是如此,这些无线标准包括但不限于蓝牙、WI-FI(诸如IEEE 802.11a、b、g、n)、无线LAN、WMAN、宽带固定接入、WiMAX、任何蜂窝技术(包括CDMA、GSM、EDGE、3G、4G、5G、TDMA、AMPS)、FRS、GMRS、民用频带无线电、VHF、AM、FM和无线USB。
连接到第二总线1312B的一个或多个系统也是移动设备的一部分,第二总线1312B也与处理器1308对接。这些设备包括具有相关天线1362的全球定位系统(GPS)模块1360。GPS模块1360能够接收和处理来自卫星或其他转发器的信号,以生成关于GPS模块1360的位置、行进方向和速度的位置数据。GPS在本领域中是公知的,因此在本文不再详细描述。陀螺仪1364连接到总线1312B,以生成并提供关于移动设备1304的方位的方位数据。提供磁力计1368以向移动设备1304提供方向信息。加速度计1372连接到总线1312B,以提供关于移动设备所经受的冲击或力的信息或数据。在一个配置中,加速度计1372和陀螺仪1364生成数据并将其提供给处理器1308,以指示移动设备的移动路径和方位。
提供一个或多个相机(静态、视频或两者)1376来捕捉图像数据,以供存储在存储器1310中和/或可能通过无线或有线链路传输或者以后观看。一个或多个相机1376可以被配置为使用可见光和/或近红外光来检测图像。相机1376还可以被配置为利用图像增强、主动照明或热视觉来在黑暗环境中获得图像。处理器1308可以处理以非暂时状态或暂时状态存储在存储器上的机器可读代码,以执行本文描述的功能。
提供闪烁器(flasher)和/或手电筒(flashlight)1380(诸如LED灯),并且是处理器可控制的。闪烁器或手电筒1380可以用作闪光灯或传统的手电筒。闪烁器或手电筒1380也可以被配置为发射近红外光。电源管理模块1384与电池1320对接或监视电池1320,以管理功耗、控制电池充电并且向可能需要不同功率要求的各种设备供应电源电压。
图14是根据一个示例性实施例的计算设备或移动设备或服务器(诸如上述设备之一)的示意图。计算设备1400旨在表示各种形式的数字计算机,诸如智能电话、平板电脑、信息亭、膝上型电脑、台式电脑、工作站、个人数字助理、服务器、刀片服务器、大型机和其他适当的计算机。计算设备1450旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅仅是示例性的,并不意味着限制本文档中描述和/或要求保护的实施方式。
计算设备1400包括处理器1402、存储器1404、存储设备1406、连接到存储器1404和高速扩展端口1410的高速接口或控制器1408、以及连接到低速总线1414和存储设备1406的低速接口或控制器1412。组件1402、1404、1406、1408、1410和1412中的每一个使用各种总线互连,并且可以被安装在公共主板上或者以其他适当的方式安装。处理器1402可以处理用于在计算设备1400内执行的指令,包括存储在存储器1404中或存储设备1406上的指令,以在外部输入/输出设备(诸如耦合到高速控制器1408的显示器1416)上显示GUI的图形信息。在其他实施方式中,可以与多个存储器和多种类型的存储器一起适当地使用多个处理器和/或多个总线。此外,可以连接多个计算设备1400,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器1404存储计算设备1400内的信息。在一个实施方式中,存储器1404是一个或多个易失性存储单元。在另一实施方式中,存储器1404是非易失性存储单元。存储器1404也可以是另一形式的计算机可读介质,诸如磁盘或光盘。
存储设备1406可以为计算设备1400提供大容量存储。在一个实施方式中,存储设备1406可以是或包含计算机可读介质,诸如硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备、或者设备阵列(包括存储区域网络或其他配置中的设备)。计算机程序产品也可以有形地体现在信息载体中。计算机程序产品还可以包含当被执行时执行一个或多个方法(诸如上述那些方法)的指令。信息载体是计算机或机器可读介质,诸如存储器1404、存储设备1406或处理器1402上的存储器。
高速控制器1408为计算设备1400管理带宽密集型操作,而低速控制器1412管理较低带宽密集型操作。这种功能分配仅是示例性的。在一个实施方式中,高速控制器1408耦合到存储器1404、显示器1416(例如,通过图形处理器或加速器)并且耦合到高速扩展端口1410,高速扩展端口1410可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器1412耦合到存储设备1406和低速总线1414。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速总线1414可以(例如,通过网络适配器)耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或网络设备(诸如交换机或路由器)。
计算设备1400可以以几种不同的形式实现。例如,它可以被实施为标准服务器1420,或者在一组这样的服务器中多次实施。它也可以被实施为机架式服务器系统1424的一部分。此外,它可以在诸如膝上型计算机1422之类的个人计算机中实施。替代地,来自计算设备1400的组件可以与移动设备(未示出)(诸如设备1450)中的其他组件相结合。每个这样的设备可以包含计算设备1400、1450中的一个或多个,并且整个系统可以由彼此通信的多个计算设备1400、1450组成。
计算设备1450包括处理器1452、存储器1464、输入/输出设备(诸如显示器1454)、通信接口1466和收发器1468以及其他组件。设备1450还可以设置有存储设备(诸如微驱动器或其他设备)以提供附加的存储。组件1450、1452、1464、1454、1466和1468中的每一个使用各种总线互连,并且这些组件中的几个可以被安装在公共主板上或者以其他适当的方式安装。
处理器1452可以执行计算设备1450内的指令,包括存储在存储器1464中的指令。处理器可以被实施为包括单独的和多个模拟和数字处理器的芯片的芯片组。例如,处理器可以用于设备1450的其他组件的协调,诸如对用户接口、设备1450运行的应用以及设备1450的无线通信的控制。
处理器1452可以通过耦合到显示器1454的控制接口1458和显示接口1456与用户进行通信。显示器1454可以是例如TFT LCD(薄膜晶体管液晶显示器)或OLED(有机发光二极管)显示器,或者其他合适的显示技术。显示接口1456可以包括用于驱动显示器1454向用户呈现图形和其他信息的适当电路。控制接口1458可以从用户接收命令,并且对它们进行转换以供提交给处理器1452。此外,外部接口1462可以被设置成与处理器1452进行通信,以实现设备1450与其他设备的近距离通信。外部接口1462可以例如在一些实施方式中用于有线通信,或者在其他实施方式中用于无线通信,并且也可以使用多个接口。
存储器1464存储计算设备1450内的信息。存储器1464可以被实施为一个或多个计算机可读介质、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元中的一项或多项。还可以提供扩展存储器1474,并且通过扩展接口1472将其连接到设备1450,扩展接口1472可以包括例如SIMM(单列直插存储器模块)卡接口。这种扩展存储器1474可以为设备1450提供附加的存储空间,或者也可以为设备1450存储应用或其他信息。具体地,扩展存储器1474可以包括用以执行或补充上述过程的指令,并且也可以包括安全信息。因此,例如,扩展存储器1474可以作为设备1450的安全模块来提供,并且可以用准许安全使用设备1450的指令来编程。此外,可以经由SIMM卡与附加信息一起提供安全应用,从而诸如以不可破解的方式在SIMM卡上放置标识信息。
如下所述,存储器可以包括例如闪存和/或NVRAM存储器。在一个实施方式中,计算机程序产品有形地体现在信息载体中。计算机程序产品包含当被执行时执行一个或多个方法(诸如上述那些方法)的指令。信息载体是计算机或机器可读介质,诸如存储器1464、扩展存储器1474或处理器1452上的存储器,其可以例如通过收发器1468或外部接口1462接收。
设备1450可以通过通信接口1466进行无线通信,通信接口1466在必要时可以包括数字信号处理电路。通信接口1466可以提供各种模式或协议下的通信,诸如GSM语音呼叫、SMS、EMS或MMS消息传递、CDMA、TDMA、PDC、WCDMA、CDMA2000或GPRS等。这种通信可以例如通过射频收发器1468进行。此外,可以诸如使用蓝牙、Wifi或其他这样的收发器(未示出)进行短程通信。此外,GPS(全球定位系统)接收器模块1470可以向设备1450提供附加的与导航和位置相关的无线数据,这些数据可以由运行在设备1450上的应用适当地使用。
设备1450还可以使用音频编解码器1460进行可听通信,音频编解码器1460可以接收来自用户的口头信息,并且(诸如利用来自麦克风的模拟输出的数字表示的语音识别能力)将其转换成可使用的数字信息。音频编解码器1460同样可以(例如通过设备1450的手机中的扬声器)为用户生成可听声音。这种声音可以包括来自语音电话呼叫的声音,可以包括所记录的声音(例如,语音消息、音乐文件等),并且还可以包括由在设备1450上运行的软件应用生成的声音。
如图所示,计算设备1450可以以几种不同的形式实现。例如,它可以被实施为蜂窝电话1482。它也可以被实施为智能电话1480、个人数字助理、计算机平板、计算机、膝上型电脑、智能扬声器、电视、机械臂或其他类似的移动设备的一部分。
因此,本文描述的系统和技术的各种实施方式可以在数字电子电路、集成电路、特别设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些不同的实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器、至少一个输入设备和至少一个输出设备,该可编程处理器(可以是专用的或通用的)被耦合到存储系统以从其接收数据和指令,以及向其发送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实施。如本文所使用的,术语“机器可读介质”、“机器可执行代码”或“计算机可读介质”是指用于向处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,光盘、闪存驱动器、磁盘、光盘、存储器、可编程逻辑设备(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。这些信号可以是非暂时的或暂时的。
为了提供与用户的交互,本文描述的系统和技术可以在计算机上实施,该计算机具有用于向用户显示信息的显示设备(诸如LCD(液晶显示器)、LED、OLED)以及用户可以用来向计算机提供输入的键盘和定点设备(例如,鼠标、操纵杆、轨迹球或类似设备)。也可以使用其他种类的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。
本文描述的系统和技术可以在计算系统(例如,计算设备1400和/或1450)中实施,该计算系统包括后端组件(例如,作为数据服务器、时隙记账系统、玩家跟踪系统等),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本文描述的系统和技术的实施方式进行交互),或者包括这种后端组件、中间件组件或前端组件的任意组合。系统的组件可以通过任何形式或介质的数字数据通信(例如,通信网络)来互连。通信网络的示例包括LAN、WAN和互联网。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序而生成的。
虽然已经描述了本发明的各种实施例,但是对于本领域普通技术人员来说显而易见的是,在本发明的范围内,更多的实施例和实施方式是可能的。此外,本文描述的各种特征、元素和实施例可以以任何组合或布置来要求保护或组合。
Claims (19)
1.一种用于提供虚拟辅助的方法,包括:
接收包括对动作或信息的用户请求的用户输入;
通过处理所述用户输入以生成所述用户输入的两个或更多个初级解释来为所述用户输入生成两个或更多个初级解释,所述两个或更多个初级解释包括针对所述用户输入的唯一可能转录;
通过处理所述初级解释中的一个或多个以形成替代解释,来为所述两个或更多个初级解释中的一个或多个生成一个或多个次级解释;
响应于所述两个或更多个初级解释和所述一个或多个次级解释来确定一个或多个初级动作;
准备来自于执行所述一个或多个初级动作的一个或多个结果;
响应于所述一个或多个初级动作中的至少一个初级动作来确定是否存在一个或多个次级动作;
如果存在所述一个或多个次级动作,则继续处理所述初级解释、所述一个或多个次级解释、所述一个或多个初级动作和所述一个或多个次级动作中的两个或更多个,直到不能预测进一步的附加动作;
当不存在一个或多个附加动作时,将没有对其预测附加动作的一个或多个结果指定为一个或多个终端结果;
对所述一个或多个终端结果进行评分;
将具有最高得分的终端结果指定为最高结果;以及
向用户至少输出所述最高结果,或者采取由所述最高结果定义的动作。
2.根据权利要求1所述的方法,其中,评分基于以下因素中的一个或多个:
基于对话状态的第一评分因素,所述对话状态包括所述一个或多个初级解释、所述一个或多个次级解释、所述一个或多个动作、所述一个或多个结果;
基于用户简档的第二评分因素,所述用户简档包括存储在所述一个或多个服务器上的用户偏好和用户历史;
基于辅助元数据的第三评分因素,所述辅助元数据包括存储在所述一个或多个服务器上的与用户偏好无关和与用户历史无关的数据。
3.根据权利要求1所述的方法,其中,所述用户输入是用户说出的语音。
4.根据权利要求1所述的方法,其中,为所述用户输入生成两个或更多个初级解释并发地并行发生。
5.根据权利要求1所述的方法,还包括请求用户澄清所述一个或多个初级解释或者一个或多个次级解释中的哪些是正确的。
6.根据权利要求1所述的方法,其中,所述方法由在用户设备的操作系统上运行的人工智能层执行。
7.根据权利要求1所述的方法,其中,向用户至少输出所述最高结果或者采取由所述最高结果定义的动作包括以下一项或多项:播放歌曲、发起电话呼叫、向用户提供信息、播放视频、发送文本消息、记录视频、从用户设备发送信息以及控制灯。
8.一种虚拟助理系统,包括:
用户接口,被配置为接收来自用户的输入并向用户提供响应;
处理器,被配置为运行机器可执行代码;
存储器,存储非暂时性机器可执行代码,所述机器可执行代码被配置为:
处理所述用户输入以生成两个或更多个初级解释,所述两个或更多个初级解释包括针对所述用户输入的唯一可能转录;
通过处理所述初级解释中的一个或多个以形成替代解释,来基于所述两个或更多个初级解释中的一个或多个生成一个或多个次级解释;
处理所述初级解释和替代解释以生成导致两个或更多个终端状态的结果;
对所述两个或更多个终端状态进行评分以对所述两个或更多个终端状态进行排序,使得排序最高的终端状态是最高结果;以及
向用户呈现所述最高结果,或者为用户执行所述最高结果。
9.根据权利要求8所述的系统,其中,所述用户接口包括麦克风和扬声器。
10.根据权利要求8所述的系统,还包括收发器,所述收发器被配置为通过网络与第二设备进行通信,所述第二设备被配置为执行第二虚拟助理机器可执行代码以辅助所述虚拟助理系统为用户生成所述最高结果。
11.根据权利要求8所述的系统,其中,所述虚拟助理系统是智能电话。
12.根据权利要求8所述的系统,其中,多个终端状态被呈现给用户供用户考虑和选择。
13.根据权利要求8所述的系统,其中,执行所述最高结果包括以下动作之一:显示文本、显示图像、播放音乐、播放视频、执行交易以及打开/关闭设备。
14.根据权利要求8所述的系统,其中,所述机器可执行代码还被配置为:
向请求关于以下一项或多项的附加信息的用户提供反馈:初级解释、替代解释、结果和终端状态;以及
响应于从用户接收到附加信息,处理所述附加信息以生成附加替代解释或者对所述两个或更多个终端状态重新评分。
15.一种用于提供虚拟辅助的方法,包括:
接收包括对动作或信息的请求的用户输入;
通过处理所述用户输入来生成所述用户输入的两个或更多个解释,所述两个或更多个解释包括针对所述用户输入的唯一可能转录;
基于被配置为处理所述两个或更多个解释中的至少一个解释的一个或多个初级代理,将所述至少一个解释与所述一个或多个初级代理匹配;
由所述一个或多个初级代理选择被配置为处理所述两个或更多个解释中的至少一个的一个或多个技能;
通过用所述一个或多个技能处理所述两个或更多个解释中的至少一个来生成一个或多个结果;
确定一个或多个次级代理是否可与所述一个或多个结果匹配,以供通过所述次级代理中的一个或多个进一步处理所述结果;
如果一个或多个次级代理被匹配,则继续处理所述一个或多个结果以生成附加结果;
将所述一个或多个结果中的至少一个和所述附加结果中的至少一个指定为两个或更多个终端结果;
对所述两个或更多个终端结果进行评分;
将具有最高得分的终端结果指定为最高结果;以及
向用户至少输出所述最高结果,或者采取由所述最高结果定义的动作。
16.根据权利要求15所述的方法,其中,代理是可执行以进行并行假设推理的软件模块或例程。
17.根据权利要求15所述的方法,其中,技能是可执行以响应于单个用户查询来执行任务或生成结果的软件模块或例程。
18.根据权利要求15所述的方法,还包括为所述初级解释中的至少一个生成一个或多个次级解释。
19.根据权利要求15所述的方法,其中,接收用户输入包括接收来自用户的语音并将所述语音转换成数字信号。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062987814P | 2020-03-10 | 2020-03-10 | |
US62/987,814 | 2020-03-10 | ||
PCT/US2021/021767 WO2021183681A1 (en) | 2020-03-10 | 2021-03-10 | Parallel hypothetical reasoning to power a multi-lingual, multi-turn, multi-domain virtual assistant |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115668206A true CN115668206A (zh) | 2023-01-31 |
Family
ID=77665251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180034482.0A Pending CN115668206A (zh) | 2020-03-10 | 2021-03-10 | 推动多语言、多轮次、多领域虚拟助理的并行假设推理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11869497B2 (zh) |
EP (1) | EP4118538A4 (zh) |
JP (1) | JP2023518026A (zh) |
KR (1) | KR20230010624A (zh) |
CN (1) | CN115668206A (zh) |
WO (1) | WO2021183681A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11763259B1 (en) | 2020-02-20 | 2023-09-19 | Asana, Inc. | Systems and methods to generate units of work in a collaboration environment |
US11900323B1 (en) * | 2020-06-29 | 2024-02-13 | Asana, Inc. | Systems and methods to generate units of work within a collaboration environment based on video dictation |
US11809222B1 (en) | 2021-05-24 | 2023-11-07 | Asana, Inc. | Systems and methods to generate units of work within a collaboration environment based on selection of text |
US11836681B1 (en) | 2022-02-17 | 2023-12-05 | Asana, Inc. | Systems and methods to generate records within a collaboration environment |
US11997425B1 (en) | 2022-02-17 | 2024-05-28 | Asana, Inc. | Systems and methods to generate correspondences between portions of recorded audio content and records of a collaboration environment |
Family Cites Families (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020032591A1 (en) | 2000-09-08 | 2002-03-14 | Agentai, Inc. | Service request processing performed by artificial intelligence systems in conjunctiion with human intervention |
KR20020030545A (ko) | 2000-10-18 | 2002-04-25 | 남 데이비드 이 | 인공지능과 자연어처리 기술에 기반한 자연어 문장형질문에 대한 자동 해답 및 검색 제공 방법 |
US6996064B2 (en) | 2000-12-21 | 2006-02-07 | International Business Machines Corporation | System and method for determining network throughput speed and streaming utilization |
EP1680010A4 (en) | 2003-11-04 | 2009-07-01 | Quantum Intech Inc | SYSTEMS AND METHODS FACILITATING PHYSIOLOGICAL CONSISTENCY THROUGH RESPIRATORY TRAINING |
US7831564B1 (en) | 2003-12-16 | 2010-11-09 | Symantec Operating Corporation | Method and system of generating a point-in-time image of at least a portion of a database |
US7620549B2 (en) * | 2005-08-10 | 2009-11-17 | Voicebox Technologies, Inc. | System and method of supporting adaptive misrecognition in conversational speech |
US20070043736A1 (en) | 2005-08-22 | 2007-02-22 | Microsoft Corporation | Smart find |
KR100657331B1 (ko) | 2005-08-24 | 2006-12-14 | 삼성전자주식회사 | 멀티 프로세서를 채용한 화상형성장치 및 이를 이용한화상형성방법 |
US9189522B2 (en) | 2007-10-17 | 2015-11-17 | Oracle International Corporation | SQL execution plan baselines |
KR20100035391A (ko) | 2008-09-26 | 2010-04-05 | 웅진코웨이주식회사 | 유로전환 밸브모듈 및 이를 구비하는 연수기 |
KR101042515B1 (ko) | 2008-12-11 | 2011-06-17 | 주식회사 네오패드 | 사용자의 의도에 기반한 정보 검색방법 및 정보 제공방법 |
US20100205222A1 (en) | 2009-02-10 | 2010-08-12 | Tom Gajdos | Music profiling |
US8326637B2 (en) * | 2009-02-20 | 2012-12-04 | Voicebox Technologies, Inc. | System and method for processing multi-modal device interactions in a natural language voice services environment |
TWI432347B (zh) | 2011-03-11 | 2014-04-01 | Wistron Corp | 可自動調整方位的支架裝置,及該支架裝置與電子裝置的組合 |
US8954431B2 (en) | 2011-06-09 | 2015-02-10 | Xerox Corporation | Smart collaborative brainstorming tool |
US9009041B2 (en) * | 2011-07-26 | 2015-04-14 | Nuance Communications, Inc. | Systems and methods for improving the accuracy of a transcription using auxiliary data such as personal data |
US8762156B2 (en) * | 2011-09-28 | 2014-06-24 | Apple Inc. | Speech recognition repair using contextual information |
US9542956B1 (en) | 2012-01-09 | 2017-01-10 | Interactive Voice, Inc. | Systems and methods for responding to human spoken audio |
US9280610B2 (en) * | 2012-05-14 | 2016-03-08 | Apple Inc. | Crowd sourcing information to fulfill user requests |
KR101399472B1 (ko) | 2012-08-13 | 2014-06-27 | (주)투비소프트 | 다중 프로세싱을 이용한 렌더링 처리 장치 및 방법 |
US9983670B2 (en) | 2012-09-14 | 2018-05-29 | Interaxon Inc. | Systems and methods for collecting, analyzing, and sharing bio-signal and non-bio-signal data |
KR20140078169A (ko) | 2012-12-17 | 2014-06-25 | 삼성전자주식회사 | 영상 촬영 장치, 상기 영상 촬영 장치의 제어 방법, 자기 공명 영상 장치 및 상기 자기 공명 영상 장치의 제어 방법 |
WO2014107795A1 (en) | 2013-01-08 | 2014-07-17 | Interaxon Inc. | Adaptive brain training computer system and method |
CN113470640B (zh) * | 2013-02-07 | 2022-04-26 | 苹果公司 | 数字助理的语音触发器 |
US9172747B2 (en) | 2013-02-25 | 2015-10-27 | Artificial Solutions Iberia SL | System and methods for virtual assistant networks |
CN110096712B (zh) | 2013-03-15 | 2023-06-20 | 苹果公司 | 通过智能数字助理的用户培训 |
US9058805B2 (en) * | 2013-05-13 | 2015-06-16 | Google Inc. | Multiple recognizer speech recognition |
US10390732B2 (en) | 2013-08-14 | 2019-08-27 | Digital Ally, Inc. | Breath analyzer, system, and computer program for authenticating, preserving, and presenting breath analysis data |
US10834546B2 (en) | 2013-10-14 | 2020-11-10 | Oath Inc. | Systems and methods for providing context-based user interface |
US9721570B1 (en) * | 2013-12-17 | 2017-08-01 | Amazon Technologies, Inc. | Outcome-oriented dialogs on a speech recognition platform |
TWM483638U (zh) | 2014-03-31 | 2014-08-01 | Taer Innovation Co Ltd | 固定架 |
US20150288857A1 (en) | 2014-04-07 | 2015-10-08 | Microsoft Corporation | Mount that facilitates positioning and orienting a mobile computing device |
US9607102B2 (en) * | 2014-09-05 | 2017-03-28 | Nuance Communications, Inc. | Task switching in dialogue processing |
US10402460B1 (en) | 2014-09-08 | 2019-09-03 | Amazon Technologies, Inc. | Contextual card generation and delivery |
US9774682B2 (en) | 2015-01-08 | 2017-09-26 | International Business Machines Corporation | Parallel data streaming between cloud-based applications and massively parallel systems |
US10756963B2 (en) | 2015-03-17 | 2020-08-25 | Pulzze Systems, Inc. | System and method for developing run time self-modifying interaction solution through configuration |
US10395021B2 (en) | 2015-06-29 | 2019-08-27 | Mesh Candy, Inc. | Security and identification system and method using data collection and messaging over a dynamic mesh network with multiple protocols |
US10582011B2 (en) | 2015-08-06 | 2020-03-03 | Samsung Electronics Co., Ltd. | Application cards based on contextual data |
US11587559B2 (en) | 2015-09-30 | 2023-02-21 | Apple Inc. | Intelligent device identification |
US10249207B2 (en) | 2016-01-19 | 2019-04-02 | TheBeamer, LLC | Educational teaching system and method utilizing interactive avatars with learning manager and authoring manager functions |
US10872306B2 (en) | 2016-04-06 | 2020-12-22 | Smiota, Inc. | Facilitating retrieval of items from an electronic device |
KR102656806B1 (ko) | 2016-04-28 | 2024-04-12 | 엘지전자 주식회사 | 와치타입 단말기 및 이의 제어방법 |
US10631743B2 (en) | 2016-05-23 | 2020-04-28 | The Staywell Company, Llc | Virtual reality guided meditation with biofeedback |
US10156775B2 (en) | 2016-06-01 | 2018-12-18 | Eric Zimmermann | Extensible mobile recording device holder |
DK179588B1 (en) | 2016-06-09 | 2019-02-22 | Apple Inc. | INTELLIGENT AUTOMATED ASSISTANT IN A HOME ENVIRONMENT |
US20170357910A1 (en) | 2016-06-10 | 2017-12-14 | Apple Inc. | System for iteratively training an artificial intelligence using cloud-based metrics |
CN109313897B (zh) | 2016-06-21 | 2023-10-13 | 惠普发展公司,有限责任合伙企业 | 利用多个虚拟助理服务的通信 |
US10244122B2 (en) | 2016-07-21 | 2019-03-26 | Vivint, Inc. | Panel control over broadband |
WO2018022085A1 (en) | 2016-07-29 | 2018-02-01 | Hewlett-Packard Development Company, L.P. | Identification of preferred communication devices |
US9654598B1 (en) | 2016-08-08 | 2017-05-16 | Le Technology, Inc. | User customization of cards |
US20180054228A1 (en) | 2016-08-16 | 2018-02-22 | I-Tan Lin | Teleoperated electronic device holder |
WO2018038459A1 (ko) | 2016-08-22 | 2018-03-01 | 엘지전자(주) | 블루투스 기술을 이용하여 디바이스를 제어하기 위한 방법 및 장치 |
US10423685B2 (en) | 2016-09-09 | 2019-09-24 | Robert Bosch Gmbh | System and method for automatic question generation from knowledge base |
US9959861B2 (en) * | 2016-09-30 | 2018-05-01 | Robert Bosch Gmbh | System and method for speech recognition |
US10855714B2 (en) | 2016-10-31 | 2020-12-01 | KnowBe4, Inc. | Systems and methods for an artificial intelligence driven agent |
US11429586B2 (en) | 2016-12-22 | 2022-08-30 | Sap Se | Expression update validation |
US10365932B2 (en) | 2017-01-23 | 2019-07-30 | Essential Products, Inc. | Dynamic application customization for automated environments |
US20180232920A1 (en) | 2017-02-10 | 2018-08-16 | Microsoft Technology Licensing, Llc | Contextually aware location selections for teleconference monitor views |
KR102384641B1 (ko) | 2017-02-20 | 2022-04-08 | 엘지전자 주식회사 | 다국어 처리를 수행하는 인공 지능 시스템의 제어 방법 |
ES2955860T3 (es) | 2017-04-28 | 2023-12-07 | Better Therapeutics Inc | Método y sistema para la gestión de intervenciones de estilo de vida y salud |
DK201770427A1 (en) * | 2017-05-12 | 2018-12-20 | Apple Inc. | LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT |
US10554595B2 (en) | 2017-05-22 | 2020-02-04 | Genesys Telecommunications Laboratories, Inc. | Contact center system and method for advanced outbound communications to a contact group |
CN107423364B (zh) | 2017-06-22 | 2024-01-26 | 百度在线网络技术(北京)有限公司 | 基于人工智能的回答话术播报方法、装置及存储介质 |
EP3435642A1 (en) | 2017-07-29 | 2019-01-30 | Advanced Digital Broadcast S.A. | A system and method for remote control of appliances by voice |
US20190122121A1 (en) | 2017-10-23 | 2019-04-25 | AISA Innotech Inc. | Method and system for generating individual microdata |
US11227448B2 (en) | 2017-11-14 | 2022-01-18 | Nvidia Corporation | Cloud-centric platform for collaboration and connectivity on 3D virtual environments |
US11295735B1 (en) | 2017-12-13 | 2022-04-05 | Amazon Technologies, Inc. | Customizing voice-control for developer devices |
US11250336B2 (en) | 2017-12-28 | 2022-02-15 | Intel Corporation | Distributed and contextualized artificial intelligence inference service |
US10963499B2 (en) | 2017-12-29 | 2021-03-30 | Aiqudo, Inc. | Generating command-specific language model discourses for digital assistant interpretation |
US10729399B2 (en) | 2018-03-01 | 2020-08-04 | KUB Technologies, Inc. | System and method for cabinet X-ray system with camera and X-ray images superimposition |
KR102048030B1 (ko) | 2018-03-07 | 2019-11-22 | 구글 엘엘씨 | 자동화 어시스턴트와의 단대단 다국어 통신 촉진 |
KR102508677B1 (ko) | 2018-03-08 | 2023-03-13 | 삼성전자주식회사 | 사용자 발화를 처리하는 시스템 및 그 시스템의 제어 방법 |
WO2019183062A1 (en) | 2018-03-19 | 2019-09-26 | Facet Labs, Llc | Interactive dementia assistive devices and systems with artificial intelligence, and related methods |
US20190354599A1 (en) | 2018-05-21 | 2019-11-21 | Microsoft Technology Licensing, Llc | Ai model canvas |
CN110728363B (zh) | 2018-06-29 | 2022-11-18 | 华为技术有限公司 | 任务处理方法和装置 |
US10769495B2 (en) | 2018-08-01 | 2020-09-08 | Adobe Inc. | Collecting multimodal image editing requests |
US10402589B1 (en) | 2018-12-20 | 2019-09-03 | Vijay K. Madisetti | Method and system for securing cloud storage and databases from insider threats and optimizing performance |
US20200242146A1 (en) | 2019-01-24 | 2020-07-30 | Andrew R. Kalukin | Artificial intelligence system for generating conjectures and comprehending text, audio, and visual data using natural language understanding |
US11544594B2 (en) | 2019-04-11 | 2023-01-03 | Sunghee Woo | Electronic device comprising user interface for providing user-participating-type AI training service, and server and method for providing user-participating-type AI training service using the electronic device |
JP2022529276A (ja) | 2019-04-17 | 2022-06-20 | テンパス・ラボズ・インコーポレイテッド | コラボレーティブ人工知能の方法およびシステム |
WO2020213762A1 (ko) | 2019-04-18 | 2020-10-22 | 엘지전자 주식회사 | 전자장치, 그 동작방법, 및 복수의 인공지능장치를 포함한 시스템 |
US20200342968A1 (en) | 2019-04-24 | 2020-10-29 | GE Precision Healthcare LLC | Visualization of medical device event processing |
US11393491B2 (en) | 2019-06-04 | 2022-07-19 | Lg Electronics Inc. | Artificial intelligence device capable of controlling operation of another device and method of operating the same |
KR20190080834A (ko) | 2019-06-18 | 2019-07-08 | 엘지전자 주식회사 | 사투리 음소 적응 학습 시스템 및 방법 |
US11501753B2 (en) | 2019-06-26 | 2022-11-15 | Samsung Electronics Co., Ltd. | System and method for automating natural language understanding (NLU) in skill development |
US20210011887A1 (en) | 2019-07-12 | 2021-01-14 | Qualcomm Incorporated | Activity query response system |
KR20190095181A (ko) | 2019-07-25 | 2019-08-14 | 엘지전자 주식회사 | 인공 지능을 이용한 화상 회의 시스템 |
KR20190099167A (ko) | 2019-08-06 | 2019-08-26 | 엘지전자 주식회사 | 음성 인식을 수행하는 인공 지능 기기 |
US11222464B2 (en) | 2019-08-22 | 2022-01-11 | The Travelers Indemnity Company | Intelligent imagery |
US10827028B1 (en) | 2019-09-05 | 2020-11-03 | Spotify Ab | Systems and methods for playing media content on a target device |
US11636102B2 (en) | 2019-09-05 | 2023-04-25 | Verizon Patent And Licensing Inc. | Natural language-based content system with corrective feedback and training |
KR20210066328A (ko) | 2019-11-28 | 2021-06-07 | 엘지전자 주식회사 | 자연어 이해 모델을 학습시키기 위한 인공 지능 장치 |
US11042369B1 (en) | 2020-02-03 | 2021-06-22 | Architecture Technology Corporation | Systems and methods for modernizing and optimizing legacy source code |
US11991253B2 (en) | 2020-03-17 | 2024-05-21 | MeetKai, Inc. | Intelligent layer to power cross platform, edge-cloud hybrid artificial intelligence services |
US11995561B2 (en) | 2020-03-17 | 2024-05-28 | MeetKai, Inc. | Universal client API for AI services |
US11521597B2 (en) * | 2020-09-03 | 2022-12-06 | Google Llc | Correcting speech misrecognition of spoken utterances |
US11984124B2 (en) * | 2020-11-13 | 2024-05-14 | Apple Inc. | Speculative task flow execution |
US11676593B2 (en) * | 2020-12-01 | 2023-06-13 | International Business Machines Corporation | Training an artificial intelligence of a voice response system based on non_verbal feedback |
-
2021
- 2021-03-10 KR KR1020227034941A patent/KR20230010624A/ko active Search and Examination
- 2021-03-10 JP JP2022555120A patent/JP2023518026A/ja active Pending
- 2021-03-10 WO PCT/US2021/021767 patent/WO2021183681A1/en active Application Filing
- 2021-03-10 EP EP21768818.3A patent/EP4118538A4/en active Pending
- 2021-03-10 US US17/197,959 patent/US11869497B2/en active Active
- 2021-03-10 CN CN202180034482.0A patent/CN115668206A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2021183681A1 (en) | 2021-09-16 |
US20210287673A1 (en) | 2021-09-16 |
EP4118538A1 (en) | 2023-01-18 |
KR20230010624A (ko) | 2023-01-19 |
JP2023518026A (ja) | 2023-04-27 |
US11869497B2 (en) | 2024-01-09 |
EP4118538A4 (en) | 2024-03-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11869497B2 (en) | Parallel hypothetical reasoning to power a multi-lingual, multi-turn, multi-domain virtual assistant | |
KR102622737B1 (ko) | 가상 비서에서 커맨드 처리를 용이하게 하기 위한 컨텍스트 정보의 이용 | |
US11915707B1 (en) | Outcome-oriented dialogs on a speech recognition platform | |
US11860913B2 (en) | Streaming real-time dialog management | |
RU2710984C2 (ru) | Совершение задачи без монитора в цифровом персональном помощнике | |
EP3126978B1 (en) | Hybrid client/server architecture for parallel processing | |
US9292603B2 (en) | Receipt and processing of user-specified queries | |
US11468885B2 (en) | System and method for conversational agent via adaptive caching of dialogue tree | |
CN107889533A (zh) | 管理对话数据提供者 | |
US20230108256A1 (en) | Conversational artificial intelligence system in a virtual reality space | |
US11995561B2 (en) | Universal client API for AI services | |
CN109102802A (zh) | 用于处理用户话语的系统 | |
US20210082414A1 (en) | Techniques for dialog processing using contextual data | |
CN106992012A (zh) | 语音处理方法及电子设备 | |
US20130086025A1 (en) | Techniques for receiving and processing one or more user-specified queries | |
US20130086026A1 (en) | Techniques relating to receiving and processing user-specified queries | |
US20210312138A1 (en) | System and method for handling out of scope or out of domain user inquiries | |
KR20190079791A (ko) | 인공지능 기기에서의 복수의 호출 용어를 이용한 서비스 제공 방법 및 그 시스템 | |
CN109272999A (zh) | 信息处理装置、其人机对话方法及存储介质 | |
WO2021262605A1 (en) | A system and method for handling out of scope or out of domain user inquiries | |
WO2021202605A1 (en) | A universal client api for ai services | |
CN117573822A (zh) | 人机交互方法、装置、设备及存储介质 | |
KR20230146115A (ko) | 디지털 어시스턴트 하드웨어 추출 | |
CN118170890A (zh) | 一种回复文本的生成方法和相关装置 | |
WO2013009938A2 (en) | Methods and apparatus for identifying and providing information sought by a user |
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 |