CN111566727B - 全双工语音对话中的多阶段响应 - Google Patents

全双工语音对话中的多阶段响应 Download PDF

Info

Publication number
CN111566727B
CN111566727B CN201880085943.5A CN201880085943A CN111566727B CN 111566727 B CN111566727 B CN 111566727B CN 201880085943 A CN201880085943 A CN 201880085943A CN 111566727 B CN111566727 B CN 111566727B
Authority
CN
China
Prior art keywords
response
primary
supplemental
speech output
voice
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.)
Active
Application number
CN201880085943.5A
Other languages
English (en)
Other versions
CN111566727A (zh
Inventor
周力
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN111566727A publication Critical patent/CN111566727A/zh
Application granted granted Critical
Publication of CN111566727B publication Critical patent/CN111566727B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/02User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/50Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
    • H04M3/527Centralised call answering arrangements not requiring operator intervention
    • 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
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M3/00Automatic or semi-automatic exchanges
    • H04M3/42Systems providing special services or facilities to subscribers
    • H04M3/487Arrangements for providing information services, e.g. recorded voice services or time announcements
    • H04M3/493Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
    • H04M3/4936Speech interaction details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • 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/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/1822Parsing for meaning understanding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/07User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail characterised by the inclusion of specific contents
    • H04L51/10Multimedia information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/22Synchronisation circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Acoustics & Sound (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本公开提供了用于通过电子对话代理在语音对话中进行响应的方法和装置。可以在音频上行流中接收语音输入。响应于所述语音输入,可以生成主要响应和至少一个补充响应。可以基于所述主要响应来生成主要语音输出。可以基于所述至少一个补充响应来生成至少一个补充语音输出。可以在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。

Description

全双工语音对话中的多阶段响应
背景技术
电子对话代理,例如人工智能(AI)聊天机器人,正变得越来越流行,并且正应用于越来越多的场景。聊天机器人可以在例如即时消息、社交网络、智能手机个人助手、可穿戴设备、IoT智能设备等中实现。除了通过文本进行聊天之外,聊天机器人还可以通过语音与用户聊天。在一些实施方式中,聊天机器人被设计为与用户进行全双工语音对话,以便实现更复杂的交互行为。
发明内容
提供本发明内容以便介绍一组概念,这组概念将在以下的具体实施方式中做进一步描述。本发明内容并非旨在标识所保护主题的关键特征或必要特征,也不旨在用于限制所保护主题的范围。
本公开的实施例提出了用于通过电子对话代理在语音对话中进行响应的方法和装置。可以在音频上行流中接收语音输入。响应于所述语音输入,可以生成主要响应和至少一个补充响应。可以基于所述主要响应来生成主要语音输出。可以基于所述至少一个补充响应来生成至少一个补充语音输出。可以在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
应当注意,以上一个或多个方面包括以下详细描述以及权利要求中具体指出的特征。下面的说明书及附图详细提出了所述一个或多个方面的某些说明性特征。这些特征仅仅指示可以实施各个方面的原理的多种方式,并且本公开旨在包括所有这些方面和其等同变换。
附图说明
以下将结合附图描述所公开的多个方面,这些附图被提供用以说明而非限制所公开的多个方面。
图1示出了全双工语音对话的示例性应用场景。
图2示出了用于在全双工语音对话中进行响应的示例性处理流程。
图3示出了根据实施例的用于在语音对话中实现多阶段响应机制的示例性过程。
图4示出了根据实施例的示例性语音对话。
图5示出了根据实施例的用于在语音对话中进行响应的示例性方法。
图6示出了根据实施例的用于在语音对话中进行响应的示例性处理流程。
图7示出了根据实施例的示例性语音对话。
图8示出了根据实施例的用于在语音对话中进行响应的示例性方法。
图9示出了根据实施例的用于在语音对话中进行响应的示例性处理流程。
图10示出了根据实施例的示例性语音对话。
图11示出了根据实施例的用于在语音对话中进行响应的示例性方法。
图12示出了根据实施例的用于在语音对话中进行响应的示例性处理流程。
图13示出了根据实施例的示例性语音对话。
图14示出了根据实施例的用于在语音对话中进行响应的示例性方法。
图15示出了根据实施例的用于在语音对话中进行响应的示例性处理流程。
图16示出了根据实施例的用于通过电子对话代理在语音对话中进行响应的示例性方法的流程图。
图17示出了根据实施例的用于在语音对话中进行响应的示例性装置。
图18示出了根据实施例的用于在语音对话中进行响应的示例性装置。
具体实施方式
现在将参考多种示例性实施方式来讨论本公开。应当理解,这些实施方式的讨论仅仅用于使得本领域技术人员能够更好地理解并从而实施本公开的实施例,而并非教导对本公开的范围的任何限制。
通常,在聊天机器人和用户之间的全双工语音对话期间,聊天机器人保持两个时间同步的音频流:一个是连续音频上行流,用于接收用户的语音输入,另一个是连续音频下行流,用于提供由聊天机器人生成的语音输出。因此,聊天机器人和用户可以彼此同时和双向通信。通过实时识别音频上行流中的语音输入中的语音信息,即使用户尚未完成语音输入,聊天机器人也可以开始准备要在音频下行流中提供的语音输出。全双工语音对话使得聊天机器人能够更快地生成响应并提供语音输出。
在接收到用户输入的消息之后,传统的聊天机器人仅提供对该消息的单个响应。也就是说,在聊天机器人和用户之间的对话期间,聊天机器人以1:1对等交互模式提供响应。然而,当实际应用全双工语音对话时,其同时且双向通信方式有时需要更复杂的非对等交互模式而不是1:1对等交互模式。例如,当两个人通过电话或面对面彼此交谈时,他们的对话不必保持1:1对等性。一方可以说得更多,而另一方可以听得更多,说得更少。此外,人们通常先说出简短的确认或短语,然后在仔细思考之后补充更详细的内容。如果聊天机器人可以以与上述人与人对话类似的方式工作,则有助于改善聊天机器人的用户体验。
本公开的实施例提出了用于聊天机器人在语音对话中进行响应的多阶段响应机制,其中,语音对话可以是基于音频流的任何类型的语音对话,例如全双工语音对话。在本文中,多阶段响应机制可以指通过生成一个以上的响应,例如主要响应和至少一个补充响应,来响应单个语音输入,并且因此提供一个以上的语音输出,例如主要语音输出和至少一个补充语音输出。主要响应可以是对语音输入的直接响应,例如对语音输入中的问题的回答。而至少一个补充响应可以是对主要响应的添加或补充,并且旨在填充空闲时间段,在该空闲时间段期间准备主要响应和主要语音输出或者不再接收到进一步的有效语音输入,以便使语音对话更加顺畅并使聊天机器人的行为更为拟人化。通过多阶段响应机制,当在音频上行流中从用户接收到语音输入时,聊天机器人可以响应于语音输入,生成主要响应和至少一个补充响应。聊天机器人可以在提供与主要响应相对应的主要语音输出之前或之后,在音频下行流中提供与至少一个补充响应相对应的至少一个补充语音输出。例如,可以在音频下行流中与主要语音输出相邻的时间段期间提供至少一个补充语音输出。
通过在主要语音输出之前提供补充语音输出,可以缩短用户感觉到的延时。通过在主要语音输出之后提供补充语音输出,可以优化语音对话的非对等体验。因此,本公开的实施例可以使聊天机器人和用户之间的语音对话更自然并且更接近人与人之间的对话。
应当理解,下文中使用的术语“语音对话”是指基于音频流的任何类型的语音对话,例如音频上行流和/或音频下行流。虽然这种“语音对话”在下面的一些段落中被称为“全双工语音对话”,但是它也可以被称为各种其他表达,例如“基于流的语音对话”、“实时语音对话”等,并且所有这些表达可以互换使用。此外,在以下讨论中,术语“用户”可以指正在消费由聊天机器人提供的自动聊天服务的聊天参与者,并且可以是真人或虚拟人,例如电子聊天参与者。
图1示出了全双工语音对话的示例性应用场景100。在场景100中,电子对话代理110,例如聊天机器人,正在与用户120进行全双工语音对话。聊天机器人110在连续音频上行流中从用户120接收语音输入,并在连续音频下行流中提供语音输出。
聊天机器人110可以包括连续语音识别(CSR)模块112。语音识别可以将音频剪辑作为输入并将识别的文本作为输出。CSR模块112可以实时地对连续音频上行流执行连续语音识别,其中,音频上行流包括与来自用户120的语音输入相对应的多个音频剪辑。CSR模块112可以提供两种类型的文本输出,例如中间SR结果和最终SR结果。中间SR结果表示对语音输入的一部分的部分识别,例如用户说出的语句的一部分,其通常在说出了每个新的音节、字符、词语或短语等之后产生。最终SR结果表示在用户120完成语音输入,例如说出了整个语句,之后的对语音输入的完整识别。因此,用户120所说的每个语句可以产生多个中间SR结果和一个最终SR结果。
聊天机器人110可以包括语言预测(LP)模块114,其基于来自CSR模块112的中间SR结果来尝试预测用户的语音输入的整个文本。例如,LP模块114可以尝试利用可能的剩余部分来补充语句的一部分以使语句完整,从而使得聊天机器人110甚至在用户120完成整个语音输入之前就“开始思考”。
聊天机器人110可以包括对话引擎(CE)模块116。可以应用传统对话引擎以基于来自用户的文本输入来生成聊天机器人的文本响应。CE模块116可以将来自中间SR结果的语言预测文本语句或来自最终SR结果的完整文本语句作为输入,并生成相应的文本响应候选作为输出。
聊天机器人110可以包括文本到语音(TTS)转换模块118,其可以将由CE模块116生成的文本响应转换为语音输出,例如至少一个音频剪辑。由TTS转换模块118生成的音频剪辑可以作为语音输出在音频下行流中提供给用户120。
在场景100中,由于聊天机器人110可以对来自用户120的语音输入执行连续语音识别,因此聊天机器人110可以为由CSR模块112获得的中间SR结果和最终SR结果中的每一者建立单个处理线程。每个线程调用LP模块114、CE模块116和TTS转换模块118,以便通过该线程生成候选语音输出。换言之,聊天机器人110在处理语音输入期间并行地保持一个或多个线程。考虑到比最终SR结果更早地获得中间SR结果,对应于中间SR结果的那些线程也将比对应于最终SR结果的线程更早地生成候选语音输出。因此,如果确定某个线程中的LP结果与最终SR结果匹配,即,LP模块114基于该线程中的中间SR结果做出正确预测,则可以选择该线程的候选语音输出作为要提供给用户的最终语音输出。通过这种方式,聊天机器人110可以更快地向用户120提供语音输出,而不需要等待与最终SR结果相对应的线程的处理结果。
应当理解,如上所述的聊天机器人110中的所有模块都是示例性的,并且取决于具体应用设计和需求,可以在聊天机器人110中包括更多或更少的模块。此外,可以采用各种现有技术或方法以用于实现聊天机器人110中的每个模块。
图2示出了用于在全双工语音对话中进行响应的示例性处理流程200。处理流程200可以基于图1中所示的应用场景100。
来自用户的语音输入202可以在音频上行流中发生。假设用户打算在语音输入202中说出“讲个笑话”的语句。
在204处,可以在音频上行流中接收语音输入202期间,对语音输入202执行连续语音识别(CSR)。
假设通过CSR首先获得中间SR结果210,即词语“讲”,则可以为该中间SR结果210建立线程1。在线程1中,在212处,根据中间SR结果210做出语言预测(LP)。例如,可以根据中间SR结果“讲”来生成LP结果“讲给我”。然后,在214处,对话引擎(CE)可以用于基于LP结果来生成文本响应。例如,可以基于LP结果“讲给我”来生成文本响应“发生了什么事?”在216处,可以对在214处获得的文本响应执行文本到语音(TTS)转换,以便生成候选语音输出218,其是对应于文本响应“发生了什么事?”的音频剪辑。
假设由CSR进一步获得中间SR结果220,即短语“讲个”,则可以为该中间SR结果220建立线程2。在线程2中,在222处,可以根据中间SR结果“讲个”来生成LP结果“讲个笑话”。然后,CE可以在224处基于LP结果“讲个笑话”来生成文本响应“这是件有趣的事……”。文本响应“这是件有趣的事……”还用于在226处通过TTS生成候选语音输出228。
假设由CSR进一步获得最终SR结果230,即语句“讲个笑话”,则可以为该最终SR结果230建立线程3。在线程3中,可以由CE在232处基于最终SR结果“讲个笑话”来生成文本响应“这是件有趣的事……”。文本响应“这是件有趣的事……”还用于在234处通过TTS生成候选语音输出236。
随同用户在语音输入202中说出更多的词语一起顺序地建立图2中的线程1、线程2和线程3。因此,这些线程可以在不同的时间点生成候选语音输出。例如,可以比候选语音输出228更早地获得候选语音输出218,并且可以比候选语音输出236更早地获得候选语音输出228等。
在一种实施方式中,在获得最终SR结果230之后,可以执行该最终SR结果230与其他线程中的那些LP结果之间的匹配,以便确定哪个线程是基于对语音输入202的正确预测的。例如,在图2的示例中,可以确定在线程2中在222处获得的LP结果“讲个笑话”与最终SR结果230匹配。因此,可以在音频下行流中向用户提供线程2的候选语音输出228作为最终语音输出。可以看出,线程2的候选语音输出228在内容方面与线程3的候选语音输出236相同,但是比候选语音输出236更早获得。通过在音频下行流中提供候选语音输出228,而不是等待候选语音输出236的生成,聊天机器人可以更快地对语音输入202进行响应。
应当理解,尽管图2的示例涉及基于从语音输入202识别的词语建立的三个示例性线程,但是还可以基于从语音输入202识别的音节、字符、短语等中的至少一者来建立更多或更少的线程。尽管在图2中示出了每个线程最终生成候选语音输出,但是当从这些线程识别出匹配的LP结果时,或当在音频下行流中提供了对应于匹配的LP结果的候选语音输出时,也可能不是每个线程都生成其候选语音输出。在这种情况下,可以立即停止或去除那些尚未完成其过程的线程。
以上已结合图1和图2讨论了全双工语音对话的示例性实施方式。应当理解,提出下面讨论的本公开的实施例不仅用于图1和图2中的全双工语音对话的示例性实施方式,还用于基于音频流的语音对话的任何其他实施方式。
图3示出了根据实施例的用于在语音对话中实现多阶段响应机制的示例性过程300。
根据过程300,聊天机器人可以监视从用户到聊天机器人的音频上行流310。可以由聊天机器人从音频上行流310检测用户的语音输入320。在接收语音输入320期间,聊天机器人可以应用多阶段响应机制330,以便生成至少一个语音输出340,其用于对语音输入320进行响应。至少一个语音输出340可以包括主要语音输出和至少一个补充语音输出。可以在从聊天机器人到用户的音频下行流350中进一步向用户提供至少一个语音输出340。
图3中的多阶段响应机制330可以统称为根据本公开实施例的用于在语音对话中进行响应的任何机制。在一种实施方式中,多阶段响应机制330可以是填充响应机制332,其将在下面结合图4至图6详细讨论。在一种实施方式中,多阶段响应机制330可以是意图执行响应机制334,其将在下面结合图7至图9详细讨论。在一种实施方式中,多阶段响应机制330可以是集体后续响应机制336,其将在下面结合图10至图12详细讨论。在一种实施方式中,多阶段响应机制330可以是递归后续响应机制338,其将在下面结合图13至图15详细讨论。
应当理解,尽管下面分别讨论了各种多阶段响应机制,但是可以根据具体应用设计和需求将这些机制中的任何几种组合在一起。
在一些情况下,虽然人可以以非常节省时间的方式倾听、思考和说话,但当人们在对话期间彼此交谈时,仍然不可能在对方说完语句后立即提供每个答复。为了让对方知道他或她已经开始考虑答复,在给出最终答复之前,通常会说一个或多个填充词,例如“嗯”、“好吧”、“让我想想”等。人类对话中的这种对话惯例对于聊天机器人的设计也起着重要作用,以使聊天机器人能够保持聊天机器人与用户之间的语音对话的节奏。通过在聊天机器人准备最终响应期间通过填充词作为早期确认进行响应,聊天机器人可以让用户知道他的语音输入未被遗漏,从而避免用户不必要地重复语音输入。由于填充词只是在上下文上与用户语音输入中的内容相独立的几个预定的和固定的表达范例,因此聊天机器人在用户的语音输入之后立即基于填充词提供额外的语音输出相对容易,从而缩短在听到聊天机器人提供的最终语音输出之前用户感觉到的延时。
本公开的实施例提出一种填充响应机制,其可以配置用于响应于用户的语音输入,在提供主要语音输出之前提供至少一个补充语音输出,其中,基于至少一个填充词来生成至少一个补充语音输出,并且主要语音输出包括作为对用户的语音输入的直接和实质性答复的内容。在本文中,术语“词语”可以指一个或多个词语、短语、字符等。
图4示出了根据实施例的示例性语音对话400。语音对话400可以基于例如填充响应机制。在聊天机器人和用户之间的聊天窗口中示意性地示出语音对话400。
用户可以在音频上行流中提供语音输入402,例如“嗨”。聊天机器人可以在音频下行流中通过语音输出404,例如“早上好”,进行响应。
用户还可以在音频上行流中提供语音输入406,例如“讲个笑话”。在接收语音输入406期间,聊天机器人可以应用填充响应机制。通过填充响应机制,聊天机器人可以首先提供补充语音输出408,例如“好吧”,然后提供主要语音输出410,例如“这是件有趣的事……”。补充语音输出408是至少基于填充词“好吧”生成的,并且在聊天机器人准备主要语音输出410期间在音频下行流中提供。
应当理解,图4中的聊天窗口是示例性的,并且取决于具体应用需求,可以在布局、包含的元素等方面以各种方式改变聊天窗口。此外,尽管语音对话400是在视觉聊天窗口中呈现的,但在聊天机器人是在没有或禁用显示功能的智能设备,例如没有显示屏幕的智能扬声器,中实现的一些情况下也可以省略视觉聊天窗口。
图5示出了根据实施例的用于在语音对话中进行响应的示例性方法500。方法500可以是填充响应机制的示例性实施方式。
语音输入510可以由聊天机器人在聊天机器人与用户之间的语音对话中在音频上行流中从用户接收。
在接收语音输入510期间,聊天机器人可以对语音输入510执行连续语音识别(CSR)。通过CSR,可以获得至少一个中间SR结果520,例如中间SR结果1、中间SR结果2等。
如上所述,对于每个中间SR结果,可以建立线程。在每个线程中,可以对相应的中间SR结果执行语言预测(LP)以便生成可以被视为对语音输入510的预测的LP结果。因此,在方法500中,可以生成至少一个LP结果522,例如LP结果1、LP结果2等。以中间SR结果1为例,可以建立线程1,其中可以通过对中间SR结果1执行LP来生成LP结果1。
在每个线程中,可以调用对话引擎(CE)以用于基于相应的LP结果来生成候选主要响应。因此,在方法500中,可以获得至少一个候选主要响应524,例如候选主要响应1、候选主要响应2等。以线程1为例,候选主要响应1可以由CE基于LP结果1生成。
在每个线程中,可以对相应的候选主要响应执行文本到语音(TTS)转换,以便生成候选主要语音输出。因此,在方法500中,可以生成至少一个候选主要语音输出526,例如候选主要语音输出1、候选主要语音输出2等。以线程1为例,候选主要语音输出1可以是通过对候选主要响应1执行TTS转换而生成的。
通过CSR,可以获得最终SR结果530,其是完整语音输入510的SR结果。
在540处,可以在最终SR结果530和至少一个LP结果522之间执行匹配,以便找出匹配的LP结果550并相应地找出匹配的线程。匹配的LP结果550可以指示应当从其获得要提供给用户的主要语音输出的特定线程。换言之,匹配的LP结果550可用于在560处从至少一个候选主要语音输出526提取主要语音输出。假设将线程2中的LP结果2确定为匹配的LP结果,并且相应地线程2是匹配的线程,则可以提取通过线程2获得的候选主要语音输出2作为要提供给用户的最终主要语音输出。
在590处,可以在音频下行流中向用户提供所提取的主要语音输出。
方法500可以尝试在完成对语音输入510的接收的时间点和提供主要语音输出的时间点之间的时间段期间提供基于至少一个填充词的至少一个补充语音输出。
在一种情况下,如果建立的线程足够高效地工作,则在完成对语音输入510的接收或由CSR产生最终SR结果530的时间点处,通过匹配线程获得的候选主要语音输出有可能已准备好提供给用户。在这种情况下,从填充词生成的任何补充语音输出决不是必需的,因为聊天机器人可以直接提供主要语音输出。
否则,在大多数情况下,由于可能花费相当长的时间来执行CE和TTS,所以在完成对语音输入510的接收或者CSR产生最终SR结果530的时间点处,匹配的线程可能尚未生成候选主要语音输出,因此存在在完成对语音输入510的接收的时间点和提供主要语音输出的时间点之间的端到端延时期间提供补充语音输出的机会。聊天机器人可以预计的端到端延时越长,可以添加补充语音输出的可能性就越大。
在一种实施方式中,可以将端到端延时计算为CE处理时间加上TTS处理时间减去LP时间增益,其中,LP时间增益是指完成对语音输入510的接收的时间点与通过LP预测LP结果的时间点之间的时间差。预计的CE处理时间,即CE处理时间的估计值,取决于CE的具体实施方式,例如基于规则的CE、基于搜索的CE、基于生成方法的CE、基于混合模型的CE等。预计的TTS处理时间,即TTS处理时间的估计值,取决于CE产生的文本响应的长度。
根据方法500,当找到匹配的LP结果550时,还确定匹配的线程。因此,可以在570处确定是否满足用于提供基于至少一个填充词572的补充语音输出的标准。可以部分地基于由匹配线程引起的端到端延时和至少一个填充词572的输出的持续时间来建立标准,其中,至少一个填充词572的输出的持续时间可以指在假设将基于至少一个填充词572来生成语音输出的情况下,基于至少一个填充词572生成的语音输出的持续时间。
如果匹配线程中的CE在CSR产生最终SR结果530的时间点已经生成候选主要响应,则可以如下计算端到端延时:
其中,Texpected表示匹配线程引起的端到端延时,表示匹配线程中的实际CE处理时间,/>表示CE基于匹配线程中的LP结果来生成的候选主要响应的实际长度,/>表示匹配线程中的预计TTS处理时间,并且/>表示匹配线程中的实际LP时间增益。
否则,如果匹配线程中的CE在CSR产生最终SR结果530的时间点尚未生成候选主要响应,则CE处理时间的估计值以及要生成的候选主要响应的长度的估计值也是必需的,然后可以如下计算端到端延时:
其中,Texpected表示由匹配线程引起的端到端延时,表示CE基于匹配线程中的LP结果来生成候选主要响应的预计CE处理时间,/>表示CE在匹配线程中要生成的候选主要响应的预计长度,/>表示匹配线程中的预计TTS处理时间,并且/>表示匹配线程中的实际LP时间增益。
在一种实施方式中,根据该标准,如果至少一个填充词572的输出的持续时间以预定概率在端到端延时的持续时间内,则可以判定可以提供基于至少一个填充词572的补充语音输出。预定概率可以是任何先前设定的值,例如100%、90%、80%等。假设端到端延时符合例如正态分布N(λ,σ),并且至少一个填充词572的输出的持续时间为K毫秒,即基于至少一个填充词572生成的音频剪辑持续K毫秒,则可以如下评估所述判定:
K≤λ-ZTable(0.8)σ (方程3)
应当理解,可以以各种方法确定至少一个填充词572。例如,至少一个填充词572可以随机从预定填充词集合中选择,在考虑是否可以满足标准的情况下从预定填充词集合中选择等。
如果在570处确定满足标准,则可以以各种方法,基于至少一个填充词572来生成补充响应574。例如,补充响应574可以直接从至少一个填充词572生成,通过将至少一个填充词572与任何其他词语组合生成等等。然后,可以通过TTS,基于补充响应574来生成补充语音输出576。在580处,可以在音频下行流中向用户提供补充语音输出576。应当理解,由于生成和提供补充语音输出的过程通常比生成和提供主要语音输出的过程更快,因此可以比主要语音输出更早地在音频下行流中提供补充语音输出。然而,在音频下行流中提供补充语音输出期间,如果准备好提供主要语音输出,则可以中断对补充语音输出的提供,并且替代地,在音频下行流中开始提供主要语音输出。
如果在570处确定不满足标准,则方法500可以放弃对提供任何补充语音输出的尝试。
应当理解,方法500是示例性的,并且本公开将涵盖应用于方法500中的步骤的任何添加、删除、替换和重新排序。在一种实施方式中,不是使用文本格式的填充词,而是方法500也可以采用预先记录或缓存的填充音频剪辑。在这种情况下,570处的判定所涉及的标准可以部分地直接基于填充音频剪辑的持续时间,并且填充音频剪辑可以作为补充语音输出直接提供给用户,而不需要执行生成补充响应574和补充语音输出576的步骤。在一种实施方式中,尽管图5中示出了在560处从至少一个候选主要语音输出526提取主要语音输出,但当执行560处的提取时,不要求所有线程已经生成了它们各自的候选主要语音输出或者甚至已经生成了它们各自的候选主要响应。实际上,当执行560处的提取时,很可能仅有包括匹配线程的少数线程已经生成候选主要语音输出,而其他线程仍在进行中。
图6示出了根据实施例的用于在语音对话中进行响应的示例性处理流程600。处理流程600基于填充响应机制,并且可以被视为对图2中的处理流程200的改进。
除了在提供主要语音输出228之前在音频下行流中向用户提供补充语音输出610之外,处理流程600与图2中的处理流程200类似。具体地,在获得了最终SR结果230之后,处理流程600还可以根据图5中的方法500确定是否满足用于提供基于填充词,例如“好吧”,的补充语音输出的标准。假设满足标准,则补充语音输出610可以被生成并相应地在音频下行流中提供。
在一些情况下,聊天机器人和用户之间的语音对话可以涉及任务的执行。例如,在语音对话中,用户可以请求聊天机器人执行任务。在本文中,任务可以指涉及多方交互、复杂过程等的操作或过程,并且与在纯聊天场景中做出响应相比,花费更长的时间来执行。例如,任务可以涉及控制目标智能设备,例如打开灯、设置闹钟、调整空调的目标温度等。例如,任务可以涉及从第三方服务平台获得特定服务,例如通过叫车应用呼叫出租车,在售票机构网站上订票等。
一方面,由于任务的执行可能花费相当长的时间,因此聊天机器人也可能需要很长时间来在语音对话中向用户返回任务的执行结果。例如,如果用户请求控制目标设备,则聊天机器人可能需要将请求传输到与目标设备相关联的服务器或云服务节点,服务器或云服务节点需要向目标设备发送相应的命令,目标设备根据命令调整其操作状态并将执行结果返回给服务器或云服务节点,服务器或云服务节点将执行结果返回给聊天机器人,最后聊天机器人可以通过提供语音输出向用户告知执行结果。用于控制目标设备的上述过程是耗时的。此外,例如,如果用户请求从第三方服务平台获得特定服务,由于这样的任务涉及与第三方服务平台的交互,因此它也将导致相当长的时间来执行。在任何情况下,从用户接收执行任务的请求与向用户提供执行结果之间的长时间延时将带来更高的风险,即用户可能会疑惑他的任务请求是否已经被理解并被正确地执行。
另一方面,要求关于每个任务请求应当仅执行一次任务的执行。如果用户仅请求执行一次任务,但聊天机器人导致任务执行多次,这是不期待的。
本公开的实施例提出了一种意图执行响应机制,其可以应用于其中聊天机器人和用户之间的语音对话涉及如上所述的任务的执行的应用场景。根据意图执行响应机制,响应于来自用户的请求执行任务的语音输入,在向用户提供指示执行任务的结果的主要语音输出之前,聊天机器人可以首先向用户提供基于任务的意图的补充语音输出,作为聊天机器人已经理解了任务的确认。此外,意图执行响应机制可以通过仅由用户的语音输入的最终SR结果来触发任务的执行来确保任务仅执行一次。
图7示出了根据实施例的示例性语音对话700。语音对话700可以基于例如意图执行响应机制。在聊天机器人和用户之间的聊天窗口中示意性地示出语音对话700。
用户可以在音频上行流中提供语音输入702,例如“将空调设置为高两度”。语音输入702可以指示用户想要请求聊天机器人执行任务,例如将空调的温度升高两摄氏度。
在接收语音输入702期间,聊天机器人可以根据对语音输入702的预测来识别任务的意图是将空调的温度升高两摄氏度。基于任务的意图,聊天机器人可以生成并提供补充语音输出,例如“调整空调”。
在完成了对完整语音输入702的接收,例如获得完整语音输入702的最终SR结果,之后,聊天机器人可以基于完整语音输入702来识别任务的意图。聊天机器人可以进一步基于任务的意图来执行任务,例如直接向空调发送对应于该任务的命令,或者将用户的请求传输到空调的服务器,该服务器按照要求控制空调等。
在完成了任务的执行之后,聊天机器人可以从空调或服务器等接收任务的执行的结果。聊天机器人可以进一步基于任务的执行的结果来生成主要语音输出706,例如“您家的空调已经被设置为27摄氏度”,并且在音频下行流中提供主要语音输出702。
应当理解,图7中的聊天窗口是示例性的,并且取决于具体应用需求,可以在布局、包含的元素等方面以各种方式改变聊天窗口。此外,尽管语音对话700是在视觉聊天窗口中呈现的,但在聊天机器人是在没有或禁用显示功能的智能设备中实现的一些情况下也可以省略视觉聊天窗口。
图8示出了根据实施例的用于在语音对话中进行响应的示例性方法800。方法800可以是意图执行响应机制的示例性实施方式。
可以由聊天机器人在聊天机器人与用户之间的语音对话中在音频上行流中从用户接收语音输入810。语音输入810可以包括用于执行任务的请求。
在接收语音输入810期间,聊天机器人可以对语音输入810执行连续语音识别(CSR)。通过CSR,可以获得至少一个中间SR结果820,例如中间SR结果1、中间SR结果2等。
对于每个中间SR结果,可以建立线程。在每个线程中,可以对相应的中间SR结果执行语言预测(LP),以便生成可以被视为对语音输入810的预测的LP结果。因此,在方法800中,可以生成至少一个LP结果822,例如LP结果1、LP结果2等。以中间SR结果1为例,可以建立线程1,其中可以通过对中间SR结果1执行LP来生成LP结果1。
在每个线程中,可以对相应的LP结果执行语言理解(LU),以便识别任务的意图。因此,在方法800中,可以识别任务意图集合824,例如任务意图1、任务意图2等。以线程1为例,可以由LU基于LP结果1来生成任务意图1。LU可以采用涉及从文本输入导出语义表示的任何现有的自然语言理解技术,其中在方法800中,文本输入可以是LP结果,并且语义表示可以是任务意图。应当理解,可以为要对其执行任务的对象预定义任务意图。例如,假设对象是空调,则可以预定义可能的任务意图列表,例如“打开空调”、“进入睡眠模式”、“将温度升高两摄氏度”等。因此,LU的目的是将LP结果映射到预定义任务意图之一。
在每个线程中,可以基于相应的任务意图来生成候选补充响应。因此,在方法800中,可以获得至少一个候选补充响应826,例如候选补充响应1、候选补充响应2等。以线程1为例,可以基于任务意图1来生成候选补充响应1。在一种实施方式中,可以由任务意图直接形成候选补充响应。例如,如果所识别的任务意图是“打开空调”,则可以由该识别的任务意图直接形成候选补充响应“打开空调”。在一种实施方式中,可以通过生成与任务意图相关的自然语言表达来形成候选补充响应。例如,如果所识别的任务意图是“将温度升高两摄氏度”,则可以将候选补充响应生成为例如“调整空调”、“将空调设置为高两度”等。此处可以采用各种基于学习的语言模型以用于生成与任务意图相关的自然语言表达。
在每个线程中,可以对相应的候选补充响应执行文本到语音(TTS)转换,以便生成候选补充语音输出。因此,在方法800中,可以生成至少一个候选补充语音输出828,例如候选补充语音输出1、候选补充语音输出2等。以线程1为例,可以通过对候选补充响应1执行TTS转换而生成候选补充语音输出1。
通过CSR,可以获得最终SR结果830,其是完整语音输入810的SR结果。
在850处,可以在最终SR结果830和至少一个LP结果822之间执行匹配,以便找出匹配的LP结果860并相应地找出匹配的线程。匹配的LP结果860可以指示应当从其获得要提供给用户的补充语音输出的特定线程。换言之,匹配的LP结果860可以用于在870处从至少一个候选补充语音输出828中提取补充语音输出。假设将线程2中的LP结果2确定为匹配的LP结果,并且相应地线程2是匹配的线程,则可以提取通过线程2获得的候选补充语音输出2作为要提供给用户的最终补充语音输出。
在880处,可以在音频下行流中向用户提供所提取的补充语音输出。
根据方法800,当获得最终SR结果830时,可以对最终SR结果830执行LU,以便识别任务的意图840。然后,在842处,聊天机器人可以触发任务的执行。
在完成了任务的执行之后,可以从例如对其已经执行了任务的对象、对象的服务器或云服务节点等获得任务的执行的结果844。可以以各种方式预定义执行结果844,例如仅指示是否已成功执行任务,描述任务以及执行是否成功等。
可以基于执行结果844来生成主要响应846。在一种实施方式中,可以由执行结果844直接形成主要响应846。例如,如果执行结果是“成功”,则可以直接从该执行结果形成主要响应“成功”,如果执行结果是“空调被成功打开”,则可以直接从该执行结果形成主要响应“空调被成功打开”等。在一种实施方式中,可以通过生成与执行结果相关的自然语言表达来形成主要响应。例如,如果执行结果是“将温度升高两摄氏度,成功”,则可以将主要响应生成为例如“已经成功调整温度”,“已经将空调设置为高2度”等。此处可以采用各种基于学习的语言模型以用于生成与执行结果相关的自然语言表达。
主要语音输出848可以基于主要响应846通过TTS转换来生成的,并且在890处在音频下行流中提供给用户。
应当理解,由于生成和提供补充语音输出的过程通常比执行任务以及进一步生成并提供主要语音输出的过程更快,因此可以比主要语音输出更早地在音频下行流中提供补充语音输出。然而,在音频下行流中提供补充语音输出期间,如果准备好提供主要语音输出,则可以中断对补充语音输出的提供,并且替代地,可以在音频下行流中开始提供主要语音输出。
应当理解,方法800是示例性的,并且本公开将涵盖应用于方法800中的步骤的任何添加、删除、替换和重新排序。在一种实施方式中,尽管在图8中示出了在870处从至少一个候选补充语音输出828中提取补充语音输出,但当执行870处的提取时,并不要求所有线程已经生成了它们各自的候选补充语音输出或者甚至已经生成了它们各自的候选补充响应或它们各自的任务意图。
图9示出了根据实施例的用于在语音对话中进行响应的示例性处理流程900。处理流程900基于意图执行响应机制。
来自用户的语音输入902可以在音频上行流中发生。假设用户打算在语音输入902中说出语句“打开空气净化器”,以便请求执行任务,例如打开空气净化器。
在904处,在音频上行流中接收语音输入902期间对语音输入902执行连续语音识别(CSR)。
假设通过CSR首先获得中间SR结果910,即词语“打开”,则可以为该中间SR结果910建立线程1。在线程1中,在912处,根据中间SR结果910来进行语言预测(LP)。例如,可以根据中间SR结果“打开”来生成LP结果“打开门”。然后,在914处,语言理解(LU)可以用于识别LP结果中指示的任务意图,例如“把门打开”。此外,可以基于任务意图“把门打开”来生成候选补充响应,例如“门开了”。在916处,可以对在914处获得的候选补充响应执行文本到语音(TTS)转换,以便生成候选补充语音输出918,其是对应于候选补充响应“门开了”的音频剪辑。
假设通过CSR进一步获得中间SR结果920,即短语“打开空气”,则可以为该中间SR结果920建立线程2。在线程2中,在922处,可以根据中间SR结果920来生成LP结果“打开空气净化器”。在924处,对LP结果“打开空气净化器”执行LU以便识别任务意图,例如“打开空气净化器”,并相应地生成候选补充响应“空气净化器正在打开”。候选补充响应“空气净化器正在打开”还用于在926处通过TTS生成候选补充语音输出928。
假设通过CSR进一步获得最终SR结果930,即语句“打开空气净化器”,则可以为该最终SR结果930建立线程3。在线程3中,对最终SR结果“打开空气净化器”执行LU,以便识别任务意图,例如“打开空气净化器”。然后,在934处,聊天机器人可以触发任务执行(TE)过程以便打开空气净化器。假设执行任务的结果指示任务已经被成功执行,则可以相应地生成主要响应“空气净化器已经打开”。主要响应进一步用于在936处通过TTS生成主要语音输出938。然后,可以在音频下行流中向用户提供主要语音输出938。
随同用户在语音输入902中说出更多的词语一起顺序地建立图9中的线程1、线程2和线程3。因此,这些线程可以在不同的时间点生成语音输出。特别地,由于线程1和线程2不涉及任务的执行,因此可以比线程3中的主要语音输出938早得多地获得候选补充语音输出918和928。
在一种实施方式中,在获得了最终SR结果930之后,可以执行该最终SR结果930与其他线程中的那些LP结果之间的匹配,以便确定哪个线程是基于对语音输入902的正确预测的。例如,在图9的示例中,可以确定在线程2中在922处获得的LP结果“打开空调”与最终SR结果930相匹配。因此,可以在音频下行流中向用户提供线程2的候选补充语音输出928作为最终补充语音输出。如图9所示,在音频下行流中比主要语音输出938更早地提供候选补充语音输出928。通过在音频下行流中比主要语音输出938更早地提供补充语音输出928,可以避免用户疑惑他的任务请求是否已经被理解并被正确地执行。
应当理解,尽管图9的示例涉及基于从语音输入902识别的词语建立的三个示例性线程,但是可以基于从语音输入902识别的音节、字符、短语等来建立更多或更少的线程。尽管在图9中示出了为中间SR结果建立的每个线程获得候选补充语音输出,但是当从这些线程中识别出匹配的LP结果时,或者当在音频下行流中提供了与匹配的LP结果相对应的补充语音输出时,也可能不是这些线程中的每一个线程都获得其候选补充语音输出。在这种情况下,可以立即停止或去除那些尚未完成其过程的线程。
在一些情况下,在聊天机器人和用户之间的语音对话期间,用户说话可能不太主动。例如,在聊天机器人向用户提供语音输出之后,用户可能长时间保持沉默。在这种情况下,聊天机器人可以尝试多说话,以保持对话流畅进行。
本公开的实施例提出了一种集体后续响应机制,其被配置用于在完成了对主要语音输出的提供的时间点和接收用户的下一语音输入的时间点之间的时间段期间提供至少一个补充语音输出。根据集体后续响应机制,响应于来自用户的语音输入,聊天机器人可以同时生成主要响应和后续响应集合,其中,后续响应集合是一次集体生成的。在向用户提供了基于主要响应的主要语音输出之后,聊天机器人还可以提供基于后续响应的至少一个后续语音输出作为补充语音输出。
图10示出了根据实施例的示例性语音对话1000。语音对话1000可以基于例如集体后续响应机制。在聊天机器人和用户之间的聊天窗口中示意性地示出语音对话1000。
用户可以在音频上行流中提供语音输入1002,例如“今天的气温是多少?”。
响应于语音输入1002,聊天机器人可以同时生成主要响应“今天的气温是28到35摄氏度”和后续响应集合。后续响应集合可以包括例如“今天是晴天”、“2.5级颗粒物是35”、“明天会下雨”等。
聊天机器人可以首先在音频下行流中提供主要语音输出1004,其基于对用户的主要响应而生成。然后,在1006处,聊天机器人可以执行语音活动检测(VAD)以检测在音频上行流中是否发生任何进一步的有效语音输入。
如果在从主要语音输出开始的预定持续时间,例如5秒,内没有有效语音输入,则聊天机器人可以从后续响应集合中提取后续响应,例如“今天是晴天”,并基于所提取的后续响应来生成后续语音输出1008。聊天机器人可以在音频下行流中向用户提供后续语音输出1008作为补充语音输出。然后,在1010处,聊天机器人可以继续语音活动检测以检测在音频上行流中是否发生任何进一步的有效语音输入。
如果在从后续语音输出1008开始的预定持续时间,例如3秒,内没有有效语音输入,则聊天机器人可以从后续响应集合中提取另一个后续响应,例如“2.5级微粒物是35”,并且基于所提取的后续响应来生成另一个后续语音输出1012。聊天机器人可以在音频下行流中向用户提供后续语音输出1012作为另一个补充语音输出。然后,在1014处,聊天机器人可以继续语音活动检测以检测在音频上行流中是否发生任何进一步的有效语音输入。
假设在从后续语音输出1012开始的预定持续时间内检测到有效语音输入,例如从用户接收到进一步语音输入1016“谢谢”,则聊天机器人可以停止从后续响应集合中提取进一步的后续响应,并相应地停止基于后续响应集合来生成进一步的后续语音输出。
聊天机器人可以提供语音输出1018“不客气”,以便对语音输入1016进行响应。
应当理解,图10中的聊天窗口是示例性的,并且取决于具体应用需求,可以在布局、包含的元素等方面以各种方式改变聊天窗口。此外,尽管语音对话1000是在视觉聊天窗口中呈现的,但在聊天机器人是在没有或禁用显示功能的智能设备中实现的一些情况下也可以省略视觉聊天窗口。
图11示出了根据实施例的用于在语音对话中进行响应的示例性方法1100。方法1100可以是集体后续响应机制的示例性实施方式。
可以由聊天机器人在聊天机器人与用户之间的语音对话中在音频上行流中从用户接收语音输入1102。语音输入1102可以包括用于执行任务的请求。
在接收语音输入1102期间,聊天机器人可以对语音输入1102执行连续语音识别(CSR)。聊天机器人可以使用对话引擎(CE)来处理根据中间SR结果的对语音输入1102的正确预测或处理语音输入1102的最终SR结果。通过CE,可以同时生成主要响应1104和后续响应集合1106,其中,后续响应集合1106可以包括例如后续响应1、后续响应2、后续响应3等。主要响应1104可以是对语音输入1102的最佳直接答复,其是根据CE的具体实施方式而生成的。在一种实施方式中,后续响应集合1106中的每一个后续响应也可以是与语音输入1102相关联的合适响应,但是用作主要响应1104的补充。例如,假设语音输入1102是与天气有关的查询,如果主要响应1104涉及气温信息,那么后续响应集合1106可以旨在提供其他方面的天气信息,例如风速、云层覆盖、空气质量等。在一种实施方式中,可以从由CE确定的相对详细响应形成后续响应集合1106。例如,假设除了生成主要响应1104之外,CE还生成包含若干语句的适合于对语音输入1102进行响应的详细响应,则CE可以将详细响应拆分成若干部分,例如逐句拆分,并且这若干部分中的每一个部分可以形成后续响应集合1106中的后续响应。在一种实施方式中,不是作为与语音输入1102相关联的响应,后续响应集合1106还可以包括与语音输入1102不相关的响应,例如新话题。在这种情况下,根据CE的具体实施方式,CE也可以生成与语音输入1102不相关的后续响应集合1106中的那些响应。这是保持用户参与对话的有效方式。
在生成了主要响应1104之后,聊天机器人可以对主要响应1104执行文本到语音(TTS)转换,以便生成主要语音输出1108。然后,在1110处,可以在音频下行流中向用户提供主要语音输出1108。
在提供了主要语音输出1108之后,聊天机器人可以在1112处在从主要语音输出开始的预定持续时间内在音频上行流中执行语音活动检测(VAD)。可以根据各种应用需求手动定义预定持续时间,例如2秒、3秒等。预定持续时间可以从各个时间点开始,例如完成了音频下行流中的对主要语音输出的提供的时间点、在提供主要语音输出期间的任何时间点等。VAD旨在检测音频上行流中的任何明显的人类语音活动,例如有效语音输入。在本文中,有效语音输入是指用户输入的语音,其具有足以被识别的音量,足以包括任何有意义的语句、短语或词语的长度等。例如,如果VAD检测到的语音输入音量太小而无法识别,则可以将该语音输入视为无效语音输入。例如,如果VAD检测到的语音输入长度太短,其可能是例如咳嗽、感叹等,则也可以将该语音输入视为无效语音输入。
在1114处,可以确定VAD是否在预定持续时间内检测到任何有效语音输入。如果是,即用户提供了新的语音输入,则方法1100可以停止尝试基于后续响应集合1106提供任何补充语音输出,并且返回到开始以便处理该新的语音输入。
如果在1114处,确定VAD在预定持续时间期间未检测到任何有效语音输入,则方法1100可以在1116处从后续响应集合1106中提取后续响应。在一种实施方式中,可以基于预定规则对后续响应集合1106进行排名,因此可以在1116处提取排名最高的后续响应。在一种实施方式中,可以从后续响应集合1106中随机提取后续响应。在任何情况下,在1116处提取了后续响应之后,可以通过去除所提取的后续响应来更新后续响应集合1106,以避免在方法1100的随后过程中再次提取相同的后续响应。
聊天机器人可以对所提取的后续响应执行TTS转换,以便生成后续语音输出1118。然后,在1120处,可以在音频下行流中向用户提供后续语音输出1118作为补充语音输出。
在1122处,聊天机器人可以判定是否应当终止提供后续语音输出的过程。1122处的判定可以基于各种终止标准。在一种实施方式中,1122处的终止标准可以基于语音输入1102的内容。例如,如果用户在语音输入1102中指示他想要收听三个最新新闻,则可以在1122处确定通过主要语音输出和可能的先前提供的后续响应提供给用户的新闻数量是否达到阈值数量“三”。在一种实施方式中,1122处的终止标准可以基于聊天机器人和用户之间的对话的上下文。例如,如果上下文暗示用户对体育非常感兴趣,则当用户在语音输入1102中指示他想要收听一些体育新闻时,可以为1122处的终止标准设置相对高的阈值数量,例如十。在一种实施方式中,1122处的终止标准可以基于后续响应集合1106中的剩余后续响应的数量。例如,可以在1122处确定后续响应集合1106是否不包括任何剩余的后续响应。
如果在1122处判定终止,则方法1100将在1124处结束。而如果在1122处判定不终止,则方法1100将返回到1112处的VAD。因此,方法1100将继续遵循图11中的步骤1112到1124的提供下一后续语音输出的过程。例如,聊天机器人可以在从先前语音输出,例如先前提供的后续语音输出,开始的另一预定持续时间内执行VAD。所述另一预定持续时间可与先前执行VAD的预定持续时间相同或不同。基于VAD的检测结果,聊天机器人可以判定下一后续响应是否应当被提取并用于生成要提供给用户的下一后续语音输出。以这种方式,将迭代地执行方法1100,直到检测到新的有效语音输入或满足终止标准为止。
应当理解,方法1100是示例性的,并且本公开将涵盖应用于方法1100中的步骤的任何添加、删除、替换和重新排序。例如,尽管在图11中示出了只有当通过VAD没有检测到有效语音输入时才能提取后续响应,但当通过VAD检测到某种类型的有效语音输入时,也可能会提取后续响应。例如,如果检测到的有效语音输出指示用户想要听到更多后续语音输出,例如用户说“继续”,则提供下一后续语音输出的过程可以继续,而不是返回到方法1100的开始。
图12示出了根据实施例的用于在语音对话中进行响应的示例性处理流程1200。处理流程1200基于集体后续响应机制。
来自用户的语音输入1202可以在音频上行流中发生。
在1210处,在音频上行流中接收语音输入1202期间对语音输入1202执行连续语音识别(CSR)。
在1220处,对话引擎(CE)可以用于基于根据中间SR结果的对语音输入1202的正确预测,或者基于语音输入1202的最终SR结果同时生成主要响应和后续响应集合。
在生成了主要响应时,可以在1230处对主要响应执行文本到语音(TTS)转换,以便生成主要语音输出1240。然后,可以在音频下行流中向用户提供主要语音输出1240。
在一种实施方式中,可以在整个处理流程1200中连续地执行语音活动检测(VAD)1250。
在提供了主要语音输出1240之后,可以确定VAD 1250是否在从先前语音输出,例如主要语音输出,开始的预定持续时间W1内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W1可以从完成了对主要语音输出1240的提供的时间点开始(如图12所示)。然而,预定持续时间W1也可以从其他时间点开始,例如在提供主要语音输出期间的任何时间点等。
根据处理流程1200,在预定持续时间W1内未检测到有效语音输入。然后,可以从后续响应集合中提取后续响应1,并在1232处通过TTS生成后续语音输出1242。在生成了后续语音输出1242时,可以在音频下行流中向用户提供后续语音输出1242作为补充语音输出。
在提供了后续语音输出1242之后,可以确定VAD 1250是否在从先前语音输出,例如后续语音输出1242,开始的预定持续时间W2内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W2可以从完成了对后续语音输出1242的提供的时间点(如图12所示)或在提供后续语音输出1242期间的任何其他时间点等开始。
假设VAD在预定持续时间W2内在音频上行流中检测到语音输入1204,但是由于例如音量低等,该语音输入1204被进一步确定为无效语音输入。因此,处理流程1200可以继续从后续响应集合中提取下一后续响应,例如后续响应2,并且在1234处通过TTS生成下一后续语音输出1244。在生成了后续语音输出1244时,可以在音频下行流中向用户提供后续语音输出1244作为进一步的补充语音输出。
在提供了后续语音输出1244之后,可以确定VAD 1250是否在从先前语音输出,例如后续语音输出1244,开始的预定持续时间W3内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W3可以从完成了对后续语音输出1244的提供的时间点(如图12所示)或在提供后续语音输出1244期间的任何其他时间点等开始。
假设VAD 1250在预定持续时间W3内在音频上行流中检测到有效语音输入1206,则处理流程1200可以停止基于后续响应集合来生成进一步的后续语音输出。例如,后续响应3以及后续响应集合中的任何后继的后续响应将不用于生成后续语音输出并提供给用户。
本公开的实施例还提出了一种递归后续响应机制,其也被配置用于在完成了对主要语音输出的提供的时间点与接收用户的下一语音输入的时间点之间的时间段期间提供至少一个补充语音输出。然而,与集体后续响应机制相比,递归后续响应机制将在生成了主要响应之后通过多次迭代递归地生成后续响应集合,而不是一次生成后续响应集合。例如,递归后续响应机制可以逐个生成后续响应集合,并且仅当满足特定条件时才生成下一后续响应。
当生成后续响应的处理成本和/或延时很高时,在对CE的一次调用内生成所有后续响应的集体后续响应机制将是低效的。例如,如果用户在所有生成的后续响应被处理以提供相应的后续语音输出之前说出新的语音输入,则应当丢弃那些尚未被处理的剩余后续响应。因此,生成这些后续响应的高成本被浪费了。相反,递归后续响应机制调用CE一次生成一个后续响应,并且仅当提供了后续语音输出后满足特定条件时,才会执行对CE的下一次调用,以便生成下一后续响应。因此,即使提供后续语音输出的过程在中间被新的语音输入中断,也不会发生对CE的浪费调用,因此将节省处理资源。
此外,根据集体后续响应机制,由于在通过对CE的单次调用生成了这些后续响应之后,后续响应中包括的内容是静态的,因此不可能支持生成的后续响应中的内容的动态变化,例如在提供后续语音输出的过程期间插入突发新闻。相反,由于递归后续响应机制在即将提供相应的后续语音输出的时候生成后续响应,因此可以灵活地动态调整要生成的下一后续响应中包括的内容。
此外,递归后续响应机制可以实现关于是否继续提供后续语音输出的更灵活和复杂的策略。例如,对于每次调用CE,聊天机器人可以基于语音活动检测(VAD)、对话上下文、最新语音输入等动态地重新评估是否继续该过程。在一些场景中,只要确定继续重新评估,递归后续响应机制就可以支持对后续语音输出的无限提供。
图13示出了根据实施例的示例性语音对话1300。语音对话1300可以基于例如递归后续响应机制。在聊天机器人和用户之间的聊天窗口中示意性地示出语音对话1300。
用户可以在音频上行流中提供语音输入1302,例如“今天的新闻”。
响应于语音输入1302,聊天机器人可以生成包括一条新闻的主要响应,例如“由于台风逼近,今天在香港预计会出现大风。国家海洋局已发出波浪和风暴警报”,并在音频下行流中向用户提供基于主要响应生成的主要语音输入1304。
然后,在1306处,聊天机器人可以执行语音活动检测以检测在音频上行流中是否发生任何进一步的有效语音输入。
假设在从主要语音输出开始的预定持续时间,例如5秒,内没有检测到有效语音输入,聊天机器人可以进一步生成包括另一条新闻的后续响应,例如“第18届上海合作论坛峰会定于6月9日至10日在山东省青岛市举行”。聊天机器人可以基于后续响应来生成后续语音输出1308,并且在音频下行流中向用户提供后续语音输出1308作为补充语音输出。然后,在1310处,聊天机器人可以继续语音活动检测以检测在音频上行流中是否发生任何进一步的有效语音输入。
如果在从后续语音输出1308开始的预定持续时间,例如3秒,内没有检测到有效语音输入,则聊天机器人可以进一步生成包括另一条新闻的第二后续响应,例如“突发新闻!台风艾云尼(Ewiniar)刚刚在2分钟前,即凌晨6点25分,在广东省最南端登陆。风速为每小时70公里”。例如,第二后续响应中包括的新闻可能在准备和提供主要语音输出1304或后续语音输出1308期间刚刚由聊天机器人获得。聊天机器人可以基于第二后续响应来生成后续语音输出1312,并在音频下行流中向用户提供后续语音输出1312作为第二补充语音输出。然后,在1314处,聊天机器人可以继续语音活动检测以检测在音频上行流中是否发生任何进一步的有效语音输入。
假设在从后续语音输出1312开始的预定持续时间内检测到有效语音输入,例如从用户接收到进一步语音输入1316“谢谢”,则聊天机器人可以停止生成进一步的后续响应,相应地停止生成并提供进一步的后续语音输出。
聊天机器人可以提供语音输出1318“不客气”,以便对语音输入1316进行响应。
应当理解,图13中的聊天窗口是示例性的,并且取决于具体应用需求,可以在布局、包含的元素等方面以各种方式改变聊天窗口。此外,尽管语音对话1300是在视觉聊天窗口中呈现的,但在聊天机器人是在没有或禁用显示功能的智能设备中实现的一些情况下也可以省略视觉聊天窗口。
图14示出了根据实施例的用于在语音对话中进行响应的示例性方法1400。方法1400可以是递归后续响应机制的示例性实施方式。
可以由聊天机器人在聊天机器人与用户之间的语音对话中在音频上行流中从用户接收语音输入1402。
在接收语音输入1402期间,聊天机器人可以对语音输入1402执行连续语音识别(CSR)。聊天机器人可以使用对话引擎(CE)来处理根据中间SR结果的对语音输入1402的正确预测,或处理语音输入1402的最终SR结果。通过CE,可以生成主要响应1404,其是根据CE的具体实施方式生成的对语音输入1402的最佳答复。
与主要响应1404一起,CE还可以至少基于语音输入1402来生成伪输入1406。伪输入1406旨在表达在语音输入1402中反映的用户的意图,并且可以是与语音输入1402的内容相同,或者与语音输入1402的内容在语义上相关。例如,如果语音输入1402是“给一些新闻”,则可以将伪输入1406生成为例如“给一些新闻”、“今天的新闻”等。伪输入1406可以稍后用于在方法1400的随后过程中生成后续响应。
在生成了主要响应1404之后,聊天机器人可以对主要响应1404执行文本到语音(TTS)转换,以便生成主要语音输出1408。然后,在1410处,可以在音频下行流中向用户提供主要语音输出1408。
根据方法1400,在提供了主要语音输出1408之后,聊天机器人可以尝试通过多次迭代来递归地生成一个或多个后续响应,并提供相应的后续语音输出。对于单次迭代,聊天机器人将仅生成一个后续响应并提供一个相应的后续语音输出。
在提供了主要语音输出1408之后,聊天机器人可以在1412处在从先前语音输出,例如主要语音输出1408,开始的预定持续时间内在音频上行流中执行语音活动检测(VAD)。持续时间可以从各个时间点开始,例如完成了音频下行流中的对主要语音输出的提供的时间点、在提供主要语音输出期间的任何时间点等。
在1414处,可以确定VAD是否在预定持续时间内检测到任何有效语音输入。如果是,即,用户提供了新的有效语音输入,则方法1400可以停止尝试提供任何补充语音输出,并返回到开始以便处理该新的语音输入。
如果在1414处确定VAD在预定持续时间期间未检测到任何有效语音输入,则聊天机器人可以使用CE来至少基于与先前生成的响应一起生成的伪输入,即与主要响应1404一起生成的伪输入1406,来生成后续响应1416。在一种实施方式中,后续响应1416的生成可以进一步基于对话的上下文。后续响应1416也是与语音输入1402相关联的合适响应,但是用作主要响应1404的补充。例如,假设语音输入1402是与天气有关的查询,如果主要响应1404涉及气温信息,则后续响应1416可以进一步提供关于例如风速等的天气信息。
与后续响应1416一起,CE还可以至少基于语音输入1402来生成新的伪输入1418。与伪输入1406类似,新的伪输入1418也可以旨在表达在语音输入1402中反映的用户意图,并且可以与语音输入1402的内容相同,或者与语音输入1402的内容在语义上相关。伪输入1418可以稍后用于在方法1400的随后迭代中生成下一后续响应。
聊天机器人可以对后续响应1416执行TTS转换,以便生成后续语音输出1420。然后,在1422处,可以在音频下行流中向用户提供后续语音输出1420作为补充语音输出。
在1424处,聊天机器人可以判定是否应当终止提供后续语音输出的过程。1424处的判定可以基于各种终止标准。在一种实施方式中,1424处的终止标准可以基于语音输入1402的内容。例如,如果用户在语音输入1402中指示他想要收听三个最新新闻,则可以在1424处确定已经通过主要语音输出和可能的先前提供的后续响应提供给用户的新闻的数量是否达到阈值数量“三”。在一种实施方式中,1424处的终止标准可以基于对话的上下文。例如,如果上下文暗示用户对体育非常感兴趣,则当用户在语音输入1402中指示他想要收听一些体育新闻时,可以为1424处的终止标准设置相对高的阈值数量,例如十。
如果在1424处判定终止,则方法1400将在1426处结束。而如果在1424处判定不终止,则方法1400将返回1414处的VAD。因此,方法1400将继续执行下一次迭代以遵循图14中的步骤1412到1126的提供下一后续语音输出。例如,在下一次迭代中,聊天机器人可以在从先前语音输出,例如先前提供的后续语音输出,开始的另一预定持续时间内执行VAD。所述另一预定持续时间可与先前执行VAD的预定持续时间相同或不同。基于VAD的检测结果,聊天机器人可以判定是否应当至少基于伪输入,例如与先前的后续响应一起生成的伪输入1418,来生成下一后续响应。如果下一后续响应被生成,则它还用于生成要提供给用户的下一后续语音输出。此外,可以与所述下一后续响应一起生成新的伪输入。以这种方式,将迭代地执行方法1400,直到检测到新的有效语音输入或满足终止标准为止。
应当理解,方法1400是示例性的,并且本公开将涵盖应用于方法1400中的步骤的任何添加、删除、替换和重新排序。例如,尽管在图14中示出了只有当通过VAD没有检测到有效语音输入时才能生成后续响应,但当通过VAD检测到某种类型的有效语音输入时,也可能会生成后续响应。例如,如果检测到的有效语音输出指示用户想要听到更多后续语音输出,则提供下一后续语音输出的过程可以继续,而不是返回到方法1400的开始。
图15示出了根据实施例的用于在语音对话中进行响应的示例性处理流程1500。处理流程1500基于递归后续响应机制。
来自用户的语音输入1502可以在音频上行流中发生。
在1510处,在音频上行流中接收语音输入1502期间,对语音输入1502执行连续语音识别(CSR)。
在1520处,对话引擎(CE)可以用于基于根据中间SR结果的对语音输入1502的正确预测,或者基于语音输入1502的最终SR结果来生成主要响应和伪输入。
在生成了主要响应时,可以在1522处对主要响应执行文本到语音(TTS)转换,以便生成主要语音输出1524。然后,可以在音频下行流中向用户提供主要语音输出1524。
在一种实施方式中,可以在整个处理流程1500中连续地执行语音活动检测(VAD)1550。
在提供了主要语音输出1524之后,可以确定VAD 1550是否在从先前语音输出,例如主要语音输出,开始的预定持续时间W1内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W1可以从完成了对主要语音输出1524的提供的时间点开始(如图15所示),或者从其他时间点开始,例如在提供主要语音输出1524期间的任何时间点等。
假设VAD在预定持续时间W1内在音频上行流中检测到语音输入1504,但是该语音输入1504由于例如长度太短等而被进一步确定为无效语音输入。因此,处理流程1500可以继续执行迭代以用于生成并提供后续语音输出。例如,在1530处,CE可以用于至少基于与先前响应一起生成的伪输入,例如与主要响应一起生成的伪输入,来生成后续响应1。同时,CE还可以生成新的伪输入1。在生成了后续响应1时,可以在1532处对后续响应1执行TTS转换,以便生成后续语音输出1534。然后,可以在音频下行流中向用户提供后续语音输出1534作为补充语音输出。
在提供了后续语音输出1534之后,可以确定VAD 1550是否在从先前语音输出,例如后续语音输出1534,开始的预定持续时间W2内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W2可以从完成了对后续语音输出1534的提供的时间点(如图15所示)或在提供后续语音输出1534期间的任何其他时间点等开始。
假设VAD在预定持续时间W2内没有在音频上行流中检测到任何有效语音输入,则处理流程1500可以继续执行下一次迭代以用于生成并提供进一步的后续语音输出。例如,在1540处,CE可以用于至少基于与先前响应一起生成的伪输入,例如与后续响应1一起生成的新的伪输入1,来生成后续响应2。同时,CE还可以生成新的伪输入2。在生成了后续响应2时,可以在1542处对后续响应2执行TTS转换,以便生成后续语音输出1544。然后,可以在音频下行流中向用户提供后续语音输出1544作为进一步的补充语音输出。
在提供了后续语音输出1544之后,可以确定VAD 1550是否在从先前语音输出,例如后续语音输出1544,开始的预定持续时间W3内在音频上行流中检测到任何有效语音输入。例如,预定持续时间W3可以从完成了对后续语音输出1544的提供的时间点(如图15所示)或在提供后续语音输出1544期间的任何其他时间点等开始。
假设VAD 1550在预定持续时间W3内在音频上行流中检测到有效语音输入1506,则处理流程1500可以停止执行用于尝试提供进一步的后续语音输出的任何进一步的迭代。
应当理解,尽管上面已经分别讨论了多个示例性多阶段响应机制,但是可以根据具体应用设计和需求将这些机制中的任何机制组合在一起。例如,在将意图执行响应机制与填充响应机制组合时,以图7中的对话700为例,作为补充语音输出704“调整空调”的替代,聊天机器人可以提供补充语音输出“好的。调整空调”,其中,填充词“好的”是通过填充响应机制获得的,并且语句“调整空调”是通过意图执行响应机制获得的。例如,在将集体后续响应机制与填充响应机制组合时,以图10中的对话1000为例,作为主要语音输出1004“今天的气温是28至35摄氏度”的替代,聊天机器人可以提供语音输出“嗯,今天的气温是28到35摄氏度”,其中,填充词“嗯”是通过填充响应机制获得的,并且语句“今天的气温是28到35摄氏度”是通过集体后续响应机制获得的。类似地,多阶段响应机制的任何其他组合对于本领域技术人员而言是显而易见的。
当在聊天机器人中实现上述示例性多阶段响应机制中的任何一个或组合时,聊天机器人可以动态地确定在语音对话期间是否应用多阶段响应机制中的某个多阶段响应机制。例如,聊天机器人可以继续检测在音频上行流中是否发生语音输入。当检测到语音输入在音频上行流中发生时,聊天机器人可以首先通过填充响应机制在音频下行流中提供补充语音输出,然后在音频下行流提供主要语音输出。同时,如果检测到语音输入与任务相关,则聊天机器人可以在提供了通过填充响应机制生成的补充语音输出之后,通过意图执行响应机制来另外提供第二补充语音输出,或者提供通过意图执行响应机制生成的第二补充语音输出,而不是通过填充响应机制生成的补充语音输出,然后聊天机器人可以通过意图执行响应机制来提供主要语音输出。在任何情况下,在提供了主要语音输出之后,聊天机器人可以继续检测在音频上行流中是否发生了进一步的有效语音输入。如果在预定时间段内在音频上行流中没有检测到进一步的有效语音输入,则聊天机器人还可以通过集体后续响应机制或递归后续响应机制中的任一机制在音频下行流中提供后续语音输出。然后,聊天机器人可以在第二预定时间段内继续检测有效语音输入,并确定是否通过集体后续响应机制或递归后续响应机制中的任一机制在音频下行流中提供第二后续语音输出,等等。
图16示出了根据实施例的用于通过电子对话代理在语音对话中进行响应的示例性方法1600的流程图。
在1610处,可以在音频上行流中接收语音输入。
在1620处,响应于语音输入,可以生成主要响应和至少一个补充响应。
在1630处,可以基于所述主要响应来生成主要语音输出。
在1640处,可以基于所述至少一个补充响应来生成至少一个补充语音输出。
在1650处,可以在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
在一种实施方式中,在所述时间段期间没有接收到有效语音输入。
在一种实施方式中,所述时间段在完成对所述语音输入的接收的时间点和提供所述主要语音输出的时间点之间。
根据上述实施方式,所述生成所述至少一个补充响应可以包括:基于至少一个填充词来生成所述至少一个补充响应,其中,所述至少一个填充词的输出的持续时间以预定概率在所述时间段的持续时间内。所述生成所述主要响应可以包括:在接收所述语音输入期间生成对所述语音输入的预测;以及基于所述预测来生成所述主要响应。
根据上述实施方式,所述语音输入与任务相关联,并且所述生成所述至少一个补充响应可以包括:在接收所述语音输入期间生成对所述语音输入的预测;基于所述预测来识别所述任务的意图;以及基于所述任务的所述意图来生成所述至少一个补充响应。所述生成所述主要响应可以包括:在完成对所述语音输入的接收之后,基于所述语音输入来识别所述任务的所述意图;基于所述任务的所述意图来执行所述任务;以及基于执行所述任务的结果来生成所述主要响应。
在一种实施方式中,所述时间段在完成对所述主要语音输出的提供的时间点和接收下一语音输入的时间点之间。
根据上述实施方式,所述生成所述至少一个补充响应可以包括:在生成所述主要响应的同时生成后续响应集合。所述生成所述至少一个补充语音输出可以包括,对于所述后续响应集合中的每个后续响应:在从先前语音输出开始的预定持续时间内,在所述音频上行流中执行语音活动检测;以及如果通过所述语音活动检测没有检测到有效语音输入,则基于所述后续响应来生成后续语音输出。而如果通过所述语音活动检测检测到有效语音输入,则所述方法可以停止基于所述后续响应集合来生成后续语音输出。
根据以上实施方式,所述生成所述至少一个补充响应可以包括:在生成了所述主要响应之后,通过多次迭代来递归地生成后续响应集合。所述生成所述至少一个补充响应可以包括,对于所述多次迭代中的每次迭代:在从所述先前语音输出开始的预定持续时间内,在所述音频上行流中执行语音活动检测;如果通过所述语音活动检测没有检测到有效语音输入,则至少基于伪输入来生成后续响应,所述伪输入是与所述先前响应一起生成的;以及至少基于所述语音输入来生成新的伪输入。而如果通过所述语音活动检测检测到有效语音输入,则所述方法可以停止执行任何进一步的迭代。
应当理解,方法1600还可以包括根据如上所述的本公开的实施例的用于在语音对话中进行响应的任何步骤/过程。
图17示出了根据实施例的用于在语音对话中进行响应的示例性装置1700。
装置1700可以包括:语音输入接收模块1710,用于在音频上行流中接收语音输入;响应生成模块1720,用于响应于所述语音输入,生成主要响应和至少一个补充响应;主要语音输出生成模块1730,用于基于所述主要响应来生成主要语音输出;补充语音输出生成模块1740,用于基于所述至少一个补充响应来生成至少一个补充语音输出;以及语音输出提供模块1750,用于在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
在一种实施方式中,所述时间段在完成对所述语音输入的接收的时间点和提供所述主要语音输出的时间点之间。
根据上述实施方式,所述响应生成模块1720还可以用于:基于至少一个填充词来生成所述至少一个补充响应,其中,所述至少一个填充词的输出的持续时间以预定概率在所述时间段的持续时间内。
根据上述实施方式,所述语音输入与任务相关联,并且所述响应生成模块1720还可以用于:在接收所述语音输入期间生成对所述语音输入的预测;基于所述预测来识别所述任务的意图;以及基于所述任务的所述意图来生成所述至少一个补充响应。
在一种实施方式中,所述时间段在完成对所述主要语音输出的提供的时间点和接收下一语音输入的时间点之间。所述响应生成模块1720还可以用于通过以下操作来生成所述至少一个补充响应:在生成所述主要响应的同时生成后续响应集合;或者在生成了所述主要响应之后,通过多次迭代来递归地生成后续响应集合。
此外,装置1700还可以包括根据如上所述的本公开的实施例的被配置用于在语音对话中进行响应的任何其他模块。
图18示出了根据实施例的用于在语音对话中进行响应的示例性装置1800。
装置1800可以包括至少一个处理器1810和存储计算机可执行指令的存储器1820。当执行计算机可执行指令时,所述至少一个处理器1810可以:在音频上行流中接收语音输入;响应于所述语音输入,生成主要响应和至少一个补充响应;基于所述主要响应来生成主要语音输出;基于所述至少一个补充响应来生成至少一个补充语音输出;以及在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。所述至少一个处理器1810还可以被配置用于执行根据如上所述的本公开的实施例的用于在语音对话中进行响应的方法的任何操作。
本公开的实施例可以体现在非暂时性计算机可读介质中。非暂时性计算机可读介质可以包括指令,所述指令在被执行时使得一个或多个处理器执行根据如上所述的本公开的实施例的用于在语音对话中进行响应的方法的任何操作。
应当理解,以上描述的方法中的所有操作都仅仅是示例性的,本公开并不限制于方法中的任何操作或这些操作的顺序,而是应当涵盖在相同或相似构思下的所有其他等同变换。
还应当理解,以上描述的装置中的所有模块都可以通过各种方式来实施。这些模块可以被实施为硬件、软件、或其组合。此外,这些模块中的任何模块可以在功能上被进一步划分成子模块或组合在一起。
已经结合各种装置和方法描述了处理器。这些处理器可以使用电子硬件、计算机软件或其任意组合来实现。这些处理器是实现为硬件还是软件将取决于具体的应用以及施加在系统上的总体设计约束。作为示例,本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合可以利用以下各项来实现:微处理器、微控制器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、状态机、门逻辑、分立硬件电路、以及配置用于执行在本公开中描述的各种功能的其他适合的处理部件。本公开中给出的处理器、处理器的任意部分、或者处理器的任意组合的功能可以利用由微处理器、微控制器、DSP或其他适合的平台所执行的软件来实现。
软件应当被广泛地视为表示指令、指令集、代码、代码段、程序代码、程序、子程序、软件模块、应用、软件应用、软件包、例程、子例程、对象、运行线程、过程、函数等。软件可以驻留在计算机可读介质中。计算机可读介质可以包括例如存储器,存储器可以例如为磁性存储设备(例如,硬盘、软盘、磁条)、光盘、智能卡、闪存设备、随机存取存储器(RAM)、只读存储器(ROM)、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、寄存器或者可移动盘。尽管在本公开给出的多个方面中将存储器示出为是与处理器相分离的,但是存储器也可以位于处理器内部(例如,缓存器或寄存器)。
以上描述被提供用于使得本领域任何技术人员可以实践本文所描述的各个方面。对这些方面的各种修改对于本领域技术人员是显而易见的,并且本文限定的一般性原理可以应用于其他方面。因此,权利要求并非旨在被局限于本文示出的方面。关于本领域技术人员已知或即将获知的、对本公开所描述各个方面的元素的所有结构和功能上的等同变换都将通过引用而明确地包含到本文中,并且旨在由权利要求所覆盖。

Claims (20)

1.一种用于通过电子对话代理在语音对话中进行响应的方法,包括:
在音频上行流中接收语音输入;
响应于所述语音输入,生成主要响应和至少一个补充响应;
基于所述主要响应来生成主要语音输出;
基于所述至少一个补充响应来生成至少一个补充语音输出;以及
在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
2.根据权利要求1所述的方法,其中,在所述时间段期间没有接收到有效语音输入。
3.根据权利要求1所述的方法,其中,所述时间段在完成对所述语音输入的接收的时间点和提供所述主要语音输出的时间点之间。
4.根据权利要求3所述的方法,其中,所述生成所述至少一个补充响应包括:
基于至少一个填充词来生成所述至少一个补充响应,其中,所述至少一个填充词的输出的持续时间以预定概率在所述时间段的持续时间内。
5.根据权利要求4所述的方法,其中,所述生成所述主要响应包括:
在接收所述语音输入期间生成对所述语音输入的预测;以及
基于所述预测来生成所述主要响应。
6.根据权利要求3所述的方法,其中,所述语音输入与任务相关联,并且所述生成所述至少一个补充响应包括:
在接收所述语音输入期间生成对所述语音输入的预测;
基于所述预测来识别所述任务的意图;以及
基于所述任务的所述意图来生成所述至少一个补充响应。
7.根据权利要求6所述的方法,其中,所述生成所述主要响应包括:
在完成对所述语音输入的接收之后,基于所述语音输入来识别所述任务的所述意图;
基于所述任务的所述意图来执行所述任务;以及
基于执行所述任务的结果来生成所述主要响应。
8.根据权利要求1所述的方法,其中,所述时间段在完成对所述主要语音输出的提供的时间点和接收下一语音输入的时间点之间。
9.根据权利要求8所述的方法,其中,所述生成所述至少一个补充响应包括:
在生成所述主要响应的同时生成后续响应集合。
10.根据权利要求9所述的方法,其中,所述生成所述至少一个补充语音输出包括,对于所述后续响应集合中的每个后续响应:
在从先前语音输出开始的预定持续时间内,在所述音频上行流中执行语音活动检测;以及
如果通过所述语音活动检测没有检测到有效语音输入,则基于所述后续响应来生成后续语音输出。
11.根据权利要求10所述的方法,还包括:
如果通过所述语音活动检测而检测到有效语音输入,则停止基于所述后续响应集合来生成后续语音输出。
12.根据权利要求8所述的方法,其中,所述生成所述至少一个补充响应包括:
在生成了所述主要响应之后,通过多次迭代来递归地生成后续响应集合。
13.根据权利要求12所述的方法,其中,所述生成所述至少一个补充响应包括,对于所述多次迭代中的每次迭代:
在从先前语音输出开始的预定持续时间内,在所述音频上行流中执行语音活动检测;
如果通过所述语音活动检测没有检测到有效语音输入,则至少基于伪输入来生成后续响应,所述伪输入是与先前响应一起生成的;以及
至少基于所述语音输入来生成新的伪输入。
14.根据权利要求13所述的方法,还包括:
如果通过所述语音活动检测而检测到有效语音输入,则停止执行任何进一步的迭代。
15.一种用于在语音对话中进行响应的装置,包括:
语音输入接收模块,用于在音频上行流中接收语音输入;
响应生成模块,用于响应于所述语音输入,生成主要响应和至少一个补充响应;
主要语音输出生成模块,用于基于所述主要响应来生成主要语音输出;
补充语音输出生成模块,用于基于所述至少一个补充响应来生成至少一个补充语音输出;以及
语音输出提供模块,用于在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
16.根据权利要求15所述的装置,其中,所述时间段在完成对所述语音输入的接收的时间点和提供所述主要语音输出的时间点之间。
17.根据权利要求16所述的装置,其中,所述响应生成模块还用于:
基于至少一个填充词来生成所述至少一个补充响应,其中,所述至少一个填充词的输出的持续时间以预定概率在所述时间段的持续时间内。
18.根据权利要求16所述的装置,其中,所述语音输入与任务相关联,并且所述响应生成模块还用于:
在接收所述语音输入期间生成对所述语音输入的预测;
基于所述预测来识别所述任务的意图;以及
基于所述任务的所述意图来生成所述至少一个补充响应。
19.根据权利要求15所述的装置,其中,所述时间段在完成对所述主要语音输出的提供的时间点和接收下一语音输入的时间点之间,并且所述响应生成模块还用于通过以下操作来生成所述至少一个补充响应:
在生成所述主要响应的同时生成后续响应集合;或者
在生成了所述主要响应之后,通过多次迭代来递归地生成后续响应集合。
20.一种用于在语音对话中进行响应的装置,包括:
一个或多个处理器;以及
存储计算机可执行指令的存储器,所述计算机可执行指令在被执行时,使得所述一个或多个处理器:
在音频上行流中接收语音输入;
响应于所述语音输入,生成主要响应和至少一个补充响应;
基于所述主要响应来生成主要语音输出;
基于所述至少一个补充响应来生成至少一个补充语音输出;以及
在音频下行流中提供所述主要语音输出和所述至少一个补充语音输出,其中,所述至少一个补充语音输出是在所述音频下行流中与所述主要语音输出相邻的时间段期间提供的。
CN201880085943.5A 2018-10-25 2018-10-25 全双工语音对话中的多阶段响应 Active CN111566727B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/111968 WO2020082309A1 (en) 2018-10-25 2018-10-25 Multi-phrase responding in full duplex voice conversation

Publications (2)

Publication Number Publication Date
CN111566727A CN111566727A (zh) 2020-08-21
CN111566727B true CN111566727B (zh) 2023-09-01

Family

ID=70331845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880085943.5A Active CN111566727B (zh) 2018-10-25 2018-10-25 全双工语音对话中的多阶段响应

Country Status (4)

Country Link
US (1) US11979360B2 (zh)
EP (1) EP3871213A4 (zh)
CN (1) CN111566727B (zh)
WO (1) WO2020082309A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112735398B (zh) * 2019-10-28 2022-09-06 思必驰科技股份有限公司 人机对话模式切换方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103292437A (zh) * 2013-06-17 2013-09-11 广东美的制冷设备有限公司 语音交互式空调器及其控制方法
CN105027197A (zh) * 2013-03-15 2015-11-04 苹果公司 训练至少部分语音命令系统
CN107003999A (zh) * 2014-10-15 2017-08-01 声钰科技 对用户的在先自然语言输入的后续响应的系统和方法
CN107111611A (zh) * 2014-12-30 2017-08-29 微软技术许可有限责任公司 区分歧义表达以增强用户体验
CN108228131A (zh) * 2016-12-22 2018-06-29 声音猎手公司 自然语言虚拟助理中的全双工话语处理
CN108630203A (zh) * 2017-03-03 2018-10-09 国立大学法人京都大学 语音交互设备及其处理方法和程序
CN108701458A (zh) * 2016-03-01 2018-10-23 微软技术许可有限责任公司 话音识别

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050288930A1 (en) 2004-06-09 2005-12-29 Vaastek, Inc. Computer voice recognition apparatus and method
CN101169684A (zh) * 2007-11-27 2008-04-30 合肥讯飞数码科技有限公司 一种远距离多通道人机交互装置及其交互方法
JP5380543B2 (ja) * 2009-09-25 2014-01-08 株式会社東芝 音声対話装置およびプログラム
JP5958475B2 (ja) 2014-01-17 2016-08-02 株式会社デンソー 音声認識端末装置、音声認識システム、音声認識方法
US10614799B2 (en) * 2014-11-26 2020-04-07 Voicebox Technologies Corporation System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance
US10304013B2 (en) * 2016-06-13 2019-05-28 Sap Se Real time animation generator for voice content representation
US10277590B2 (en) 2017-01-17 2019-04-30 International Business Machines Corporation Cognitive intelligence based voice authentication
US10607606B2 (en) * 2017-06-19 2020-03-31 Lenovo (Singapore) Pte. Ltd. Systems and methods for execution of digital assistant
CN109994108B (zh) 2017-12-29 2023-08-29 微软技术许可有限责任公司 用于聊天机器人和人之间的会话交谈的全双工通信技术
KR20190133100A (ko) * 2018-05-22 2019-12-02 삼성전자주식회사 어플리케이션을 이용하여 음성 입력에 대한 응답을 출력하는 전자 장치 및 그 동작 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105027197A (zh) * 2013-03-15 2015-11-04 苹果公司 训练至少部分语音命令系统
CN103292437A (zh) * 2013-06-17 2013-09-11 广东美的制冷设备有限公司 语音交互式空调器及其控制方法
CN107003999A (zh) * 2014-10-15 2017-08-01 声钰科技 对用户的在先自然语言输入的后续响应的系统和方法
CN107111611A (zh) * 2014-12-30 2017-08-29 微软技术许可有限责任公司 区分歧义表达以增强用户体验
CN108701458A (zh) * 2016-03-01 2018-10-23 微软技术许可有限责任公司 话音识别
CN108228131A (zh) * 2016-12-22 2018-06-29 声音猎手公司 自然语言虚拟助理中的全双工话语处理
CN108630203A (zh) * 2017-03-03 2018-10-09 国立大学法人京都大学 语音交互设备及其处理方法和程序

Also Published As

Publication number Publication date
EP3871213A4 (en) 2022-06-15
EP3871213A1 (en) 2021-09-01
CN111566727A (zh) 2020-08-21
WO2020082309A1 (en) 2020-04-30
US11979360B2 (en) 2024-05-07
US20220038398A1 (en) 2022-02-03

Similar Documents

Publication Publication Date Title
EP3776536B1 (en) Two-pass end to end speech recognition
US11062703B2 (en) Automatic speech recognition with filler model processing
US11922951B2 (en) Targeted voice separation by speaker conditioned on spectrogram masking
WO2015096564A1 (zh) 一种在线语音翻译方法和装置
CN113168336B (zh) 基于实验参数适配功能电话的客户端应用
CN110675861B (zh) 语音断句方法、装置、设备及存储介质
JP6839333B2 (ja) 呼び出しフレーズの検出における雑音低減技術の選択的適応および利用
EP3857544B1 (en) Speaker awareness using speaker dependent speech model(s)
US11763813B2 (en) Methods and systems for reducing latency in automated assistant interactions
KR102102287B1 (ko) 챗봇을 위한 대화 모델의 데이터 크라우드소싱 방법
CN113674742A (zh) 人机交互方法、装置、设备以及存储介质
CN109545203A (zh) 语音识别方法、装置、设备和存储介质
CN111566727B (zh) 全双工语音对话中的多阶段响应
CN114783405B (zh) 一种语音合成方法、装置、电子设备及存储介质
KR102448733B1 (ko) 문맥 내 턴 구성을 고려하여 응답을 선택하는 대화 시스템 및 그 방법
CN118606435A (zh) 语音回复方法、装置、电子设备和存储介质
CN114913853A (zh) 语音唤醒方法、装置、存储介质和电子设备
CN116401342A (zh) 意图识别模型的训练方法、意图识别方法、装置及介质
CN116524929A (zh) 人机对话方法、装置、电子设备和计算机可读存储介质
CN116884397A (zh) 一种语音处理方法、装置、电子设备和存储介质
CN111916072A (zh) 基于语音识别的问答方法、装置、计算机设备和存储介质

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