相关申请的交叉引用
本申请根据35u.s.c.119(e)要求于2019年9月12日提交的、标题为“improvingcognitiveunderstandinginadialogsystemusinguserfeedback(使用用户反馈改善对话系统中的认知理解)”的美国专利申请第62/899,641号的权益和优先权,其内容出于所有目的通过引用整体并入本文。
本公开总体上涉及对话系统。更具体地但非限制性地,本公开描述了用于通过提供用于引导对话的视觉提示来改善对话处理的体验和提高对话处理的效率的技术。
背景技术:
现在,越来越多的装置使用户能够直接使用话音(voice)或口述语音(speech)与装置进行交互。例如,用户可以用自然语言对这种装置讲话,其中用户可以提出问题或做出陈述请求执行某个动作。作为响应,装置执行所请求的动作或者使用话音输出来响应用户的问题。由于直接使用话音进行交互是人类与周围环境进行交流的更自然和直观的方式,这种基于语音的系统的普及正以天文数字的速度增长。
在常规系统中,当对话(dialog)系统误解了所接收话语的含义时,用户与对话系统之间的交谈可能漫长且令人沮丧。常规对话系统作为一系列事务而不是连续流进行操作。例如,用户按住按钮说出一个句子,对话系统确定并提供响应,然后对话结束。但如果对话系统错误理解了句子的含义,那么对话系统可能会返回不正确的响应,于是对话系统必须开启一个新的会话(session)并与用户反复交互,直到确定正确的含义为止。
技术实现要素:
本公开总体上涉及对话系统。更特别地,描述了用于通过提供用于引导对话的视觉提示来改善对话处理的体验和提高对话处理的效率的技术。本文描述了各种实施例,包括方法、系统、存储有可由一个或多个处理器执行的程序、代码或指令的非暂时性计算机可读存储介质等。
在某些实施例中,对话系统从用户接收语音输入。对话系统处理语音输入的第一部分以确定初始辨别的意图。对话系统使得显示初始辨别的意图的视觉指示。对话系统处理语音输入的第二部分以确定经修改的辨别的意图,其中语音输入的第二部分响应于初始辨别的意图的视觉指示来更正初始辨别的意图。
在一些方面,对话系统基本上实时地处理语音输入。在一些方面,视觉指示包括以下中的一个或多个:指定与辨别的意图相关联的域的文本;指定辨别的意图的文本;指示与辨别的意图相关联的域的图像;或者指示辨别的意图的图像。
在一些方面,方法还包括由对话系统执行对应于经修改的辨别的意图的任务。在一些方面,方法还包括:由对话系统基于经修改的辨别的意图确定响应,并且由对话系统将响应提供给用户。
在一些方面,确定初始辨别的意图包括:由对话系统计算相应的多个潜在意图和语音输入的第一部分的多个得分;并且由对话系统确定多个潜在意图中的特定意图的得分超过阈值,从而将所述特定意图设置为初始辨别的意图,其中,通过确定所述得分超过阈值来触发使得显示初始辨别的意图的视觉指示。
在一些方面,确定初始辨别的意图包括:由对话系统的自动语音识别子系统确定对应于语音输入的第一部分的第一文本话语;由自动语音识别子系统向对话系统的自然语言理解子系统提供第一文本话语;并且由自然语言理解子系统基于第一文本话语确定初始辨别的意图。
实施例还包括被配置用于执行本文描述的方法的系统和计算机可读介质(例如,非暂时性计算机可读存储器)。
当参考以下说明书、权利要求书和附图时,前述连同其他特征和实施例将变得更显而易见。
附图说明
图1是描述根据某些实施例的对话系统的简化框图。
图2是描述根据某些实施例的用于使用反馈来进行高效对话处理的技术的方法的简化流程图。
图3是描述根据某些实施例的用于确定和显示初始辨别的意图的技术的简化流程图。
图4a-图4d描述了根据某些实施例的界面视图。
图5描述了用于实现实施例的分布式系统的简化图。
图6是根据某些实施例的基于云的系统环境的简化框图,其中各种存储相关的服务可以作为云服务被提供。
图7示出了可以用于实现某些实施例的示例性计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以提供对某些实施例的全面理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在进行限制。词语“示例性”在本文用来意指“充当示例、实例或说明”。在本文描述为“示例性”的任何实施例或设计不一定被解释为相对于其他实施例或设计是优选的或有利的。
能够经由话音输入和话音输出与用户对话的启用话音的系统可以以各种形式出现。例如,这种系统可以提供为独立装置、数字或虚拟助手、能够话音的服务等。在这些形式的每一种中,系统能够接收话音或语音输入、理解输入、生成响应或响应于输入采取动作并且使用话音输出来输出响应。在某些实施例中,这种启用话音的系统中的对话功能由对话系统或基础设施(“对话系统”)提供。
如上所述,在常规系统中,由于认知理解和对话处理的整体流程的问题,用户与对话系统之间的交谈可能漫长且令人沮丧。例如,通常,对话系统将处理整个问题或句子,包括确定用户意图,并返回响应。如果对话系统错误地识别了用户的意图,则对话系统可能返回不正确的响应,然后在用户尝试澄清查询时与用户反复交互。这通常需要开启新的对话会话——例如,对话系统将返回错误的答案并终止对话会话,并且用户将必须发起新的对话会话尝试更正误解。除了使用户感到沮丧之外,解决用户查询的时间越长,处理时间和计算资源的消耗就越大。
本公开描述了用于通过实时提供与用户输入相关联的实时反馈来减少对话系统使用的用户交互量、时间、内存和处理资源的技术。例如,对话系统可以处理部分话语、句子或问题,以便在用户仍在讲话时确定初始辨别的意图。在用户继续讲话时,系统返回初始辨别的意图的视觉指示。这样,用户可以在继续讲话的同时提供澄清或更改路线。这消除了发起新会话所需的内存,并减少了处理由提供不正确的响应导致的多个输入和输出所需的处理能力。这些功效也改善了用户体验。
对话处理可以涉及检测话语的域和/或对话语的意图进行分类。域是话语的类别——例如,旅行、天气和音乐是域。话语的意图相当于话语的目的(例如,用户请求执行的动作)。意图的示例包括order_pizza(订购披萨)和find_directions(查找导航)。给定的域可以对应于多个意图——例如,在“旅行”域中,可以使用从book_flight(预订航班)、upgrade_seat(升舱)、request_car(请求车辆)等中选择的意图对话语进行分类。
域和意图分类各自是在对话处理管线中相对较早执行的操作,因此,有益的是显示初始辨别的意图和/或域的指示以改善对话系统中的认知理解。通过在对话中相对较早地提供初始辨别的意图和/或域的指示,对话系统可以以被引导的方式提示和处理用户话语,以确保对话系统正在以正确的域和/或意图工作。
在一些实施例中,在用户讲一个或多个句子时,对话系统连续呈现其对上下文的理解。用户反馈可以通过词、图片或通过自然语言生成。例如,对话系统检测到包括词“johnhowie”的用户输入,并以一定确信度地确定johnhowie是联系人(例如,系统确定识别的用户意图为检索联系人信息)。对话系统可以在屏幕上在用户联系人中显示所有“john”的列表。然后在稍后在话语中或通过下一个句子接收到另外信息后,对话系统可以重新评估请求。例如,用户可以通过继续讲并说“no,iamtalkingaboutthesteakhouse(不,我在谈论牛排屋)”来更正系统。这可能导致对话系统修改与识别关于餐馆的信息相关的辨别的意图。对话系统提供的提示允许用户看到系统可能误解他们。然后,用户可以中途调整他们的话语,使得对话系统就能够无缝地提供更多信息。通过利用实时处理来中途指示辨别的意图,对话系统提示用户在需要时提供澄清或更正,而不必停止和开启对话。
图1示出了根据一些实施例的对话系统100的示例。对话系统100是可以用于使用大量计算机处理周期处理大量数据的专用计算系统。图1中描述的装置的数量是为了说明目的提供的。可以使用不同数量的装置。例如,虽然图1中的每个装置、服务器和系统被示出为单个装置,但可以代替地使用多个装置。
对话系统100被配置成从用户102接收话音或语音输入104(也称为语音话语)。对话系统100然后可以理解话音输入。对话系统100可以维持与用户102的对话,并且可以基于对话音输入的理解来执行一个或多个动作或使得一个或多个动作被执行。对话系统100可以准备适当的响应,并使用话音或语音输出122向用户输出响应。对话系统100可以进一步准备并输出视觉输出128。
在某些实施例中,由对话系统执行的处理由部件或子系统管线实现,包括语音输入部件105、唤醒词检测(wd)子系统106、自动语音识别(asr)子系统108、自然语言理解(nlu)子系统110——其包括命名实体识别器(ner)子系统112和语义解析器子系统114、对话管理器(dm)子系统116、自然语言生成器(nlg)子系统118、文本转语音(tts)子系统120、语音输出部件124、视觉反馈生成器子系统126以及显示器130。上面列出的子系统可以仅以软件(例如,使用可由一个或多个处理器或核执行的代码、程序或指令)、硬件、或硬件和软件的组合来实现。在某些实施方式中,子系统中的一个或多个可以组合成单个子系统。另外或替代地,在一些实施方式中,本文所描述的由特定子系统执行的功能可以由多个子系统实现。
语音输入部件105包括配置为接收语音输入104的硬件和软件。在一些实例中,语音输入部件105可以是对话系统100的一部分。在一些其他实例中,语音输入部件105可以与对话系统100分离并且通信地耦合到对话系统100。语音输入部件105可以例如包括麦克风,所述麦克风耦合到被配置成将语音输入数字化并将其传输到唤醒词检测子系统106的软件。
唤醒词检测(wd)子系统106被配置成针对对应于特殊声音或词或词集(称为唤醒词)的输入侦听并监视音频输入流。在检测到配置用于对话系统100的唤醒词后,wd子系统106被配置成激活asr子系统108。在某些实施方式中,可以向用户提供激活或停用wd子系统106的能力(例如,通过讲出唤醒词按下按钮)。在被激活时(或以在激活模式中操作时),wd子系统106被配置成连续接收音频输入流,并且处理音频输入流以识别对应于唤醒词的音频或话音输入。当检测到对应于唤醒词的音频输入时,wd子系统106激活asr子系统108。
如上所述,wd子系统106激活asr子系统108。在启用话音的系统的一些实施方式中,可以使用唤醒词以外的机制来触发或激活asr子系统108。例如,在一些实施方式中,可以使用装置上的按钮来触发asr子系统108处理而无需唤醒词。在此类实施方式中,可以不提供wd子系统106。当按下或激活按钮时,在按钮激活之后接收的语音输入被提供给asr子系统108以进行处理。在一些实施方式中,可以在接收到要处理的输入时激活asr子系统108。
asr子系统108被配置成在触发或唤醒信号(例如,唤醒信号可以由wd子系统106在语音输入中检测到唤醒词后发送,可以在激活按钮后接收唤醒信号,等)之后接收和监视口述话音输入,并且将话音输入转换成文本。作为asr子系统的处理的一部分,该asr子系统108执行语音到文本的转换。口述语音或话音输入可以是自然语言形式,并且asr子系统108被配置成以语音输入的语言生成对应的自然语言文本。然后,将由asr子系统生成的文本馈送到nlu子系统110以进行进一步处理。asr子系统108接收的话音输入可以包括一个或多个词、短语、子句、句子、问题等。asr子系统108被配置成针对每个口述子句生成文本话语,并且将文本话语馈送到nlu子系统110以进行进一步处理。
nlu子系统110接收由asr子系统108生成的文本。由nlu子系统110从asr子系统108接收的文本可以包括对应于说出的词、短语、子句等的文本话语。nlu子系统110将每个文本话语(或一系列文本话语)翻译成其对应的逻辑形式。在某些实施方式中,nlu子系统110包括命名实体识别器(ner)子系统112和语义解析器(sp)子系统114。ner子系统112接收文本话语作为输入,标识文本话语中的命名实体,并用与所标识的命名实体相关的信息标记文本话语。然后将标记的文本话语馈送到被配置成针对每个标记的文本话语(或一系列标记的文本话语)生成逻辑形式的sp子系统114。针对话语生成的逻辑形式可以标识对应于文本话语的一个或多个意图。话语的意图标识话语的目的。意图的示例包括“orderpizza(订购披萨)”和“finddirections(查找导航)”。意图可以例如标识被请求执行的动作。除了意图之外,针对文本话语生成的逻辑形式还可以针对所标识的意图标识空位(slot)(也被称为参数或自变量)。例如,对于语音输入“i’dliketoorderalargepepperonipizzawithmushroomsandolives(我想要订购带有蘑菇和橄榄的大份意大利辣香肠披萨)”,nlu子系统100可以标识意图order_pizaa(订购披萨)。nlu子系统还可以标识并填充空位,例如,pizza_size(披萨_尺寸)(用“大”来填充)和pizza_toppings(披萨_饼料)(用“蘑菇”和“橄榄”来填充)。nlu子系统可以使用基于机器学习的技术、规则(其可能是领域特定的)或这两者的组合来生成逻辑形式。然后将由nlu子系统110生成的逻辑形式馈送到dm子系统116,以进行进一步处理。
dm子系统116被配置成基于从nlu子系统110接收的逻辑形式来管理与用户的对话。作为对话管理的一部分,dm子系统116被配置成跟踪对话状态、发起对多个动作或任务中的一个动作或任务的执行或自身执行多个动作或任务中的一个动作或任务、并且确定如何与用户进行交互。这些动作可以包括例如查询一个或多个数据库、产生执行结果及其他动作。例如,dm子系统116被配置成对在从nlu子系统110接收的逻辑形式中标识的意图进行解释。基于这些解释,dm子系统116可以发起其解释为通过由用户提供的话音输入所请求的一个或多个动作。在某些实施例中,dm子系统116基于当前的和过去的话音输入并基于为dm子系统116配置的规则集合(例如,对话策略)来执行对话状态跟踪。这些规则可以指定不同的对话状态、在状态之间进行转变的条件、在处于特定状态时要执行的动作等。这些规则可以是域特定的。dm子系统116还生成要被传送回对话中所涉及的用户的响应。这些响应可以基于由dm子系统116发起的动作以及这些动作的结果。将由dm子系统116生成的响应馈送到nlg子系统118和或视觉反馈生成器子系统126,以进行进一步处理。
nlg子系统118被配置成生成对应于dm子系统116生成的响应的自然语言文本。文本可以以使它们能够被tts子系统120转换为语音的形式生成。tts子系统120从nlg子系统118接收文本,并将每个文本转换为语音或话音音频,然后语音或话音音频可以经由对话系统的音频或语音输出部件124(例如,扬声器或耦合到外部扬声器的通信信道)输出给用户。替代地或另外,nlg子系统118可以将文本输出传输到视觉反馈生成子系统126以进行进一步处理。在一些实例中,语音输出部件124可以是对话系统100的一部分。在一些其他实例中,语音输出部件124可以与对话系统100分离并且通信地耦合到对话系统100。
视觉反馈生成器子系统126被配置成生成可以指示在给定时间对对话系统的认知理解的视觉指示。视觉指示可以包括图标、图像和/或文本。视觉指示可以指示辨别的意图(例如,当辨别的意图是订购披萨时,披萨的图标)。替代地或另外,视觉指示可以指示辨别的域。域可以代表意图族或组。因此,可将辨别的域链接到一个或多个意图。例如,视觉指示可以是代表旅行的图标,其可以对应于多个意图,诸如预订航班、预订旅馆、取消预订以及修改预订。视觉反馈生成器子系统将表征视觉输出的信息传输到显示器130,以将视觉输出128提供给用户102。显示器130可以例如是移动装置、监视器、电视、信息亭等上的显示屏。显示器将视觉输出呈现给用户102。
如上所述,对话系统100的各个子系统协作地工作提供了以下功能:使得对话系统100能够接收语音输入104并使用语音输出122做出响应,并且使用自然语言语音来维持与用户的对话。可以使用单个计算机系统或使用协作地工作的多个计算机系统来实施上述各个子系统。例如,对于实施支持话音的系统的设备,可以完全在用户与之交互的设备上实施上述对话系统100的子系统。在一些其他实施方式中,对话系统100的一些部件或子系统可以在用户与之交互的设备上实施,而其他部件可以远离设备实施、可以在一些其他计算设备、平台或服务器上实施。
如上所述,在某些实施例中,可以使用子系统的管线来实施对话系统100。在一些实施例中,一个或多个子系统可以被组合成单个子系统。在某些实施例中,可以由多个子系统来提供由特定子系统提供的功能。还可以使用多个子系统来实施特定子系统。
在某些实施例中,可以使用机器学习技术来实施对话系统100的一个或多个功能。例如,可以使用监督机器学习技术、诸如使用神经网络(例如,深度神经网络)实施的那些技术,来实施对话系统100的一个或多个功能。作为一个示例,可以提供被训练用于执行所执行的asr功能的神经网络,并且这种经训练的模型可以由asr子系统108用于进行所述asr子系统的处理。这种神经网络实施方式可以将语音输入作为输入并且向nlu子系统输出文本话语。也可以由对话系统100的其他子系统使用基于机器学习的模型。
图2描述了根据某些实施例的示出用于使用反馈来进行高效对话处理的方法200的简化流程图。可以在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合中实现图2中描述的处理。软件可以存储在非暂时性存储介质上(例如,在存储器装置上)。图2中呈现且以下描述的方法旨在进行说明并不进行限制。尽管图2描述了以特定顺序或次序发生的各个处理步骤,但这不旨在进行限制。在某些替代实施例中,可以以一些不同的次序执行所述步骤,或者也可以并行执行一些步骤。在某些实施例中,图2中描述的处理可以由以上关于图1描述的对话系统执行。
在202处,对话系统从用户接收语音输入。语音输入可以包括一个或多个句子,并且可以包括停顿(通常持续时间相对较短)。对话系统可以例如经由语音输入部件105(例如,用户装置或信息亭的麦克风)接收语音输入。语音输入可以作为波形被接收。语音输入可以是特定语言,并且是自然语言查询形式。语音输入可以指定用户想要对话系统回答的问题,指定用户想要对话系统发起的一个或多个动作(例如,“iwouldlikeamediumpepperonipizza(我想要一个中号意大利辣香肠披萨)”)等。asr子系统108可以处理语音输入以生成文本话语,asr子系统108将所述文本话语传递给nlu子系统110以进行进一步处理。
在某些实施例中,作为接收口述语音输入(如在202中)的替代,例如,当用户在与对话系统的聊天期间键入文本时,可以以文本形式接收输入。本公开中描述的技术可以与接收口述语音、文本输入或其组合形式的输入的系统一起使用。
在204处,对话系统处理第一语音输入的第一部分以确定初始辨别的意图。处理语音输入可以包括nlu处理,其可以由自然语言理解子系统110执行。对话系统可以使用诸如语义解析、意图识别、空位填充(slotfiling)和确定域的nlu操作来处理语音输入。处理语音输入还可以包括asr处理,其可以由asr子系统108执行。例如,自动语音识别子系统108确定对应于语音输入的第一部分的第一文本话语,并且将第一文本话语提供给自然语言理解子系统110。然后,自然语言子系统110基于第一文本话语来确定初始辨别的意图。替代地或另外,从用户接收的文本输入可以由nlu子系统110直接处理。所述处理还可以包括确定情绪、标识命名实体、空位填充等。
作为处理的结果,对话系统可以确定初始辨别的意图。初始辨别的意图可以对应于对话系统已经确定用户可能要求对话系统执行的任务。例如,初始辨别的意图可以是find_flight(查找航班)、get_weather(获取天气)或order_delivery(订单递送)。在一些示例中,初始辨别的意图可以对应于基于部分输入、例如基于部分口语子句确定的意图。替代地或另外,对话系统可以标识初始辨别的域。例如,初始辨别的域可以是旅行或天气。
在一些实施例中,对话系统使用机器学习模型来确定初始辨别的意图。机器学习模型例如可以是被训练来使用样本意图和话语对话语的意图进行分类的神经网络。作为一个具体示例,可以应用分类器模型来基于与导航相关的意图的样本话语,确定最好用意图“directions_to,(到……的导航)”来对话语“howdoigettocharleston?(我如何到达查尔斯顿?)”进行分类。类似地,可以使用机器学习模型、诸如被训练来基于样本域到话语对来预测可能域的神经网络来确定初始辨别的域。合适的模型类型的示例包括隐马尔可夫模型(hmm)和门控循环单元(gru)。
在一些实施例中,当接收到每个语音输入(例如,第一语音输入、第二语音输入等)时,对话系统可以分类并维持排名的意图或域的集。例如,可以标识三个域,其等级从10(与语音输入匹配的可能性最高)到1(与语音输入匹配的可能性最低)。如果特定域达到了应用可配置的阈值,则在206处可以触发事件以显示视觉指示。下面关于图3进一步描述用于基于这种阈值确定初始辨别的意图的技术。
对话系统可以在接收到语音输入的另外部分时处理语音输入的第一部分。语音输入的第一部分、语音输入的第二部分等可以基本上实时地紧跟彼此作为来自用户的口述输入的连续流。基本实时地处理输入可以包括在接收到输入数据时处理输入数据流,而不是等待输入已终止的指示。例如,系统可以在用户继续提供语音输入并且系统继续接收另外语音输入的同时处理句子或一组词。对话系统可以分块或部分地处理语音输入的连续流。例如,nlu子系统110一次处理一个词或短语,迅速移动到流中的下一个词或短语。块可以对应于句子或词组。
替代地或另外,可以使用集成的语音识别和自然语言理解管线来处理语音输入。例如,单个神经网络可以用于从语音输入生成逻辑形式(例如,没有输出文本话语的中间步骤)。在例如lugosh等人的speechmodelpre-trainingforend-to-endspokenlanguageunderstanding(用于端到端口语理解的语音模型预训练)(https://arxiv.org/pdf/1904.03670.pdf)以及haghani等人的fromaudiotosemantics:approachestoend-to-endspokenlanguageunderstanding(从音频到语义:端到端口语理解的方法)(https://arxiv.org/abs/1809.09190)中描述了集成语音识别和自然语言理解的技术。
在206处,对话系统使得显示初始辨别的意图的视觉指示。使得显示可以包括在对话系统的显示元件上呈现视觉指示。替代地或另外,使得显示可以包括将指令传输到远程显示装置,从而使得远程显示装置显示视觉指示。视觉指示包括以下中的一个或多个:指定与辨别的意图相关联的域的文本;指定辨别的意图的文本;指示与辨别的意图相关联的域的图像;或者指示辨别的意图的图像。可以以文本形式(例如travel(旅行)或book_flight(预订航班))指定域或意图。替代地或另外,可以通过诸如应用或技能图标、表情符号等的图像来指定域或意图。例如,对话系统辨别出用户请求与费用相关,于是显示“费用应用”的图标。这种视觉提示可以非常有助于使用户确信他们正在与支持的功能进行交互,而且还可以允许他们在事情偏离轨道时中途改变过程。
对话系统可以基本上实时地处理用户输入,并且一旦对话系统确定了辨别的意图,对话系统就可以向用户呈现视觉指示。在用户讲一个或多个句子时,对话系统可以连续呈现对上下文的理解。用户反馈可以通过词、图片或通过自然语言生成。例如,对话系统预测语音输入对应于“旅行”域。对话系统显示文本“旅行”。作为另一个示例,对话系统预测初始辨别的意图为查找联系人,以及标识命名实体john。对话系统在屏幕上显示用户的所有名字为john的联系人的列表。在一些示例中,对话系统可以将视觉指示显示为完整的问题或句子,例如“doyouwanttochangeyourflight?(您是否要更改航班?)”。替代地或另外,对话系统可以显示诸如飞机的图片、与旅行相关的表情符号等的图像,以指示初始辨别的意图和/或域。
在一些实施例中,对话系统显示初始辨别的意图中的置信度水平的视觉指示。例如,对话系统对初始辨别的意图具有低置信度,并且显示低置信度水平的指示。作为特定示例,对话系统可以显示具有困惑表情的表情符号或问号以指示需要澄清。作为另一示例,对话系统可以包括机器人或者可以通信地耦合到机器人,并且指示可以是来自机器人的头部点头,作为其正在理解所接收的语音输入的指示。在一些实施例中,对话系统可以显示表情符号来指示在204处确定的当前情绪。
在一些实施例中,对话系统基本上在从用户接收连续流第二语音输入的同时显示视觉指示。如本文所使用的,“基本上同时”是指在对话过程中显示指示,例如,可以在显示辨别的意图之前和/或之后大约1秒内和/或在不需要对话系统确定用户完成讲话时接收语音输入。
在208处,对话系统确定反馈是否建议修改初始辨别的意图。如果初始辨别的意图或域不准确,则用户可以提供反馈以向正确的意图或域引导对话系统。反馈可以是所接收的语音输入的连续流的一部分(例如,语音输入的第二部分、语音输入的第三部分等)。
基于在206处显示的视觉指示,用户可以确定初始辨别的意图是否准确。用户可以确定由视觉指示所指示的辨别的意图实际上对应于或不对应于用户正试图传达的意图或用户寻求发起的动作。用户可以即时确定初始辨别的意图是否准确。通过使用在206处提供的视觉提示,用户可以在评估视觉指示的同时继续提供语音输入。视觉指示可以允许用户看到系统可能误解所提供的输入。因此,用户能够无缝地提供其他信息。或者,如果意图正确,则视觉提示也可以非常有助于使用户确信她正在与系统支持的功能进行交互。
如果语音输入的第二部分明确指出或暗示初始辨别的意图不正确,则反馈可以建议修改初始辨别的意图(例如,208处的“是”)。例如,在语音输入流的第一部分中,用户指的是名为johnhowie的牛排馆,并且显示的初始辨别的意图的指示是表示联系人的图标(例如,初始辨别的意图是标识名为johnhowie的联系人)。响应于查看图标,用户通过继续讲并说“no,iamtalkingaboutthesteakhouse.(不,我在谈论牛排馆)”来更正系统。
如果反馈确认或无视了初始辨别的意图,则反馈可能不建议修改初始辨别的意图(例如,208处的“否”)。例如,用户可以确认显示的辨别的意图是正确的(例如,通过说“yes,iwanttobuyatickettonewyork.(是的,我想买去纽约的票)”)。作为另一示例,用户可以继续讲话而无需考虑所显示的指示,并且对话系统可以基于初始辨别的意图继续处理接收到的输入。
在210处,如果在208处反馈建议修改初始辨别的意图,则对话系统处理语音输入的第二部分以确定经修改的辨别的意图。语音输入的第二部分更正了初始辨别的意图。例如,用户注意到在206处显示了错误的域图标,并且由此用户中途提供调整的输入。作为一个特定示例,语音输入的连续流是:“addmydinnerexpensefor$100[第一语音输入]usingtheexpensesskill[第二语音输入,已调整以指定预期意图](将我的晚餐费用增加为100美元[第一语音输入],使用费用技能[第二语音输入,已调整以指定预期意图]。)”
对话系统响应于语音输入的第二部分来修改辨别的意图。对话系统可以利用语音输入的第二部分(例如,实时反馈)来改善系统对用户输入和上下文的认知理解。例如,基于语音输入的第二部分,所述部分指定用户要在牛排馆进行预订,而不是呼叫名为johnhowie的联系人,对话系统选择做出预订意图而不是查找联系人意图。
在212处,对话系统基于经修改的辨别的意图提供响应或执行动作。在一些实施例中,对话系统基于经修改的辨别的意图确定响应。响应可以进一步基于语音输入的其他方面,诸如标识的命名实体和情绪。对话系统可以向用户提供响应。提供响应可以通过准备并输出语音输出来执行。对话系统可以经由对话管理器子系统116和nlg子系统118准备文本响应。可以将这种文本响应传递到文本语音子系统120,所述子系统将文本响应转换为口述响应。然后经由语音输出部件124将口述响应作为语音输出122输出。替代地或另外,可以经由显示器130向用户显示文本响应。
替代地或另外,基于在210处确定的经修改的辨别的意图,对话系统可以执行对应于经修改的辨别的意图的任务。例如,系统可以基于已经响应于用户反馈进行了调整的意图来订餐、预定航班、从数据库中检索信息等。
在214处,如果在208处反馈不建议修改初始辨别的意图,则对话系统结合初始辨别的意图处理语音输入的第二部分。如果在204处确定并在206处显示的初始辨别的意图是准确的,则对话系统可以处理在语音输入流的第二部分中接收的补充信息。例如,对话系统可以结合基于语音输入的第一部分确定的初始辨别的意图,使用语音输入的第二部分来填充空位。替代地或另外,对话系统可以使用语音输入的第二部分结合初始辨别的意图来执行情绪分析。
在216处,对话系统基于初始辨别的意图提供响应或执行动作。以与上文关于212所述类似的方式,对话系统可以基于初始辨别的意图来确定并提供响应和/或执行一个或多个动作。
替代地或另外,图2中描述的处理可以应用于一组域。对话系统可以以与上文关于意图描述的类似方式确定初始辨别的域,显示初始辨别的域的指示,并且根据需要调整初始辨别的域。
图3描述了根据一些实施例的示出用于在图2的块204确定初始辨别的意图的方法300的简化流程图。可以在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)、硬件或其组合中实现图2中描述的处理。软件可以存储在非暂时性存储介质上(例如,在存储器装置上)。图3中呈现且以下描述的方法旨在进行说明并不进行限制。尽管图3描述了以特定顺序或次序发生的各个处理步骤,但这不旨在进行限制。在某些替代实施例中,可以以一些不同的次序执行所述步骤,或者也可以并行执行一些步骤。在某些实施例中,图3中描述的处理可以由以上关于图1描述的对话系统执行。
在302处,对话系统计算相应的多个潜在意图和语音输入的第一部分的多个得分。对话系统可以使用机器学习模型诸如逻辑回归模型或神经网络来计算得分。合适模型的具体示例包括长短期记忆(lstm)递归神经网络(例如,参见ksreelakshmi等,deepbi-directionallstmnetworkforqueryintentdetection(用于查询意图检测的深度双向lstm网络),第八届国际计算与通信进展会议(icacc-2018),rajkumarbuyy和sherlyk.k(2018)),以及来自变压器的双向编码器表示(bert)(例如,参见devlin,jacob;chang,ming-wei;lee,kenton;toutanova,kristina,"bert:pre-trainingofdeepbidirectionaltransformersforlanguageunderstanding(bert:深度双向变压器的预训练以进行语言理解)".arxiv:1810.04805v2(2018))。这种模型可能先前已经在将样本文本输入与对应意图配对的数据集上进行了训练。在一些实施例中,模型的输出是得分,所述得分指示系统支持的意图对应于在202处接收的语音输入的意图的概率。
在304处,对话系统确定阈值。对话系统可以存储一个或多个阈值,以用于确定特定意图是否被认为足够可能对应于用户的实际意图。对话系统可以检索所存储的阈值。在一些实施例中,阈值可以是应用可配置的阈值——对话系统可以接受并应用输入(例如,来自管理员)以配置一个或多个阈值。例如,对话系统的功能可以作为云服务提供给不同的公司,并且不同的公司可以配置适合于其使用的不同阈值。
在306处,对话系统确定特定意图的得分超过阈值。对话系统可以将在302处计算出的每个意图的得分与在304处确定的阈值进行比较,直到发现多个潜在意图中的特定意图的得分超过阈值。
在308处,对话系统将306处的特定意图设置为初始辨别的意图。基于得分超过阈值,对话系统可以确定对应的特定意图足够可能是用户的实际意图。因此,对话系统由此将特定意图设置为初始辨别的意图。
在308之后,对话系统可以使得显示视觉指示,如上文在206处所述。通过在306处确定特定意图的得分超过阈值,来触发使得显示初始辨别的意图的视觉指示。如果特定意图达到阈值,那么将触发能够更新图形界面或被对话系统拦截的事件。
替代地或另外,图3中描述的处理可以应用于一组域。对话系统可以将得分分配给多个域。例如,可以训练神经网络以对语音输入的域进行分类。这可以包括计算得分,所述得分指示一组域中的每一个与语音输入的匹配程度。替代地或另外,模型可以计算意图的得分,每个意图映射到对应的域。对话系统可以将每个得分与预定阈值进行比较。因此,对话系统确定足够可以触发在306处显示视觉指示的域。对话系统然后可以显示域的视觉指示(例如,天气图标,其可以指示初始辨别的意图与天气相关)。
图4a-图4d描述了根据一些实施例的界面视图400a-400d。图1的对话系统100的显示器130可以显示如图4a-图4d示出的界面以向用户提供辨别的意图的视觉提示。
图4a示出了第一界面视图400a。可以向用户显示第一界面视图,以示出用户提供给对话系统的输入。输入可以被接收为文本输入,或者被接收为语音输入,其由对话系统处理以确定显示的文本。在图4a示出的示例中,用户已提供输入“addfour...(添加四个...)”。对话系统在文本气泡402中显示输入“addfour(添加四个)”。这可以对应于话音输入的连续流的第一部分。在一些实施例中,对话系统可以基于话音输入来产生文本,并且显示确定的文本话语。在文本输出与话音输入不正确匹配的情况下,用户可以中途更正或调整。
图4b示出了第二界面视图400b。第二界面视图显示初始辨别的意图404的视觉指示。在图4b示出的示例中,初始辨别的意图的视觉指示是计算器图标。初始辨别的意图404的视觉指示代表由对话系统确定的初始辨别的意图。在这种情况下,基于图4a中示出的语音输入,对话系统确定意图足够可能添加数字以便触发显示辨别的意图的视觉指示。添加数字对应于计算器技能。因此,对话系统显示计算器图标。
图4c示出了第三界面视图400c。可以向用户显示第三界面视图400c,以示出用户提供给对话系统的话音或文本输入。在图4c示出的示例中,用户已提供输入“..applestoshoppinglist(苹果到购物清单)”。对话系统在文本气泡406中显示部分输入“applestoshoppinglist(苹果到购物清单)”。这可以对应于语音输入的连续流的第二部分。图4c中示出的语音输入响应于图4b处显示的图标,计算器图标指示对话系统未跟随用户正在参考购物清单,因此用户必须确保明确指出这是指图4c中示出的连续语音输入流第二部分中的购物清单。
图4d示出了第四界面视图400d。第四界面视图400d显示结果408。结果408是响应于图4a和图4c中指示的语音输入添加了四个苹果的购物清单。通过显示如图4b所示的初始辨别的意图指示,对话系统能够操纵对话以快速确定正确的意图并且确定并提供图4d中示出的结果。
本文描述的技术具有多个优点。通过处理用户输入并实时提供对其的初步了解,系统可以更准确地复制自然语音交互。例如,当两个人讲话时,视觉提示可以在让一个人知道另一个人是否听懂他们的讲话时非常有用。同样,通过利用实时自然语言处理,对话系统可以向用户显示视觉指示,以使用户知道对话系统是否正在按预期理解用户的语音。
相反,在处理语音或键入的用户输入的典型系统中,系统将等待口述子句完成,然后再花一些时间来处理口述子句并返回结果。如果结果是错误的,或者需要另外的信息,则这可能导致交互的不期望的开始和停止模式和/或扩展的一系列输入和输出,以使对话顺利进行。与本文描述的技术相比,这导致更多的时间资源、更多的处理资源以及更多的计算资源被消耗。本文描述的技术避免了这些问题并节省了时间和计算资源。因此,本文描述的技术可以减少执行用户请求的功能所需的总体时间和处理,因为系统可以实时给出并接收反馈以改善系统对接收到的语音输入的认知理解,而不是在用户被误解时停止并重启对话。
可以在包括云环境(可以是包括私有、公共和混合云环境的各种类型的云)、本地环境、混合环境等的各种不同环境中实现上述基础设施。
图5描述了用于实现实施例的分布式系统500的简化图。在所示的实施例中,分布式系统500包括经由一个或多个通信网络510耦合到服务器512的一个或多个客户端计算设备502、504、506和508。客户端计算设备502、504、506和508可以被配置成执行一个或多个应用。
在各种实施例中,服务器512可以适于运行一个或多个服务或软件应用,所述服务或软件应用使得能够使用用户反馈来改善对话系统中的认知理解。
在某些实施例中,服务器512还可以提供可以包括非虚拟和虚拟环境的其他服务或软件应用。在一些实施例中,这些服务可以作为基于网络的或云服务诸如在软件即服务(saas)模型下提供给客户端计算设备502、504、506和/或508的用户。操作客户端计算设备502、504、506和/或508的用户可以依次利用一个或多个客户端应用来与服务器512交互以利用由这些部件提供的服务。
在图5中描述的配置中,服务器512可以包括实现由服务器512执行的功能的一个或多个部件518、520和522。这些部件可以包括可以由一个或多个处理器执行的软件部件、硬件部件或其组合。应当理解,各种不同的系统配置是可能的,其可以与分布式系统500不同。图5中所示的实施例因此是用于实现实施例系统的分布式系统的一个示例,并且不旨在进行限制。
根据本公开的教导,用户可以使用客户端计算设备502、504、506和/或508来使用用户反馈来改善对话系统中的认知理解。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的界面。客户端设备还可以经由这个界面向用户输出信息。尽管图5仅描述了四个客户端计算设备,但可以支持任何数量的客户端计算设备。
客户端设备可以包括各种类型的计算系统,如便携式手持装置、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴装置、游戏系统、瘦客户端、各种消息传递装置、传感器或其他感测装置等。这些计算装置可以运行各种类型和版本的软件应用和操作系统(例如,microsoft
(多个)网络510可以是本域技术人员熟悉的任何类型的网络,其可以使用多种可用协议中的任何一种来支持数据通信,所述协议包括但不限于tcp/ip(传输控制协议/互联网协议)、sna(系统网络架构)、ipx(互联网包交换)、
服务器512可以由以下组成:一个或多个通用计算机、专用服务器计算机(例如包括pc(个人计算机)服务器、
服务器512中的计算系统可以运行一个或多个操作系统,包括上面讨论的那些中的任一操作系统以及任何可商购的服务器操作系统。服务器512还可以运行各种另外服务器应用和/或中间层应用中的任何一种,包括http(超文本传输协议)服务器、ftp(文件传送协议)服务器、cgi(通用网关接口)服务器、
在一些实施方式中,服务器512可以包括用于分析和合并从客户端计算设备502、504、506和508的用户接收的数据馈送和/或事件更新的一个或多个应用。作为示例,数据馈送和/或事件更新可以包括但不限于:从一个或多个第三方信息源和连续数据流接收到的
分布式系统500还可以包括一个或多个数据存储库514、516。在某些实施例中,这些数据存储库可以用于存储数据和其他信息。例如,数据存储库514、516中的一个或多个可以用于存储诸如对话历史的信息。数据存储库514、516可以驻留在各种位置。例如,服务器512使用的数据存储库可以是服务器512本地的,或者可以是远离服务器512的,并且经由基于网络或专用的连接与服务器512通信。数据存储库514、516可以是不同类型的。在某些实施例中,服务器512使用的数据存储库可以是数据库,例如关系数据库,诸如由oracle
在某些实施例中,应用还可以使用数据存储库514、516中的一个或多个来存储应用数据。应用使用的数据存储库可以是不同的类型,诸如例如键值存储库、对象存储库或文件系统支持的通用存储库。
在某些实施例中,可以经由云环境将本公开中描述的与nlu相关的功能作为服务来提供。图6是根据某些实施例的基于云的系统环境的简化框图,其中各种nlu相关的服务可以作为云服务被提供。在图6描述的实施例中,云基础设施系统602可以提供用户可以使用一个或多个客户端计算设备604、606和608请求的一个或多个云服务。云基础设施系统602可以包括一个或多个计算机和/或服务器。云基础设施系统602中的计算机可以被组织为通用计算机、专用服务器计算机、服务器场、服务器集群或任何其他适当的装置和/或组合。
(多个)网络610可以促进客户端604、606和608与云基础设施系统602之间的数据通信和交换。(多个)网络610可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络610可以支持一种或多种通信协议,包括有线和/或无线协议,以促进通信。
图6中描述的实施例仅为云基础设施系统的一个示例,并且不旨在进行限制。应当理解,在一些其他实施例中,云基础设施系统602可以具有比图6中描述的部件更多或更少的部件,可以组合两个或更多个部件,或者可以具有不同配置或布置的部件。例如,尽管图6描述了三个客户端计算设备,但在替代性实施例中可以支持任何数量的客户端计算设备。
术语云服务通常用于指代由服务提供商的系统(例如,云基础设施系统602)经由通信网络诸如因特网按需对用户可用的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以通过因特网按需订购并使用应用,而用户不必购买用于执行应用的基础设施资源。云服务被设计成提供对应用、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(redwoodshores,california)的oracle
在某些实施例中,云基础设施系统602可以使用不同的模型诸如在软件即服务(saas)模型、平台即服务(paas)模型、基础设施即服务(iaas)模型和其他模型(包括混合服务模型)下提供一个或多个云服务。云基础设施系统602可以包括实现对各种云服务的置配的一套应用、中间件、数据库和其他资源。
saas模型使应用或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用的硬件或软件。例如,可以使用saas模型为客户提供对由云基础设施系统602托管的按需应用的访问。oracle
iaas模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由oracle
paas模型通常用于提供使客户能够开发、运行并管理应用和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由oracle
云服务通常基于按需自助服务、基于订阅的、弹性可扩展的、可靠的、高度可用的和安全的方式提供。例如,客户可以经由订阅订单订购云基础设施系统602提供的一个或多个服务。云基础设施系统602然后执行处理以提供客户的订阅订单中所请求的服务。例如,云基础设施系统602使用历史上下文来影响对话任务。云基础设施系统602可以被配置成提供一个或甚至多个云服务。
云基础设施系统602可以通过不同的部署模型提供云服务。在公共云模型中,云基础设施系统602可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统602可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统602和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。
客户端计算设备604、606和608可以是不同类型(诸如图5中描述的设备502、504、506和508),并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统602进行交互,以便请求由云基础设施系统602提供的服务。例如,用户可以使用客户端设备来请求本公开中描述的与nlu相关的服务。
在一些实施例中,由云基础设施系统602执行的用于提供nlu相关服务的处理可以涉及大数据分析。此分析可以涉及使用、分析并操纵大数据集以检测并可视化数据中的各种趋势、行为、关系等。此分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,云基础设施系统602可以执行大数据分析,以基于接收到的语音输入来辨别的意图。用于此分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型进行结构化的数据)和/或非结构化数据(例如,数据块(datablob)(二进制大对象))。
如图6的实施例所描述的,云基础设施系统602可以包括基础设施资源630,其被用于促进由云基础设施系统602提供的各种云服务的置配(provision)。基础设施资源630可以包括例如处理资源、存储或存储器资源、联网资源等。
在某些实施例中,为了促进对这些资源的高效置配以用于支持由云基础设施系统602为不同客户提供的各种云服务,资源可以被捆绑成资源组或资源模块(也称为“群聚(pod)”)。每个资源模块或群聚可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先置配不同的群聚,所述云服务可以包括以上针对服务器512描述的那些。例如,可以针对数据库服务置配第一组群聚、可以针对java服务置配第二组群聚等,第二组群聚可以包括与第一组群聚中的群聚不同的资源组合。对于一些服务,被分配用于置配服务的资源可以在服务之间共享。
云基础设施系统602本身可以在内部使用由云基础设施系统602的不同部件共享并且促进云基础设施系统602置配服务的服务632。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。
云基础设施系统602可以包括多个子系统。这些子系统可以在软件或硬件或其组合中实施。如图6所描绘的,子系统可以包括使云基础设施系统602的用户或客户能够与云基础设施系统602交互的用户界面子系统612。用户界面子系统612可以包括各种不同的界面,如web界面614、其中广告并且客户可购买由云基础设施系统602提供的云服务的在线商店界面616和其他界面618。例如,客户可以使用客户端设备请求(服务请求634)由云基础设施系统602使用界面614、616和618中的一个或多个界面提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统602提供的云服务并且针对客户希望订阅的由云基础设施系统602提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统602提供的nlu相关服务下订阅订单。作为订单的一部分,客户可以提供标识请求的语音输入。
在某些实施例中,诸如图6中描述的实施例,云基础设施系统602可以包括被配置成处理新订单的订单管理子系统(oms)620。作为此处理的一部分,oms620可以被配置成:为客户创建账户(如果尚未创建的话);从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;以及策划各种工作流程来准备订单以进行置配。
一旦验证通过,oms620就可以调用被配置成为订单置配资源包括处理资源、存储器资源和联网资源的订单置配子系统(ops)624。置配可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单置配资源的方式和所置配的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流,ops624可以被配置成确定正在请求的特定云服务并且标识可能已经为所述特定云服务预先配置的群聚的数量。为订单分配的群聚的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群聚的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群聚以用于提供所请求服务。
云基础设施系统602可以向请求客户发送响应或通知644,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些实施例中,对于请求nlu相关服务的客户,响应可以包括基于所标识的意图而生成的响应。
云基础设施系统602可以向多个客户提供服务。对于每个客户,云基础设施系统602负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统602还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用此使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。
云基础设施系统602可以并行地向多个客户提供服务。云基础设施系统602可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统602包括身份管理子系统(ims)628,其被配置成管理客户信息并提供所管理信息的分离,使得与一个客户相关的信息不能被另一客户访问。ims628可以被配置成提供各种安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色及相关能力的服务等。
图7示出了可以用于实现某些实施例的示例性计算机系统700。例如,在一些实施例中,计算机系统700可以用于实现上述的asr子系统、nlu子系统以及各种服务器和计算机系统中的任何一个。如图7所示,计算机系统700包括各种子系统,包括经由总线子系统702与多个其他子系统通信的处理子系统704。这些其他子系统可以包括处理加速单元706、i/o子系统708、存储子系统718以及通信子系统724。存储子系统718可以包括非暂时性计算机可读存储介质,其包括存储介质722和系统存储器710。
总线子系统702提供了让计算机系统700的各个部件和子系统按预期彼此通信的机制。虽然总线子系统702被示意性地示出为单一总线,但总线子系统的替代性实施例可以利用多条总线。总线子系统702可以是若干类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的本地总线等。例如,此类架构可以包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)本地总线,以及外围部件互连(pci)总线,其可以实现为按照ieeep1386.1标准制造的夹层总线等。
处理子系统704控制计算机系统700的操作,并且可以包括一个或多个处理器、专用集成电路(asic)或现场可编程门阵列(fpga)。处理器可以包括单核或多核处理器。可以将计算机系统700的处理资源组织成一个或多个处理单元732、734等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核与处理器的组合,或核与处理器的其他组合。在一些实施例中,处理子系统704可以包括一个或多个专用协同处理器,诸如图形处理器、数字信号处理器(dsp)等。在一些实施例中,可以使用诸如专用集成电路(asic)或现场可编程门阵列(fpga)的定制电路来实现处理子系统704的一些或全部处理单元。
在一些实施例中,处理子系统704中的处理单元可以执行存储在系统存储器710中或计算机可读存储介质722上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令,并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的一些或全部程序代码可以驻留在系统存储器710中和/或计算机可读存储介质722上,包括可能在一个或多个存储设备上。通过合适的编程,处理子系统704可以提供上述各种功能。在计算机系统700正在执行一个或多个虚拟机的实例中,可以将一个或多个处理单元分配给每个虚拟机。
在某些实施例中,可以可选地提供处理加速单元706,以用于执行定制处理或卸载由处理子系统704执行的一些处理,以便使由计算机系统700执行的整体处理加速。
i/o子系统708可以包括用于向计算机系统700输入信息和/或用于从或经由计算机系统700输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统900输入信息的所有可能类型的设备和机构。用户界面输入设备可以包括例如键盘、如鼠标或轨迹球的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户界面输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的microsoft
用户界面输入设备的其他示例包括但不限于三维(3d)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距仪、眼睛注视跟踪设备。另外,用户界面输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户界面输入设备还可以包括例如音频输入设备,如midi键盘、数码乐器等。
通常,使用术语输出设备旨在包括用于从计算机系统700向用户或其他计算机输出信息的所有可能类型的设备和机构。用户界面输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(crt)、平板设备诸如使用液晶显示器(lcd)或等离子显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。
存储子系统718提供用于存储由计算机系统700使用的信息和数据的存储库或数据存储。存储子系统718提供用于存储提供一些实施例的功能的基本编程和数据构造的非暂时性计算机可读存储介质。存储子系统718可以存储在由处理子系统704执行时提供上述功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统704的一个或多个处理单元执行。存储子系统718还可以提供用于存储根据本公开的教导使用的数据的存储库。
存储子系统718可以包括一个或多个非易失性存储设备,包括易失性和非易失性存储设备。如图7所示,存储子系统718包括系统存储器710和计算机可读存储介质722。系统存储器710可以包括多个存储器,包括:在程序执行期间用于存储指令和数据的易失性主随机存取存储器(ram)和其中存储有固定指令的非易失性只读存储器(rom)或闪速存储器。在一些实施方式中,基本输入/输出系统(bios)通常可以被存储在rom中,所述基本输入/输出系统包含有助于诸如在启动期间在计算机系统700内的元件之间传送信息的基本例程。ram通常包含当前由处理子系统704操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器710可以包括多种不同类型的存储器,诸如静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
作为示例并不限制,如图7中描述的,系统存储器710可以加载正在执行的应用程序712,其可以包括各种应用,诸如web浏览器、中间层应用、关系数据库管理系统(rdbms)等、程序数据714以及操作系统716。作为示例,操作系统716可以包括各种版本的microsoft
计算机可读存储介质722可以存储提供一些实施例的功能的程序和数据构造。计算机可读介质722可以为计算机系统700提供计算机可读指令、数据结构、程序模块和其他数据的存储。在由处理子系统704执行时提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统718中。作为示例,计算机可读存储介质722可以包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如cdrom、dvd的光盘驱动器、blu-
在某些实施例中,存储子系统718还可以包括计算机可读存储介质读取器720,其可以进一步连接到计算机可读存储介质722。读取器720可以接收并且被配置成从诸如磁盘、闪存驱动器等的存储设备读取数据。
在某些实施例中,计算机系统700可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统700可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机系统700可以执行程序,诸如促进虚拟机的配置和管理的管理程序。可以为每个虚拟机分配存储器、计算(例如,处理器、核)、输入/输出和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自己的操作系统,所述操作系统可以与计算机系统700执行的其他虚拟机执行的操作系统相同或不同。因此,计算机系统700可能潜在地同时运行多个操作系统。
通信子系统724提供到其他计算机系统和网络的接口。通信子系统724充当用于从计算机系统700的其他系统接收数据并将数据传输到所述其他系统的接口。例如,通信子系统724可以使计算机系统700能够经由互联网建立到一个或多个客户端设备的通信信道,以用于从客户端设备接收信息和向所述客户端设备发送信息。例如,通信子系统可以用于与数据库通信以执行查询来标识可请求的实体。
通信子系统724可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子系统724可以包括用于访问无线话音和/或数据网络的射频(rf)收发器部件(例如,使用蜂窝电话技术诸如3g、4g或edge(全球演进增强型数据速率)等先进的数据网络技术、wifi(ieee802.xx家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(gps)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或代替无线接口,通信子系统724可以提供有线网络连接(例如,以太网)。
通信子系统724可以以各种形式接收和传输数据。例如,在一些实施例中,除了其他形式之外,通信子系统724可以以结构化和/或非结构化数据馈送726、事件流728、事件更新730等形式接收输入通信。例如,通信子系统724可以被配置成从社交媒体网络和/或其他通信服务诸如
在某些实施例中,通信子系统724可以被配置成接收连续数据流形式的数据,所述连续数据流可以包括可以没有显式结束的本质上连续的或无界的实时事件的事件流728和/或事件更新730。生成连续数据的应用的示例可以包括例如传感器数据应用、金融报价机、网络性能测量工具(例如网络监视和交通管理应用)、点击流分析工具、汽车交通监视等。
通信子系统724还可以被配置成将数据从计算机系统700传达到其他计算机系统或网络。数据可以以各种不同的形式诸如结构化和/或非结构化数据馈送726、事件流728、事件更新730等传达到一个或多个数据库,所述一个或多个数据库可以与耦合到计算机系统700的一个或多个流式数据源计算机通信。
计算机系统700可以是各种类型中的一种,包括手持便携式设备(例如,
尽管已经描述了特定的实施例,但各种修改、变更、替代构造和等同方案都是可能的。实施例不限于在某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由地操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但对于本域技术人员应该显而易见的是,这并不旨在进行限制。尽管一些流程图将操作描述为顺序过程,但许多操作可以并行或同时执行。另外,可以重排操作的顺序。一个过程可以具有图中未包括的另外步骤。上述实施例的各种特征和方面可以单独或共同使用。
此外,尽管已经使用硬件和软件的特定组合描述了某些实施例,但应该认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅以硬件或仅以软件或其组合来实现。本文描述的各种过程可以以任何组合在相同处理器或不同处理器上实现。
在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作,诸如通过执行计算机指令或代码,或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。
本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各种实施例的使能描述。可以对元件的功能和布置作出各种改变。
因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。
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所述的系统,所述处理还包括:
基于所述经修改的辨别的意图确定响应;以及
将所述响应提供给所述用户。
20.如权利要求15所述的系统,其中,确定所述初始辨别的意图包括:
针对相应的多个潜在意图和所述语音输入的所述第一部分计算多个得分;以及
确定所述初始辨别的意图的得分超过阈值,
其中,通过所述确定所述初始辨别的意图的所述得分超过所述阈值,触发使得显示所述初始辨别的意图的视觉指示。
21.一种用于对话处理的系统,包括用于执行根据权利要求1至7中任一项所述的方法的步骤的装置。
技术总结