CN108228131A - 自然语言虚拟助理中的全双工话语处理 - Google Patents
自然语言虚拟助理中的全双工话语处理 Download PDFInfo
- Publication number
- CN108228131A CN108228131A CN201710843341.9A CN201710843341A CN108228131A CN 108228131 A CN108228131 A CN 108228131A CN 201710843341 A CN201710843341 A CN 201710843341A CN 108228131 A CN108228131 A CN 108228131A
- Authority
- CN
- China
- Prior art keywords
- inquiry
- response
- language
- audio stream
- input audio
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 74
- 230000009471 action Effects 0.000 claims abstract description 16
- 230000004044 response Effects 0.000 claims description 98
- 238000000034 method Methods 0.000 claims description 30
- 230000000007 visual effect Effects 0.000 claims description 21
- 230000001052 transient effect Effects 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 3
- 239000012634 fragment Substances 0.000 description 19
- 230000006870 function Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000005096 rolling process Methods 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000008034 disappearance Effects 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 230000004438 eyesight Effects 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 238000007639 printing Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 235000012054 meals Nutrition 0.000 description 2
- 238000012797 qualification Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
- 238000009966 trimming Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/04—Segmentation; Word boundary detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/16—Sound input; Sound output
- G06F3/165—Management of the audio stream, e.g. setting of volume, audio stream path
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
- G10L15/30—Distributed recognition, e.g. in client-server systems, for mobile phones or network applications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/332—Query formulation
- G06F16/3329—Natural language query formulation or dialogue systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/635—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
- G06F40/35—Discourse or dialogue representation
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L15/222—Barge in, i.e. overridable guidance for interrupting prompts
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/3331—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/223—Execution procedure of a spoken command
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/22—Procedures used during a speech recognition process, e.g. man-machine dialogue
- G10L2015/225—Feedback of the input speech
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/78—Detection of presence or absence of voice signals
- G10L25/87—Detection of discrete points within a voice signal
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- Acoustics & Sound (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Mathematical Physics (AREA)
- Signal Processing (AREA)
- User Interface Of Digital Computer (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Machine Translation (AREA)
Abstract
本公开涉及自然语言虚拟助理中的全双工话语处理。查询处理系统处理表示用户所说的一连串查询的输入音频流。查询处理系统持续监听输入音频流、解析查询并在中间流中采取适当的动作。在一些实施例中,系统并行地处理查询,这受串行约束限制。在一些实施例中,系统在先查询的执行仍在进行中时解析并执行查询。为了适应倾向于慢慢讲话并在单独的部分中表达想法的用户,查询处理系统在其检测到新的语音话语改变了在先查询的含义时,停止输出与在先查询相对应的结果。
Description
技术领域
本公开的实施例总体涉及用于在自然语言虚拟助理中向用户提供对用户的语音输入的更直观的响应的计算机实现的方法。
分类领域:704/246
背景技术
在常规系统中,人与虚拟助理或其他自然语言处理系统之间的人机对话具有严格的轮替策略。这类虚拟助理在将其对上一查询的响应完全传输至用户之前不接收新的查询。这种灵活性的欠缺导致沟通不自然。
发明内容
根据本公开实施例的一个方面,公开了一种用于产生对语音输入的响应的计算机实现的方法,该方法包括:获得音频输入流;在音频输入流中检测第一话语的开始;在音频输入流中检测第一话语的结束;响应于检测到第一话语的结束,启动对第一话语的处理以识别第一查询;以及在处理第一话语的同时:继续接收音频输入流;并且在音频输入流中检测第二话语的开始。
根据本公开实施例的另一方面,公开了一种存储用于生成对语音输入的响应的指令的非暂态计算机可读存储介质,所述指令在由计算机处理器执行时执行动作,所述动作包括:获得音频输入流;在音频输入流中检测第一话语的开始;在音频输入流中检测第一话语的结束;响应于检测到第一话语的结束,启动对第一话语的处理以识别第一查询;以及在处理第一话语的同时:继续接收音频输入流;并且在音频输入流中检测第二话语的开始。
附图说明
图1示出了根据一个实施例的其中发生查询处理的系统环境。
图2示出了根据一个实施例的查询处理模块的组件。
图3-10是示出了根据各种实施例的在不同场景中随时间处理用户语音的图示。
图11是示出了根据一个实施例的用作图1的查询处理服务器或客户端设备的部分或全部的计算机的物理组件的高级框图。
附图描绘了本发明的各种实施例,仅用于说明的目的。本领域的技术人员将从下面的描述中容易地认识到,在不脱离本文描述的发明的原理的情况下,可以采用本文所示的结构和方法的其它替代实施例。
具体实施方式
图1示出了根据一个实施例的其中发生查询处理的系统环境。客户端设备110的用户使用语音来表达他们的希望,包括对动作的请求(例如,“创建今天下午7点与Karl共进晚餐的约会日程”)和对信息的请求(例如,“罗马明天是什么天气”)。
在图1所示的实施例中,查询处理发生在位于网络140远程的查询处理服务器100上。然而,在其他实施例中,查询处理在本地直接发生在客户端设备110上,例如作为安装在客户端设备上的虚拟助理应用的一部分。在一些实施例中,语音在客户端设备110本地被分割和转录,而在服务器 100上执行的处理在文本段上进行操作。在一些实施例中,服务器100分布在多个物理服务器上。
客户端设备110是计算设备(诸如智能电话、平板电脑、膝上型计算机或台式计算机)、或智能家电或其他设备(例如具有数据处理能力的汽车或咖啡机))、或可以输入自然语言查询并输出对查询的响应的任何其他设备。客户端设备110具有捕获声音并将其转换为数字音频数据的声音输入设备112(例如麦克风和A/D转换器)、以及将数字音频数据转换为相应的听觉输出的声音输出设备113,例如,D/A转换器和扬声器。
网络140(在采用了网络的实施例中,诸如图1的实施例)可以是用于数据传输的任何合适的通信网络。在如图1所示的实施例中,网络140 使用标准通信技术和/或协议并且可以包括互联网。在另一实施例中,实体使用定制和/或专用数据通信技术。
在不同的实施例中,查询处理服务器100和客户端设备110的系统可以用各种形式的硬件来实现。在所有实施例中,查询处理逻辑是一组计算机实现的算法,如本文将进一步描述的。最后,从下面的讨论能明显得出,本文描述的算法和过程需要在计算机系统上实现,并且在任何有用的实施例中不能由人使用精神步骤来执行。
一些实施例使用客户端设备来捕获话语并且使用服务器来处理话语以便形成和执行查询。一些实施例在单个设备中执行捕获和处理。
图2示出了根据一个实施例的查询处理模块150的组件。输入模块 210接收数字音频流作为输入。音频流由声音输入设备112捕获,并且它可以表示用户的语音查询。“话语(utterance)”是连续的语音片段。输入模块210将输入音频分割成话语。为此,它基于识别语音或非语音音频中的暂停或UI事件(诸如用户做手势(滑动、按下按钮))或其他手段来检测每个话语的开始和结束。例如,如果特定用户说“what is the weather tomorrow(明天是什么天气)”,然后暂停某一时间间隔(例如 500ms),然后继续说“in Rome(在罗马)”,则语音输入包括由500ms 的非语音分开的两个不同的话语。
在图2的实施例中,输入模块210输出话语流。话语流中的每个话语依次由处理模块220处理。处理模块220中的第一步骤是使用自然语言解析器222进行解析。在本公开中,术语“解析(parse)”、“解析器”和“解析(parsing)”不被狭义地用于针对自然语言语法检查查询的句法,而是从广义上,根据查询的形式和含义两者对其进行“识别”。因此,解析器222是语义解析器,并且其功能是对查询进行识别。查询识别222在成功时包括构建对查询的意义的表示。对查询的识别构建这种表示并将其添加到查询队列244。
解析器222还拒绝句法不当或在语义无意义的查询。解析尝试失败是由不同的系统以不同的方式处理的。在某些情况下,将错误消息作为响应发送给用户。在其他情况下,不会给出响应。无论通过哪种方式,都没有查询被添加到查询队列244供后续执行。
在处理模块220的增量实施例中,一旦从输入模块获得连续的话语,就对他们进行解析,并且处理总是在输入流中前进。在这样的实施例中,解析器222是增量解析器。用于增量解析的算法是本领域普通技术人员已知的。在增量解析的上下文中,“解析”广义地指代部分完成的解析,而不是查询的完整解析。增量解析器通过在每次从输入流添加输入令牌时更新(部分)解析,来并行地维护输入流的所有可能解析(或充分可能的解析)。一旦任何部分解析在句法和语义两个方面变成完整解析,则查询将被识别。当这种情况发生时,增量解析器输出相应的查询数据结构,并将其添加到查询队列244。此时,解析器从当前解析状态恢复对输入流的处理。解析状态包括流中的位置和方向,以及所有并行的部分解析的状态。
在一些实施例中,识别查询要求在查询的端部处存在话语端部边界。在其他实施例中,查询识别不需要话语端部边界来完成查询。在后者的实施例中,增量解析器222在从话语流接收到“what is the weather tomorrow”之后能够识别第一查询“what is theweather”,它被添加到查询队列244 中,同时保持解析状态。接下来,“what is theweather tomorrow”被识别为第二查询(在需要话语端部的实施例中,仅能识别出第二查询)。解析器的增量性质使其具有对分割因子(例如,“what is the weather”和“tomorrow”之间的停顿的持续时间)敏感的能力,从而识别输入“what is the weather tomorrow”中的一个或两个查询。扩展的输入“what is the weather tomorrow in Rome”(“what isthe weather tomorrow”后面跟有“in Rome”)产生额外的查询。在这种情况下,可以识别三个连续的查询。
在使用非增量解析器的实施例中,以牺牲一些附加处理为代价获得类似的输出。实际上,非增量解析器将在级联最近的话语时重新启动(在本公开中,运算符“+”用于表示音频片段的级联)。例如,如果话语U1是语音片段“what is the weather”、U2是“tomorrow”、U3是“in Rome”,则必须分别将三个话语U1、U1+U2和U1+U2+U3作为输入依次(从冷启动)重新启动非增量解析器。在一些实施例中,涉及额外的复杂性,所提出的技术的非增量实施例是可能的,其提供与增量实施例相似的查询识别功能。
共享查询识别功能如下。给定作为输入的话语流{Ui,i=0到N},解析器222(无论是否是增量的)可以产生查询流{Qk,k=0到M},其中Qk是从话语Ui或从级联的话语Ui+...+Uj中识别的查询流。
在一些实施例中,输入模块210执行自动语音识别(ASR)并且将每个识别的话语转录成文本片段,然后该文本片段被提供来作为解析器222 的输入。在这种情况下,作为解析器222的输入而接收的流不是由音频片段组成,而是由文本段(也可能是文字)组成。解析器222相应地进行操作,并且本领域的技术人员将容易地使查询处理模块150以这种方式工作。
当解析器222成功地识别查询时,它创建查询数据结构作为输出,该查询数据结构显着地包括查询的含义,其被表示为可操作的数据结构。查询数据结构不仅以适用于后续执行的形式对查询的含义进行编码,而且还对解析器222生成并且用于除执行以外的目的的其他数据进行编码。为了方便起见,术语“执行查询”将代替“执行查询数据结构”,或者替换为“执行查询的可操作含义”。例如,响应于查询“what is the weather tomorrow”,解析器222产生查询数据结构作为输出,该查询数据结构编码核心问题“what is the weather”以及包括限定词“tomorrow”的限定符列表。它创建具有如下字段的“天气查询”类型的查询数据结构:在当前上下文中被设置为值“tomorrow”的字段“何时”time_1,以及被默认设置为当前位置的字段“何处”lat_long_1,(例如,城市名和纬度-经度对)。为了回答查询,这个命令数据结构可以通过访问基于web的天气服务的程序调用WEATHER_DATA(lat_long_1,time_1)来执行。
执行某些查询涉及执行动作(例如,创建与指定人员在指定时间的约会日程)或查找信息(例如,执行基于web的天气服务的天气查询访问)。在上面的示例情形中,天气服务将明天的天气描述为“部分多云,高温80 多度,低温60多度”的文字描述,并建立相关的视觉效果。在一些实施例中,执行模块224实现查询是在与查询处理模块150相同的系统上执行。在一些实施例中,查询的实现涉及通过服务API模块241对远程服务(例如,航班预订系统)进行调用。
在一些情况下,实现查询可能需要大量的时间。在这种情况下,需要并行处理查询。处理模块220通过使用执行模块224的多个实例来支持多个查询的并行执行。当然,当查询Q1在查询Q2的处理开始之前已经被回答时,不存在并行执行两个查询Q1和Q2的机会。如果查询存在(其已经被解析器222识别,并且创建了相应的查询数据结构)并且其执行模块没有完成,则该查询被称为“活跃”。完成执行产生进入结果队列234中的结果记录。并行执行的候选是同时活跃的查询。当查询同时处于活跃状态时,由查询串行器模块243做出允许他们并行执行的决定。
查询的执行可以产生将被显示给用户的响应。例如,对信息的请求 (例如,“whatis the weather tomorrow”)固有地调用对用户的响应。在一些实施例中,所有查询都产生响应(例如,对动作的请求也产生指示该动作是否成功的响应)。在图2的实施例中,这在两个阶段发生。首先,由执行模块224的实例执行查询以创建结果记录作为输出。其次,输出管理器230基于来自结果队列234的结果记录,创建要呈现给用户的实际响应。在图2的实施例中,由执行模块224的实例创建的结果记录进入到结果队列234中,并且输出管理器230从结果队列234中抽出结果记录。结果队列234是进程间通信队列,并且其对所生成的结果记录执行并行到串行的转换。
输出管理器230向用户输出响应数据(如果有的话)。在一些实施例中,响应数据以不同形式输出,这取决于数据的性质或最终向用户提供响应的客户端设备110的功能。例如,输出管理器230可以使得响应以语音形式(例如,经由文本转语音算法)或以视觉形式输出(假设客户端设备 110具有可视用户界面功能)。此外,每个组分可以具有在不同情况下使用的短形式和长形式。输出管理器230还可以决定显示响应的顺序。
服务API模块241包含支持使用针对基于网络的服务的API请求来执行特定查询的逻辑。例如,查询“what is the weather tomorrow”是通过访问第三方基于web的天气服务来执行的。服务API模块241将查询映射到URL,其包括表示指定的天气特征(例如,&time=tomorrow(时间=明天))的参数。在一些实施例中,基于包括可用性和价格的原因,在具有类似功能的竞争服务之间进行选择,例如一个天气服务提供商与另一天气服务商相比。
在图2所示的实施例中,查询被存储在查询队列224中。查询一旦被解析器222创建,他们就进入到查询队列244中。查询串行器模块243确定哪些查询可以并行执行以及哪些不能并行执行,这将在稍后进行讨论。当执行模块224已经完成查询的执行时,从队列244中移除查询。当相应的结果记录被添加到结果队列234时,查询的执行完成。结果队列234由输出管理器230处理。
在一个实施例中,允许尽可能最大程度执行查询的并行执行。在这样的实施例中,处理模块220通过运行执行模块224的多个实例来并行地执行查询。可以异步地执行两个查询(如果可能的话),即:(1)查询同时处于活跃状态(查询队列244包含所有活跃查询);以及(2)没有串行约束来阻止这两个查询的并行执行。查询串行器模块243确定活跃查询之间的串行约束的存在,如下所述。这些限定支持并行执行多个活跃查询。在确定所有活跃查询之间的串行约束后,顺序选择(决定哪些查询有资格立即执行)很简单:对在先查询没有串行依赖性的任意查询有资格运行。例如,假设查询Q1、Q2、Q3在队列中处于活跃状态,而串行约束规定Q1必须在Q3之前处理。不存在其他串行约束。在这种情况下,查询Q1和Q2 (没有传入约束)有资格并行执行。Q3在Q1完成执行之前无法运行。Q1一旦完成,Q3就可以执行。如果Q2在这个时间点仍然活跃,则Q3将与Q2并行执行。在一些实施例中,查询执行期间的并行程度受到诸如资源限制等其他因素的约束,这些因素阻止尽可能最大限度的实现并行化。
并行执行可以以许多方式实现。在一个实施例中,多个计算机被用于支持执行来自查询流的查询所需的并行性;这导致大量使用计算资源。在一个实施例中,使用多个“进程”(在Linux OS的意义上)来支持查询处理的并行。在一个实施例中,多线程进程(同样在Linux OS的意义上)支持多线程(也称为轻量级进程)以实现并行化。在另一实施例中,在没有线程、中断或定时器的情况下,通过协调调度充分模拟并行。在协调调度器中,任务(一旦被激活)被允许运行,直到它主动返回控制。协调调度方法(如适用)具有开销低的优点。它不需要硬件支持,并且可以在小型嵌入式系统中使用,但查询执行通常太复杂以至于无法适用于线程较少的调度器。
查询串行器模块243有责任确定两个查询Q1和Q2是否具有依赖关系 (串行约束),这种依赖关系确定处理模块220应处理查询的相对顺序。两个活跃查询Q1和Q2将被允许并行执行,除非查询串行器模块243确定 Q1必须在Q2之前执行。
查询串行器243如其名称所示,对查询而不是对话语执行串行约束识别。这是因为话语是未解释的语段;因此,在他们被识别为查询之前,话语不允许对导致串行约束的依赖关系进行检测。除非引用话语就好像被认为如引用相应的查询一样方便,这个约定在下文被采用。例如,以相同的方式引用话语“what is the weather”(引用的文本代表一段语音)和查询“what is the weather”(其中相同的引用文本代表解析和解释的查询)是直观的(虽然在技术上是不正确的)。使用这个定义,当(1)U1被识别为查询Q1,并且(2)两个连续的话语的级联U1+U2被识别为查询Q2时,主张话语U2是U1的“延续”是方便的。根据这个定义,话语“in Rome”是话语“what is the weather tomorrow”的延续,因为根据大多数语法,级联的话语“what is the weather tomorrow in Rome”可以被识别为查询。相反地,“at a 2%interest rate(以2%的利率)”的话语并不是“what is the weather tomorrow”的延续,因为在大多数语法中,话语“what is the weather tomorrow at a 2%interest rate”不能被识别为查询。
查询串行器243对串行约束的检测主要由逻辑依赖关系控制,如下所述,但是实际的考虑因素(诸如计算成本、处理延迟或访问API的成本) 也起作用。查询“what is theweather in Rome”可以与查询“what is the weather”(关于当地天气的问题)并行执行,因为这是一个公平的预测,罗马的天气独立于(在世界其他地方的)当地天气;而在罗马,如果连续发出涉及当地天气的两个查询将会令人惊讶。推测出(或通过查看地理位置距离验证出)罗马的天气和当地天气不具有逻辑依赖关系,则他们可以并行执行。
对于串行约束识别的另一示例,考虑话语“查找我的酒店附近的中国餐馆”,后面跟随着话语“并且按评分对他们进行排序”。在这个示例中,第二话语是第一话语的延续,但不同于先前的示例,对第二查询的回答最好被看作是基于对第一查询的回答,因此检测到一个串行约束,这阻止并行执行(虽然可能并行执行两个查询“查找我的酒店附近的中国餐馆”和“查找我的酒店附近的中国餐馆并且按评分对他们进行排序”,但这样的计算效率会降低)。
在一个实施例中,查询串行器243与解析器222紧密集成,并且基于查询识别期间解析器的状态来确定查询Q1和Q2之间是否存在顺序依赖关系。前面的示例显示,无论何时Q2将限定符(“并且按评分对他们进行排序”)添加到信息搜索查询(“查找我的酒店附近的中国餐馆”),对于查询Q2的响应都可能取决于对在先查询Q1的响应。在另一示例中,话语“四星级”是在先话语“告诉我在圣何塞市中心的酒店”的延续并且充当他的限定词,因为其选择圣何塞市中心四星级酒店的子集。
在一些实施例中,在查询串行器243确定新查询取决于先前对话的上下文时,顺序约束被检测到。这可能在如下情况下发生:新查询取决于上一查询的回答(如上面给出的酒店示例)或更广泛地取决于最近的查询的回答。结果依赖关系的另一示例是查询“芝加哥的气温是多少”,后面跟着“纽约更冷吗?”这里,词语“更冷”隐含地指示先前的温度,期望在上一对话所提及的内容中找到该温度。在先的温度在第一查询被执行之前是未知的。这是逻辑(即数据流)依赖关系,这导致查询之间的串行约束,从而阻止并行执行。
在一个实施例中,依赖关系检查基于维护和访问会话状态的表示(保持来自先前对话中的所选信息的数据结构)。某些查询依赖于会话状态,但这并不意味着串行约束。当新查询依赖于最近的查询而不是对其的回答时,可能不存在串行依赖关系。例如,为了确定未解决的查询的含义,例如“那里天气如何?”,必须知道那里所表示的位置。共指关系(co-reference)解决技术解决了这个问题。缺少位置信息可以是也可以不是串行约束的理由。例如,如果有人说“告诉我周六去纽约的航班”,然后是“那里天气如何?”,则不存在串行约束,因为可以在解析第二查询时使用之前的对话数据(会话状态)来解决位置。相反,如果一个人说“出生在哪个城市”,然后是“那里天气如何?”,则存在串行约束,因为所需的位置只能通过执行第一个查询来解决。
为了响应另一语义不完整的查询,例如“如果利率是4%会怎样?”,实施例可以检查针对涉及使用利率的先前查询的最近对话,并且找到先前使用的根据指定利率的公式(诸如在按揭计算中)。然后可以用4%的利率代替之前的利率来重新评估该公式。在这种情况下,不存在串行约束。更一般地说,与要求查询执行以获得结果不同,如果不完整查询对最近的交互的依赖关系可以在识别期间被处理(例如,因为结果在会话状态内,或者在缓存的先前查询的结果内),则不存在串行约束,并且在查询执行时允许并行。
查询的识别可明确地确定查询的执行是否取决于先前查询的执行。一种方式是通过共享值。在回答了查询“那里天气如何?”之后,期望温度作为答案的一部分。后续查询“摄氏度是多少?”要求使用来自先前天气查询答案中的温度值,这在相应的查询之间创建了串行约束。
并行至串行的转换是藉由结果队列234实现的。队列从执行模块224 的并行实例异步地接收结果记录,并且单线程输出管理器230串行地处理队列。结果队列234中的条目(结果记录)可能很复杂。它可以包括多个多媒体组分,例如用于在屏幕上显示的短文本响应或长文本响应、用于使用客户端的TTS软件将文本转换成语音音频的具有文本转语音(TTS)标记的短文本响应或具有TTS标记的长文本响应、已经使用客户端的TTS 软件从文本转换为音频的短语音响应或长语音响应。此外,它还可以包括纯音频或音乐片段、具有或不具有音频的视频片段、图形元素、动画和关于所有这些组分的视觉或听觉显示的元数据。此外,结果记录条目可以传达应用于由输出管理器230优选使用结果记录的脚本、规则或约束。
以下是输出管理器230的各种实施例的更详细的描述。结果记录可以包含多个内容组分,例如用于打印的文本、具有用于由TTS模块转换为音频的标记的文本、要播放的记录音频;用于显示的视觉元素(包括要播放的静态图像、动画或视频);以及通常可以通过外部引用(例如URL)的方式访问的任何多媒体内容。结果记录还可以包括在特定情况下应该显示多媒体数据的哪些部分的细节。在一些实施例中,输出管理器230选择用户看到或听到的特定多媒体内容。在一些实施例中,选择被全部或部分留给客户端设备。
输出管理器230主要负责内容呈现的顺序。当并行处理查询时,结果记录以不同于原始查询顺序的顺序由结果队列234接收。在一些实施例中,结果记录指定约束,以限制向用户传送多媒体内容的顺序或定时。输出管理器230控制用户的视听输出设备,特别是在事件序列化和屏幕空间管理方面。
对于任何单个用户,输出管理器230是单线程的。这确保用户以受控的时序体验结果。虽然结果记录是异步接收的,但结果队列234将他们串行化。输出管理器230然后能够通过读取结果队列234来访问整个有效结果的序列。这尤其意味着输出管理器230不必按照队列的顺序将结果记录从结果队列234中取出。
结果队列234的一些实施例使用共享存储器来存储结果记录本身,并且在进程间队列中仅存储指向共享结果记录的指针。本领域的普通技术人员已知执行进程间队列的各种方式。一些实施例基于指针和链接。一些实施例使用具有头部索引和尾部索引的圆形阵列。队列元素具有固定的元素大小(结果记录通常具有不同的大小,但是他们的指针具有固定的大小) 并且队列具有固定的最大大小(这通常是足够的,因为小的并行度足够用于大多数应用)是可行的。在圆形阵列实施例中,输出管理器230能够窥视除队列头部之外的元素,以便更好地通知调度选择。
输出管理器230考虑调度约束。这种约束可以通过全局默认值来获知。例如,除非另有说明,否则输出音频片段可能不会在时间上重叠。不重叠的规则默认应用于来自TTS的音频以及应用于音乐音频或其他记录的音频两者。然而,一些音频(如轻柔的背景音乐或专用声音)可能会规避该规则并在播放前景音频时被播放。在一些实施例中,将默认约束以外的约束指定为多媒体结果记录的一部分。可以在结果记录中指定不同的背景音频 (不受不重叠规则的限制)。
调度约束可以在两种类型的事件之间区分:瞬时事件和连续事件。常见的约束类型是事件之间的时间关系。“时间同步”约束规定了指定时间点(瞬时事件,或连续事件的开始或结束)应该与(参考事件相似地定义的)另一时间点同步调度。“优先”约束规定事件必须在另一事件之前 (或之后)进行调度。连续事件有时间范围。约束可以规定在某些条件下连续事件是可中断的或不可中断的。约束可以规定连续事件可能与其他事件重叠的条件。例如,与TTS音频片段相关联的默认约束是它不能与任何其他听觉事件重叠,除非所述事件是根据相对响度的适当定义被相对轻柔地播放的背景音乐。连续事件包括:
·播放音频(或音乐)片段
·播放视频片段
·播放TTS音频片段
·在显示屏幕上保持视觉元素(文字、图形或动画)可见
瞬时事件受同步和优先约束限制。他们包括:
·音频(或音乐)片段的开始[或结束]
·视频片段的开始[或结束]
·TTS音频片段的开始[或结束]
·屏幕的一部分上特定文字的显现[或消失]
·屏幕的一部分上特定图形的显现[或消失]
·屏幕的一部分上特定动画的显现[或消失]
·特定视觉元素在屏幕上的滚动
·上述任何事件N秒之前或N秒后的时间点
给予输出管理器230的一组约束可能被超定(over-determined)或者欠定(under-determined)。为了处理约束集并检测超定的约束集,输出管理器230可以依赖于简单的过程,例如以下的一系列步骤:
1)根据同步约束将事件划分到同步组;
2)将事件中现有的优先约束映射到同步组中的相应优先约束:
a)如果一同步组必须位于另一同步组之前和之后,则合并这些组;重复此步骤,直到不能做出进一步的更改;
3)如果调度冲突仍然存在,则可以使用以下策略中的一个或多个 (策略的顺序和可用性取决于操作模式):
a)使用视觉图标,以允许用户控制音频片段的播放(这将在下面进一步描述);
b)如果两个音频片段在无重叠测试中失败,则丢弃至少一个约束以恢复以与相应查询相同的顺序播放音频片段的更简单的方法;
c)检查可中断的音频片段,并使用修剪。
在没有来自结果记录的用于确定调度的足够的约束的情况下,输出管理器230将添加其自身的其他约束以完成调度。在这样做时,它通常会退回到默认策略上。在没有相反的约束的情况下,音频片段(包括来自TTS 的音频)按照队列中的结果记录的顺序进行播放。这是默认策略。这种顺序并不总是与查询的原始顺序相同。在后一种情况下,输出管理器230可以在短暂的等待之后窥视队列,以试图维持原始排序。
为了管理视觉显示,输出管理器230可以使用的一种策略是将视觉元素(文本或图形)替换为另一视觉元素。在这种情况下,使用定时约束允许用户有足够的时间读取显示。另一个策略是滚动。它在显示设备具有滚动区域时是适用的。显示设备可以被划分为多个区域,每个区域可被指定为滚动或非滚动。在一些实施例中,滚动区域向上或向下滚动。在一些实施例中,滚动区域向左和向右滚动。显示视觉元素的请求是针对特定区域,其可能是滚动的或不是滚动的。在任一情况下,请求可以要求在显示之前清除该区域。
在一些实施例中,滚动在滚动区域的顶部(或底部)处添加视觉元素、将其他视觉元素移开以便为新元素腾出空间。当滚动区域被充满时,视觉元素滚动出该区域,并且不再可见。在一些实施例中,与滚动方法有关的选择(例如滚动的方向或者区域是否在充满时被清除)是从全局上做出的,并且在一些实施例中由查询特定的约束来驱动。滚动的两个主要变体因滚动数据的保留而不同:在“遗忘”变体中,离开屏幕的数据从内部存储器中清除,并且无法取回。在“记忆”变体中,从屏幕上滚动出的视觉材料存储在缓冲器中,并且可以通过滑动或其他方式滚动回到视图中。在一些“记忆”实施例中,缓冲量以及用于清除缓冲器数据的情况在约束中被指定。
如上所述,音频片段以由输出管理器230确定的特定顺序播放(无论音频片段的顺序是否与引用他们作为响应的查询的顺序相匹配),但是音频片段按照并非用户指定的顺序只被准确地播放一次。替代实施例提供对音频片段的持续访问,这允许用户播放“持续的”音频片段零次或更多次。对于被指定为持续的音频片段,输出管理器230添加与音频片段相关联的视觉GUI元素。该视觉元素是屏幕可点击或可轻敲的区域或等同物。通过点击或轻敲视觉元素,用户可以触发对应的音频片段的播放。这在音频被中断或播放不正常时,是特别有用的。在一些实施例中,根据输出管理器 230的操作模式,这些视觉元素被显示在忘记或记忆类型的滚动区域中。这样的模式可以由对应于每个多媒体元素类型(文本、音频、视频、静态图形、动画)的默认值、或由附加到针对特定查询的结果记录的约束、或他们两者的组合来驱动。在一些实施例中,音频或视频片段仅在对应的 GUI元素被点击时才播放。这在已经给予短响应(例如书面文本或TTS音频)之后是有用的,以便于给予用户获取更多细节的选项。
图3-10是示出根据各种实施例的在不同场景中随时间处理用户语音的图。沿着水平轴示出时间,并且在垂直轴的不同部分示出了不同的操作 (监听、用户语音、执行和响应)。“监听”操作表示图2的输入模块 210接收和分割输入音频数据以作为新语音话语包含于话语流中。“用户语音”操作表示用户向客户端设备110提供语音输入,由此创建话语流输入数据。“处理”操作表示图2的处理模块220的处理(识别222和执行 224)。“响应”操作表示由输出管理器230创建响应数据。多媒体响应数据可以以语音或视觉形式以及其他形式呈现给用户,但在图3-10中,他们被描绘为时间分割。
图3示出了“半双工”实施例,其中来自图2的输入模块210在查询处理期间并且在输出响应时忽略附加输入。具体来说,在用户开始话语U 的时间t1处,输入模块210正在监听定义话语的音频数据。在用户结束话语的时间t2之后不久的时间t3处,输入模块210确定话语已经结束,并因此(1)停止监听另外的话语流输入数据,并且(2)开始处理所识别的话语U(即,在时间t1和t2之间的音频输入数据)。当在时间t4处结束对话语U的处理时,输出管理器230基于处理结果输出响应(例如,如果U是对信息的请求,则响应表示所请求的信息),例如以音频或视觉形式。当响应的输出在t5结束时,输入模块210仅在此时再次开始监听另外的话语。
图4示出了由图3的实施例造成的话语数据丢失。在t3和t4之间的时间t3'处,在处理发生的同时,用户开始持续到t4'的附加话语U2(或者作为替代示例,持续到t5'的话语U3),由于输入模块210直到t5才重新开始监听,因此所有的话语U2都丢失了(或者在替代示例中,除了t5和t5'之间的部分,所有的U3都丢失)。
图5示出了根据一些实施例的响应于第二话语而针对第一话语的持续监听和中止动作。当输入模块已经在时间t3识别出话语U1已经结束时,处理模块220开始处理U1。在时间t4处,在U1的处理仍在发生的同时,用户开始第二话语U2(例如,用户说“what is theweather tomorrow” (U1),停顿并继续“in Rome?”(U2))。在一些实施例中,处理模块 220由于检测到U2的开始而在P1完成之前终止处理P1;在其他实施例中,处理模块220完成U1的处理,而且在处理P1正在进行的同时继续监听U2,使得当U2完成时,它可以在U2上执行处理P2。
在图5的实施例中,在P2完成之后提供响应R。如果在识别到U2之后,图2的查询串行器243确定U2是U1的延续,则处理模块220执行从 U1和U2的级联产生的查询,并且基于该查询提供响应R,从而通过避免输出仅基于P1的任何在先响应来丢弃这种在先响应。
相反,如果处理模块220确定U2不是U1的延续,则处理模块220与 U2分开地处理U1。继续前面的示例,如果U1是“明天是什么天气”并且 U2是“创建约会日程”,则在一些实施例中,响应R包括对U1和U2两者的响应(例如,对天气的描述以及对约会日程创建是否成功的说明)。在其他实施例中(图5中未示出),响应管理器230在输出基于P2的响应R 之前开始输出基于处理P1的响应,例如,一旦处理P2确定U2不是U1的延续。
由于网络延迟或操作系统进程间的通信延迟,在某些情况下,有可能在用户开始第二话语之后开始对第一话语的处理。本发明确保第二话语不会丢失。当处理模块220最终接收到针对第二话语的音频时,它必须适当地行为。在某些情况下,适当的行为是取消处理P1。在某些情况下,适当的行为是允许P1完成,然后丢弃其结果。在某些情况下,适当的行为是独立于处理P2的结果来提供P1的结果。
图6示出根据一个实施例的并行查询处理。U1的处理P1在t3处开始之后,第二话语(U2)开始。处理模块220继续U1的处理P1,并且在完成 U2之后开始U2的处理P2。(如果处理模块220已经确定U2是U1的延续,则在一些实施例中,它将改为处理U1和U2的级联)。处理模块220在单独的执行线程中执行步骤P1和P2,使得他们可以并行发生,如他们在图6 的示例中在时间t5和t4之间实现的。响应模块130在相应处理(即P1和P2) 完成之后直接输出与U1和U2相对应的响应(即,分别为R1和R2)。
图7示出了根据一个实施例的基于处理完成的顺序的查询响应的无序输出。尽管话语U1在U2之前开始,并且因此针对U1的处理P1在针对U2的处理P2之前开始,但P2比P1更早地完成(例如因为P2是更计算密集的,或者需要使用具有更大延迟的外部服务等等)。因此,针对U2的响应R2 (从t5开始)比针对U1的响应R1(从t7开始)更早地被输出。在图7所示的实施例中,输出管理器230延迟开始提供响应R1,直到R2的输出完成的时间t7,即使响应R1已经在较早的时间t6准备就绪。这样的延迟在以如下方式输出响应时是有益的:以输出重叠的响应将会使人分心的方式,例如,当响应可听见地输出时。在其他实施例(图7中未示出)中,或者在不同的响应在重叠的时间被输出但不会使用户分心的情况下(例如,其中可以在可视用户界面的不同部分可视地输出响应),在较后的时间准备就绪的响应不需要被延迟到较早的响应被完全输出的时间。
图8示出了其中响应以与其相应的话语被接收的顺序相对应的顺序被输出的实施例。也就是说,由于在U2之前接收到U1,所以在响应R2之前输出相应的响应R1,其中输出管理器230延迟输出任何响应,直到第一话语U1的处理P1完成。在一些实例中,以与话语的顺序相同的顺序提供相应的结果是有价值的,例如当结果的类型相似并且不容易被用户区分时,例如,其中U1和U2都与天气状况相关。如上所述,在一些实施例或情形中,R2可以在部分地或完全地与R1重叠时被及时输出。这是可以接受的,例如在结果具有不同的类型,并且因此易于被用户区分,例如当第一结果是关于天气而第二结果是关于人口数量时。
图9示出了根据一个实施例基于连续话语之间的依赖关系来延迟提供第二响应。在输入模块210检测到话语U2的结束之后,处理模块220可以在时间t6(例如,通过成功地尝试解析级联U1+U2)确定U2是U1的延续,并且确定针对U2的响应将取决于针对U1的响应,如上面关于查询串行器所讨论的。因此,处理模块220延迟处理的执行阶段直到P1完成(并且响应R1相应地被计算)。一旦P1在时间t8完成,则处理模块执行处理P2的执行阶段,使响应R2基于响应R1,并在P2完成的时间t9处输出R2。
图10示出了根据一个实施例的响应的中断。解析器222处理话语U1以创建查询Q1(在阶段P1处理),在时间t4产生响应R1。输出管理器 230在时间t4开始输出响应R1。在稍后的时间t5,输入模块210检测到第二话语U2,并且将U1+U2解析为查询Q2。在一个实施例中,Q1和Q2的逻辑关系在导致输出管理器230在时刻t5停止输出响应R1之前由查询串并行转换器243分析,转而在时间t8开始处理U1+U,并在时间t9输出结果R2。因此,输出管理器230停止R1的输出。例如,如果U1是短语“what is the weather tomorrow”,则输出模块开始输出针对用户当前位置的明天的预测天气的描述,但是如果U2是短语“in Rome”,则用户当前位置明天的天气是无关的(假设用户不在罗马境内或附近),因此输出管理器230将停止输出对当地天气的描述。
示例计算机架构
图11是示出用作图1的查询处理服务器100或客户端设备110的部分或全部的计算机1100的物理组件的高级框图。示出了耦合到芯片组1104 的至少一个处理器1102。还耦合到芯片组1104的是存储器1106、存储装置1108、键盘1110、图形适配器1112、点选装置1114、以及网络适配器 1116。显示器1118耦合到图形适配器1112。在一个实施例中,芯片组 1104的功能由存储器控制器集线器1120和I/O控制器集线器1122提供。在另一实施例中,存储器1106直接耦合到处理器1102而不是芯片组1104。
存储设备1108是任意非暂态计算机可读存储介质,诸如硬驱动、光盘只读存储器(CD-ROM)、DVD或固态存储器设备。存储器1106保存处理器1102所使用的数据和指令。点选设备1114可以是鼠标、轨迹球或其他类型的点选设备,并且与键盘1110组合使用以将数据输入到计算机 1100中。图形适配器1112在显示器1118上显示图像和其他信息。网络适配器1116将计算机1100耦合到本地或广域网。
如本领域已知的,计算机1100可以具有与图11所示的组件不同的和/ 或其他组件。此外,计算机1100可能缺少某些所示的组件。在一个实施例中,用作服务器的计算机1100可能缺少键盘1110、点选设备1114、图形适配器1112和/或显示器1118。此外,存储设备1108可以是在计算机 1100本地或远程(诸如在存储区域网络(SAN)内实现)。
如本领域已知的,计算机1100适于执行用于提供本文所描述的功能的计算机程序模块。如本文所使用的,术语“模块”指代用于提供指定功能的计算机程序逻辑。因此,模块可以在硬件、固件和/或软件中实现。在一个实施例中,程序模块被存储在存储设备1108上、被加载到存储器 1106中并由处理器1102执行。
其他考虑因素
说明书中对“一个实施例”或“实施例”的引用表示结合实施例描述的特定特征、结构或特性包括在至少一个实施例中。说明书中各处出现的短语“在一个实施例中”未必全部指代相同的实施例。不定冠词“一”和“一个”应被理解为包括适用于上下文的单数和复数;因此,“块”应理解为例如表示“至少一个块”。
应当注意,处理步骤和指令体现在软件、固件或硬件中,并且当体现在软件中时,可以对其进行下载以驻留在各种操作系统所使用的不同平台上并由其操作。
此外,本文中的操作也可以由设备执行。此外,在本说明书中引用的计算机可以包括单个处理器,或者可以是采用多个处理器设计以增加计算能力的架构。应当理解,各种编程语言可以被用于实现如本文所述的本发明的教导,并且对具体语言的引用被提供来用于公开本发明的实现和最佳模式。
虽然已经参考优选实施例和若干替代实施例具体示出和描述了本发明,但是相关领域的技术人员将会理解,在不脱离本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。
最后,应当注意,本说明书中使用的语言主要是为了可读性和教学目的而选择的,并且可能没有被选择来描绘或限定本发明的主题。因此,本发明的公开旨在说明而不是限制本发明的范围,本发明的范围将在权利要求书中阐述。
Claims (23)
1.一种用于产生对语音输入的响应的计算机实现的方法,所述方法包括:
获得音频输入流;
在所述音频输入流中检测第一话语的开始;
在所述音频输入流中检测所述第一话语的结束;
响应于检测到所述第一话语的结束,启动对所述第一话语的处理以识别第一查询;以及
在处理所述第一话语的同时:
继续接收所述音频输入流;和
在所述音频输入流中检测第二话语的开始。
2.根据权利要求1所述的计算机实现的方法,还包括:响应于检测到所述第二话语的开始而终止处理所述第一话语。
3.根据权利要求1所述的计算机实现的方法,还包括:
执行所述第一查询以确定第一响应;
在所述音频输入流中检测所述第二话语的结束;以及
响应于检测到所述第二话语的结束,将所述第一响应输出至所述第一查询。
4.根据权利要求1所述的计算机实现的方法,还包括:
执行所述第一查询以确定第一响应;
在所述音频输入流中检测所述第二话语的结束;
从所述第一话语和第二话语的级联识别第二查询;
至少部分地响应于识别出所述第二查询而丢弃所述第一响应;
执行所述第二查询以确定第二响应;以及
输出所述第二响应。
5.根据权利要求1所述的计算机实现的方法,还包括:
执行所述第一查询以确定第一响应;
检测所述音频输入流中的所述第二话语的结束;
处理所述第二话语以识别第二查询;
执行所述第二查询以确定第二响应;以及
输出所述第二响应。
6.根据权利要求5所述的计算机实现的方法,还包括:在完成输出所述第一响应之后输出所述第二响应。
7.根据权利要求5所述的计算机实现的方法,其中,处理所述第二话语是与执行所述第一查询同时执行的。
8.根据权利要求5所述的计算机实现的方法,其中,执行所述第一查询是与执行所述第二查询同时执行的。
9.根据权利要求5所述的计算机实现的方法,其中,输出所述第一响应是与执行所述第二查询同时执行的。
10.根据权利要求5所述的计算机实现的方法,其中,输出所述第二响应是与执行所述第一查询同时执行的。
11.根据权利要求5所述的计算机实现的方法,还包括:
识别所述第一查询和所述第二查询之间的依赖关系;以及
延迟对所述第二查询的执行直到完成对所述第一查询的执行。
12.根据权利要求5所述的计算机实现的方法,其中,所述第一响应是视觉输出的,所述方法还包括:
确定自所述第一响应被视觉输出以来是否经过了一定显示周期;以及
在经过所述显示周期过后清除所述响应的视觉输出。
13.一种存储用于生成对语音输入的响应的指令的非暂态计算机可读存储介质,所述指令在由计算机处理器执行时执行动作,所述动作包括:
获得音频输入流;
在所述音频输入流中检测第一话语的开始;
在所述音频输入流中检测所述第一话语的结束;
响应于检测到所述第一话语的结束,启动对所述第一话语的处理以识别第一查询;以及
在处理所述第一话语的同时:
继续接收所述音频输入流;并且
在所述音频输入流中检测第二话语的开始。
14.根据权利要求13所述的非暂态计算机可读存储介质,所述动作还包括:响应于检测到所述第二话语的开始而终止处理所述第一话语。
15.根据权利要求13所述的非暂态计算机可读存储介质,所述动作还包括:
执行所述第一查询以确定第一响应;
在所述音频输入流中检测所述第二话语的结束;以及
响应于检测到所述第二话语的结束,将所述第一响应输出至所述第一查询。
16.根据权利要求13所述的非暂态计算机可读存储介质,所述动作还包括:
执行所述第一查询以确定第一响应;
在所述音频输入流中检测所述第二话语的结束;
从所述第一话语和第二话语的串联识别第二查询;
至少部分地响应于识别出所述第二查询而丢弃所述第一响应;
执行所述第二查询以确定第二响应;以及
输出所述第二响应。
17.根据权利要求13所述的非暂态计算机可读存储介质,所述动作还包括:
执行所述第一查询以确定第一响应;
检测所述音频输入流中的所述第二话语的结束;
处理所述第二话语以识别第二查询;
执行所述第二查询以确定第二响应;以及
输出所述第二响应。
18.根据权利要求17所述的非暂态计算机可读存储介质,所述动作还包括:在完成输出所述第一响应之后输出所述第二响应。
19.根据权利要求17所述的非暂态计算机可读存储介质,其中,处理所述第二话语是与执行所述第一查询同时执行的。
20.根据权利要求17所述的非暂态计算机可读存储介质,其中,执行所述第一查询是与执行所述第二查询同时执行的。
21.根据权利要求17所述的非暂态计算机可读存储介质,其中,输出所述第一响应是与执行所述第二查询同时执行的。
22.根据权利要求17所述的非暂态计算机可读存储介质,其中,输出所述第二响应是与执行所述第一查询同时执行的。
23.根据权利要求17所述的非暂态计算机可读存储介质,所述动作还包括:
识别所述第一查询和所述第二查询之间的依赖关系;以及
延迟对所述第二查询的执行直到完成对所述第一查询的执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/389,122 US10311875B2 (en) | 2016-12-22 | 2016-12-22 | Full-duplex utterance processing in a natural language virtual assistant |
US15/389,122 | 2016-12-22 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108228131A true CN108228131A (zh) | 2018-06-29 |
CN108228131B CN108228131B (zh) | 2021-03-19 |
Family
ID=60937550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710843341.9A Active CN108228131B (zh) | 2016-12-22 | 2017-09-18 | 自然语言虚拟助理中的全双工话语处理 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10311875B2 (zh) |
EP (1) | EP3340241A1 (zh) |
JP (1) | JP6728125B2 (zh) |
KR (1) | KR102192062B1 (zh) |
CN (1) | CN108228131B (zh) |
HK (1) | HK1256569A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111566727A (zh) * | 2018-10-25 | 2020-08-21 | 微软技术许可有限责任公司 | 全双工语音对话中的多阶段响应 |
WO2021042584A1 (zh) * | 2019-09-04 | 2021-03-11 | 苏州思必驰信息科技有限公司 | 全双工语音对话方法 |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11386085B2 (en) | 2014-01-27 | 2022-07-12 | Microstrategy Incorporated | Deriving metrics from queries |
US10635669B1 (en) | 2014-01-27 | 2020-04-28 | Microstrategy Incorporated | Data engine integration and data refinement |
US11921715B2 (en) | 2014-01-27 | 2024-03-05 | Microstrategy Incorporated | Search integration |
US10255320B1 (en) | 2014-01-27 | 2019-04-09 | Microstrategy Incorporated | Search integration |
US10210095B2 (en) * | 2017-07-06 | 2019-02-19 | International Business Machines Corporation | Configurable hardware queue management and address translation |
CN107832439B (zh) * | 2017-11-16 | 2019-03-08 | 百度在线网络技术(北京)有限公司 | 多轮状态追踪的方法、系统及终端设备 |
US11347801B2 (en) * | 2018-05-07 | 2022-05-31 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
EP3596599A1 (en) * | 2018-05-07 | 2020-01-22 | Google LLC | Activation of remote devices in a networked system |
KR102508338B1 (ko) * | 2018-05-07 | 2023-03-10 | 구글 엘엘씨 | 제2 세션 인터럽트 중단시 제1 자동화 어시스턴트 세션 자동 재개 여부 결정 |
EP3586332A1 (en) | 2018-05-07 | 2020-01-01 | Google LLC. | Multi-modal interaction between users, automated assistants, and other computing services |
US11200893B2 (en) * | 2018-05-07 | 2021-12-14 | Google Llc | Multi-modal interaction between users, automated assistants, and other computing services |
EP3973413A4 (en) * | 2019-08-22 | 2022-07-06 | Samsung Electronics Co., Ltd. | METHOD AND SYSTEM FOR CONTEXT ASSIGNMENT AND PERSONALIZATION USING A WAKE-UP WORD IN VIRTUAL PERSONAL ASSISTANT |
CN112735398B (zh) * | 2019-10-28 | 2022-09-06 | 思必驰科技股份有限公司 | 人机对话模式切换方法及系统 |
KR20210066647A (ko) | 2019-11-28 | 2021-06-07 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
US11614970B2 (en) | 2019-12-06 | 2023-03-28 | Microstrategy Incorporated | High-throughput parallel data transmission |
US11567965B2 (en) | 2020-01-23 | 2023-01-31 | Microstrategy Incorporated | Enhanced preparation and integration of data sets |
CN112382285B (zh) * | 2020-11-03 | 2023-08-15 | 北京百度网讯科技有限公司 | 语音控制方法、装置、电子设备和存储介质 |
US11978454B2 (en) * | 2021-09-16 | 2024-05-07 | Soundhound Ai Ip, Llc | Multiple service levels for automatic speech recognition |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101507276A (zh) * | 2006-08-18 | 2009-08-12 | 索尼株式会社 | 具有可换个性适配器的能自动重配置多媒体系统 |
US20130124205A1 (en) * | 2000-01-31 | 2013-05-16 | Christopher H. Genly | Providing Programming Information in Response to Spoken Requests |
US20150278198A1 (en) * | 2014-03-31 | 2015-10-01 | Abbyy Infopoisk Llc | Method of clustering search results |
US9280599B1 (en) * | 2012-02-24 | 2016-03-08 | Google Inc. | Interface for real-time audio recognition |
US20160148610A1 (en) * | 2014-11-26 | 2016-05-26 | Voicebox Technologies Corporation | System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance |
CN106030699A (zh) * | 2014-10-09 | 2016-10-12 | 谷歌公司 | 多个设备上的热词检测 |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5652789A (en) | 1994-09-30 | 1997-07-29 | Wildfire Communications, Inc. | Network based knowledgeable assistant |
US6757362B1 (en) | 2000-03-06 | 2004-06-29 | Avaya Technology Corp. | Personal virtual assistant |
US7319992B2 (en) | 2000-09-25 | 2008-01-15 | The Mission Corporation | Method and apparatus for delivering a virtual reality environment |
US7117442B1 (en) | 2001-02-01 | 2006-10-03 | International Business Machines Corporation | Efficient presentation of database query results through audio user interfaces |
JP4021287B2 (ja) * | 2002-09-09 | 2007-12-12 | 日立ソフトウエアエンジニアリング株式会社 | データベース検索プログラム、データベース検索方法及びデータベース検索装置 |
WO2006069381A2 (en) | 2004-12-22 | 2006-06-29 | Enterprise Integration Group | Turn-taking confidence |
JP2007304793A (ja) * | 2006-05-10 | 2007-11-22 | Nippon Telegr & Teleph Corp <Ntt> | 文書検索装置 |
US20070274297A1 (en) | 2006-05-10 | 2007-11-29 | Cross Charles W Jr | Streaming audio from a full-duplex network through a half-duplex device |
US8112280B2 (en) | 2007-11-19 | 2012-02-07 | Sensory, Inc. | Systems and methods of performing speech recognition with barge-in for use in a bluetooth system |
US8279779B2 (en) | 2009-12-10 | 2012-10-02 | Verizon Patent And Licensing Inc. | Method and system for virtual agent session monitoring and barge-in |
US8805683B1 (en) * | 2012-02-24 | 2014-08-12 | Google Inc. | Real-time audio recognition protocol |
US9208225B1 (en) * | 2012-02-24 | 2015-12-08 | Google Inc. | Incentive-based check-in |
US9384734B1 (en) * | 2012-02-24 | 2016-07-05 | Google Inc. | Real-time audio recognition using multiple recognizers |
JP2014109889A (ja) * | 2012-11-30 | 2014-06-12 | Toshiba Corp | コンテンツ検索装置、コンテンツ検索方法及び制御プログラム |
US9286395B1 (en) * | 2013-07-25 | 2016-03-15 | Google Inc. | Modifying query in discourse context |
JP6327252B2 (ja) * | 2013-08-07 | 2018-05-23 | 日本電気株式会社 | 分析対象決定装置及び分析対象決定方法 |
US20150310863A1 (en) * | 2014-04-24 | 2015-10-29 | Nuance Communications, Inc. | Method and apparatus for speaker diarization |
CN104066254B (zh) * | 2014-07-08 | 2017-01-04 | 昂宝电子(上海)有限公司 | 使用triac调光器进行智能调光控制的系统和方法 |
US10198405B2 (en) * | 2015-07-08 | 2019-02-05 | Microsoft Technology Licensing, Llc | Rule-based layout of changing information |
US10269341B2 (en) * | 2015-10-19 | 2019-04-23 | Google Llc | Speech endpointing |
-
2016
- 2016-12-22 US US15/389,122 patent/US10311875B2/en active Active
-
2017
- 2017-09-18 CN CN201710843341.9A patent/CN108228131B/zh active Active
- 2017-11-30 JP JP2017230590A patent/JP6728125B2/ja active Active
- 2017-12-19 EP EP17208676.1A patent/EP3340241A1/en active Pending
- 2017-12-21 KR KR1020170176870A patent/KR102192062B1/ko active IP Right Grant
-
2018
- 2018-12-06 HK HK18115644.8A patent/HK1256569A1/zh unknown
-
2019
- 2019-04-18 US US16/388,526 patent/US10699713B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130124205A1 (en) * | 2000-01-31 | 2013-05-16 | Christopher H. Genly | Providing Programming Information in Response to Spoken Requests |
CN101507276A (zh) * | 2006-08-18 | 2009-08-12 | 索尼株式会社 | 具有可换个性适配器的能自动重配置多媒体系统 |
US9280599B1 (en) * | 2012-02-24 | 2016-03-08 | Google Inc. | Interface for real-time audio recognition |
US20150278198A1 (en) * | 2014-03-31 | 2015-10-01 | Abbyy Infopoisk Llc | Method of clustering search results |
CN106030699A (zh) * | 2014-10-09 | 2016-10-12 | 谷歌公司 | 多个设备上的热词检测 |
US20160148610A1 (en) * | 2014-11-26 | 2016-05-26 | Voicebox Technologies Corporation | System and method of providing intent predictions for an utterance prior to a system detection of an end of the utterance |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111566727A (zh) * | 2018-10-25 | 2020-08-21 | 微软技术许可有限责任公司 | 全双工语音对话中的多阶段响应 |
CN111566727B (zh) * | 2018-10-25 | 2023-09-01 | 微软技术许可有限责任公司 | 全双工语音对话中的多阶段响应 |
US11979360B2 (en) | 2018-10-25 | 2024-05-07 | Microsoft Technology Licensing, Llc | Multi-phrase responding in full duplex voice conversation |
WO2021042584A1 (zh) * | 2019-09-04 | 2021-03-11 | 苏州思必驰信息科技有限公司 | 全双工语音对话方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180182398A1 (en) | 2018-06-28 |
US20190244621A1 (en) | 2019-08-08 |
HK1256569A1 (zh) | 2019-09-27 |
EP3340241A1 (en) | 2018-06-27 |
KR20180073493A (ko) | 2018-07-02 |
CN108228131B (zh) | 2021-03-19 |
JP2018106702A (ja) | 2018-07-05 |
KR102192062B1 (ko) | 2020-12-16 |
JP6728125B2 (ja) | 2020-07-22 |
US10311875B2 (en) | 2019-06-04 |
US10699713B2 (en) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108228131A (zh) | 自然语言虚拟助理中的全双工话语处理 | |
JP7418526B2 (ja) | 自動アシスタントを起動させるための動的および/またはコンテキスト固有のホットワード | |
EP3895161B1 (en) | Utilizing pre-event and post-event input streams to engage an automated assistant | |
CN111033492A (zh) | 为自动化助手提供命令束建议 | |
JP7384976B2 (ja) | 割込みをかける第2のセッションの終了時に第1の自動アシスタントセッションを自動的に再開するかどうかを決定すること | |
US20230176813A1 (en) | Graphical interface for speech-enabled processing | |
JP7471371B2 (ja) | アシスタントデバイスのディスプレイにレンダリングするコンテンツの選択 | |
JP2024510698A (ja) | アシスタントコマンドの文脈的抑制 |
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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1256569 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |