CN114365215A - 动态上下文对话会话扩展 - Google Patents

动态上下文对话会话扩展 Download PDF

Info

Publication number
CN114365215A
CN114365215A CN202080063827.0A CN202080063827A CN114365215A CN 114365215 A CN114365215 A CN 114365215A CN 202080063827 A CN202080063827 A CN 202080063827A CN 114365215 A CN114365215 A CN 114365215A
Authority
CN
China
Prior art keywords
dialog
speech input
session
stop condition
subsystem
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.)
Granted
Application number
CN202080063827.0A
Other languages
English (en)
Other versions
CN114365215B (zh
Inventor
M·R·肯纳维克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN114365215A publication Critical patent/CN114365215A/zh
Application granted granted Critical
Publication of CN114365215B publication Critical patent/CN114365215B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/04Segmentation; Word boundary detection
    • G10L15/05Word boundary detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/78Detection of presence or absence of voice signals
    • G10L25/87Detection of discrete points within a voice signal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Machine Translation (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

描述了一种对话系统,该对话系统能够保持覆盖可由停顿或时间间隔分开的多个用户话语的单个对话会话,并且跨会话内的多个话语来连续地确定意图。

Description

动态上下文对话会话扩展
相关申请的交叉引用
本申请要求2019年9月12日提交的题为“Continuous Intent DeterminationAcross Utterances”的美国申请第62/899,645号和2020年7月8日提交的题为“DynamicContextual Dialog Session Extension”的美国申请第16/923,483号,这些申请的全部内容通过引用并入本文用于所有目的。
技术领域
本公开总地涉及对话系统。更具体而言,但不作为限制,本公开描述了用于通过基于上下文因素动态地扩展对话会话来改进该对话会话的体验和效率的技术。
背景技术
越来越多的设备现在使用户能够使用话音(voice)或口说语音(spoken speech)直接与设备进行交互。例如,用户可以用自然语言对这样的设备说话,其中用户可以提出问题或做出请求执行某个动作的声明。作为响应,设备执行所请求的动作或使用话音输出来响应用户的问题。由于使用话音直接进行交互是人类与其周围环境进行交流的一种更加自然且直观的方式,因此这种基于语音的系统的普及率正以天文数字的速率增长。
在传统系统中,用户与实现此类对话系统的设备之间的交互基于单输入单响应范式。例如,用户通过说出唤醒词或按下“开始对话”按钮来发起或唤醒对话系统。唤醒词或按钮按下使对话系统发起新的对话会话。接收到紧接在唤醒词或按钮按下之后用户的口说语音。一段时间的停顿或沉默的时间间隔标志着语音输入的结束。语音输入由对话系统处理,并生成响应并输出给用户。在将响应输出给用户之后终止对话会话。一旦对话会话终止,如果用户想要开始新对话,则用户必须说出唤醒词或按下开始对话按钮。该单输入单响应范式创建了不自然的对话流程,并且对于用户来说可能是令人沮丧的。
发明内容
本公开总地涉及对话系统。更具体而言,描述了一种对话系统,该对话系统能够维持覆盖多个用户话语的单个对话会话,这些用户话语可由停顿或时间间隔分开。当用户在说出一个或多个句子时,对话系统可以为用户提供连续反馈(例如,自然语言理解(NLU)/语义解析器输出的)。对话系统可以确定忽略语音输入中的停顿或中断的条件。在连续语音由自动语音识别(ASR)子系统处理时,对话系统可以根据连续语音连续生成NLU输出。本文描述了各种实施例,包括方法,系统,存储程序、代码或可由一个或多个处理器执行的指令的非暂时性计算机可读存储存储器等。
在某些实施例中,对话系统发起对话会话。对话系统接收第一语音输入。对话系统检测第一语音输入中的指示第一口说话语的完成的停顿。对话系统基于第一口说话语来确定对话会话的停止条件,其中停止条件指示将使对话会话延长的第一时间值。对话系统确定对话会话的停止条件未被满足。响应于确定停止条件未被满足,对话系统将对话会话延长至少由停止条件指示的第一时间值。
在一些方面,对话系统还确定对话会话处于多个配置状态中的特定状态,其中对话系统基于所确定的状态来确定对话会话的停止条件。在一些方面,对话系统还基于第一语音输入来生成响应并输出该响应。在一些方面,在确定停止条件未被满足之前执行生成和输出响应。
在一些方面,对话系统还接收第二语音输入,检测第二语音输入中的指示第二口说话语的完成的第二停顿,并基于第二口说话语来确定对话会话的第二停止条件,其中第二停止条件指示将使对话会话延长的第二时间值。在一些方面,对话系统还基于第一语音输入和第二语音输入来识别意图。
在一些方面,对话系统还基于第一语音输入或第二语音输入中的一个或多个来生成响应并输出该响应。在一些方面,在输出响应之后,对话系统还确定停止条件被满足并终止对话会话。在一些方面,对话系统基于以下各项中的一项或多项来确定第二停止条件:停顿的长度、第一语音输入或第二语音输入。
在一些方面,发起对话会话包括检测唤醒词或检测与开始按钮的交互中的一个或多个。在一些方面,对话系统还接收第三语音输入。基于第三语音输入和第一语音输入,对话系统确定第三语音输入与第一语音输入无关,并且无视第三语音输入。
实施例还包括被配置用于执行本文描述的方法的系统和计算机可读介质。
在参考以下说明书、权利要求和附图时,上述内容连同其他特征和实施例将变得更加清楚。
附图说明
图1是描绘根据某些实施例的对话系统的简化框图。
图2是描述根据某些实施例的图1的对话管理器子系统的简化框图。
图3描绘了示出根据某些实施例的用于跨越一个或多个话语的对话会话扩展的方法的简化流程图。
图4描绘了示出根据某些实施例的用于确定图3的停止条件是否已被满足的方法的简化流程图。
图5描绘了示出根据某些实施例的用于确定语音输入是否与其他语音输入相关的方法的简化流程图。
图6描绘了用于实现实施例的分布式系统的简化图。
图7示出了根据某些实施例的基于云的系统环境的简化框图,其中各种对话会话相关服务可以作为云服务来提供。
图8示出了可用于实现某些实施例的示例性计算机系统。
具体实施方式
在以下描述中,出于解释的目的,阐述了具体细节以便提供对某些实施例的透彻理解。然而,将显而易见的是,可以在没有这些具体细节的情况下实践各种实施例。附图和描述并非旨在是限制性的。“示例性”一词在本文中用来表示“用作示例、实例或说明”。本文中描述为示例性的任何实施例或设计不一定被解释为优选于或优于其他实施例或设计。
能够经由话音输入和话音输出与用户进行对话的启用话音的系统可以以各种形式出现。例如,这样的系统可以作为独立设备、作为数字或虚拟助理、作为具有话音能力的服务等来提供。在这些形式中的每一种中,系统都能够接收话音或语音输入、理解输入、生成响应或响应于输入而采取行动,以及使用话音输出来输出响应。在某些实施例中,这种启用话音的系统中的对话功能由对话系统或基础设施(“对话系统”)来提供。
如上所述,对话会话通常在每个话语被接收和处理之后终止。例如,先前的对话系统通常在检测到停顿之后终止会话,并且用户必须重新发起新的对话会话(例如,通过说出唤醒词)以继续提供额外的输入。该单输入单响应范式创建了不自然的对话流程,并且对于用户来说可能是令人沮丧的。
“话语”是由边界元素标记的语音的单元或跨度,其中边界元素可以是停顿、无语音输入的时间间隔或唤醒词。话语可包括一个词或一组词。该组词可以包括一个或多个短语、一个或多个句子、一个或多个多个问题及其组合。例如,如果用户在没有休息或停顿的情况下说出多个句子,则这多个句子可代表一个话语。对话系统接收到的“语音输入”可包括一个话语、多个话语或部分话语。
通常,在传统的对话系统中,与用户的交互是短暂的——例如,接受由单个句子组成的话语,处理该话语并生成响应,然后将响应输出可能作为语音输出而输出给用户。如在上面讨论的,该单输入单响应范式不近似自然的语音交互,因此为用户提供了令人沮丧的用户体验。例如,当一个人在订购披萨或购买杂货时,自然的语音交互涉及穿插有停顿的多个话语、来回交互、不相关语音的时段(例如,“嗯……”或“亲爱的,你想要什么?”)等。然而,为了使用传统的对话系统发出相同的订单,用户必须不断说出唤醒词(或按下开始对话按钮)来为每个单独的话语发起新的交谈或对话会话。本文描述的技术描述了一种对话系统,该对话系统可以保持与用户的更长单个对话会话,其中单个会话可以包括由停顿或时间间隔分开的多个用户话语,并且其中跨多个话语执行意图确定。这为用户创造了更友好的体验,并在计算时间和所需资源方面创造了更有效的过程。例如,如果各词之间存在相对长的停顿,即使用户没有说完,传统系统通常打断用户。传统系统将常常尝试基于部分输入来提供响应并结束会话。这种对停顿的响应可能导致用户必须重新开始并再次提供输入,这可能大大增加用来解决用户查询的时间和计算资源,以及使用户感到沮丧。
在某些实施例中,对话系统跨多个话语保持与用户的连续对话。当用户在说出一个或多个句子时,对话系统可以为用户提供连续反馈(例如,自然语言理解(NLU)/语义解析器输出的)。对话系统可以确定忽略语音输入中的停顿或中断的条件。在连续语音被自动语音识别(ASR)子系统处理时,对话系统可以根据连续语音连续生成NLU输出。对于可能持续几分钟或几十分钟的会话,对话系统可以连续听用户说话(例如,保持在收听状态)。例如,当用户试图想出其订单时,对话系统可能在订购过程的持续时间内连续收听。
例如,订购披萨通过多个话语自然地展开。先前的系统在对话会话内通常需要一个请求和来自系统的一个响应。然而,如果体验更加合理,请求中可能有停顿或中断,更近似自然的语音交互。例如,使用本文描述的技术,可以在单个会话中利用连续语音识别和连续NLU处理来完成以下操作:
“你们有什么特色菜?”
[系统显示结果]
“我要希腊特色菜。”…[停顿]。“…加橄榄”…“…不加辣椒”
“我还想要一个大奶酪披萨。”....“把它做成薄皮”…“其实我要两个”。
[暂停]
“再加2升可乐,就这样吧。”
[系统概括订单]
图1示出了根据一些实施例的对话系统100的示例。对话系统100被配置为从用户102接收话音或语音输入104(也称为语音话语)。对话系统100然后可以解释话音输入。对话系统100可以保持与用户102的对话,并且可能基于话音输入的解释来执行或导致执行一个或多个动作。对话系统100可以准备适当的响应,并使用话音或语音输出将响应输出给用户。对话系统100是可用于使用大量计算机处理周期来处理大量数据的专用计算系统。图1中描绘的设备数量为出于说明目的提供的。可以使用不同数量的设备。例如,虽然将图1中的每个设备、服务器和系统示出为单个设备,但也可改为使用多个设备。
在某些实施例中,对话系统所执行的处理由组件或子系统的管线来实现,这些组件或子系统包括语音输入组件105、唤醒词检测(WD)子系统106、自动语音识别(ASR)子系统108、自然语言理解(NLU)子系统110,其包括命名实体识别器(NER)子系统112和语义解析器子系统114、对话管理器(DM)子系统116、自然语言生成器(NLG)子系统118、文本到语音(TTS)子系统120和语音输出组件124。上面列出的子系统可以仅以软件(例如,使用可由一个或多个处理器或内核执行的代码、程序或指令)来实现,以硬件来实现,或以硬件和软件的组合来实现。在某些实施方式中,这些子系统中的一个或多个可以组合成单个子系统。附加地或替代地,在一些实施方式中,本文中描述为由特定子系统执行的功能可以由多个子系统来实现。
语音输入组件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子系统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,SP子系统114被配置为为每个标记的文本话语(或者为一系列标记的文本话语)生成逻辑形式。为话语生成的逻辑形式可以识别与文本话语相对应的一个或多个意图。话语的意图标识话语的目标。意图的示例包括“订购披萨”和“寻找方向”。例如,意图可以标识被请求执行的动作。除了意图之外,为文本话语生成的逻辑形式还可以识别识别出的意图的槽(slot)(也称为参数或自变量)。例如,对于语音输入“我想订购一个带有蘑菇和橄榄的大意大利辣香肠披萨”,NLU子系统110可以识别意图“订购披萨”。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以供进一步处理。
如下面关于图2进一步描述的,DM子系统116包括被配置为跟踪对话状态并基于这种对话状态信息来确定停止条件和响应的子系统。在一些实施例中,DM子系统116维护状态信息,该状态信息可以用来确定是否延长对话会话以及将其延长多长时间,尽管对话中有停顿或中断。DM子系统116可以使用配置的会话管理信息130来跟踪这些状态。例如,如下面关于图2-图4更详细描述的,此类状态可包括“Likely_To_Continue”——用户很可能继续提供额外的话音输入,以及“Likely_No_Additional_Input”——很可能将不会接收到额外的语音输入。对话系统可以在给定时间基于诸如对话会话中的一个或多个话语的内容、停顿的长度、多模式输入(例如,按下的按钮)等的因素来将特定状态指派给对话会话。对话会话的当前状态可以对应于是否继续对话会话以及使其继续多长时间。例如,对于状态1,对话会话应持续至少1分钟,而对于状态2,停止条件已被满足,应终止对话会话。停止条件信息132可包括针对是否停止或延长对话会话以及将对话会话延长多长时间的规则。如本文描述,停止条件可以对应于用于延长对话会话的时间段值。
NLG子系统118被配置为生成与由DM子系统116生成的响应相对应的自然语言文本。文本可以以使它们能够被TTS子系统120转换为语音的形式来生成。TTS子系统120接收来自NLG子系统118的文本并将它们中的每一个转换为语音或话音音频,语音或话音音频然后可以经由对话系统的音频或语音输出组件124(例如,扬声器或耦合到外部扬声器的通信信道)输出到用户。在一些情况下,语音输出组件124可以是对话系统100的一部分。在一些其他情况下,语音输出组件124可以与对话系统100分开并通信地耦合到对话系统100。
如上所述,协作工作的对话系统100的各种子系统提供使对话系统100能够接收语音输入104和使用语音输出122进行响应和使用自然语言语音来保持与用户的对话的功能。上面描述的各种子系统可以使用单个计算机系统来实现或使用协作工作的多个计算机系统来实现。例如,对于实现启用话音的系统的设备,上述对话系统100的子系统可以完全在用户与之交互的设备上实现。在一些其他实施方式中,对话系统100的一些组件或子系统可以在用户与之交互的设备上实现,而其他组件可以在远离设备的地方实现,可能在一些其他计算设备、平台或服务器上实现。
如上所述,在某些实施例中,对话系统100可以使用子系统的管线来实现。在一些实施例中,子系统中的一个或多个可以组合成单个子系统。在某些实施例中,由特定子系统提供的功能可以由多个子系统提供。特定子系统也可以使用多个子系统来实现。
在某些实施例中,机器学习技术可用来实现对话系统100的一个或多个功能。例如,可以使用诸如使用神经网络(例如,深度神经网络)实现的那些的监督机器学习技术来实现对话系统100的一个或多个功能。作为一个示例,可以提供被训练成执行所执行的ASR功能的神经网络,并且这样的经过训练的模型可被ASR子系统108用于其处理。这样的神经网络实施方式可以采用语音输入作为输入,并将文本话语输出到NLU子系统。基于机器学习的模型也可被对话系统100的其他子系统使用。
图2是根据某些实施例的更详细地描绘图1的对话管理器子系统116的简化框图。如上所述,对话管理子系统116被配置为基于从NLU子系统110接收到的逻辑形式来管理与用户的对话。对话管理子系统200包括会话管理子系统202、状态管理子系统204、相关性确定子系统206、动作管理子系统208和响应子系统210。
状态管理子系统204可以跟踪对话状态。在某些实施例中,状态管理子系统204基于当前和过去的语音输入来执行对话状态跟踪。状态管理子系统可以确定对话是否处于若干配置状态之一。在某些实施例中,对话状态可被定义为包括多个状态和这些状态之间的转换的状态转换图。一组规则(例如,对话策略)可以指定不同的对话状态,以及状态之间的转换的条件、当处于特定状态时要执行的动作等。例如,基于一个或多个话音输入,以及由NLU子系统确定的对应意图和逻辑形式,状态管理系统可以确定对话是否处于若干预配置状态之一。在一些实施例中,可以定义以下状态:
(1)“Likely_To_Continue”——当对话系统基于接收到的语音输入确定用户很可能继续提供额外的语音输入时被确定。例如,如果缺少所需信息的话语被处理,则对话系统可确定对话处于Likely_To_Continue状态(例如,“我想要一个…[停顿]”)。
(2)“Unclear_About_Additional_Input”——当对话系统基于接收到的语音输入确定不清楚用户是否将提供额外输入(例如,应当提供澄清)时被确定。例如,在接收到第一话语“我想要一个...[停顿],”和第二话语“意大利辣香肠披萨...[停顿],”之后,额外的输入是可能的,但不是必需的。在这种情况下,对话系统可以确定对话处于Unclear_About_Additional_Input状态,并输出询问用户“还要别的吗?”的响应。
(3)“Likely_No_Additional_Input”——当系统基于接收到的语音输入确定很可能不会接收到额外的语音输入时被确定。作为示例,继续上面订购披萨的示例,如果用户然后说“不,就是这样,”,那么很可能将不会接收到额外的语音输入,在这种情况下,对话系统可以确定对话系统处于Likely_No_Additional_Input状态。
会话管理子系统202确定何时停止或开始会话。停止会话的确定可以基于由状态管理子系统204确定的当前状态。可用来管理会话的其他因素包括整个会话的长度和不同语音输入单元之间的停顿。可以针对不同的上下文管理不同的会话长度规则。例如,会话管理子系统202可以为与个人购物有关的对话维持更长的会话,并为与天气有关的对话维持相对短的会话。
相关性确定子系统206确定特定话语是否与对话会话内的整体对话相关。例如,相关性确定子系统可包括一个或多个机器学习模型,这一个或多个机器学习模型被训练成检测指示应当被无视的输入的词(例如,“嗯”、“嘿”等)。替代地或附加地,相关性确定子系统206可被训练成基于与意图有关的预期输入来识别不相关的话语。例如,如果用户一直在提供集中在食物和饮料项目上的与餐馆订单有关的语音输入,那么相关性确定子系统可以确定不包括食物或饮料相关词的话语可能应当被丢弃。
动作管理子系统208基于从NLU子系统110接收到的信息来确定要执行的动作或任务。动作管理子系统208可以发起它解释为被由用户提供的话音输入请求的一个或多个动作,或自身执行这一个或多个动作。此类动作的示例包括查询一个或多个数据库、执行因特网搜索和发起购买。
响应子系统210生成要提供给用户的响应。这些响应可以基于从NLU子系统接收到的意图和逻辑形式,以及由ASR子系统108发起的动作及其结果。由响应子系统210生成的响应被馈送到NLG子系统118和TTS子系统220以供进一步处理。例如,响应子系统210可以生成计算机可读形式的文本响应,NLG子系统118将该文本响应转换为自然语言文本,并且TTS子系统220将该文本响应转换为口说响应。例如,对话系统可能输出的响应包括“还要别的吗?”、“那将是$39.78、“加利福尼亚州的首府是萨克拉门托”等等。
图3描绘了示出根据某些实施例的用于跨一个或多个话语扩展对话会话的方法300的简化流程图。图3中描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、内核)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。该软件可以存储在非暂时性存储介质上(例如,在存储器设备上)。在图3中呈现并在下面描述的方法旨在是说明性的而非限制性的。虽然图3描绘了以特定次序或顺序发生的各种处理步骤,但这并非旨在是限制性的。在某些替代实施例中,可以以某个不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图3中描绘的处理可以由图1和图2的对话管理子系统116以及上面关于图1描述的对话系统100的其他组件执行。
在302处,对话系统(例如,对话管理器子系统116的会话管理子系统202)发起对话会话。“对话会话”对应于一个时间段,在该时间段期间,由用户作为输入提供给对话系统的一个或多个话语和由对话系统生成的一个或多个响应被一起对待以用于由对话系统执行的处理的目的。
各种不同的信号或刺激可以使对话系统在302中发起对话会话。例如,对话系统可以响应于WD子系统106检测到唤醒词而发起新的对话会话。作为另一个示例,对话系统可以响应于用户使表明将发起新的对话会话的信号发送到对话系统而发起新的对话会话。例如,对话系统可以检测到已经选择或按下了“对话开始”按钮或其他用户可选择的选项。因此,发起对话会话可包括检测唤醒词或检测与开始按钮的交互中的一个或多个。发起对话会话还可包括为对话会话生成参数,诸如会话标识符和初始状态。替代地或附加地,发起对话会话可包括为对话会话分配存储器。
在304处,对话系统接收第一语音输入。对话系统可以例如经由语音输入组件105从用户接收第一语音输入。语音输入可以作为波形式来接收。语音输入可以是特定语言并且是自然语言查询形式。语音输入可以指定用户希望对话系统回答的问题,指定用户希望对话系统发起的一个或多个动作(例如,“我想要一个中等大小的意大利辣香肠披萨。”),等等。
在某些实施例中,例如,当用户在与对话系统聊天期间键入文本时,代替接收语音输入(如在304或322中),可以以文本形式接收输入。本公开中描述的会话管理技术可以与接收口说语音形式的输入或文本输入或其组合的系统一起使用。
在306处,对话系统检测语音输入中的指示口说话语的完成的停顿。对话系统可以通过确定在给定时间内没有提供输入来检测停顿。在检测到停顿时,对话系统可以在停顿的持续时间内维持会话并保持在收听状态。在停顿期间维持会话的同时,对话系统可以处理第一语音输入。对话系统可以识别每个停顿的长度。
在308处,对话系统处理在306处识别的口说话语。对话系统使用包括ASR、语音到文本转换和自然语言处理的处理管线来处理口说话语(例如,确定话语的逻辑形式和/或意图),并确定响应于话语而要采取的任何行动。对话系统可以使用如上面关于图1描述的管线来执行这样的功能。
在某些实施例中,将语音输入波形作为输入提供给ASR子系统108,ASR子系统108处理语音输入并生成对应的文本话语。ASR子系统108可以使用包括基于机器学习的技术和基于规则的技术在内的不同技术来执行输入语音的语音到文本的转换。然后将ASR子系统108生成的文本作为输入提供给NLU子系统110,NLU子系统110确定文本话语的逻辑形式和/或意图。
在一些实施例中,对话系统将可以是ASR子系统108的输出或由用户键入的文本的文本流式传输到NLU子系统110中。ASR子系统可以在接收语音输入时处理所有传入的语音,并且在从语音识别过程输出文本时将文本流以块的形式发送到NLU子系统。例如,ASR子系统可以在用户继续说话时处理部分话语,并且NLU子系统可以在ASR子系统处理其余话语时处理部分话语。
NLU子系统可以通过确定与文本话语相对应的逻辑形式和/或意图来处理从ASR子系统传递的文本话语。NLU子系统可以使用不同的技术来确定逻辑形式,包括但不限于机器学习技术(例如,使用经过训练的模型,诸如深度神经网络)、基于规则的技术或其组合。例如,基于一组规则,如果语音输入和对应的文本话语包括词“预订”或“购买”以及“航班”或“汽车”或“火车”,则一组规则可以将Book_Travel意图指派给文本话语。作为另一个示例,基于话语“我想要一个大意大利辣香肠”,对话系统可以确定对应的意图是Order_Pizza。对话系统还可以生成对应于第一语音输入的逻辑形式,并且可以基于在话语中识别出的词来填充槽(例如,对话系统可以将意大利辣香肠指派给配料槽)。
对话系统可以处理语音会话内的多个话语。例如,对话系统可以接收第一话语并识别第一话语的逻辑形式。对话系统然后可以接收第二话语并识别第二话语的逻辑形式。第二话语的逻辑形式可包括识别出的意图。后续话语(例如,第二话语、第三话语、第四话语等)的识别出的意图可以基于对话会话中的多个话语。在一些情况下,后续的逻辑形式和/或意图还可以基于由对话系统生成的响应。作为具体示例,可以处理以下对话会话:
话语1:“我想点一个芝士汉堡。”
逻辑形式1:“Order_Food;项目=芝士汉堡”
响应1:任何额外的配料?
话语2:“添加酸黄瓜”
逻辑形式2:“Add_Topping;配料=酸黄瓜。”
响应2:“好的。还要别的吗?”
...
第二个意图Add_Topping基于更早的第一话语、逻辑形式和响应,从而指定酸黄瓜在芝士汉堡的配料的上下文中。因此,一个或多个输入话语和对于对话会话中的给定点的响应可用来确定该点的逻辑形式和意图。
在一些实施例中,对话系统可以避免在对话中的给定点处执行处理管线中的一个或多个步骤。例如,第一话语不包括足够的信息来确定意图。在这种情况下,对话系统可以在连续的流中继续处理随后的(一个或多个)话语以及第一话语,直到确定总体意图为止。作为一个具体示例,对话系统对第一话语“我在想...[停顿]...”执行ASR和NLP并等待第二话语“如果你卖帽子”,然后对第二话语执行ASR和NLP,并一起处理两个话语以确定两个话语的总体意图Check_Stock。
在一些实施例中,基本上实时地执行308中的处理。本文中所使用的“基本上实时”是指在接收到输入数据时处理输入数据流,而不是等待已接收到完整话语的指示。例如,对话系统可以在用户继续提供语音输入并且对话系统继续接收额外的语音输入的同时处理一个句子或一组词。在一些实施例中,对话系统可以处理部分话语。例如,系统可以将话语分成诸如“我想要”、“披萨”、“没有酱汁”之类的块,并依次处理每个块。
在一些实施例中,可以使用集成的语音识别和自然语言理解管线来处理语音输入。例如,单个神经网络可用来从语音输入生成逻辑形式(例如,没有输出文本话语的中间步骤)。集成语音识别和自然语言理解的技术在例如Lugosh等人的“Speech Model Pre-training for End-to-End Spoken Language Understanding”(https://arxiv.org/pdf/1904.03670.pdf)和Haghani等人的“From Audio to Semantics:Approaches to end-to-end spoken language understanding”(https://arxiv.org/abs/1809.09190)中得到描述。
在310处,对话系统确定是否要生成响应。对话系统可以基于接收和处理的一个或多个语音输入来确定是否要生成响应。例如,如果用户很可能在短暂的停顿之后完成一个句子,那么响应在对话中的这个点处可能是不适当的。然而,如果在一个话语或话语的组合之后澄清或反馈是适当的,那么响应可能是适当的。例如,如果用户说:“我想预订航班去...”,则对话系统可以确定在这个点将不生成响应,等待另一个话语,并接收第二话语“去迈阿密”,在此点处来自对话系统的响应是适当的。
在312处,如果要在310处生成响应,则对话系统可以生成并输出响应。对话系统可以执行任务和/或向用户提供反馈。对话系统可以基于一个或多个语音输入(例如,第一语音输入和/或第二语音输入)来生成响应。对话系统可以向用户提供响应。提供响应可以通过准备和输出语音输出来执行。对话系统可以经由对话管理器子系统116和NLG子系统118来准备文本响应。这样的文本响应可以经由用户界面显示给用户。替代地或附加地,文本响应可被传递到文本到语音子系统120,文本到语音子系统120将文本响应转换为口说响应。然后经由语音输出组件124将口说响应作为语音输出122输出。在一些情况下,对话系统可以在对话会话内确定并提供多个响应(例如,基于第一语音输入的响应、基于第二语音输入的响应等等)。
对话系统可以连续地处理输入和准备响应。例如,对话系统接收到语音输入“我想买一张机票”。对话系统在继续收听额外的语音输入的同时准备并提供响应“好的,去哪里?”。随着对话会话继续,对话系统还可以执行诸如查找信息、提交订单和/或类似任务之类的任务。在一些实施例中,如下文关于318进一步描述的,在确定停止条件未被满足之前执行生成和输出响应。
在314处,对话系统(例如,状态管理子系统204)确定对话会话的当前状态。对话系统可以确定对话会话处于多个配置状态中的特定状态。可以使用与对话会话有关的各种标准来确定对话会话的当前状态。在一些实施例中,对话会话的状态可以基于是否已经检测到停顿以及在对话会话中检测到的一个或多个停顿的长度(例如,话语之间的时间距离)。可用来确定对话会话的当前状态的额外因素包括一个或多个接收到的语音输入的内容、提供的响应、识别出的意图、命名的实体和/或逻辑形式、会话内的先前状态等。对话系统可以基于在304处接收到的语音输入(例如,接收到的最后一个语音输入)或在对话会话的过程中接收到的语音输入的组合(例如,在304处接收到的第一语音输入和/或在320处接收到的后续语音输入)来确定当前状态。对话系统还可以使状态确定基于对话会话中经过的时间(例如,经过的总时间和/或自上次延长对话会话以来经过的时间)。
在一些实施例中,对话系统基于这些因素的组合来确定当前状态。可以使用规则和/或机器学习模型来确定当前状态。例如,如果用户停顿30秒并且先前的语音输入表明不需要进一步的语音输入,那么对话系统可以确定对话处于用户很可能完成提供输入的状态,但是进一步的输入是可能的。另一方面,如果用户停顿30秒但是刚刚说了“等一下”或“和...”,那么对话系统可以确定用户最有可能将要提供额外的输入。作为另一个示例,对话系统可以基于在308处确定的意图来确定当前状态。例如,如果意图与系统支持的功能匹配,并且用户可能将要提供额外的输入,那么对话系统可以确定对话会话处于状态Additional_Input_Likely。
在一些实施例中,可能存在用于用户的明确机制,表明用户已经完成提供语音输入(例如,检测到用户已经按下“停止”按钮,或检测到结束词,诸如“结束”或“完成”等等)。如果用户已经表明他们已经完成提供输入,则这可被对话系统用来指派表明将不会接收到进一步的输入的状态。下面关于图4更详细地描述用于确定对话会话的状态的技术。
在316处,基于在314中确定的当前状态,对话系统确定将使对话会话延长的时间段值。所确定的时间段值为对话会话设置停止条件。因此,时间段值可以基于对话会话的当前状态来确立对话会话要继续多长时间。因此,在一些实施例中,随着对话会话的状态在对话会话的过程中改变,动态地设置新的停止条件。
对话系统可以基于在314处确定的状态和/或包括停顿长度、第一语音输入和/或后续语音输入(例如第二语音输入)的额外信息来确定时间段/停止条件。可以使用规则或机器学习模型来计算停止条件,规则或机器学习模型中的任何一个都可以采用对话会话的状态作为输入。在一些实施例中,状态可以直接映射到时间段(例如,如果对话处于状态“1”,则对话会话应当延长至少一分钟)。替代地或附加地,时间段可以基于结合额外信息的当前状态,这可以建立用来确定时间段值的对话会话的整体上下文。例如,如果对话处于状态“B”并且最后的话音输入包括命名实体,则对话系统确定对话会话将延长三十秒。替代地或附加地,可以省略步骤314,并且可以使用上下文因素来确定将使对话会话延长的时间段值,而没有明确地向对话会话指派状态。
在一些实施例中,时间值为零表明对话会话将不被延长。因此,“停止条件”参数的值可以指定会话是否将被延长。在一些实施例中,对话会话的时间段值和/或基础状态可以根据用户的语音模式而变化。例如,如果第一用户与采用较短停顿的第二用户相比在话语之间采用较长停顿,则可以在计算将对话会话延长多长时间时将该因素包括进来。这样,在一些实施例中,延长的时间也是用户定制的。
在318处,对话系统确定在316处确定的停止条件是否已被满足。在一些实施例中,对话系统使用在316处确定的时间段值来确定停止条件是否已被满足。例如,如果时间段为零,则停止条件已被满足。替代地或附加地,如上面关于314-316描述的,对话系统可以基于分析对话会话中的各种上下文因素来确定停止条件是否已被满足。在一些实施例中,对话系统可以周期性地确定停止条件是否已被满足(例如,每秒、每十分之一秒或每十秒等)。
如果对话系统在318处确定对话会话的停止条件未被满足,则对话系统可以将对话会话延长至少由停止条件指示的时间段值。例如,如果停止条件指定将对话会话延长一分钟,则对话系统将对话会话延长一分钟。
如果在318处尚未满足停止条件,则对话系统继续对话会话。为了继续对话会话,对话系统可以继续侦听额外的输入。对话系统可以继续监视状态并存储数据。对话系统可以继续执行对话处理(例如,ASR、NLP、NLG和/或TTS处理)。
在320处,对话系统在对话会话仍然活动时接收额外的语音输入(例如,第二语音输入、第三语音输入、第四语音输入等)。可以以与上面关于步骤304描述的基本类似的方式来接收额外的语音输入。
在320处接收到来自用户的额外语音输入之后,流程返回到306。对话系统可以检测指示额外口说话语(例如,第二口说话语、第三口说话语等)的完成的额外停顿(例如,第二停顿、第三停顿等)。
在308的后续迭代中,对话系统如上所述处理(一个或多个)额外话语。语音输入可以由ASR子系统108转换为文本话语并传递给NLU子系统110,NLU子系统110将逻辑形式传递给对话管理器子系统116。处理(一个或多个)话语可包括识别与后续语音输入相对应的(一个或多个)意图和/或(一个或多个)逻辑形式(例如,对应于第二语音输入的意图、对应于第三语音输入的意图等)。如上面关于308提到的,在一些情况下,为第一语音输入确定的意图可以通知为后续语音输入确定的意图(例如,如果第一语音输入对应于与旅行相关的意图,则模型或规则可被配置为对后续语音输入的旅行相关意图进行更重的加权)。
在一些实施例中,如下面关于图5更详细描述的,对话系统可以处理额外的语音输入以确定额外的语音输入是否与先前的语音输入(例如,第一语音输入)相关。在一些情况下,额外的语音输入可能与第一语音输入相关。例如,第一语音输入是“一个大的至尊披萨”。在停顿之后,用户提供第二语音输入,“没有洋葱”。在这种情况下,对话系统可以更新与对话会话相关联的整体逻辑形式。例如,在第一语音输入之后,对话系统已经识别出意图Order_Pizza并用意大利辣香肠、洋葱、甜椒和香肠来填充配料槽。在处理第二语音输入之后,对话系统更新逻辑形式以从配料槽中移除洋葱。在其他情况下,对话系统可以确定后续语音输入与第一语音输入不相关。例如,额外的语音输入可以对应于用户对另一个人说话或做出不相关的陈述。在这种情况下,对话系统可以无视额外的语音输入。
在一些实施例中,对话系统基于额外的语音输入来生成并输出响应。这样的响应可以基于接收到的最后一个语音输入(例如,基于对第二话语的处理来确定第二响应)。在一些情况下,后续响应还可以基于先前的语音输入(例如,第二响应可以基于第二语音输入以及第一语音输入)。例如,在两个话语的过程中处理食品订单之后,对话系统可以准备并提供诸如“还要别的吗?”或“好吧,那将是$21.99。”之类的响应。
在确定额外语音输入的意图并可能执行动作、准备响应和/或提供响应之后,流程可以再次进行到314以确定对话会话的当前状态,并再次进行到316,包括由对话系统基于额外的(例如,第二)口说话语确定与额外的(例如,第二、第三等等)停止条件相对应的将使对话会话延长的额外的(例如,第二、第三等等)时间值。这可能在多个话语和潜在的多个响应当中继续,直到在318处满足停止条件为止,此时对话系统可以在322处终止语音会话。
在322处,当在318处确定停止条件已被满足时,对话系统终止对话会话。为了终止对话会话,对话系统可以停止侦听额外的输入。替代地或附加地,对话系统可以停止监视状态和存储数据。在一些实施例中,对话系统可以清除与对话有关的临时存储器。
图4描绘了示出根据某些实施例的如在图3的314处执行的用于确定对话会话的状态的方法400的简化流程图。图4中描绘的处理可以以由相应系统的一个或多个处理单元(例如,处理器、内核)执行的软件(例如,代码、指令、程序)、硬件或其组合来实现。该软件可以存储在非暂时性存储介质上(例如,在存储器设备上)。在图4中呈现并在下面描述的方法旨在是说明性的而非限制性的。虽然图4描绘了以特定次序或顺序发生的各种处理步骤,但这并非旨在是限制性的。在某些替代实施例中,可以以某个不同的顺序执行这些步骤,或者也可以并行执行一些步骤。在某些实施例中,图4中描绘的处理可以由图1和图2的对话管理器子系统116以及上面关于图1描述的对话系统100的其他组件执行。在某些实施例中,作为确定对话会话的当前状态的一部分在图3的块314中执行图4中描绘的处理。
在一些实施例中,对话系统(例如,对话管理器子系统116的状态管理子系统204)执行状态分析以确定在给定时间是否存在多种状态之一。例如,对话系统可以定义三种状态:(1)对话系统确信用户已经完成提供输入(这可对应于满足停止条件);(2)基于(一个或多个)先前的语音输入,用户很可能提供额外的语音输入但有一段时间没有说话——这可能导致对话系统输出提示(例如,“你完成了吗?”);(3)基于(一个或多个)先前的语音输入,对话系统确信用户将提供额外的语音输入。
在402处,对话系统继续对话会话并执行状态分析。如上面关于图3描述的,继续对话会话可包括侦听和/或处理接收到的语音输入。基于从接收到的语音输入中得出的含义,对话系统可以评估每种状态的标准是否已被满足。
在404处,对话系统确定对话会话是否处于第一状态。在第一状态下,用户可能不太可能提供额外的反馈。例如,对整个对话会话的分析可表明对话已完成。在一些情况下,可能接收到用户不太可能提供额外反馈的明确指示。例如,用户可以明确地按下停止按钮。作为另一个示例,对话系统可以基于所处理的词来确定对话会话处于第一状态。某些词或短语的存在可能表明对话已完成(例如,或者用户可能说“我完成了”,或者仅此而已)。在一些情况下,对话系统可以通过检测预先建立的停止词(例如,“停止”或“完成”)来确定对话会话处于第一状态。
在一些实施例中,对话系统可以使用经过训练的机器学习模型来使用各种上下文因素来预测用户是否可能提供额外的输入。如上面关于图3的块314描述的,这样的上下文因素可包括一个或多个停顿的长度、一个或多个话语及其派生物(例如,意图、逻辑形式等),以及对话会话本身的长度。
在一些实施例中,对话系统可以计算表示接收到额外输入的可能性的值。可以将该值与预定义的阈值进行比较以确定对话会话在给定时间是否处于特定状态。例如,对话系统可以计算置信度分数,该置信度分数表示用户将提供额外语音输入的置信度水平。置信度分数可以基于一个或多个因素,诸如意图、话语中的关键词和停顿长度。可以将置信度分数与一个或多个阈值进行比较,并且基于该比较,对话系统可以确定对话会话处于特定状态。例如,对话系统可以在确定置信度分数低于与第一状态相对应的阈值(例如,30%)时确定对话会话处于第一状态。作为另一个示例,对话系统可以使用一组规则来确定是否保持在第一状态(例如,停顿是否超过阈值长度)。如上所述,语音输入之间的停顿的长度可以单独或与其他因素组合用来确定对话会话处于特定状态。例如,一分钟的停顿通常可以指示用户已完成,但如果用户刚刚提供了指示他们尚未完成的语音输入(例如“等一下”或“和…”),则不是。
如果对话系统确定对话处于第一状态,则流程可以进行到406。在406处,对话系统可以标记停止条件。这可以通过在314处确定对话会话处于第一状态来执行,然后在316处将其用于确定对应的时间段值为零。
如果对话系统在404处确定对话会话不处于第一状态,则流程可以进行到408。在408处,对话系统确定对话是否处于第二状态。第二状态可以对应于用户将继续提供输入的中等置信度水平。例如,如上面关于404描述的,计算出的置信度分数和/或诸如停顿长度之类的单独值可以在第一阈值和第二阈值之间。作为一个具体示例,如果检测到的最后一次停顿在30秒和2分钟之间,则可以触发第二状态。作为另一个示例,如果置信度分数在40%和80%之间,则可以触发第二状态。当处于第二状态时,对话系统可以进行到410以请求澄清。
在410处,对话系统向用户请求澄清。对话系统可以通过提供诸如“还要别的吗?”或“你完成了吗?”之类的语音或文本输出来请求澄清。替代地或附加地,对话系统可以通过显示诸如复选标记之类的可视化来请求澄清,用户可以与该复选标记进行交互以表明他们已完成提供输入。
在410处请求澄清之后,对话系统可能或可能不接收响应于410处的请求的输入。对话系统返回到402并使用输入或没有输入来执行额外的状态分析。例如,用户可以用“不”来回应“还要别的吗?”,表明用户已完成提供输入。作为另一个示例,用户可以用“不”来回应“你完成了吗?”,表明用户未完成提供输入。在402–406处的状态处理中考虑了这样的输入或者没有这样的输入。
如果对话系统在406处确定对话会话不处于第二状态,则流程可以进行到412。在412处,对话系统确定对话会话处于第三状态。第三状态是可能有额外语音输入的状态(例如,继续对话会话并等待额外的语音输入是适当的)。如上面关于图3描述的,对话系统可以基于诸如先前语音输入的内容、一个或多个停顿的长度以及在对话会话内接收到的话语的数量之类的因素来确定继续对话会话是适当的。如上面关于404和408描述的,对话系统可以基于置信度分数来确定对话会话处于第三状态。例如,如果置信度分数超过80%的阈值,则对话系统确定对话会话处于第三状态。作为另一个示例,如果对话会话的停顿和/或长度低于阈值,则对话系统可以确定对话会话处于第三状态。例如,在10秒的停顿之后,对话系统可以确定可能有额外的语音输入。
如果对话系统确定对话处于第一状态,则流程可以进行到402,并且对话系统可以继续执行状态分析,直到满足停止条件为止。
图5描绘了示出根据某些实施例的用于确定语音输入是否与其他语音输入相关的方法500的简化流程图。可以在接收到一个或多个语音输入(例如,第一语音输入和可能的第二语音输入、第三语音输入等)之后执行图5中描绘的处理。在某些实施例中,图5中描绘的处理可以由图1和图2的对话管理器子系统116以及上面关于图1描述的对话系统100的其他组件执行。在某些实施例中,作为处理话语的一部分在图3的块308中执行图5中描绘的处理。图5中描述的处理还可以用于在314处确定对话会话的当前状态。
在502处,对话系统接收来自用户的后续语音输入。可以如上面关于图3的块322所描述的那样接收后续语音输入。
在504处,对话系统处理后续语音输入(例如,第二语音输入、第三语音输入等)。对话系统(例如,NLU子系统110)可以如上面关于图3的308所描述的那样处理语音输入。
在506处,对话系统确定后续语音输入是否与先前语音输入相关。对话系统可以识别与先前语音输入的意图有关的词是否存在于后续语音输入中。对话系统可以使用规则或经过训练的机器学习模型来确定后续语音输入是否与先前语音输入相关。例如,对话系统可以计算先前语音输入和后续语音输入之间的相似度分数。如果相似度分数高于阈值,则对话系统可以确定后续语音输入与先前语音输入相关。如果相似度分数不高于阈值,则对话系统可以确定后续语音输入与先前语音输入不相关。在一些实施例中,这样的规则和/或模型可被配置为识别与旁白相关联的词(例如,“嗯”、人名和表明不应将语音输入作为对话的一部分进行处理的其他话语)。
在508处,如果对话系统确定后续语音输入与先前语音输入相关,则对话系统利用先前语音输入来处理后续语音输入。关联语音输入可包括确定不同的话语如何相互关联(例如,在披萨订单中添加饮料)。替代地或附加地,将语音输入后续语音输入与先前语音输入相关可包括更新基于先前语音输入生成的含义表示(例如,通过填充额外的槽、纠正误解等)。
在510处,如果对话系统确定后续语音输入与先前语音输入不相关,则对话系统无视后续语音输入。对话系统可以避免使用被认为不相关的后续语音输入(例如,后续语音输入不用于生成响应或执行动作)。对话系统可以丢弃任何不相关的后续语音输入。因此,继续图3中描述的语音会话的过程还可以包括忽略不相关的语音输入和继续会话。
本文描述的技术提供了多个优点。通过以开放式方式连续监视语音输入,可以消除或减少现有系统的缺陷。如上所述,现有系统通常将对话限制为一个请求和来自系统的一个响应,这可能产生脱节的用户体验。使用本公开的技术,系统可以确定它是应当保持会话并继续对话,还是终止对话。因此,使体验更加合理,从而实现请求中的停顿或中断。这可以减少执行用户请求的功能所需的总时间和处理,因为将不需要每次用户在对话中停顿时重新开始对话、发起新会话等。
上述基础设施可以在各种不同的环境中实现,包括云环境(可以是各种类型的云,包括私有云、公共云和混合云环境)、本地环境、混合环境等。
图6描绘了用于实现实施例的分布式系统600的简化图。在所示出的实施例中,分布式系统600包括一个或多个客户端计算设备602、604、606和608,其经由一个或多个通信网络610耦合到服务器612。客户端计算设备602、604、606和608可被配置为执行一个或多个应用程序。
在各种实施例中,服务器612可以适用于运行一个或多个服务或软件应用程序,这些服务或软件应用程序使得能够跨一个或多个话语进行连续的意图确定。
在某些实施例中,服务器612还可以提供可以包括非虚拟和虚拟环境的其他服务或软件应用程序。在一些实施例中,这些服务可以作为基于web的或云服务(诸如在软件即服务(SaaS)模型下)提供给客户端计算设备602、604、606和/或608的用户。操作客户端计算设备602、604、606和/或608的用户继而可以利用一个或多个客户端应用程序与服务器612进行交互以利用这些组件提供的服务。
在图6所示的配置中,服务器612可包括实现由服务器612执行的功能的一个或多个组件618、620和262。这些组件可包括可由一个或多个处理器、硬件组件或其组合执行的软件组件。应当理解,各种不同的系统配置是可能的,它们可能不同于分布式系统600。因此,图6所示的实施例是用于实现实施例系统的分布式系统的一个示例并且不旨在是限制性的。
根据本公开的教导,用户可以使用客户端计算设备602、604、606和/或608来跨一个或多个话语动态延长对话会话。客户端设备可以提供使该客户端设备的用户能够与该客户端设备进行交互的接口。客户端设备还可以经由该接口向用户输出信息。虽然图6仅描绘了四个客户端计算设备,但可以支持任意数量的客户端计算设备。
客户端设备可包括各种类型的计算系统,诸如便携式手持设备、通用计算机(诸如个人计算机和膝上型计算机)、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息传递设备、传感器或其他传感设备等。这些计算设备可以运行各种类型和版本的软件应用程序和操作系统(例如,Microsoft
Figure BDA0003542296670000261
Apple
Figure BDA0003542296670000262
或类UNIX操作系统、Linux或类Linux操作系统(诸如Google ChromeTM OS)),包括各种移动操作系统(例如,Microsoft Windows
Figure BDA0003542296670000271
Windows
Figure BDA0003542296670000272
AndroidTM
Figure BDA0003542296670000273
Palm
Figure BDA0003542296670000274
)。便携式手持设备可包括蜂窝电话、智能电话(例如,
Figure BDA0003542296670000275
)、平板计算机(例如,
Figure BDA0003542296670000276
)、个人数字助理(PDA)等。可穿戴设备可包括Google
Figure BDA0003542296670000277
头戴式显示器和其他设备。游戏系统可包括各种手持游戏设备、支持因特网的游戏设备(例如,带有或不带有
Figure BDA0003542296670000278
手势输入设备的Microsoft
Figure BDA0003542296670000279
游戏机、Sony
Figure BDA00035422966700002710
系统、由
Figure BDA00035422966700002711
提供的各种游戏系统等)等。客户端设备可能能够执行各种不同的应用程序,诸如各种与因特网相关的应用程序、通信应用程序(例如,电子邮件应用程序、短消息服务(SMS)应用程序),并且可以使用各种通信协议。
一个或多个网络610可以是本领域技术人员熟悉的任何类型的网络,其可以支持使用多种可用协议中的任何一种的数据通信,这些协议包括但不限于TCP/IP(传输控制协议/因特网协议)、SNA(系统网络架构)、IPX(因特网分组交换)、
Figure BDA00035422966700002712
等。仅作为示例,一个或多个网络610可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟专用网络(VPN)、内联网、外联网、公共交换电话网络(PSTN)、红外线网络、无线网络(例如,在任何电气和电子协会(IEEE)1002.11协议套件下运行的网络、Bluetooth
Figure BDA00035422966700002713
和/或任何其他无线协议)和/或这些和/或其他网络的任何组合。
服务器612可以由一个或多个通用计算机、专用服务器计算机(例如包括PC(个人计算机)服务器、
Figure BDA00035422966700002714
服务器、中端服务器、大型计算机、机架式服务器等)、服务器群、服务器集群或任何其他适当的布置和/或组合。服务器612可以包括一个或多个运行虚拟操作系统的虚拟机,或涉及虚拟化的其他计算架构,诸如可以被虚拟化以维护服务器的虚拟存储设备的一个或多个灵活的逻辑存储设备池。在各种实施例中,服务器612可适于运行提供前述公开中描述的功能的一个或多个服务或软件应用程序。
服务器612中的计算系统可以运行一个或多个操作系统,包括上面讨论的那些中的任何一个,以及任何可商购获得的服务器操作系统。服务器612还可以运行多种额外服务器应用程序和/或中间层应用程序中的任何一个,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、
Figure BDA0003542296670000281
服务器、数据库服务器等。示例性数据库服务器包括但不限于可从
Figure BDA0003542296670000282
Figure BDA0003542296670000283
(国际商业机器公司)等商购获得的那些。
在一些实施方式中,服务器612可以包括一个或多个应用程序以分析和整合从客户端计算设备602、604、606和608的用户接收的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可包括但不限于
Figure BDA0003542296670000284
馈送、
Figure BDA0003542296670000285
更新或从一个或多个第三方信息源和连续数据流接收的实时更新,其可包括与传感器数据应用程序、金融行情收报机、网络性能测量工具(例如,网络监视和流量管理应用程序)、点击流分析工具、汽车流量监视等有关的实时事件。服务器612还可包括一个或多个应用程序以经由客户端计算设备602、604、606和608的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统600还可包括一个或多个数据储存库614、616。在某些实施例中,这些数据储存库可用于存储数据和其他信息。例如,数据储存库614、616中的一个或多个可用于存储诸如对话历史之类的信息。数据储存库614、616可以驻留在各种位置。例如,服务器612所使用的数据储存库可以在服务器612本地或者可以远离服务器612并经由基于网络的或专用连接与服务器612通信。数据储存库614、616可以是不同类型的。在某些实施例中,服务器612所使用的数据储存库可以是数据库,例如关系数据库,诸如由
Figure BDA0003542296670000286
和其他供应商提供的数据库。这些数据库中的一个或多个可适于响应于SQL格式的命令而实现往返数据库的数据的存储、更新和检索。
在某些实施例中,数据储存库614、616中的一个或多个也可被应用程序用来存储应用程序数据。应用程序所使用的数据存储库可以是不同类型的,例如键值存储库、对象存储库或文件系统支持的通用存储库。
在某些实施例中,本公开中描述的对话会话扩展功能可以经由云环境作为服务提供。图7是根据某些实施例的基于云的系统环境的简化框图,在该基于云的系统环境中,各种对话会话相关服务可以作为云服务来提供。在图7所示的实施例中,云基础设施系统702可以提供一个或多个云服务,用户可以使用一个或多个客户端计算设备704、706和708来请求这一个或多个云服务。云基础设施系统702可包括一个或多个计算机和/或服务器。云基础设施系统702中的计算机可被组织为通用计算机、专用服务器计算机、服务器群、服务器集群或任何其他适当的布置和/或组合。
一个或多个网络710可以促进客户端704、706和708与云基础设施系统702之间的通信和数据交换。一个或多个网络710可包括一个或多个网络。网络可以是相同的类型或不同的类型。一个或多个网络710可以支持包括有线和/或无线协议在内的一种或多种通信协议以促进通信。
图7中描绘的实施例仅是云基础设施系统的一个示例并且不旨在是限制性的。应当理解,在一些其他实施例中,云基础设施系统702可以具有比图7中描绘的那些更多或更少的组件,可以组合两个或更多个组件,或者可以具有不同的组件配置或组件布置。例如,虽然图7描绘了三个客户端计算设备,但在备选实施例中可以支持任意数量的客户端计算设备。
术语“云服务”通常用于指代由服务提供商的系统(例如,云基础设施系统702)按需并经由诸如因特网之类的通信网络提供给用户的服务。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统不同于客户自己的本地服务器和系统。云服务提供商的系统由云服务提供商管理。因此,客户可以利用云服务提供商提供的云服务,而无需为服务购买单独的许可证、支持或硬件和软件资源。例如,云服务提供商的系统可以托管应用程序,并且用户可以经由因特网按需订购和使用该应用程序,而用户不必购买用于执行该应用程序的基础设施资源。云服务被设计为提供对应用程序、资源和服务的简单、可扩展的访问。若干提供商提供云服务。例如,加利福尼亚州红衫海岸的
Figure BDA0003542296670000301
提供了若干云服务,诸如中间件服务、数据库服务、Java云服务等。
在某些实施例中,云基础设施系统702可以使用不同的模型(诸如在软件即服务(SaaS)模型、平台即服务(PaaS)模型、基础设施即服务(IaaS)模型和包括混合服务模型的其他模型下)来提供一个或多个云服务。云基础设施系统702可包括应用程序套件、中间件、数据库以及其他使得能够提供各种云服务的资源。
SaaS模型使应用程序或软件能够通过像因特网一样的通信网络作为服务交付给客户,而客户不必为底层应用程序购买硬件或软件。例如,SaaS模型可用于向客户提供对由云基础设施系统702托管的按需应用程序的访问。
Figure BDA0003542296670000302
提供的SaaS服务的示例包括但不限于用于人力资源/资本管理、客户关系管理(CRM)、企业资源规划(ERP)、供应链管理(SCM)、企业绩效管理(EPM)、分析服务、社交应用程序等的各种服务。
IaaS模型通常用于将基础设施资源(例如,服务器、存储、硬件和网络资源)作为云服务提供给客户,以提供弹性计算和存储能力。
Figure BDA0003542296670000303
提供各种IaaS服务。
PaaS模型通常用于作为服务来提供平台和环境资源,这些平台和环境资源使客户能够开发、运行和管理应用程序和服务,而客户不必采购、构建或维护这样的资源。
Figure BDA0003542296670000304
提供的PaaS服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)、数据管理云服务、各种应用程序开发解决方案服务等。
云服务通常以按需自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式提供。例如,客户可以经由订阅订单订购由云基础设施系统702提供的一个或多个服务。云基础设施系统702然后执行处理以提供在客户的订阅订单中请求的服务。例如,云基础设施系统702使用历史上下文来影响对话任务。云基础设施系统702可被配置为提供一个或甚至多个云服务。
云基础设施系统702可以经由不同的部署模型来提供云服务。在公共云模型中,云基础设施系统702可以由第三方云服务提供商拥有并且云服务被提供给任何普通公共客户,其中客户可以是个人或企业。在某些其他实施例中,在私有云模型下,云基础设施系统702可以在组织内(例如,在企业组织内)运行并且向该组织内的客户提供服务。例如,客户可以是企业的各个部门,诸如人力资源部、工资部等,甚至是企业内的个人。在某些其他实施例中,在社区云模型下,云基础设施系统702和所提供的服务可以由相关社区中的若干组织共享。也可以使用各种其他模型,诸如上述模型的混合。
客户端计算设备704、706和708可以是不同类型的(诸如在图6中描绘的设备602、604、606和608)并且可能能够操作一个或多个客户端应用程序。用户可以使用客户端设备与云基础设施系统702进行交互,诸如以请求由云基础设施系统702提供的服务。例如,用户可以使用客户端设备来请求本公开中描述的对话会话相关服务。
在一些实施例中,由云基础设施系统702执行的用于提供对话会话相关服务的处理可以涉及大数据分析。该分析可能涉及使用、分析和操纵大型数据集以检测和可视化数据内的各种趋势、行为、关系等。该分析可由一个或多个处理器执行,从而可能并行处理数据、使用数据执行模拟等。例如,大数据分析可以由云基础设施系统702执行,以用于基于接收到的语音输入来识别意图。用于该分析的数据可包括结构化数据(例如,存储在数据库中或根据结构化模型结构化的数据)和/或非结构化数据(例如,数据blob(二进制大对象))。
如图7中的实施例所示,云基础设施系统702可包括基础设施资源730,其用于促进由云基础设施系统702提供的各种云服务的供应。例如,基础设施资源730可包括处理资源、存储或存储器资源、网络资源等。
在某些实施例中,为了促进这些资源的有效供应以支持由云基础设施系统702为不同客户提供的各种云服务,可以将资源捆绑到资源集或资源模块(也称为“pod”)中。每个资源模块或pod可包括一种或多种类型的资源的预集成和优化组合。在某些实施例中,可以为不同类型的云服务预先供应不同的pod,这些云服务可包括上面针对服务器212描述的那些。例如,可以为数据库服务供应第一组pod,可以为Java服务供应可包括与第一组pod中的pod不同的资源组合的第二组pod,等等。对于某些服务,可以在服务之间共享为了供应服务而分配的资源。
云基础设施系统702本身可以在内部使用由云基础设施系统702的不同组件共享并便于云基础设施系统702供应服务的服务732。这些内部共享服务可以包括但不限于安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、用于启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
云基础设施系统702可包括多个子系统。这些子系统可以以软件或硬件或其组合来实现。如图7所示,子系统可包括使云基础设施系统702的用户或客户能够与云基础设施系统702进行交互的用户接口子系统712。用户接口子系统712可包括各种不同的接口,诸如web接口714、在线商店接口716(其中云基础设施系统702提供的云服务被做广告并且可由消费者购买)以及其他接口718。例如,客户可以使用客户端设备来请求(服务请求734)由云基础设施系统702使用接口714、716和718中的一个或多个提供的一个或多个服务。例如,客户可以访问在线商店,浏览云基础设施系统702提供的云服务,并为客户希望订阅的由云基础设施系统702提供的一个或多个服务下订阅订单。服务请求可包括标识客户以及该客户希望订阅的一个或多个服务的信息。例如,客户可以为由云基础设施系统702提供的对话会话相关服务下订阅订单。作为订单的一部分,客户可以提供标识请求的语音输入。
在诸如图7所示的实施例之类的某些实施例中,云基础设施系统702可包括被配置为处理新订单的订单管理子系统(OMS)720。作为该处理的一部分,OMS 720可被配置为:为客户创建一个帐户,如果尚未完成的话;从客户接收计费和/或会计信息,这些信息将用于针对将所请求的服务提供给客户向客户收费;验证客户信息;经过验证之后,为客户预订订单;以及协调各种工作流程以便为了供应而准备订单。
一旦正确验证,OMS 720然后可以调用订单供应子系统(OPS)724,OPS 724被配置为为订单供应资源,包括处理、存储器和网络资源。供应可包括为订单分配资源和配置这些资源以促进客户订单所请求的服务。为订单供应资源的方式和所供应的资源的类型可能取决于客户已订购的云服务的类型。例如,根据一个工作流程,OPS 724可被配置为确定所请求的特定云服务并识别可能已经为该特定云服务预先配置的多个pod。为订单分配的pod的数量可能取决于所请求的服务的大小/数量/级别/范围。例如,可以基于服务要支持的用户的数量、请求服务的持续时间等来确定要分配的pod的数量。然后可以为特定的请求客户定制所分配的pod,以提供所请求的服务。
云基础设施系统702可以向请求客户发送响应或通知744以指示所请求的服务何时现在准备好使用。在某些情况下,可以将信息(例如,链接)发送给客户,该信息使客户能够开始使用所请求的服务和利用所请求的服务的好处。在某些实施例中,对于请求对话会话相关服务的客户,响应可包括基于识别出的意图生成的响应。
云基础设施系统702可以向多个客户提供服务。对于每个客户,云基础设施系统702负责管理与从客户接收到的一个或多个订阅订单有关的信息,维护与这些订单有关的客户数据,以及将所请求的服务提供给客户。云基础设施系统702还可以收集关于客户对订阅服务的使用的使用统计。例如,可以收集所使用的存储量、所传输的数据量、用户数量以及系统运行时间和系统停机时间的量等的统计。该使用信息可用于向客户收费。例如,可以按照每月的周期进行计费。
云基础设施系统702可以并行地向多个客户提供服务。云基础设施系统702可以存储这些客户的信息,包括可能的专有信息。在某些实施例中,云基础设施系统702包括身份管理子系统(IMS)728,该身份管理子系统(IMS)728被配置为管理客户信息并提供被管理信息的分离,使得与一个客户有关的信息不能被另一个客户访问。IMS728可被配置为提供各种与安全相关的服务,诸如身份服务,诸如信息访问管理、认证和授权服务、用于管理客户身份和角色以及相关能力的服务等。
图8示出了可以用于实现某些实施例的示例性计算机系统800。例如,在一些实施例中,计算机系统800可用于实现上面描述的ASR子系统、NLU子系统以及各种服务器和计算机系统中的任何一个。如图8所示,计算机系统800包括包括处理子系统804在内的各种子系统,处理子系统804经由总线子系统802与多个其他子系统进行通信。这些其他子系统可包括处理加速单元806、I/O子系统808、存储子系统818和通信子系统824。存储子系统818可包括包括存储介质822在内的非暂时性计算机可读存储介质以及系统存储器810。
总线子系统802提供了一种用于让计算机系统800的各种组件和子系统按预期相互通信的机制。尽管总线子系统802被示意性地示出为单个总线,但是总线子系统的替代实施例可以利用多个总线。总线子系统802可以是多种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、使用多种总线架构中的任何一种的本地总线等。例如,此类架构可包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及可以被实现为按照IEEE P1386.1标准制造的夹层总线的外围组件互连(PCI)总线等。
处理子系统804控制计算机系统800的操作并且可包括一个或多个处理器、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。处理器可包括单核或多核处理器。计算机系统800的处理资源可被组织成一个或多个处理单元832、834等。处理单元可包括一个或多个处理器、来自相同或不同处理器的一个或多个内核、内核和处理器的组合、或内核和处理器的其他组合。在一些实施例中,处理子系统804可以包括一个或多个专用协处理器,诸如图形处理器、数字信号处理器(DSP)等。在一些实施例中,处理子系统804的一些或全部处理单元可以使用诸如专用集成电路(ASIC)或现场可编程门阵列(FPGA)之类的定制电路来实现。
在一些实施例中,处理子系统804中的处理单元可以执行存储在系统存储器810中或存储在计算机可读存储介质822上的指令。在各种实施例中,处理单元可以执行各种程序或代码指令并且可以维护多个同时执行的程序或进程。在任何给定时间,要执行的一些或全部程序代码可以驻留在系统存储器810中和/或在计算机可读存储介质822上,包括可能在一个或多个存储设备上。通过适当的编程,处理子系统804可以提供上述各种功能。在计算机系统800正在执行一个或多个虚拟机的情况下,可以将一个或多个处理单元分配给每个虚拟机。
在某些实施例中,可以可选地提供处理加速单元806以用于执行定制处理或用于卸载由处理子系统804执行的一些处理以使由计算机系统800执行的整体处理加速。
I/O子系统808可包括用于将信息输入到计算机系统800和/或用于从或经由计算机系统800输出信息的设备和机制。通常,术语“输入设备”的使用旨在包括所有可能类型的用于将信息输入到计算机系统800的设备和机制。用户界面输入设备可以例如包括键盘、诸如鼠标或轨迹球之类的指点设备、触摸板或并入显示器的触摸屏、滚轮、点击轮、拨号盘、按钮、开关、小键盘、带有语音命令识别系统的音频输入设备、麦克风以及其他类型的输入设备。用户界面输入设备还可包括运动传感和/或手势识别设备,诸如使用户能够控制输入设备并与之交互的Microsoft
Figure BDA0003542296670000351
运动传感器、Microsoft
Figure BDA0003542296670000352
360游戏控制器、提供用于接收使用手势和口说命令的输入的接口的设备。用户界面输入设备还可包括眼睛手势识别设备,诸如Google Glass
Figure BDA0003542296670000353
Figure BDA0003542296670000354
眨眼检测器,其检测用户的眼睛活动(例如,在拍照和/或进行菜单选择时“眨眼”)并将眼睛手势转换为对输入设备(例如,Google
Figure BDA0003542296670000361
)的输入。此外,用户界面输入设备可包括使用户能够通过语音命令与语音识别系统进行交互的语音识别传感设备。
用户界面输入设备的其他示例包括但不限于三维(3D)鼠标、操纵杆或指点杆、游戏手柄和图形输入板以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和眼睛注视跟踪设备。此外,用户界面输入设备可以例如包括医学成像输入设备,诸如计算断层摄影、磁共振成像、位置发射断层摄影和医学超声检查设备。用户界面输入设备还可以例如包括音频输入设备,诸如MIDI键盘、数字乐器等。
通常,术语“输出设备”的使用旨在包括所有可能类型的用于将信息从计算机系统800输出到用户或其他计算机的设备和机制。用户界面输出设备可包括显示子系统、指示灯或非视觉显示器,诸如音频输出设备等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏等。例如,用户界面输出设备可以包括但不限于以视觉方式传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备和调制解调器。
存储子系统818提供储存库或数据存储,用于存储由计算机系统800使用的信息和数据。存储子系统818提供有形的非暂时性计算机可读存储介质,用于存储提供一些实施例的功能的基本编程和数据结构。存储子系统818可以存储当由处理子系统804执行时提供上述功能的软件(例如,程序、代码模块、指令)。该软件可以由处理子系统804的一个或多个处理单元执行。存储子系统818还可以提供用于存储根据本公开的教导使用的数据的储存库。
存储子系统818可包括一个或多个非暂时性存储器设备,包括易失性和非易失性的存储器设备。如图8所示,存储子系统818包括系统存储器810和计算机可读存储介质822。系统存储器810可包括多个存储器,包括用于在程序执行期间存储指令和数据的易失性主随机存取存储器(RAM)和其中存储固定指令的非易失性只读存储器(ROM)或闪存。在一些实施方式中,包含有助于在计算机系统800内的元件之间传输信息(诸如在启动期间)的基本例程的基本输入/输出系统(BIOS)通常可以存储在ROM中。RAM通常包含当前由处理子系统804操作和执行的数据和/或程序模块。在一些实施方式中,系统存储器810可包括多种不同类型的存储器,诸如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)等。
作为示例而非限制,如图8所示,系统存储器810可以加载正在执行的应用程序812,其可以包括各种应用程序,诸如Web浏览器、中间层应用程序、关系数据库管理系统(RDBMS)等、程序数据814和操作系统816。例如,操作系统816可包括各种版本的Microsoft
Figure BDA0003542296670000371
Apple
Figure BDA0003542296670000372
和/或Linux操作系统、各种可商购获得的
Figure BDA0003542296670000373
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0003542296670000374
OS等)和/或移动操作系统,诸如iOS、
Figure BDA0003542296670000375
Phone、
Figure BDA0003542296670000376
OS、
Figure BDA0003542296670000377
OS、
Figure BDA0003542296670000378
OS操作系统等。
计算机可读存储介质822可以存储提供一些实施例的功能的编程和数据结构。计算机可读介质822可以为计算机系统800提供计算机可读指令、数据结构、程序模块和其他数据的存储。当由处理子系统804执行时提供上述功能的软件(程序、代码模块、指令)可以存储在存储子系统818中。例如,计算机可读存储介质822可包括非易失性存储器,诸如硬盘驱动器、磁盘驱动器、诸如CD ROM之类的光盘驱动器、DVD、
Figure BDA0003542296670000379
光盘或其他光学介质。计算机可读存储介质822可以包括但不限于
Figure BDA00035422966700003710
驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字录像带等。计算机可读存储介质822还可包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存的SSD、企业闪存驱动器、固态ROM等),基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM、基于DRAM的SSD、磁阻RAM(MRAM)SSD),以及使用DRAM和基于闪存的SSD的混合SSD。
在某些实施例中,存储子系统818还可以包括计算机可读存储介质读取器820,其还可以连接到计算机可读存储介质822。读取器820可以接收并被配置为从诸如磁盘、闪存驱动器等的存储器设备中读取数据。
在某些实施例中,计算机系统800可以支持虚拟化技术,包括但不限于处理和存储器资源的虚拟化。例如,计算机系统800可以为执行一个或多个虚拟机提供支持。在某些实施例中,计算机系统800可以执行诸如促进虚拟机的配置和管理的管理程序之类的程序。可以为每个虚拟机分配存储器、计算(例如,处理器、内核)、I/O和网络资源。每个虚拟机通常独立于其他虚拟机运行。虚拟机通常运行其自己的操作系统,该操作系统可以与由计算机系统800执行的其他虚拟机执行的操作系统相同或不同。因此,多个操作系统可能潜在地由计算机系统800同时运行。
通信子系统824提供到其他计算机系统和网络的接口。通信子系统824用作用于从其他系统接收数据和从计算机系统800向其他系统发送数据的接口。例如,通信子系统824可以使计算机系统800能够经由因特网建立到一个或多个客户端设备的通信信道,用于从客户端设备接收信息和向客户端设备发送信息。例如,通信子系统可用于与数据库进行通信以执行查询以识别可请求的实体。
通信子系统824可以支持有线和/或无线的通信协议。例如,在某些实施例中,通信子系统824可包括射频(RF)收发器组件,用于访问无线语音和/或数据网络(例如,使用蜂窝电话技术、先进的数据网络技术,诸如3G、4G或EDGE(全球增强型数据速率演进)、WiFi(IEEE802.XX系列标准,或其他移动通信技术,或其任意组合)、全球定位系统(GPS)接收器组件和/或其他组件。在一些实施例中,通信子系统824可以提供有线网络连接(例如,以太网)作为无线接口的补充或替代。
通信子系统824可以以各种形式接收和发送数据。例如,在一些实施例中,除了其他形式之外,通信子系统824可以接收结构化和/或非结构化数据馈送826、事件流828、事件更新830等形式的输入通信。例如,通信子系统824可被配置为实时接收(或发送)来自社交媒体网络和/或其他通信服务的用户的数据馈送826,诸如
Figure BDA0003542296670000391
馈送、
Figure BDA0003542296670000392
更新、诸如丰富站点摘要(RSS)馈送之类的web馈送和/或来自一个或多个第三方信息源的实时更新。
在某些实施例中,通信子系统824可被配置为接收连续数据流形式的数据,其可包括实时事件的事件流828和/或事件更新830,其本质上可以是连续的或无界的且没有明确的结束。生成连续数据的应用程序的示例可以例如包括传感器数据应用程序、金融行情收报机、网络性能测量工具(例如,网络监视和流量管理应用程序)、点击流分析工具、汽车流量监视等。
通信子系统824还可被配置为将数据从计算机系统800传送到其他计算机系统或网络。数据可以以各种不同的形式(诸如结构化和/或非结构化数据馈送826、事件流828、事件更新830等)传送到一个或多个数据库,这一个或多个数据库可以与一个或多个耦合到计算机系统800的流数据源计算机通信。
计算机系统800可以是各种类型中的一种,包括手持便携式设备(例如,
Figure BDA0003542296670000393
蜂窝电话、
Figure BDA0003542296670000394
计算平板计算机、PDA)、可穿戴设备(例如,Google
Figure BDA0003542296670000395
头戴式显示器)、个人计算机、工作站、大型机、信息亭、服务器机架或任何其他数据处理系统。由于计算机和网络的不断变化的性质,图8中描绘的计算机系统800的描述仅旨在作为特定示例。具有比图8所示系统更多或更少的组件的许多其他配置是可能的。基于本文提供的公开和教导,本领域普通技术人员将理解实现各种实施例的其他方式和/或方法。
尽管已经描述了特定实施例,但是各种修改、变更、替代构造和等价物是可能的。实施例不限于某些特定数据处理环境内的操作,而是可以在多个数据处理环境内自由操作。此外,虽然已经使用特定系列的事务和步骤描述了某些实施例,但是对于本领域技术人员来说应该清楚的是,这并不旨在是限制性的。尽管一些流程图将操作描述为顺序过程,但许多操作可以并行或同时执行。此外,可以重新排列操作的顺序。一个过程可能具有图中未包括的其他步骤。上述实施例的各种特征和方面可以单独使用或联合使用。
另外,虽然已经使用硬件和软件的特定组合描述了某些实施例,但是应该认识到硬件和软件的其他组合也是可能的。某些实施例可以仅以硬件、或仅以软件、或使用其组合来实现。本文中描述的各种过程可以在同一处理器或任意组合的不同处理器上实现。
在设备、系统、组件或模块被描述为被配置为执行某些操作或功能的情况下,此类配置可以例如通过将电子电路设计为执行操作、通过将可编程电子电路(诸如微处理器)编程为执行操作(诸如通过执行计算机指令或代码)或被编程为执行存储在非暂时性存储介质上的代码或指令的处理器或内核或其任意组合来实现。进程可以使用多种技术进行通信,包括但不限于用于进程间通信的常规技术,并且不同对的进程可以使用不同的技术,或者同一对进程可以在不同的时间使用不同的技术。
在本公开中给出具体细节以提供对实施例的透彻理解。然而,可以在没有这些具体细节的情况下实践实施例。例如,众所周知的电路、过程、算法、结构和技术已经在没有不必要的细节的情况下被示出以避免混淆实施例。该描述仅提供示例实施例,并不旨在限制其他实施例的范围、适用性或配置。而是,实施例的前述描述将为本领域技术人员提供用于实现各种实施例的使能描述。可以对元件的功能和布置进行各种改变。
因此,说明书和附图被认为是说明性的而不是限制性的。然而,将显而易见的是,可以对其进行添加、减少、删除和其他修改和改变而不脱离如在权利要求中阐述的更广泛的精神和范围。因此,尽管已经描述了具体实施例,但这些并不旨在是限制性的。各种修改和等价物都在以下权利要求的范围内。

Claims (20)

1.一种计算机实现的方法,包括:
由对话系统发起对话会话;
由所述对话系统接收第一语音输入;
由所述对话系统检测第一语音输入中的指示第一口说话语的完成的停顿;
由所述对话系统基于第一口说话语来确定所述对话会话的停止条件,其中所述停止条件指示将使所述对话会话延长的第一时间值;
由所述对话系统确定所述对话会话的停止条件未被满足;和
响应于确定所述停止条件未被满足,将所述对话会话延长至少由所述停止条件指示的第一时间值。
2.如权利要求1所述的方法,还包括:
由所述对话系统确定所述对话会话处于多个配置状态中的特定状态,
其中,所述对话系统基于所确定的状态来确定所述对话会话的停止条件。
3.如权利要求1或权利要求2所述的方法,还包括:
由所述对话系统基于第一语音输入来生成响应;和
由所述对话系统输出所述响应。
4.如权利要求3所述的方法,其中,在确定所述停止条件未被满足之前执行生成和输出所述响应。
5.如任一前述权利要求所述的方法,还包括:
由所述对话系统接收第二语音输入;
由所述对话系统检测第二语音输入中的指示第二口说话语的完成的第二停顿;和
由所述对话系统基于第二口说话语来确定所述对话会话的第二停止条件,其中第二停止条件指示将使所述对话会话延长的第二时间值。
6.如权利要求5所述的方法,还包括:
由所述对话系统基于第一语音输入和第二语音输入来识别意图。
7.如权利要求5或权利要求6所述的方法,还包括:
由所述对话系统基于第一语音输入或第二语音输入中的一个或多个来生成响应;和
由所述对话系统输出所述响应。
8.如权利要求7所述的方法,还包括:
在输出所述响应之后,由所述对话系统确定第二停止条件被满足;和
由所述对话系统终止所述对话会话。
9.如权利要求5至8中的任一项所述的方法,其中:
所述对话系统基于以下各项中的一项或多项来确定第二停止条件:停顿的长度、第一语音输入或第二语音输入。
10.如任一前述权利要求所述的方法,其中,发起所述对话会话包括以下各项中的一项或多项:
检测唤醒词;或
检测与开始按钮的交互。
11.如任一前述权利要求所述的方法,还包括:
由所述对话系统接收第三语音输入;
基于第三语音输入和第一语音输入,由所述对话系统确定第三语音输入与第一语音输入无关;和
由所述对话系统无视第三语音输入。
12.一种存储可由一个或多个处理器执行的多条指令的非暂时性计算机可读存储器,所述多条指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
发起对话会话;
接收第一语音输入;
检测第一语音输入中的指示第一口说话语的完成的停顿;
基于第一口说话语来确定所述对话会话的停止条件,其中所述停止条件指示将使所述对话会话延长的第一时间值;
确定所述对话会话的停止条件未被满足;和
响应于确定所述停止条件未被满足,将所述对话会话延长至少由所述停止条件指示的第一时间值。
13.如权利要求12所述的非暂时性计算机可读存储器,所述处理还包括:
确定所述对话会话处于多个配置状态中的特定状态,
其中,基于所确定的状态来确定所述对话会话的停止条件。
14.如权利要求12或权利要求13所述的非暂时性计算机可读存储器,所述处理还包括:
基于第一语音输入来生成响应;和
输出所述响应,其中在确定所述停止条件未被满足之前执行生成和输出所述响应。
15.如权利要求12至14中的任一项所述的非暂时性计算机可读存储器,所述处理还包括:
接收第二语音输入;
检测第二语音输入中的指示第二口说话语的完成的第二停顿;和
基于第二口说话语来确定所述对话会话的第二停止条件,其中第二停止条件指示将使所述对话会话延长的第二时间值。
16.如权利要求15所述的非暂时性计算机可读存储器,所述处理还包括:
基于第一语音输入和第二语音输入来识别意图。
17.一种系统,包括:
一个或多个处理器;
耦合到所述一个或多个处理器的存储器,所述存储器存储可由所述一个或多个处理器执行的多个指令,所述多个指令包括当由所述一个或多个处理器执行时使所述一个或多个处理器执行处理的指令,所述处理包括:
发起对话会话;
接收第一语音输入;
检测第一语音输入中的指示第一口说话语的完成的停顿;
基于第一口说话语来确定所述对话会话的停止条件,其中所述停止条件指示将使所述对话会话延长的第一时间值;
确定所述对话会话的停止条件未被满足;和
响应于确定所述停止条件未被满足,将所述对话会话延长至少由所述停止条件指示的第一时间值。
18.如权利要求17所述的系统,所述处理还包括:
确定所述对话会话处于多个配置状态中的特定状态,
其中,所述停止条件未被满足的确定是基于所确定的状态的。
19.如权利要求17或权利要求18所述的系统,所述处理还包括:
基于第一语音输入来生成响应;和
输出所述响应,其中在确定所述停止条件未被满足之前执行生成和输出所述响应。
20.如权利要求17至19中的任一项所述的系统,所述处理还包括:
接收第二语音输入;
检测第二语音输入中的指示第二口说话语的完成的第二停顿;
基于第二口说话语来确定所述对话会话的第二停止条件,其中第二停止条件指示将使所述对话会话延长的第二时间值;和
基于第一语音输入和第二语音输入来识别意图。
CN202080063827.0A 2019-09-12 2020-07-09 动态上下文对话会话扩展 Active CN114365215B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962899645P 2019-09-12 2019-09-12
US62/899,645 2019-09-12
US16/923,483 2020-07-08
US16/923,483 US11551665B2 (en) 2019-09-12 2020-07-08 Dynamic contextual dialog session extension
PCT/US2020/041460 WO2021050159A1 (en) 2019-09-12 2020-07-09 Dynamic contextual dialog session extension

Publications (2)

Publication Number Publication Date
CN114365215A true CN114365215A (zh) 2022-04-15
CN114365215B CN114365215B (zh) 2024-02-23

Family

ID=71948749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080063827.0A Active CN114365215B (zh) 2019-09-12 2020-07-09 动态上下文对话会话扩展

Country Status (5)

Country Link
US (1) US11551665B2 (zh)
EP (1) EP4029011A1 (zh)
JP (1) JP2022548064A (zh)
CN (1) CN114365215B (zh)
WO (1) WO2021050159A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210034276A (ko) * 2019-09-20 2021-03-30 현대자동차주식회사 대화 시스템, 대화 처리 방법 및 전자 장치
US11393477B2 (en) * 2019-09-24 2022-07-19 Amazon Technologies, Inc. Multi-assistant natural language input processing to determine a voice model for synthesized speech
US11120790B2 (en) 2019-09-24 2021-09-14 Amazon Technologies, Inc. Multi-assistant natural language input processing
KR20210044985A (ko) * 2019-10-16 2021-04-26 엘지전자 주식회사 음성 처리 방법 및 음성 처리 장치
US20210211422A1 (en) * 2020-01-06 2021-07-08 Vmware, Inc. Voice skill session lifetime management
CN113362828B (zh) * 2020-03-04 2022-07-05 阿波罗智联(北京)科技有限公司 用于识别语音的方法和装置
US11960790B2 (en) * 2021-05-27 2024-04-16 Microsoft Technology Licensing, Llc Spatial attention model enhanced voice engagement system
CN113282708B (zh) * 2021-05-31 2023-04-07 平安国际智慧城市科技股份有限公司 机器人对话回复的方法、装置、计算机设备及存储介质
US11887584B2 (en) * 2021-06-18 2024-01-30 Stmicroelectronics S.R.L. Vocal command recognition
US20230008868A1 (en) * 2021-07-08 2023-01-12 Nippon Telegraph And Telephone Corporation User authentication device, user authentication method, and user authentication computer program
US11922938B1 (en) 2021-11-22 2024-03-05 Amazon Technologies, Inc. Access to multiple virtual assistants

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796787A (zh) * 2014-05-20 2017-05-31 亚马逊技术有限公司 在自然语言处理中使用先前对话行为进行的语境解释
CN107004407A (zh) * 2015-09-03 2017-08-01 谷歌公司 增强型语音端点确定
CN107068147A (zh) * 2015-10-19 2017-08-18 谷歌公司 语音端点确定
CN107810529A (zh) * 2015-06-29 2018-03-16 亚马逊技术公司 语言模型语音端点确定
US20190034554A1 (en) * 2017-07-28 2019-01-31 Lenovo (Singapore) Pte. Ltd. Extend conversational session waiting time
CN109564757A (zh) * 2016-08-17 2019-04-02 索尼公司 对话控制装置和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001245447A1 (en) * 2000-03-06 2001-09-17 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
GB0113583D0 (en) * 2001-06-04 2001-07-25 Hewlett Packard Co Speech system barge-in control
EP1376999A1 (en) * 2002-06-21 2004-01-02 BRITISH TELECOMMUNICATIONS public limited company Spoken alpha-numeric sequence entry system with repair mode
EP2825983A1 (en) * 2012-03-15 2015-01-21 Vibrant Media, Inc. Systems and methods for delivery techniques of contextualized services on mobile devices
US10403273B2 (en) * 2016-09-09 2019-09-03 Oath Inc. Method and system for facilitating a guided dialog between a user and a conversational agent
US11397888B2 (en) * 2018-06-14 2022-07-26 Accenture Global Solutions Limited Virtual agent with a dialogue management system and method of training a dialogue management system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106796787A (zh) * 2014-05-20 2017-05-31 亚马逊技术有限公司 在自然语言处理中使用先前对话行为进行的语境解释
CN107810529A (zh) * 2015-06-29 2018-03-16 亚马逊技术公司 语言模型语音端点确定
CN107004407A (zh) * 2015-09-03 2017-08-01 谷歌公司 增强型语音端点确定
CN107068147A (zh) * 2015-10-19 2017-08-18 谷歌公司 语音端点确定
CN109564757A (zh) * 2016-08-17 2019-04-02 索尼公司 对话控制装置和方法
US20190034554A1 (en) * 2017-07-28 2019-01-31 Lenovo (Singapore) Pte. Ltd. Extend conversational session waiting time

Also Published As

Publication number Publication date
WO2021050159A1 (en) 2021-03-18
US11551665B2 (en) 2023-01-10
JP2022548064A (ja) 2022-11-16
EP4029011A1 (en) 2022-07-20
US20210082397A1 (en) 2021-03-18
CN114365215B (zh) 2024-02-23

Similar Documents

Publication Publication Date Title
CN114365215B (zh) 动态上下文对话会话扩展
US11935521B2 (en) Real-time feedback for efficient dialog processing
WO2021050170A1 (en) Reduced training intent recognition techniques
US11501065B2 (en) Semantic parser including a coarse semantic parser and a fine semantic parser
US11551676B2 (en) Techniques for dialog processing using contextual data
US11810553B2 (en) Using backpropagation to train a dialog system
US11790901B2 (en) Task-oriented dialog suitable for a standalone device
US11403462B2 (en) Streamlining dialog processing using integrated shared resources
CN112487156A (zh) 减少使用数据库的对话系统的训练
US20240144923A1 (en) Using a generative adversarial network to train a semantic parser of a dialog system
US11462208B2 (en) Implementing a correction model to reduce propagation of automatic speech recognition errors
EP3792912B1 (en) Improved wake-word recognition in low-power devices
US20210081799A1 (en) Compressing neural networks for natural language understanding

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
GR01 Patent grant
GR01 Patent grant