使用集成共享资源来流线化对话处理的制作方法

    专利2022-07-08  102


    相关申请的交叉引用

    本申请根据35u.s.c.119(e)要求于2019年9月12日提交的名称为“techniquesforintegratingtheexecutionpipelineofadialogsystem[用于集成对话系统的执行管线的技术]”的美国申请号62/899,651的权益和优先权,所述美国申请的内容出于所有目的通过引用以其全文并入本文。

    本公开总体上涉及对话系统。更具体地,但非限制性地,本公开描述了用于通过使得能够在对话系统的管线式过程之间共享资源来减少由对话系统使用的处理资源和存储器的量的技术。



    背景技术:

    现在,越来越多的设备使得用户能够直接使用话音或口述语音与设备进行交互。例如,用户可以用自然语言对这种设备说话,其中,用户可以询问问题或进行请求执行某个动作的陈述。作为响应,设备执行所请求的动作或使用话音输出来对用户的问题作出响应。由于直接使用话音进行交互是人类与其周围环境进行交流的更自然且更直观的方式,因此这种基于语音的系统的普及正以天文数字的速率增长。

    通过可能处于设备中的对话系统(有时也被称为聊天机器人或数字助理)促进了使用口述语音与所述设备进行交互的能力。对话系统通常使用具有由独立部件实施的多个过程的管线。此管线包括自动语音识别(asr)部件,所述部件接收由用户说出的语音作为输入,并标识与语音话语相对应的单词(例如,将语音转换为文本)。asr部件的输出被提供给自然语言理解(nlu)部件,所述自然语言理解部件处理文本以确定其含义,这可以包括对文本执行意图和命名实体标识。nlu部件的输出提供关于用户话语背后的意图和与所述意图相关的实体的信息。传统上,asr部件和nlu部件中的每一个都具有其自己的用于执行其对应任务的资源(例如,计算机、存储器、数据结构等)。这使得难以将这种对话系统并入到低功率且资源匮乏的设备(如,厨房电器、照明装置等)中。



    技术实现要素:

    本公开总体上涉及对话系统。更具体地,描述了用于在对话系统中的语音识别子系统与自然语言理解子系统之间共享资源的技术,这些技术可以减少计算时间和存储器需求。具体地,执行自动语音识别操作的第一子系统和执行自然语言理解操作的第二子系统使用集成共享词典来辨别语音输入中的含义。本文中描述了各种实施例,包括方法、系统、存储可由一个或多个处理器执行的程序、代码或指令的非暂态计算机可读存储介质等。

    在某些实施例中,对话系统基于从用户接收的语音输入来生成含义表示。所述系统可以使用自动语音识别(asr)和自然语言理解(nlu)来生成含义表示。所述系统可以针对asr功能和nlu功能使用公共集成共享词典。这样的词典可以包括单词、发音和与单词相关联的信息,所述信息可以包括命名实体类型或可用于确定含义表示的其他信息。集成共享词典可以用于使用集成共享资源和处理来流线化对话处理。

    在某些实施例中,对话系统的第一子系统接收语音输入。所述第一子系统处理语音输入以标识与所述语音输入相对应的发音。所述第一子系统搜索存储在存储器中的词典,以在词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由条目存储的所述一个或多个单词的集合的含义表示。所述第一子系统将标识匹配条目的信息传送到对话系统的第二子系统。所述第二子系统使用标识条目的信息来生成语音输入的含义表示,所述含义表示标识与语音输入相关联的意图,其中,所述生成包括由所述第二子系统使用存储在词典中的匹配条目中的附加信息。

    在一些方面,所述第一子系统是自动语音识别(asr)子系统,并且所述第二子系统是自然语言理解(nlu)子系统。在一些方面,指示条目的信息包括指向附加信息的指针,并且所述对话系统的第二子系统使用所述指针来检索附加信息。在一些方面,附加信息包括与所述单词集合相对应的命名实体类型,并且生成含义表示包括将所述命名实体类型链接到所述单词集合。

    在一些方面,所述单词集合是第一单词集合,并且所述方法进一步包括由所述对话系统的第一子系统使用词典来标识第二单词集合;由所述对话系统的第一子系统将第二单词集合输出到所述对话系统的第二子系统;以及由所述对话系统的第二子系统通过使用机器学习模型将第一单词集合中的单词和第二单词集合中的单词彼此相关联来确定上下文。

    在一些方面,所述方法进一步包括由所述对话系统的第二子系统将所生成的含义表示输出到所述对话系统的第三子系统。在一些方面,所述方法进一步包括:标识由第一子系统使用的信息;标识由第二子系统使用的信息;确定将由第一子系统使用的信息与由第二子系统使用的信息进行关联的信息;生成由第一子系统使用的词典、由第二子系统使用的信息以及关联信息;以及使词典能够由第一子系统和第二子系统访问。

    实施例进一步包括被配置用于执行本文所描述的方法的系统和计算机可读介质。

    在参考以下说明书、权利要求和附图之后,前述内容以及其他特征和实施例将变得更加显而易见。

    附图说明

    图1是图示根据某些实施例的对话系统的简化框图。

    图2是图示根据某些实施例的用于使用集成共享词典经由asr/nlu管线从语音输入生成含义表示的方法的简化示意图。

    图3a至图3b描绘了根据某些实施例的示例集成asr/nlu词典条目。

    图4是图示根据某些实施例的用于生成共享asr/nlu词典的方法的简化流程图。

    图5是图示根据某些实施例的用于使用集成且共享的资源来流线化对话系统中的处理的方法的简化流程图。

    图6是图示根据某些实施例的用于图5中的生成含义表示的方法的简化流程图。

    图7描绘了用于实施实施例的分布式系统的简化示图。

    图8是根据某些实施例的基于云的系统环境的简化框图,在所述基于云的系统环境中,各种存储相关的服务可以作为云服务来提供。

    图9图示可以用于实施某些实施例的示例性计算机系统。

    具体实施方式

    在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述不旨在是限制性的。词语“示例性”在本文中用来意指“用作示例、实例或说明”。在本文中被描述为“示例性”的任何实施例或设计不必被解释为比其他实施例或设计更优选或有利。

    能够经由话音输入和话音输出与用户进行对话的支持话音的系统可以以各种形式出现。例如,这种系统可以被提供为独立式设备、数字助理或虚拟助理、具有话音功能的服务等。在这些形式中的每一种形式中,系统能够接收话音输入或语音输入,理解输入,生成响应或者响应于输入而采取动作,以及使用话音输出来输出响应。在某些实施例中,在这种支持话音的系统中的对话功能由对话系统或基础设施(“对话系统”)来提供。使用诸如聊天机器人或聊天机器人系统、数字助理等各种术语来指代这种对话系统。

    由对话系统执行的处理通常涉及多个过程的管线。如以上所指出的,这些过程可以包括对表示由用户口述话语的语音输入执行自动语音识别(asr),其中,asr处理标识与语音话语相对应的单词(例如,将语音转换为文本)。然后,asr处理的输出被提供作为自然语言理解(nlu)处理的输入,所述nlu处理对文本单词进行处理并从文本单词中标识一个或多个意图和命名实体。由离散部件(例如,彼此独立地操作的模块)执行asr处理任务和nlu处理任务,每个部件都有其自己的处理资源和存储器资源。独立的asr系统和nlu系统需要协调,这在时间和存储器方面可能是计算成本昂贵的。每个系统使用其自己的资源(例如,模型(例如,机器学习模型)、数据结构、词典等)来执行处理。例如,asr系统使用专用词典(也被称为词库)将语音输入映射到文本。自然语言处理(nlp)系统使用公报(也被称为地名词典)来标识给定文本的含义表示。

    本公开描述了用于通过使得能够在对话系统的管线式过程之间共享资源来减少由对话系统使用的存储器资源和处理资源的量的技术。集成共享词典被构造成使得其可以由对话系统的多个子系统共享并且被所述多个子系统同时使用。集成共享词典由对话系统的自动语音识别(asr)子系统和自然语言理解(nlu)子系统共享。集成共享词典包括多个条目,其中,每个条目包括由asr子系统使用的第一信息和由nlu子系统使用的第二信息以及将第一信息与第二信息进行关联的信息。asr子系统使用集成共享词典来标识包含与语音输入相对应的单词集合的词典条目。然后,词典条目信息被传送至nlu子系统,所述nlu子系统使用所述条目来生成语音输入的含义表示。集成共享词典在asr子系统与nlu子系统之间的这种共享显著地节省了由对话系统使用的存储器资源,并且还加快了处理速度。

    在一些实施例中,集成共享词典被构造成使得其可以由对话系统的asr子系统和nlu子系统共享并且被这些子系统同时使用。在某些实施例中,作为其语音到文本处理的一部分的asr子系统可以使用集成共享词典来确定词典中标识与语音话语相对应的单词集合的位置(例如,表中的条目)。然后,asr子系统可以输出指向此位置的指针并将所述指针传递给nlu子系统,以便所述nlu子系统进行处理。然后,nlu子系统使用此指针进入集成共享词典中,以执行该nlu子系统的处理,从而确定由asr子系统标识的该单词集合的含义。在某些实施例中,确定含义包括确定标识以下各项的信息:一个或多个意图、一个或多个命名实体类型和/或关于与用户语音话语相对应的所标识的单词的附加补充信息。

    集成共享词典可以以多种不同的形式出现。由asr子系统执行的处理涉及接收语音输入(例如,口述用户话语)以及确定与话语相对应的文本单词集合。作为其处理的一部分,asr子系统确定语音输入的发音,并且然后确定与所述发音相对应的单词集合。nlu子系统确定由asr子系统确定的该单词集合的含义表示。作为其处理的一部分,nlu子系统从该组文本单词中提取一个或多个命名实体和其他信息,并且然后基于所提取的信息来确定该单词集合(并且因此语音输入)的一个或多个意图。因此,在某些实施例中,集成共享词典包括将发音映射到单词集合并且将单词映射到含义表示的信息,其中,含义表示可以包括一个或多个命名实体、意图、和其他信息。

    与传统技术相比,在asr部件与nlu部件之间使用集成共享词典提供了若干个技术优点。减少了对话系统的总体存储器占用。由asr子系统和nlu子系统使用的单个词典比传统上由asr子系统和nlu子系统分别使用的单独的词典和单独的公报占用更少的存储器。通过存储一个词典而不是两个词典,减少了对话系统的存储需求。同时减小了asr部件和nlu部件自身的总存储器尺寸。

    还减少了处理语音输入所花费的处理时间,从而减小了对话系统的总响应延迟(例如,将输入语音波形变换为所述输入的含义表示所需的总时间量)。传统上,asr子系统将在其词典中执行查找,而nlu子系统将在其公报中执行另一查找。使用集成共享词典使得能够使用单个查找来执行处理。asr子系统执行查找,并且然后将指向集成共享词典中的相关位置的指针传递给asr子系统,所述asr子系统然后使用此指针来执行其处理。这消除了对nlu子系统执行第二次公报查找的需要,从而减少了执行的总体处理和处理所花费的时间。

    对话系统可能是相当复杂的,但希望在功率较低、处理资源和存储器资源较少的小型计算机和设备如例如闹钟、家用电器等的嵌入式系统上实施这种系统。传统上,这种设备可能不支持对话系统或可能仅在耦接至设备的附加服务器的帮助下支持对话系统。这可以使得对话系统能够在较低功率或较低成本的设备上实施。通过使用集成共享词典来减少对话系统的处理需求和存储需求,存储器存储需求可以被减少多达50%甚至更多。这使得对话系统能够在嵌入式系统中实施,并且无需使用任何外部服务器进行存储或处理。可替代地,在其中利用外部服务器进行存储和/或处理的实施例中,处理需求和存储需求的减少也是有利的。在asr部件与nlu部件之间共享资源可以进一步减少构造会话代理所需的工作量。如果asr部件和nlu部件各自具有其自己版本的词典和地名词典,则通常每个版本需要被单独地构造和维护,这会使计算资源和劳动力倍增。如果在asr部件与nlu部件之间共享如词典或地名词典的资源,则仅需要构造和维护每个资源的一个版本,这可以使构造和维护整个系统所需的资源减少50%或更多。

    图1图示了根据一些实施例的对话系统100的示例。对话系统100被配置成从用户102接收话音输入或语音输入104(也被称为语音话语)。对话系统100然后可以解释话音输入。对话系统100可以维持与用户102的对话,并且可以基于对话音输入的解释来执行一个或多个动作或使一个或多个动作被执行。对话系统100可以准备适当的响应,并且使用话音输出或语音输出将响应输出给用户。

    在某些实施例中,可以由部件或子系统的管线来实施由对话系统执行的处理,所述部件或子系统的管线包括语音输入部件105、唤醒单词检测(wd)子系统106、自动语音识别(asr)子系统108、集成共享词典109、包括命名实体识别器(ner)子系统112和语义解析器子系统114在内的自然语言理解(nlu)子系统110、对话管理器(dm)子系统116、自然语言生成器(nlg)子系统118、文本到语音(tts)子系统120和语音输出部件124。以上列出的子系统可以仅在软件(例如,使用可由一个或多个处理器或核执行的代码、程序或指令)中、硬件中或硬件与软件的组合中实施。在某些实施方式中,一个或多个子系统可以被组合成单个子系统。另外地或可替代地,在一些实施方式中,可以由多个子系统来实施本文所描述的、如由特定子系统执行的功能。

    语音输入部件105包括被配置成接收语音输入104的硬件和软件。在一些实例中,语音输入部件105可以是对话系统100的一部分。在一些其他实例中,语音输入部件105可以与对话系统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子系统108执行语音到文本的转换。口述语音输入或话音输入可以是自然语言的形式,并且asr子系统108被配置成用语音输入的语言生成对应的自然语言文本。然后将由asr子系统生成的文本馈送到nlu子系统110,以进行进一步处理。由asr子系统108接收的话音输入可以包括一个或多个单词、短语、从句、句子、问题等。asr子系统108被配置成针对每个口述从句生成文本话语,并将所述文本话语馈送到nlu子系统110,以进行进一步处理。

    集成共享词典109包括由asr子系统和nlu子系统使用的公共语言资源集合。该语言资源集合可以包括将发音映射到单词的词典条目。该语言资源集合可以进一步包括指定命名实体集合的条目、和/或可以由nlu子系统110用于确定单词的含义表示的附加信息。asr子系统108可以标识标识集成共享词典109中的条目的信息(例如,指向可由nlu子系统110使用的这种信息的指针),并将所述信息作为输出传递给nlu子系统110。

    nlu子系统110接收由asr子系统108生成的文本。由nlu子系统110从asr子系统108接收的文本可以包括与口述单词、短语、从句等相对应的文本话语。nlu子系统110将每个文本话语(或一系列文本话语)转译成其对应的逻辑形式。nlu子系统110可以进一步使用从asr子系统108传递的信息来从集成共享词典109中快速获得信息,以供在生成逻辑形式时使用,如本文所述。

    在某些实施方式中,nlu子系统110包括命名实体识别器(ner)子系统112和语义解析器(sp)子系统114。ner子系统112接收文本话语作为输入、标识文本话语中的命名实体、并且利用与所标识的命名实体相关的信息来标记文本话语。然后将经标记的文本话语馈送到sp子系统114,所述sp子系统被配置成针对每个经标记的文本话语(或针对一系列经标记的文本话语)生成逻辑形式。针对话语生成的逻辑形式可以标识与文本话语相对应的一个或多个意图。话语的意图标识话语的目的。意图的示例包括“orderpizza(订购披萨)”和“finddirections(查找导航)”。意图可以例如标识被请求执行的动作。除了意图之外,针对文本话语生成的逻辑形式还可以针对所标识的意图标识槽位(slot)(也被称为参数或自变量)。例如,对于语音输入“i’dliketoorderalargepepperonipizzawithmushroomsandolives(我想要订购带有蘑菇和橄榄的大份意大利辣香肠披萨)”,nlu子系统110可以标识意图orderpizza(订购披萨)。nlu子系统还可以标识并填充槽位,例如,pizza_size(披萨_尺寸)(用large来填充)和pizza_toppings(披萨_饼料)(用mushrooms和olives来填充)。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,以进行进一步处理。

    nlg子系统118被配置成生成与由dm子系统116生成的响应相对应的自然语言文本。所述文本可以以使得所述文本能够由tts子系统120转换为语音的形式生成。tts子系统120从nlg子系统118接收文本,并将这些文本中的每个文本转换为语音或话音音频,然后可以经由对话系统的音频或语音输出部件124(例如,扬声器或耦接至外部扬声器的通信信道)将所述语音或话音音频输出给用户。在一些实例中,语音输出部件124可以是对话系统100的一部分。在一些其他实例中,语音输出部件124可以与对话系统100分离并且通信地耦接至所述对话系统。

    如上所述,对话系统100的各个子系统协作地工作提供了以下功能:使得对话系统100能够接收语音输入104并使用语音输出122作出响应,并且使用自然语言语音来维持与用户的对话。可以使用单个计算机系统或使用协作地工作的多个计算机系统来实施上述各个子系统。例如,对于实施支持话音的系统的设备,可以完全在用户与之交互的设备上实施上述对话系统100的子系统。在一些其他实施方式中,对话系统100的一些部件或子系统可以在用户与之交互的设备上实施,而其他部件可以远离设备实施、可能在一些其他计算设备、平台或服务器上实施。

    如上所述,在某些实施例中,可以使用子系统的管线来实施对话系统100。在一些实施例中,一个或多个子系统可以被组合成单个子系统。在某些实施例中,可以由多个子系统来提供由特定子系统提供的功能。还可以使用多个子系统来实施特定子系统。

    在某些实施例中,可以使用机器学习技术来实施对话系统100的一个或多个功能。例如,可以使用监督机器学习技术、诸如使用神经网络(例如,深度神经网络)实施的那些技术,来实施对话系统100的一个或多个功能。作为一个示例,可以提供被训练用于执行所执行的asr功能的神经网络,并且这种经训练的模型可以由asr子系统108用于进行所述asr子系统的处理。这种神经网络实施方式可以将语音输入作为输入并且向nlu子系统输出文本话语。也可以由对话系统100的其他子系统使用基于机器学习的模型。

    asr发音词典用于执行asr功能。用于asr的asr发音词典包括发音和对应的单词。例如,asr词典将单词的音标表示映射到单词的文本字符串。单词的文本字符串指定如何拼写单词。作为特定的示例,asr发音词典中的条目指定:

    ·gowldahn.geyt.brihjh.goldengatebridge(金门大桥)

    可以使用命名实体公报来执行nlu操作。命名实体公报将单词(例如,文本字符串)映射到特定命名实体类型或命名实体的类别。可以由nlu系统使用这些公报来填充槽位,以帮助确定如何处理用户请求。例如,命名实体公报中的条目可以将短语goldengatebridge链接到命名实体类型:

    ·goldengatebridgepoint-ofinterest(兴趣点)

    通常,nlu公报不包括发音。

    如上所述,nlu可以用于标识含义表示。例如,由一个或多个机器学习算法来分析文本数据,以标识由用户说出的单词集合的含义表示。含义表示可以包括如获得导航或信息等意图。可以将单词或单词组链接到命名实体类型。例如,文本“findanindianrestaurantnearthebeach(查找海滩附近的印度餐馆)”映射到intent:findrestaurant;cuisine:indian;location:beach(意图:查找餐馆;菜系:印度;位置:海滩)。cuisine(菜系)和location(位置)是命名实体类型,并且indian(印度)和beach(海滩)是链接到所述命名实体类型的单词(例如,对应的命名实体)。通过将文本转换为机器可识别的意图和命名实体,机器可以处理由用户提供的请求。

    图2是示意图,图示了根据某些实施例的用于使用利用集成共享词典240的asr子系统220和nlu子系统230从语音输入204生成含义表示212的技术200的概述。从用户202接收语音输入204。语音输入204可以被接收为波形。由包括asr子系统220和nlu子系统230的系统使用集成共享词典240来分析接收到的语音输入204。asr子系统220和nlu子系统230可以在管线架构中实施。asr子系统220可以与图1的asr子系统108相对应,nlu子系统230可以与图1的nlu子系统110相对应,并且集成共享词典240可以与图1的集成共享词典109相对应。

    在206处,asr子系统220接收语音输入204并基于所述语音输入来标识单词。asr子系统可以处理语音输入以标识声音的表示,所述声音的表示可以与发音相对应。asr子系统可以使用集成共享词典240来标识映射到所述发音的单词。

    集成共享词典240包括由asr子系统和nlu子系统使用的公共语言资源集合。该语言资源集合可以包括将发音映射到单词的词典条目,如可以由asr子系统220使用的。该语言资源集合可以进一步将单词映射到用于确定含义表示的信息,如命名实体集合,如可以由nlu子系统230使用的。该组命名实体可以与对话系统已经学习的所有实体相对应。实体可以进一步包括关于这些命名实体的信息。例如,条目可以包含命名实体“spaceneedle(太空针塔)”以及关于所述命名实体的信息,如太空针塔的地址和太空针塔是受欢迎的旅游景点的事实。利用这两个子系统需要的信息生成如图3a和图3b示出的公共的集成共享词典240。

    asr子系统220使用集成共享词典240来标识单词的发音。例如,asr子系统220标识发音derehkshahnz.tuw。asr子系统220利用映射到所标识的发音的单词“directionsto(到………的导航)”来标识对应的词典条目。基于在词典中标识的单词,asr子系统220将语音波形变换为单词序列。asr子系统220的输出可以包括包含一个或多个单词的输出208(例如,文本字符串/文本话语)。

    在一些实施例中,asr子系统220产生标识集成共享词典240中的条目的信息。这种信息可以包括指向集成共享词典中的条目的指针。例如,针对口述句子“takemetothespaceneedle(带我去太空针塔)”的asr输出可能是“takemeto<nerid=27/>”,其中,“<nerid=27/>”是指向针对“spaceneedle”的命名实体公报条目的asr输出令牌。命名实体公报条目指定spaceneedle与命名实体类型“兴趣点”相对应。因此,asr子系统220的输出208可以进一步包括标识集成共享词典240中的条目的信息。

    在210处,nlu子系统230接收输出208,并使用nlu来生成与语音输入相关联的含义表示212。nlu子系统基于由asr子系统220传送的标识集成共享词典240中的条目的信息和/或由asr子系统220辨别的文本输出来生成含义表示212。在一些实施例中,nlu子系统230基于命名实体类型和所标识的意图来确定含义表示。例如,所标识的意图是directionsto(到……的导航),已经标识位置类型的命名实体starbeach(星星海滩),并且含义表示指示用户请求到星星海滩的导航(directionstostarbeach)。nlu子系统可以将由asr子系统220标识的单词变换为所述单词的含义表示。含义表示可以包括一个或多个命名实体。nlu子系统230可以使用集成共享词典240来生成含义表示,以将单词与基于单词的命名实体类型进行匹配。这可以用于利用命名实体标签和/或附加信息来标记单词。nlu子系统230将此含义表示212传送到对话系统管线的另一部件,如图1的对话管理器子系统116。

    因为nlu子系统230与asr子系统220一起使用集成共享词典240,所以nlu子系统230不需要具有单独的公报,从而减少了对话系统的总存储器需求。通过使用asr子系统220直接产生指向公报条目的指针,nlu子系统230不需要执行公报查找,这简化并加快了nlu处理。由于在asr子系统与nlu子系统之间共享了数据和资源,因此这还简化了整个对话系统的构造。

    因此,使用集成共享词典可以加快操作,并且减少存储器需求和计算需求。这在以相对较低的计算资源实施的系统如非常小的计算机、或像闹钟或电器等的嵌入式系统中特别有用。假设单词列表和命名实体列表可能非常大,则存储和使用一个词典而不是多个词典提供了在这种背景下特别有用的效率。

    图3a至图3b描绘了根据某些实施例的示例集成共享asr/nlu词典条目图3a图示了包括单词302、发音304和命名实体类型306的示例词典300。单词302条目包括一个或多个单词的集合。单词集合包括sydneyharbourbridge(悉尼海港大桥)308和operahouse(歌剧院)314。词典300进一步包括发音304。发音是构成单词的语声。发音以可被对话系统理解的音标表示来表示。发音304映射到对应的单词。sidni.haaba.bridg310是映射到该单词集合sydneyharbourbridge308的发音。opra.haus316是映射到该单词集合operahouse314的发音。词典300进一步包括命名实体类型306。命名实体类型306指定命名实体的类别,如人、位置等。sydneyharbourbridge308的命名实体类型306为“兴趣点”312。operahouse314的命名实体类型306也为“兴趣点”318。

    图3b图示了包括单词352、发音354、命名实体类型356和补充信息358的示例词典350。单词352条目包括一个或多个单词的集合。在三个条目中示出了单词washington(华盛顿)360。单词washington360映射到发音354wash.ing.tohn364。单词washington360进一步映射到关于单词的信息,所述信息包括命名实体类型356和补充信息358。在这种情况下,washington有多种含义——美国第一任总统、美国首都和在美国西北部的一个州。词典350包括以下三种可能性中的每一种的条目——命名实体类型356分别是:人366、城市376和州386。对于每个命名实体类型356,词典350进一步包括补充信息358,所述补充信息在确定单词的上下文和/或准备与单词相关联的响应时可能是有用的。对于作为人366的washington360,补充信息是“georgewashington,firstpresidentoftheunitedstates(乔治·华盛顿,美国第一任总统)”368。对于作为城市376的washington360,补充信息是“capitaloftheunitedstates;38.9072°n,77.0369°w"378(美国的首都;北纬38.9072°,西经77.0369°)”378,其包括城市的位置坐标。对于作为州386的washington360,补充信息是“stateinnorthwesternunitedstates;47.7511°n,120.7401°w(在美国西北部的州;北纬47.7511°,西经120.7401°)”388,其包括州的位置坐标。

    图4是图示了根据某些实施例的用于生成集成共享词典的方法400的简化流程图。方法400可以由对话系统100的asr子系统108和nlu子系统110与对话系统100的其他部件协作地实施,如图1所描绘的。图4所描绘的处理可以仅在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上(例如,存储器设备上)。图4所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图4描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。在关于图4描述的处理中,对话系统标识用于构造集成共享词典的各种信息。可以以多种方式,诸如查阅由管理员准备的配置文件、网页抓取、搜索数据库和/或应用机器学习模型,实现标识所述信息。

    在402处,对话系统标识由asr子系统用来执行所述asr子系统的处理的信息。asr子系统执行如基于发音来标识单词等功能。因此,由asr子系统用来执行其处理的信息包括标识与不同单词相对应的发音。系统标识单词集合和对应的发音(例如,如图3a所示,单词302包括与发音304sidni.haaba.bridg310相对应的sydneyharbourbridge308)。

    在404处,对话系统标识由nlu子系统用来执行所述nlu子系统的处理的信息。nlu子系统执行如命名实体识别等功能。因此,由nlu子系统用来执行其处理的信息包括与命名实体、命名实体的对应类型和/或关于命名实体的补充信息相对应的不同的单词或单词集合。例如,如图3a中所图示的,该单词集合“sydneyharborbridge”与命名实体类型为兴趣点的命名实体相对应。

    在406处,对话系统确定将在402中标识的信息与在404中标识的信息进行关联的信息。在一些实施例中,在402和404处标识的(多个)公共单词是提供映射的关联信息。例如,由于单词sydneyharborbridge映射到发音sidni.haaba.bridg和命名实体类型“兴趣点”两者,公共单词将发音、单词和命名实体类型彼此进行关联。对话系统可以搜索在402处和在404处获得的信息,以确定匹配的单词集合和/或彼此具有阈值程度相似性的单词集合,从而确定关联信息。

    在408处,对话系统使用在402中、404中标识的信息和在406中确定的关联信息来生成集成共享词典。对话系统可以通过以有组织的方式存储信息来生成集成共享词典。对话系统可以将发音映射到单词,并且将单词映射到用于在标识含义表示时使用的信息如命名实体类型。在一些实施例中,这可以通过将单词、发音和命名实体类型彼此相关联地存储在表中来完成,如在图3a和图3b中所图示的。

    在410处,对话系统使得在408中生成的集成共享词典能够由asr子系统和nlu子系统访问和共享。对话系统将asr子系统配置成使用集成共享词典进行处理。对话系统将nlu子系统配置成使用集成共享词典进行处理。例如,asr子系统和nlu子系统中的程序代码可以包括用于从集成共享词典中检索信息的指令。asr子系统和/或nlu子系统可以进一步被配置成彼此共享信息,以流线化对集成共享词典的使用(例如,asr子系统可以将指向集成共享词典中的信息的指针传送给nlu子系统)。对话系统可以进一步配置集成共享词典配置使得其可以由asr子系统和nlu子系统同时使用。

    图5是图示了根据某些实施例的用于使用集成且共享的资源来流线化对话系统中的处理的方法500的简化流程图。方法500可以由对话系统100的asr子系统108和nlu子系统110与对话系统100的如图1至图3b所描绘的其他部件协作地实施。图5所描绘的处理可以仅在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上(例如,存储器设备上)。图5所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图5描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。

    在502处,对话系统的asr子系统接收语音输入。可以直接地或间接地从用户接收语音输入。例如,用户可以在麦克风(例如,语音输入部件105)附近说话。语音输入部件可以将口述语音的数字表示传输到asr子系统108(例如,经由唤醒单词检测子系统106)。语音输入可以与用户请求(如,“findflightstosydney(查找飞往悉尼的航班)”)相对应。

    在504处,asr子系统处理在502处接收到的语音输入,以标识与所述语音输入相对应的发音。asr子系统可以使用用于确定语音输入的组成部分的最可能发音的模型来处理语音输入。asr子系统可以将语音输入分成多个部分或帧。可以分析每个帧以确定与所述帧相关联的最可能发音。这可以使用发音模型来执行,所述发音模型可以是被训练用于将声音帧与音标序列进行匹配的机器学习模型。合适模型的示例包括隐马尔可夫模型(hmm)和神经网络如递归神经网络。(参见例如k.w.church的honologicalparsinginspeechrecognition[语音识别中的音韵解析],kluwer学术出版社,波士顿,1987年;k.yao和g.zweig的sequence-to-sequenceneuralnetmodelsforgrapheme-to-phonemeconversion[用于字素到音标转换的序列到序列神经网络模型],arxiv:1506.00196v3,2015年)。可以以不同的形式如使用音节、音素和/或音标来表示所产生的发音。例如,如图3a中所图示的,发音表示的一个示例是sidni.haaba.brig。

    在506处,asr子系统搜索存储在存储器中的词典,以在词典中查找与在504处确定的发音相对应的匹配条目。词典(例如,图1至图3b中示出的集成共享词典)包括多个条目。多个条目中的每一个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音。多个条目中的每一个条目进一步包括可用于确定由所述条目存储的所述一个或多个单词的集合的含义表示的附加信息。如在图3a至图3b中图示的示例中示出的,一个或多个单词的集合(例如,empirestatebuilding(帝国大厦)或valhalla(瓦尔哈拉殿堂))映射到发音和可用于确定含义表示的附加信息。附加信息可以包括命名实体类型(例如,人、位置等)、描述单词的补充信息(例如,地址、定义等)、和/或nlu子系统可以用来确定含义表示的其他信息。

    在508处,asr子系统标识包括在506处标识的发音的匹配条目。asr子系统可以例如使用如在图3a中所图示的表格式词典来选择与所确定的发音相对应的条目。所标识的条目可以将发音映射到一个单词(例如,texas(德克萨斯州))或一起传达某些内容的单词集合(例如,sanantonioriverwalk(圣安东尼奥河畔步行街))。类似地,asr子系统可以使用条目中的映射来标识可用于确定由所述条目存储的该一个或多个单词的集合的含义表示的附加信息。例如,asr子系统遍历表以选择条目中的存储与(多个)单词相对应的命名实体类型的对应部分。在一些情况下,给定条目中的该单词集合可以映射到一条附加信息。例如,如图3a所示,sydneyharborbridge映射到命名实体类型兴趣点。在一些情况下,该单词集合可以映射到与该单词集合相关联的信息的多个条目。例如,如图3b所示,单词washington存在于三个不同的条目中,并且映射到三个不同的命名实体类型以及与每个相应的命名实体类型相对应的补充信息)。

    在510处,asr子系统将标识在508处找到的匹配条目的信息传送到对话系统的nlu子系统。标识匹配条目的信息可以包括指向词典中的信息的指针。例如,asr子系统输出该单词集合“johncoltrane(约翰·柯川)”以及指向对应词典条目的一部分的指针,所述对应词典条目的一部分指定与命名实体johncoltrane相关联的命名实体类型“人”。可替代地或另外地,标识匹配条目的信息可以包括词典条目中的信息(例如,标识匹配条目的信息是命名实体类型本身——人)。

    可替代地或另外地,标识匹配条目的信息可以包括指向与该单词集合相关联的补充信息的指针和/或补充信息本身。如以上在508处所指出的以及图3b中所示出的,与该单词集合相关联的信息可以包括补充信息(例如,补充信息可以解释johncoltrane是著名的爵士音乐家)。在一些实施例中,指针可以指向具有命名实体类型和补充信息两者的条目。可替代地,指针可以指向具有命名实体类型的条目,所述命名实体类型进而指向具有补充信息的条目。作为另一个示例,输出可以包括多个指针(例如,一个指针指向词典条目中的命名实体类型,并且另一个指针指向词典条目中的补充信息)。

    asr子系统可以将所标识的文本传输到nlu子系统以进行处理。被传输到nlu子系统的所标识的文本可以包括在词典中标识的该单词集合。被传输到nlu子系统的所标识的文本可以进一步包括由asr子系统标识的附加单词。例如,针对口述询问“whoisjohncoltrane?(谁是约翰·柯川?)”的asr输出可能是“whois<nerid=66/>”,其中,“<nerid=66/>”是指向针对“johncoltrane”的命名实体公报条目的asr输出令牌。单词“who”和“is”可能已经由asr子系统经由词典以与以上关于508所描述的类似方式标识。因此,对话系统的asr子系统可以进一步使用词典来标识第二单词集合并且将所述第二单词集合输出到对话系统的nlu子系统。在一些实施例中,asr子系统除了传输与第一单词集合相关联的信息(例如,“johncoltrane”和<nerid=66/>)之外还传输该单词集合。可替代地,asr子系统可以在避免传输第一单词集合的同时传送指针。

    在512处,nlu子系统使用标识从asr子系统接收的条目的信息来生成语音输入的含义表示。含义表示是对由nlu子系统接收的文本的含义的计算机可理解的解释,并且可以标识与语音输入相关联的意图。nlu子系统可以使用从asr子系统接收到的文字话语以及存储在词典中的匹配条目中的附加信息来生成含义表示。例如,nlu子系统可以使用接收到的指向命名实体类型的指针来快速识别命名实体。以下关于图6进一步描述了用于生成含义表示的技术。

    在一些实施例中,asr子系统和nlu子系统利用集成共享词典来同时执行asr处理和nlu处理。例如,asr子系统可以执行针对特定发音的查找,并且nlu可以同时访问集成共享词典以进行所述nlu的处理。集成共享词典可以由对话系统的asr子系统和nlu子系统共享并且被这些子系统同时使用。

    图6是图示了根据某些实施例的用于图5的步骤512中的生成含义表示的方法600的简化流程图。方法600可以由对话系统100的nlu子系统110与对话系统100的如图1至图3b所描绘的其他部件协作地实施。图6所描绘的处理可以仅在由相应系统的一个或多个处理单元(例如,处理器、核)执行的软件(例如,代码、指令、程序)中、硬件中或其组合中实施。软件可以被存储在非暂态计算机可读存储器上。图6所呈现的且下文所描述的方法旨在是说明性的而非限制性的。尽管图6描绘了以特定序列或顺序发生的各个处理步骤,但这并不旨在是限制性的。在某些替代性实施例中,步骤可以以某种不同的顺序执行或者一些步骤还可以并行地执行。

    在602处,nlu子系统(例如,nlu子系统110的ner子系统112)使用接收到的标识匹配条目的信息来使用词典确定该单词集合的命名实体类型。例如,在510处传送的标识信息是指向针对命名实体类型的词典实体的指针的情况下,nlu子系统可以使用所述指针从词典中标识命名实体类型。作为另一个示例,在标识信息是命名实体类型本身的情况下,nlu子系统可以检索接收到的命名实体类型。nlu子系统可以例如通过利用与所标识的命名实体类型相关的信息标记文本来将命名实体类型链接到该单词集合。ner子系统112可以将经标记的文本话语馈送到语义解析器子系统114。如以上所指出的,使用这些技术可以比利用现有技术显著快地实现命名实体链接,因为nlu子系统不必执行公报查找并且可以使用接收到的标识信息高效地检索命名实体类型。

    因为词典包括单词和命名实体两者,所以系统可以高效地标识任何适用的单词的命名实体。例如,“sydneyharborbridge”的词典条目映射到命名实体类型“兴趣点”。因此,系统将所标识的单词“sydneyharbourbridge”链接到命名实体类型“兴趣点”。一些检测到的单词可能不映射到命名实体类型(例如,directions(导航)、to(到)、find(查找)等)。

    确定命名实体类型可以由nlu子系统执行,作为整个nlu过程的一部分,所述过程涉及对包括与命名实体类型相关联的单词集合的较大单词集合的词性标记。例如,nlu子系统可以接收包括名词、动词和形容词的句子。nlu子系统利用标签——名词、动词、形容词,并且针对命名实体,命名实体类型——来标记单词或单词组。这可以在辨别该较大单词集合的含义时使用。

    在604处,nlu子系统基于从asr子系统接收到的信息和从asr子系统接收到的附加单词来确定该单词集合的上下文。如以上关于图510所指出的,asr子系统可以将与单词集合相关联的标识信息传送到nlu子系统。asr子系统可以进一步将该单词集合和/或附加的单词集合(例如,第二单词集合、第三单词集合等)传输到nlu子系统。例如,由nlu子系统接收到的asr子系统的输出为“takemeto<nerid=27/>”。<nerid=27/>是指向与第一单词集合spaceneedle相对应的词典条目“spaceneedle”的指针。“takemeto”是第二单词集合。nlu子系统从asr子系统接收标识信息。nlu子系统可以使用标识信息来标识第一单词集合(例如,通过遍历集成共享词典以标识映射到由接收到的指针指示的信息的单词)。可替代地,asr子系统可以将第一单词集合和/或指向第一单词集合的指针传输到nlu子系统以进行直接检索。

    为了确定上下文,nlu子系统(例如,图1的nlu子系统110的语义解析器子系统112)可以确定第一单词集合和第二单词集合如何彼此关联。例如,nlu子系统可以执行依赖解析操作,以将这两个单词集合彼此关联。(参见例如,danqichen和christophermanning的afastandaccuratedependencyparserusingneuralnetworks[使用神经网络的快速且准确的依赖解析器],2014年的emnlp会议(2014))。

    在606处,nlu子系统使用在604处确定的上下文和在602处确定的命名实体类型来生成含义表示。nlu子系统(例如,图1的nlu子系统110的语义解析器子系统112)可以使用语义解析来生成与含义表示相对应的逻辑形式。可以使用机器学习算法诸如rnn或图表法来执行语义解析。所产生的含义表示可以采用不同的形式,如,微积分、抽象含义表示(amr)或者python表达式或java表达式。(参见例如,liang的lambdadependency-basedcompositionalsemantics[基于lambda依赖的组合语义],arxiv:1309.4408(2013);yin和neubig的asyntacticneuralmodelforgeneral-purposecodegeneration[用于生成通用代码的语法神经模型]),arxiv:1704.01696(2017);banarescu等人的abstractmeaningrepresentationforsembanking[金融业战略企业管理的抽象含义表示],第七届语言注释研讨会会议(2013))。

    在一些实施例中,生成含义表示包括标识与单词相对应的意图。系统可以使用所标识的单词并且用于标识用户正要求系统执行的动作。可以使用机器学习模型来执行意图分类。适当的模型包括神经网络,如递归神经网络(例如,选通递归单元(gru))。nlu子系统可以使用所标识的单词来填充槽位(例如,对于披萨订单,可以为披萨的尺寸和饼料分配槽位,并用如“大份”和“意大利辣味香肠”等对应的单词填充所述槽位)。作为示例,可以使用话语“directionstojoe’scoffee(到joe’scoffee的导航)”生成含义表示——意图:导航;目的地:最近的joe’scoffee的坐标;模式:驾驶。

    在608处,nlu子系统将在606处生成的含义表示输出到对话系统的第三子系统。第三子系统可以是图1所示的对话管理器子系统116或另一合适的对话系统部件。然后,第三子系统可以使用接收到的含义表示来生成响应。例如,含义表示表示由用户询问的问题,并且第三子系统使用含义表示得出所述问题的答案。

    在一些实施例中,nlu子系统可以向第三子系统输出指向关于该单词集合的信息的指针。例如,nlu子系统向第三子系统输出包括指针(例如,<sup=/44>)的含义表示,所述指针链接到包括描述命名实体“valleymall(谷购物中心)”的补充信息诸如valleymall的地址和valleymall的开放时间的词典条目。然后,第三子系统可以通过检索补充答案以包括在答案中来高效地产生答案。

    尽管已经使用asr子系统作为对话系统的第一子系统、并且使用nlu子系统作为对话系统的第二子系统来提供了前述描述,但是在其他实施例中,词典也可以被其他子系统集成和共享。例如,如在608处所描述的,用于标识要包括在响应中的信息的部件也可以利用集成共享词典来进行高效的对话处理。

    可以在包括云环境(可以是包括私有云环境、公共云环境和混合云环境的各种类型的云)、本地部署(on-premises)环境、混合环境等的各种不同的环境中实施上述基础设施。

    图7描绘了用于实施实施例的分布式系统700的简化示图。在图示的实施例中,分布式系统700包括经由一个或多个通信网络710耦接到服务器712的一个或多个客户端计算设备702、704、706和708。客户端计算设备702、704、706和708可以被配置成执行一个或多个应用。

    在各种实施例中,服务器712可以被适配成运行使得能够流线化对语音输入的意图识别的一个或多个服务或软件应用。

    在某些实施例中,服务器712还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用。在一些实施例中,这些服务可以作为基于web的服务或云服务诸如在软件即服务(saas)模型下提供给客户端计算设备702、704、706和/或708的用户。操作客户端计算设备702、704、706和/或708的用户进而可以利用一个或多个客户端应用来与服务器712交互以利用这些部件所提供的服务。

    在图7所描绘的配置中,服务器712可以包括实施由服务器712执行的功能的一个或多个部件718、720和722。这些部件可以包括可以由一个或多个处理器、硬件部件或其组合执行的软件部件。应了解,可以与分布式系统700不同的各种不同的系统配置是可能的。因此,图7所示出的实施例是用于实施实施例系统的分布式系统的一个示例并且不旨在是限制性的。

    根据本公开的教导,用户可以使用客户端计算设备702、704、706和/或708来使用集成共享词典基于语音输入来标识含义表示。客户端设备可以提供使客户端设备的用户能够与客户端设备交互的界面。客户端设备还可以通过此界面向用户输出信息。尽管图7描绘了仅四个客户端计算设备,但是可以支持任何数量的客户端计算设备。

    客户端设备可以包括各种类型的计算系统,如便携式手持设备、如个人计算机和膝上型计算机等通用计算机、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他感测设备等。这些计算设备可以运行各种类型和版本的软件应用和操作系统(例如,microsoftapple或类unix操作系统、linux或类linux操作系统诸如googlechrometmos),包括各种移动操作系统(例如,microsoftwindowswindowsandroidtmpalm)。便携式手持设备可以包括蜂窝电话、智能电话(例如,)、平板计算机(例如,)、个人数字助理(pda)等。可穿戴设备可以包括google头戴式显示器以及其他设备。游戏系统可以包括各种手持游戏设备、支持因特网的游戏设备(例如,有或没有姿势输入设备的microsoft游戏控制台、sony系统、由提供的各种游戏系统、以及其他)等。客户端设备可以能够执行各种不同的应用,如各种因特网相关应用、通信应用(例如,电子邮件应用、短消息服务(sms)应用)并可以使用各种通信协议。

    (多个)网络710可以是本领域技术人员所熟悉的可以使用各种可用协议中的任何一种支持数据通信的任何类型的网络,所述可用协议包括但不限于tcp/ip(传输控制协议/因特网协议)、sna(系统网络架构)、ipx(因特网分组交换)、等。仅通过示例的方式,(多个)网络710可以是局域网(lan)、基于以太网的网络、令牌环、广域网(wan)、因特网、虚拟网络、虚拟私人网络(vpn)、内部网、外部网、公共交换电话网(pstn)、红外线网、无线网(例如,根据电气与电子协会(ieee)1002.11协议组、和/或任何其他无线协议操作的网络)和/或这些网络和/或其他网络的任何组合。

    服务器712可以由一个或多个通用计算机、专用服务器计算机(通过示例的方式包括pc(个人计算机)服务器、服务器、中档服务器、大型计算机、机架式服务器等)、服务器群、服务器集群、或任何其他适当的布置和/或组合构成。服务器712可以包括运行虚拟操作系统的一个或多个虚拟机或涉及虚拟化的其他计算架构诸如如逻辑存储设备的可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活池。在各种实施例中,服务器712可以被适配成运行提供前述公开内容所描述的功能的一个或多个服务或软件应用。

    服务器712中的计算系统可以运行一个或多个操作系统,所述一个或多个操作系统包括以上所讨论的那些操作系统中的任何一个操作系统以及任何可商购获得的服务器操作系统。服务器712还可以运行各种另外的服务器应用和/或中间层应用中的任何一种应用,包括http(超文本运输协议)服务器、ftp(文件传送协议)服务器、cgi(通用网关接口)服务器、服务器、数据库服务器等。示例性数据库服务器包括但不限于可从(国际商业机器公司)等商购获得的那些数据库服务器。

    在一些实施方式中,服务器712可以包括一个或多个应用以分析并合并从客户端计算设备702、704、706和708的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括但不限于馈送、更新或从一个或多个第三方信息源和连续数据流接收的实时更新,所述实时更新可以包括与传感器数据应用、财务收报机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器712还可以包括一个或多个应用以通过客户端计算设备702、704、706和708的一个或多个显示设备来显示数据馈送和/或实时事件。

    分布式系统700还可以包括一个或多个数据储存库714、716。在某些实施例中,这些数据储存库可以用于存储数据和其他信息。例如,数据储存库714、716中的一个或多个可以用于存储如用于asr和nlu两者的词典等信息。数据储存库714、716可以驻留在各个位置中。例如,服务器712所使用的数据储存库可以在服务器712本地或者可以远离服务器712并通过基于网络的或专用的连接与服务器712通信。数据储存库714、716可以是不同类型。在某些实施例中,服务器712所使用的数据储存库可以是数据库,例如关系数据库,如由oracle和其他供应商提供的数据库。这些数据库中的一个或多个数据库可以被适配成响应于sql格式的命令来实现数据到以及从数据库的存储、更新和检索。

    在某些实施例中,数据储存库714、716中的一个或多个数据储存库还可以被应用用来存储应用数据。应用所使用的数据储存库可以是不同类型,如例如键值存储储存库、对象存储储存库或由文件系统支持的通用存储储存库。

    在某些实施例中,本公开所描述的对话相关的功能可以通过云环境作为服务提供。图8是根据某些实施例的基于云的系统环境的简化框图,在所述基于云的系统环境中,各种对话相关的服务可以作为云服务来提供。在图8所描绘的实施例中,云基础设施系统802可以提供可以由用户使用一个或多个客户端计算设备804、807和808请求的一个或多个云服务。云基础设施系统802可以包括一个或多个计算机和/或服务器,所述一个或多个计算机和/或服务器可以包括以上针对服务器712所描述的那些计算机和/或服务器。云基础设施系统802中的计算机可以被组织成通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。

    (多个)网络810可以促进客户端804、807和808与云基础设施系统802之间的数据通信和交换。(多个)网络810可以包括一个或多个网络。网络可以是相同或不同的类型。(多个)网络810可以支持一个或多个通信协议(包括有线和/或无线协议)以促进通信。

    图8所描绘的实施例仅是云基础设施系统的一个示例并且不旨在是限制性的。应了解,在一些其他实施例中,云基础设施系统802可以具有比图8所描绘的那些部件更多或更少的部件、可以组合两个或更多个部件或者可以具有不同的部件配置或布置。例如,尽管图8描绘了三个客户端计算设备,但是在替代性实施例中,可以支持任何数量的客户端计算设备。

    术语云服务通常用于指代通过服务提供商的系统(例如,云基础设施系统802)按需且经由如因特网等通信网络变得可用于用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自身的室内服务器和系统不同。云服务提供商的系统由云服务提供商管理。因此,客户可以使自身利用由云服务提供商提供的云服务,而不必针对服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用,并且用户可以通过因特网按需订购并使用应用,而用户不必购买用于执行应用的基础设施资源。云服务被设计成提供对应用、资源和服务的容易的、可伸缩的访问。几个提供商提供云服务。例如,由加利福尼亚州红木海岸(redwoodshores,california)的oracle提供如中间件服务、数据库服务、java云服务以及其他服务等几种云服务。

    在某些实施例中,云基础设施系统802可以使用不同的模型诸如在软件即服务(saas)模型、平台即服务(paas)模型、基础设施即服务(iaas)模型和其他模型包括混合服务模型下提供一个或多个云服务。云基础设施系统802可以包括实现对各种云服务的置配的一套应用、中间件、数据库和其他资源。

    saas模型使应用或软件能够作为服务通过如因特网等通信网络输送给客户,而客户不必购买底层应用的硬件或软件。例如,可以使用saas模型为客户提供对由云基础设施系统802托管的按需应用的访问。oracle提供的saas服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(crm)、企业资源规划(erp)、供应链管理(scm)、企业绩效管理(epm)、分析服务、社交应用以及其他等的各种服务。

    iaas模型通常用于将基础设施资源(例如,服务器、存储、硬件和联网资源)作为云服务提供给客户以提供弹性计算和存储能力。由oracle提供各种iaas服务。

    paas模型通常用于提供使客户能够开发、运行并管理应用和服务而客户不必采购、构建或维护这种资源的平台和环境资源作为服务。由oracle提供的paas服务的示例包括但不限于oraclejava云服务(jcs)、oracle数据库云服务(dbcs)、数据管理云服务、各种应用开发解决方案服务、以及其他服务。

    云服务通常是以按需自助服务基础、基于订阅、可弹性伸缩、可靠、高度可用且安全的方式提供的。例如,客户可以通过订阅订单来订购由云基础设施系统802提供的一个或多个服务。然后,云基础设施系统802执行处理以提供客户的订阅订单中请求的服务。例如,云基础设施系统802使用集成共享asr/nlu词典基于接收到的语音数据来标识意图。云基础设施系统802可以被配置成提供一个或甚至多个云服务。

    云基础设施系统802可以通过不同的部署模型提供云服务。在公共云模型中,云基础设施系统802可以由第三方云服务提供商拥有,并且云服务被提供给任何一般的公众客户,其中,所述客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统802可以在组织内(例如,在企业组织内)操作并且服务被提供给组织内的客户。例如,客户可以是如人力资源部门、薪资部门等企业的各个部门或甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统802和所提供的服务可以由相关的社区中的几个组织共享。也可以使用如以上所提到的模型的混合等各种其他模型。

    客户端计算设备804、806和808可以是不同类型的(如图7所描绘的设备702、704、706和708)并且可以能够操作一个或多个客户端应用。用户可以使用客户端设备与云基础设施系统802交互,如请求由云基础设施系统802提供的服务。例如,用户可以使用客户端设备请求本公开所描述的对话相关服务。

    在一些实施例中,由云基础设施系统802执行的用于提供对话相关服务的处理可以涉及大数据分析。此分析可以涉及使用、分析并操纵大数据集以检测并可视化数据中的各种趋势、行为、关系等。此分析可以由一个或多个处理器执行,从而可能并行地处理数据、使用数据执行模拟等。例如,可以由云基础设施系统802执行大数据分析以确定含义表示。用于此分析的数据可以包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据块(二进制大对象))。

    如图8中的实施例所描绘的,云基础设施系统802可以包括被用于促进置配(provision)由云基础设施系统802提供的各种云服务的基础设施资源830。基础设施资源830可以包括例如处理资源、存储或存储器资源、联网资源等。

    在某些实施例中,为了促进对这些资源的高效置配以用于支持由云基础设施系统802为不同客户提供的各种云服务,资源可以被捆绑成资源组或资源模块(也称为“群(pod)”)。每个资源模块或群可以包括一种或多种类型的资源的预先集成且优化的组合。在某些实施例中,可以针对不同类型的云服务预先置配不同的群。例如,可以针对数据库服务置配第一组群、可以针对java服务置配第二组群等,第二组群可以包括与第一组群中的群不同的资源组合。对于一些服务,被分配用于置配服务的资源可以在服务之间共享。

    云基础设施系统802本身可以在内部使用由云基础设施系统802的不同部件共享并且促进云基础设施系统802置配服务的服务832。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高度可用性、备份和恢复服务、用于实现云支持的服务、电子邮件服务、通知服务、文件传送服务等。

    云基础设施系统802可以包括多个子系统。这些子系统可以在软件或硬件或其组合中实施。如图8所描绘的,子系统可以包括使云基础设施系统802的用户或客户能够与云基础设施系统802交互的用户界面子系统812。用户界面子系统812可以包括各种不同的界面,如web界面814、其中广告并且客户可购买由云基础设施系统802提供的云服务的在线商店界面816和其他界面818。例如,客户可以使用客户端设备请求(服务请求834)由云基础设施系统802使用界面814、816和818中的一个或多个界面提供的一个或多个服务。例如,客户可以访问在线商店、浏览由云基础设施系统802提供的云服务并且针对客户希望订阅的由云基础设施系统802提供的一个或多个服务下订阅订单。服务请求可以包括标识客户和客户期望订阅的一个或多个服务的信息。例如,客户可以针对由云基础设施系统802提供的对话相关服务下订阅订单。作为订单的一部分,客户可以提供标识请求的语音输入。

    在某些实施例如图8所描绘的实施例中,云基础设施系统802可以包括被配置成处理新订单的订单管理子系统(oms)820。作为此处理的一部分,oms820可以被配置成:为客户创建账户,如果尚未创建的话;从客户接收要用于向客户开具账单以向客户提供所请求的服务的账单和/或计费信息;验证客户信息;在验证之后,为客户预订订单;以及策划各种工作流程来准备订单以进行置配。

    一旦被正确地验证,那么,oms820就可以调用被配置成为订单置配资源包括处理资源、存储器资源和联网资源的订单置配子系统(ops)824。置配可以包括为订单分配资源并配置资源以促进客户订单所请求的服务。为订单置配资源的方式和所置配的资源的类型可以取决于客户已经订购的云服务的类型。例如,根据一个工作流,ops824可以被配置成确定正在请求的特定云服务并且标识可能已经为所述特定云服务预先配置的群的数量。为订单分配的群的数量可以取决于所请求服务的大小/量/层级/范围。例如,要分配的群的数量可以基于服务所要支持的用户的数量、正在请求的服务的持续时间等来确定。然后,可以为特定的请求客户定制分配的群以用于提供所请求服务。

    云基础设施系统802可以向请求客户发送响应或通知844,以指示何时所请求服务现在已准备好使用。在一些实例中,可以向客户发送使客户能够开始使用和利用所请求服务的益处的信息(例如,链接)。在某些实施例中,对于请求对话相关服务的客户,响应可以包括基于所标识的意图而生成的响应。

    云基础设施系统802可以向多个客户提供服务。对于每个客户,云基础设施系统802负责管理与从客户接收的一个或多个订阅订单有关的信息、维护与订单相关的客户数据并且向客户提供所请求服务。云基础设施系统802还可以收集关于客户使用所订阅服务的使用情况统计数据。例如,可以收集所使用的存储量、所传送的数据量、用户的数量以及系统开机时间量和系统停机时间量等的统计数据。可以使用此使用情况信息向客户开具账单。可以例如以月为周期完成开具账单。

    云基础设施系统802可以并行地向多个客户提供服务。云基础设施系统802可以存储这些客户的信息(可能包括专有信息)。在某些实施例中,云基础设施系统802包括被配置成管理客户信息并提供对所管理信息的分离使得与一个客户相关的信息不能够被另一个客户访问的身份管理子系统(ims)828。ims828可以被配置成提供如身份服务等各种安全相关服务,如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关功能的服务等。

    图9图示了可以用于实施某些实施例的示例性计算机系统900。例如,在一些实施例中,计算机系统900可以用于实施以上所述的asr子系统、nlu子系统以及各种服务器和计算机系统中的任何一个。如图9所示,计算机系统900包括各种子系统,包括通过总线子系统902与多个其他子系统通信的处理子系统904。这些其他子系统可以包括处理加速单元906、i/o子系统908、存储子系统918和通信子系统924。存储子系统918可以包括非暂态计算机可读存储介质,包括存储介质922和系统存储器910。

    总线子系统902提供用于使计算机系统900的各个部件和子系统按预期彼此通信的机构。虽然总线子系统902被示意性地示出为单个总线,但是总线子系统的替代性实施例可以利用多个总线。总线子系统902可以是包括存储器总线或存储器控制器、外围总线、使用各种总线架构中的任何一种的局部总线等的若干种类型的总线结构中的任何一种。例如,这种架构可以包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子标准协会(vesa)局部总线以及外围部件互连(pci)总线等,pci总线可以被实施为被制造成ieeep1386.1标准的夹层(mezzanine)总线。

    处理子系统904控制计算机系统900的操作并且可以包括一个或多个处理器、专用集成电路(asic)或现场可编程门阵列(fpga)。处理器可以包括单核处理器或多核处理器。计算机系统900的处理资源可以被组织成一个或多个处理单元932、934等。处理单元可以包括一个或多个处理器、来自相同或不同处理器的一个或多个核、核和处理器的组合或核和处理器的其他组合。在一些实施例中,处理子系统904可以包括如图形处理器、数字信号处理器(dsp)等一个或多个专用协处理器。在一些实施例中,处理子系统904的处理单元中的一些或全部可以使用如专用集成电路(asic)或现场可编程门阵列(fpga)等定制电路来实施。

    在一些实施例中,处理子系统904中的处理单元可以执行存储在系统存储器910内或计算机可读存储介质922上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或过程。在任何给定时间,要执行的程序代码中的一些或全部可以驻留在系统存储器910中和/或计算机可读存储介质922上,潜在地包括驻留在一个或多个存储设备上。通过适合的编程,处理子系统904可以提供以上所述的各种功能。在计算机系统900在执行一个或多个虚拟机的实例中,可以向每个虚拟机分配一个或多个处理单元。

    在某些实施例中,可以可选地提供处理加速单元906以用于执行定制处理或用于卸载处理子系统904所执行的处理中的一些处理,从而加速计算机系统900所执行的总体处理。

    i/o子系统908可以包括用于向计算机系统900输入信息和/或用于从或通过计算机系统900输出信息的设备和机构。通常,使用术语输入设备旨在包括用于向计算机系统900输入信息的所有可能类型的设备和机构。用户界面输入设备可以包括例如键盘、如鼠标或轨迹球的指向设备、并入到显示器中的触摸板或触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、具有话音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户界面输入设备还可以包括运动感测和/或姿势识别设备,如使用户能够控制输入设备并与输入设备交互的microsoft运动传感器、microsoft360游戏控制器、提供用于使用姿势和口述命令接收输入的界面的设备。用户界面输入设备还可以包括眼部姿势识别设备,如检测来自用户的眼部活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼部姿势变换为到输入设备(如google)的输入的google眨眼检测器。另外,用户界面输入设备可以包括使用户能够通过话音命令与话音识别系统交互的话音识别感测设备。

    用户界面输入设备的其他示例包括但不限于三维(3d)鼠标、操纵杆或指向杆、游戏手柄和图形板、以及音频/视觉设备诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像机、图像扫描仪、指纹扫描仪、条形码读取器3d扫描仪、3d打印机、激光测距仪、眼睛注视跟踪设备。另外,用户界面输入设备可以包括例如医学成像输入设备,如计算机断层扫描、磁共振成像、正电子发射断层扫描和医学超声检查设备。用户界面输入设备还可以包括例如音频输入设备,如midi键盘、数码乐器等。

    通常,使用术语输出设备旨在包括用于从计算机系统900向用户或其他计算机输出信息的所有可能类型的设备和机构。用户界面输出设备可以包括显示子系统、指示灯或如音频输出设备等非视觉显示器。显示子系统可以是阴极射线管(crt)、平板设备诸如使用液晶显示器(lcd)或等离子显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于在视觉上传达文本、图形和音频/视频信息的各种显示设备,如监视器、打印机、扬声器、头戴式耳机、汽车导航系统、绘图仪、话音输出设备和调制解调器。

    存储子系统918提供用于存储计算机系统900所使用的信息和数据的储存库或数据存储设备。存储子系统918提供用于存储提供一些实施例的功能的基本编程和数据构造的有形非暂态计算机可读存储介质。存储子系统918可以存储当由处理子系统904执行时提供以上所描述的功能的软件(例如,程序、代码模块、指令)。软件可以由处理子系统904的一个或多个处理单元执行。存储子系统918还可以根据本公开的教导提供用于存储所使用的数据的储存库。

    存储子系统918可以包括一个或多个非暂态存储器设备,所述一个或多个非暂态存储器设备包括易失性存储器设备和非易失性存储器设备。如图9所示,存储子系统918包括系统存储器910和计算机可读存储介质922。系统存储器910可以包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(ram)和其中存储有固定指令的非易失性只读存储器(rom)或闪速存储器。在一些实施方式中,包含如在启动期间帮助在计算机系统900内的元件之间传送信息的基本例程的基本输入/输出系统(bios)通常可以存储在rom中。ram通常包含目前由处理子系统904操作并执行的数据和/或程序模块。在一些实施方式中,系统存储器910可以包括如静态随机存取存储器(sram)、动态随机存取存储器(dram)等多种不同类型的存储器。

    通过示例而非限制的方式,如图9所描绘的,系统存储器910可以加载正在执行的应用程序912、程序数据914和操作系统916,应用程序912可以包括如web浏览器、中间层应用、关系数据库管理系统(rdbms)等各种应用。通过示例的方式,操作系统916可以包括各种版本的microsoftapple和/或linux操作系统、各种可商购获得的或类unix操作系统(包括但不限于各种gnu/linux操作系统、googleos等)和/或如ios、电话、os、os、os操作系统等移动操作系统、以及其他操作系统。

    计算机可读存储介质922可以存储提供一些实施例的功能的编程和数据构造。计算机可读介质922可以为计算机系统900提供对计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统904执行时提供以上所描述的功能的软件(程序、代码模块、指令)可以存储在存储子系统918中。通过示例的方式,计算机可读存储介质922可以包括如硬盘驱动器、磁盘驱动器、光盘驱动器诸如cdrom、dvd、盘或其他光学介质等非易失性存储器。计算机可读存储介质922可以包括但不限于驱动器、闪速存储器卡、通用串行总线(usb)闪速存储器驱动器、安全数字(sd)卡、dvd盘、数字录像带等。计算机可读存储介质922还可以包括如基于闪速存储器的固态驱动器(ssd)、企业级闪速存储器驱动器、固态rom等基于非易失性存储器的ssd、如固态ram、动态ram、静态ram等基于易失性存储器的ssd、基于dram的ssd、磁阻ram(mram)ssd、以及使用dram和基于闪速存储器的ssd的组合的混合ssd。

    在某些实施例中,存储子系统918还可以包括可以进一步连接到计算机可读存储介质922的计算机可读存储介质读取器920。读取器920可以从如盘、闪速存储器驱动器的存储器设备接收数据并且被配置成从所述存储器设备读取数据。

    在某些实施例中,计算机系统900可以支持虚拟化技术,包括但不限于对处理和存储器资源的虚拟化。例如,计算机系统900可以提供对执行一个或多个虚拟机的支持。在某些实施例中,计算机系统900可以执行如促进对虚拟机的配置和管理的管理程序等程序。每个虚拟机可以分配有存储器、计算(例如,处理器、核)、i/o和联网资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自身的操作系统,所述操作系统可以与由计算机系统900所执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可以潜在地由计算机系统900同时运行。

    通信子系统924提供到其他计算机系统和网络的接口。通信子系统924用作用于从其他系统接收数据并从计算机系统900向其他系统发射数据的接口。例如,通信子系统924可以使计算机系统900能够通过因特网构建到一个或多个客户端设备的通信通道以用于从客户端设备接收信息并向客户端设备发送信息。例如,通信子系统可以用于与数据库进行通信以导入asr子系统和/或nlu子系统的更新后的训练数据。

    通信子系统924可以支持有线通信协议和/或无线通信协议两者。例如,在某些实施例中,通信子系统924可以包括用于访问无线话音和/或数据网络的射频(rf)收发器部件(例如,使用蜂窝电话技术诸如3g、4g或edge(全球演进增强型数据速率)等先进的数据网络技术、wifi(ieee802.xx家庭标准、或其他移动通信技术、或其任何组合)、全球定位系统(gps)接收器部件和/或其他部件。在一些实施例中,除了无线接口之外或替代无线接口,通信子系统924可以提供有线网络连接性(例如,以太网)。

    通信子系统924可以接收并发射各种形式的数据。例如,在一些实施例中,除了其他形式之外,通信子系统924还可以接收结构化和/或非结构化数据馈送926、事件流928、事件更新930等形式的输入通信。例如,通信子系统924可以被配置成从社交媒体网络和/或其他通信服务的用户实时地接收(或发送)数据馈送926,如馈送、更新、web馈送诸如丰富站点摘要(rss)馈送和/或来自一个或多个第三方信息源的实时更新。

    在某些实施例中,通信子系统924可以被配置成接收连续数据流形式的数据,所述连续数据流可以包括可以没有显式结束的本质上连续的或无界的实时事件的事件流928和/或事件更新930。生成连续数据的应用的示例可以包括例如传感器数据应用、财务收报机、网络性能测量工具(例如,网络检测和流量管理应用)、点击流分析工具、汽车交通监视等。

    通信子系统924还可以被配置成将数据从计算机系统900传达到其他计算机系统或网络。可以将数据以如结构化和/或非结构化数据馈送926、事件流928、事件更新930等各种不同的形式传达到可以与耦接到计算机系统900的一个或多个流数据源计算机通信的一个或多个数据库。

    计算机系统900可以是各种类型中的一种,包括手持便携式设备(例如,蜂窝电话、计算平板计算机、pda)、可穿戴设备(例如,google头戴式显示器)、个人计算机、工作站、主机、自助服务终端、服务器机架、或任何其他数据处理系统。由于计算机和网络的不断变化的性质,对图9所描绘的计算机系统900的描述旨在仅作为具体示例。具有比图9所描绘的系统更多或更少的部件的许多其他配置是可能的。基于本公开和本文所提供的教导,本领域普通技术人员应了解用于实施各种实施例的其他方式和/或方法。

    虽然已经描述了具体实施例,但是各种修改、更改、替代性构造和等同物是可能的。实施例不局限于在某些具体数据处理环境中的操作,而是自由地在多个数据处理环境中操作。另外,尽管已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员而言应当显而易见的是,这不旨在是限制性的。虽然一些流程图将操作描述为顺序过程,但是许多操作可以并行地或同时地执行。另外,可以重新布置操作的顺序。过程可以具有图中未包括的另外的步骤。可以单独地或联合地使用以上所述的实施例的各种特征和方面。

    进一步地,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应当认识到,硬件和软件的其他组合也是可能的。某些实施例可以仅在硬件中或仅在软件中或使用其组合实施。本文所描述的各种过程可以在相同处理器或不同处理器上以任何组合实施。

    在将设备、系统、部件或模块描述为被配置成执行某些操作或功能的情况下,这种配置可以例如通过将电子电路设计成执行操作、通过对可编程电子电路(诸如微处理器)进行编程以执行操作,诸如通过执行计算机指令或代码,或通过被编程成执行存储在非暂态存储器介质上的代码或指令的处理器或核或其任何组合来完成。过程可以使用包括但不限于用于过程间通信的传统技术的各种技术进行通信,并且不同的过程对可以使用不同的技术,或者相同的过程对可以在不同的时间使用不同的技术。

    本公开中给出了具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,已经示出了公知的电路、过程、算法、结构和技术,而没有不必要的细节,以避免模糊实施例。此描述仅提供了示例实施例并且不旨在限制其他实施例的范围、适用性或配置。而是,先前对实施例的描述将为本领域技术人员提供用于实施各种实施例的使能描述。可以对元件的功能和布置作出各种改变。

    因此,应当从说明性而非限制性意义上看待说明书和附图。然而,将明显的是,在不脱离权利要求中阐述的更广泛的精神和范围的情况下,可以对其作出添加、减少、删除以及其他修改和改变。因此,虽然已经描述了具体实施例,但是这些示例不旨在是限制性的。各种修改和等同物均在以下权利要求的范围内。


    技术特征:

    1.一种计算机实施的方法,用于使用一个或多个处理器实施的对话系统,所述方法包括:

    由所述对话系统的第一子系统接收语音输入;

    由所述第一子系统处理所述语音输入以标识与所述语音输入相对应的发音;

    由所述第一子系统搜索存储在存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;

    由所述第一子系统将标识所述匹配条目的信息传送到所述对话系统的第二子系统;以及

    由所述第二子系统使用标识所述条目的信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子系统使用存储在所述词典中的所述匹配条目中的所述附加信息。

    2.如权利要求1所述的方法,其中:

    所述第一子系统是自动语音识别(asr)子系统;并且

    所述第二子系统是自然语言理解(nlu)子系统。

    3.如权利要求1所述的方法,其中:

    指示所述条目的信息包括指向所述附加信息的指针;并且

    所述对话系统的所述第二子系统使用所述指针来检索所述附加信息。

    4.如权利要求1所述的方法,其中:

    所述附加信息包括与所述单词的集合相对应的命名实体类型;并且

    生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。

    5.如权利要求1所述的方法,其中:

    所述单词的集合是第一单词集合;并且

    所述方法进一步包括:

    由所述对话系统的所述第一子系统使用所述词典来标识第二单词集合;

    由所述对话系统的所述第一子系统将所述第二单词集合输出到所述对话系统的所述第二子系统;以及

    由所述对话系统的所述第二子系统通过使用机器学习模型将所述第一单词集合中的单词和所述第二单词集合中的单词彼此相关联来确定上下文。

    6.如权利要求1所述的方法,进一步包括:

    由所述对话系统的所述第二子系统将所生成的含义表示输出到所述对话系统的第三子系统。

    7.如权利要求1所述的方法,进一步包括:

    标识由所述第一子系统使用的信息;

    标识由所述第二子系统使用的信息;

    确定将由所述第一子系统使用的所述信息与由所述第二子系统使用的所述信息进行关联的信息;

    生成由所述第一子系统使用的所述词典、由所述第二子系统使用的所述信息以及所述关联信息;以及

    使所述词典能够由所述第一子系统和所述第二子系统访问。

    8.一种非暂态计算机可读存储器,存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:

    由对话系统的第一子系统接收语音输入;

    由所述第一子系统处理所述语音输入以标识与所述语音输入相对应的发音;

    由所述第一子系统搜索存储在存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;

    由所述第一子系统将标识所述匹配条目的信息传送到所述对话系统的第二子系统;以及

    由所述第二子系统使用标识所述条目的信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子系统使用存储在所述词典中的所述匹配条目中的所述附加信息。

    9.如权利要求8所述的非暂态计算机可读存储器,其中:

    所述第一子系统是自动语音识别(asr)子系统;并且

    所述第二子系统是自然语言理解(nlu)子系统。

    10.如权利要求8所述的非暂态计算机可读存储器,其中:

    指示所述条目的信息包括指向所述附加信息的指针;并且

    所述对话系统的所述第二子系统使用所述指针来检索所述附加信息。

    11.如权利要求8所述的非暂态计算机可读存储器,其中:

    所述附加信息包括与所述单词的集合相对应的命名实体类型;并且

    生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。

    12.如权利要求8所述的非暂态计算机可读存储器,其中:

    所述单词的集合是第一单词集合;并且

    所述处理进一步包括:

    由所述对话系统的所述第一子系统使用所述词典来标识第二单词集合;

    由所述对话系统的所述第一子系统将所述第二单词集合输出到所述对话系统的所述第二子系统;以及

    由所述对话系统的所述第二子系统通过使用机器学习模型将所述第一单词集合中的单词和所述第二单词集合中的单词彼此相关联来确定上下文。

    13.如权利要求8所述的非暂态计算机可读存储器,所述处理进一步包括:

    由所述对话系统的所述第二子系统将所生成的含义表示输出到所述对话系统的第三子系统。

    14.如权利要求8所述的非暂态计算机可读存储器,所述处理进一步包括:

    标识由所述第一子系统使用的信息;

    标识由所述第二子系统使用的信息;

    确定将由所述第一子系统使用的所述信息与由所述第二子系统使用的所述信息进行关联的信息;

    生成由所述第一子系统使用的所述词典、由所述第二子系统使用的所述信息以及所述关联信息;以及

    使所述词典能够由所述第一子系统和所述第二子系统访问。

    15.一种对话系统,包括:

    一个或多个处理器;

    耦接到所述一个或多个处理器的存储器,所述存储器存储能够由一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行包括以下操作的处理的指令:

    由所述对话系统的第一子系统接收语音输入;

    由所述第一子系统处理所述语音输入以标识与所述语音输入相对应的发音;

    由所述第一子系统搜索存储在所述存储器中的词典,以在所述词典中查找与所标识的发音相对应的匹配条目,所述词典包括多个条目,所述多个条目中的每个条目存储一个或多个单词的集合,所述一个或多个单词的集合映射到在所述条目中存储的发音,所述多个条目中的每个条目进一步包括附加信息,所述附加信息能够用于确定由所述条目存储的所述一个或多个单词的集合的含义表示;

    由所述第一子系统将标识所述匹配条目的信息传送到所述对话系统的第二子系统;以及

    由所述第二子系统使用标识所述条目的所述信息来生成所述语音输入的含义表示,所述含义表示标识与所述语音输入相关联的意图,其中,所述生成包括由所述第二子系统使用存储在所述词典中的所述匹配条目中的所述附加信息。

    16.如权利要求15所述的对话系统,其中:

    所述第一子系统是自动语音识别(asr)子系统;并且

    所述第二子系统是自然语言理解(nlu)子系统。

    17.如权利要求15所述的对话系统,其中:

    指示所述条目的信息包括指向所述附加信息的指针;并且

    所述对话系统的所述第二子系统使用所述指针来检索所述附加信息。

    18.如权利要求15所述的对话系统,其中:

    所述附加信息包括与所述单词的集合相对应的命名实体类型;并且

    生成所述含义表示包括将所述命名实体类型链接到所述单词的集合。

    19.如权利要求15所述的对话系统,所述处理进一步包括:

    由所述对话系统的所述第二子系统将所生成的含义表示输出到所述对话系统的第三子系统。

    20.如权利要求15所述的对话系统,所述处理进一步包括:

    标识由所述第一子系统使用的信息;

    标识由所述第二子系统使用的信息;

    确定将由所述第一子系统使用的所述信息与由所述第二子系统使用的所述信息进行关联的信息;

    生成由所述第一子系统使用的所述词典、由所述第二子系统使用的所述信息以及所述关联信息;以及

    使所述词典能够由所述第一子系统和所述第二子系统访问。

    技术总结
    用于通过在对话系统的管线式过程之间共享资源来减少由所述对话系统使用的存储器资源和处理资源的技术。构造了供所述对话系统的自动语音识别(ASR)子系统和自然语言理解(NLU)子系统同时使用的集成共享词典。所述集成共享词典包括多个条目,其中,每个条目包括由所述ASR子系统使用的第一信息、由所述NLU子系统使用的第二信息、以及将所述第一信息与所述第二信息进行关联的信息。所述ASR子系统使用所述集成共享词典来标识包含与语音输入相对应的单词集合的词典条目。所述词典条目信息被传送至所述NLU子系统,所述NLU子系统使用所述条目来生成所述语音输入的含义表示。在这些子系统之间共享所述词典显著地节省了由所述对话系统使用的存储器资源,并加快了处理速度。

    技术研发人员:M·E·约翰逊
    受保护的技术使用者:甲骨文国际公司
    技术研发日:2020.08.27
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-21762.html

    最新回复(0)