低延迟智能自动化助理的制作方法

低延迟智能自动化助理1.本技术是申请日为2018年4月24日、于2019年11月8日进入中国国家阶段的申请号为201880030830.5、发明名称为“低延迟智能自动化助理”的中国发明专利申请的分案申请。2.相关申请的交叉引用3.本技术要求以下专利申请的优先权:于2017年5月12日提交的标题为“low-latencyintelligentautomatedassistant”的美国申请序列号62/505,546;于2017年6月1日提交的标题为“low-latencyintelligentautomatedassistant”的丹麦申请号pa201770427;于2017年6月1日提交的标题为“low-latencyintelligentautomatedassistant”的丹麦申请号pa201770428;于2017年6月1日提交的标题为“low-latencyintelligentautomatedassistant”的丹麦申请号pa201770429;以及于2017年8月17日提交的标题为“low-latencyintelligentautomatedassistant”的美国申请序列号15/679,595,以上专利申请的内容据此全文以引用方式并入。

技术领域


:4.本发明整体涉及智能自动化助理,并且更具体地讲,涉及低延迟智能自动化助理。

背景技术


::5.智能自动化助理(或数字助理)可在人类用户与电子设备之间提供有利界面。此类助理可允许用户使用自然语言以语音形式和/或文本形式与设备或系统进行交互。例如,用户可向正在电子设备上运行的数字助理提供包含用户请求的语音输入。数字助理可从该语音输入解译用户意图并且将用户意图操作化成任务。随后可通过执行电子设备的一项或多项服务来执行这些任务,并且可将响应于用户请求的相关输出返回给用户。6.数字助理通常在移动计算平台上实现,诸如智能电话和平板计算机。然而,此类移动计算平台可能具有有限的计算资源(例如,存储器和处理器能力)并且因此在此类平台上实现的数字助理可能需要更长的处理时间,并从而在响应用户请求时会有更大的延迟。这可能会导致不良的用户体验,从而可限制数字助理在移动平台上的广泛采用。技术实现要素:7.本发明提供了用于操作数字助理的系统和过程。在一个示例性过程中,本发明提供了数字助理的低延迟操作。在该示例中,接收到音频流。具体地,从第一时间到第二时间接收包含用户话语的音频流的第一部分,并且从第二时间到第三时间接收音频流的第二部分。该过程确定音频流的第一部分是否满足预定条件。响应于确定音频流的第一部分满足预定条件,在第二时间和第三时间之间至少部分地执行操作。这些操作包括基于用户话语的一个或多个候选文本表示来确定用户话语的多个候选用户意图。多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的各个候选任务流。操作还包括选择多个候选任务流中的第一候选任务流。此外,操作包括执行第一候选任务流而不向设备的用户提供输出。过程确定在第二时间和第三时间之间是否检测到语音结束点条件。响应于确定在第二时间和第三时间之间检测到语音结束点条件,将执行选定第一候选任务流的结果呈现给用户。8.至少部分地在第二时间和第三时间之间并响应于确定音频流的第一部分满足预定条件而执行包括以下的操作:确定多个候选用户意图,选择第一候选任务流的操作,以及执行第一候选任务流可以使得电子设备在等待语音结束点条件被检测的同时至少部分地完成这些操作。这可以通过减少在检测到语音结束点条件之后需要执行的计算量来增强电子设备的可操作性,这继而可以减小接收用户话语和向用户呈现结果之间的总体延迟。9.在数字助理的低延迟操作的另一个示例性过程中,接收音频流。具体地,从第一时间到第二时间接收包含用户话语的音频流的第一部分,并且从第二时间到第三时间接收音频流的第二部分。该过程确定音频流的第一部分是否满足预定条件。响应于确定音频流的第一部分满足预定条件,在第二时间和第三时间之间至少部分地执行操作。操作包括致使响应于用户话语而生成文本对话。操作还包括确定设备的存储器是否存储具有文本对话的语音表示的音频文件。响应于确定设备的存储器没有存储具有文本对话的语音表示的音频文件,操作包括生成具有文本对话的语音表示的音频文件并将该音频文件存储在存储器中。过程确定在第二时间和第三时间之间是否检测到语音结束点条件。响应于确定在第二时间和第三时间之间检测到语音结束点条件,通过播放所存储的音频文件将文本对话的语音表示输出到设备的用户。10.至少部分地在第二时间和第三时间之间并响应于确定音频流的第一部分满足预定条件而执行包括以下的操作:致使文本对话的生成,以及生成具有文本对话的语音表示的音频文件可以使得电子设备在等待语音结束点条件被检测的同时至少部分地完成这些操作。这可以通过减少在检测到语音结束点条件之后需要执行的计算量来增强电子设备的可操作性,这继而可以减小接收用户话语和向用户输出文本对话的语音表示之间的总体延迟。11.还提供了用于数字助理的鲁棒操作的系统和过程。在示例性过程中,接收用户话语。基于用户话语的多个候选文本表示,确定用户话语的多个候选用户意图。多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的各个候选任务流。确定多个候选任务流的多个任务流得分。多个任务流得分中的每个任务流得分对应于多个候选任务流中的相应候选任务流。基于多个任务流得分,选择多个候选任务流中的第一候选任务流。执行第一候选任务流,包括向用户呈现来自执行第一候选任务流的结果。12.确定多个候选任务流的多个任务流得分并基于多个任务流得分选择第一候选任务流可以使得电子设备能够在选择和执行第一候选任务流之前评估每个候选任务流的可靠性和可行性。这可以通过提高选定第一候选任务流与用户提供用户话语的实际期望目标相符的可能性来增强电子设备的可操作性。继而,这可以允许电子设备在响应于用户话语的识别和执行任务时以更高的准确性和可靠性进行操作。13.用于执行本文所述的功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的非暂态计算机可读存储介质或其他计算机程序产品中。用于执行这些功能的可执行指令任选地被包括在被配置用于由一个或多个处理器执行的暂态计算机可读存储介质或其他计算机程序产品中。附图说明14.图1为示出了根据各种示例的用于实现数字助理的系统和环境的框图。15.图2a为示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备的框图。16.图2b为示出了根据各种示例的用于事件处理的示例性部件的框图。17.图3示出了根据各种示例的实现数字助理的客户端侧部分的便携式多功能设备。18.图4为根据各种示例的具有显示器和触敏表面的示例性多功能设备的框图。19.图5a示出了根据各种示例的便携式多功能设备上的应用程序的菜单的示例性用户界面。20.图5b示出了根据各种示例的具有与显示器分开的触敏表面的多功能设备的示例性用户界面。21.图6a示出了根据各种示例的个人电子设备。22.图6b为示出了根据各种示例的个人电子设备的框图。23.图7a为示出了根据各种示例的数字助理系统或其服务器部分的框图。24.图7b示出了根据各种示例的在图7a中所示的数字助理的功能。25.图7c示出了根据各种示例的知识本体的一部分。26.图8是示出根据各种示例的数字助理模块的一部分的框图。27.图9是示出根据各种实例的数字助理的低延迟操作的定时的时间线。28.图10是示出根据各种实例的数字助理的低延迟操作的定时的时间线。29.图11a至图11b示出了根据各种示例的用于操作数字助理的过程。30.图12示出了根据各种示例的用于操作数字助理以生成语音对话响应的过程。具体实施方式31.在以下对示例的描述中将引用附图,在附图中以例示的方式示出了可被实施的特定示例。应当理解,在不脱离各个示例的范围的情况下,可使用其他示例并且可作出结构性改变。32.如上所述,在移动计算平台上实现的数字助理可能需要更长的处理时间,并从而在响应用户请求时会有更大的延迟。特别是,由数字助理执行的某些过程(诸如自然语言处理、任务流处理和/或语音合成)可能是计算密集的,并且显著地增加响应延迟。在一些数字助理系统中,仅在检测到语音结束点条件之后才启动前述过程。检测语音结束点条件确定用户已完成提供他/她的语音请求。然而,基于大于预定持续时间(例如,600ms、700ms或800ms)的用户语音的缺失,经常检测到语音结束点条件。这意味着在用户完成提供他/她的语音请求后,用户经历的总延迟可以包括检测语音结束点条件所需的预定持续时间以及数字助理系统处理语音请求所需的计算时间(例如,通过执行自然语言处理、任务流处理和/或语音合成)。在给定移动计算平台的有限计算资源的情况下,该总延迟可能足以显著影响用户参与度。因此,期望减少用户从用户完成提供他/她的语音请求的时间到数字助理系统对用户请求作出响应的时间所经历的总延迟。33.本文描述了用于减小数字助理系统的响应延迟的技术。具体地,在一些示例性过程中,可以在检测语音结束点条件所需的预定持续时间期间启动自然语言处理、任务流处理和/或语音合成。例如,在特定示例中,可以在检测到用户语音中的短暂停(例如,50ms、75ms或100ms)时启动自然语言处理、任务流处理和/或语音合成。如果短暂停发展成对应于语音结束点条件的长时间暂停(例如,600ms、700ms或800ms),则在检测到语音结束点条件时,自然语言处理、任务流处理和/或语音合成将至少部分完成。这可以导致用户所经历的总延迟的减少。34.在用于减少数字助理系统中的响应延迟的一个示例过程中,接收音频流。具体地,从第一时间到第二时间接收包含用户话语的音频流的第一部分,并且从第二时间到第三时间接收音频流的第二部分。该过程确定音频流的第一部分是否满足预定条件。响应于确定音频流的第一部分满足预定条件,在第二时间和第三时间之间至少部分地执行操作。这些操作包括基于用户话语的一个或多个候选文本表示来确定用户话语的多个候选用户意图。多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的各个候选任务流。操作还包括选择多个候选任务流中的第一候选任务流。此外,操作包括执行第一候选任务流而不向设备的用户提供输出。在一些示例中,执行第一候选任务流包括生成响应于用户话语的语音对话而不输出所生成的语音对话。过程确定在第二时间和第三时间之间是否检测到语音结束点条件。响应于确定在第二时间和第三时间之间检测到语音结束点条件,将执行选定第一候选任务流的结果呈现给用户。在一些示例中,呈现结果包括输出所生成的语音对话。35.本文还描述了用于数字助理的鲁棒操作的技术。具体地,由于人类语音固有的歧义性,在人类语音的语音识别和自然语言处理期间存在固有的不确定性。因此,当数字助理系统处理语音用户请求时,语音识别和自然语言处理错误可能经常发生。当此类错误通过任务流处理传播时,有时可能会导致致命错误(例如,无响应)或执行与用户期望目标不对应的任务。36.提供了由语音识别错误引起的任务流处理错误的示意性示例。在此示例中,用户提供了语音请求“mikedunleavy的统计信息是什么?”在语音识别处理期间,数字助理系统可能会错误地将语音请求转录为“mikedunleaveys的统计信息是什么?”随后,在自然语言处理期间,数字助理系统可以识别(例如,基于单词“统计信息”)用户正在请求体育信息并且“mikedunleavey”是与体育有关的实体。基于此解释,数字助理系统可以执行任务流处理并选择包括用于为“mikedunleavey”搜索运动相关数据源的规程的任务流。然而,在执行选定任务流期间,由于语音识别错误,数字助理系统可能无法在体育相关源中定位与“mikedunleavey”有关的任何信息。因此,数字助理系统可能无法提供对用户请求的任何实质性响应。37.在任务流处理错误的另一个示意性示例中,用户可以提供语音请求“到富达投资的方向”。在此示例中,数字助理系统可以成功将语音请求转录为“到富达投资的方向”。在随后的自然语言处理期间,数字助理系统可以识别(例如,基于单词“方向”)用户正在请求方向。然而,数字助理系统不会将“富达投资”解释为业务,而是可能错误地将“富达投资”解释为用户的联系人列表中的某人(例如,基于用户的联系人列表中是否存在与“富达投资”相对应的条目)。基于此错误解释,数字助理系统可以执行任务流处理并选择包括用于搜索用户联系人列表中的与“富达投资”相对应的地址以及获得到该地址的方向的规程的任务流。然而,在执行选定任务流期间,数字助理系统可能无法在用户的联系人列表中到与“富达投资”相对应的任何地址。具体地,尽管用户在他/她的联系人列表中具有与“富达投资”相对应的条目,但是该条目可以仅包括电话号码信息,而不包括地址信息。因此,数字助理系统可能无法提供对用户请求的任何实质性响应。38.基于上述说明性示例,实现更鲁棒的任务流处理的数字助理系统可能是期望的。根据本文描述的一些技术,可以在选择和执行特定任务流之前评估与多个候选用户意图相关联的多个候选任务流的可靠性。评估过程可以基于为每个候选任务流确定的任务流得分。相应候选任务流的任务流得分可以基于,例如,相应语音识别结果的语音识别置信度得分、相应自然语言处理结果的意图置信度得分、相应候选任务流的流参数得分或其任意组合。在一些示例中,流参数得分可以基于是否可以解析相应候选任务流的一个或多个丢失流参数。例如,参考以上示意性示例,流参数得分可以基于是否可以解析与“mikedunleavey”和“富达投资”相关联的丢失流量参数(例如,“体育实体”和“地址”流参数)。在这些示例中,流参数得分可能较低,因为无法解析缺失流参数。数字助理系统可以基于候选任务流的任务流得分来选择合适候选任务流。例如,可以选择具有基于组合的语音识别置信度得分、意图置信度得分和流参数得分而最大化的任务流得分的候选任务流。通过基于每个候选任务流的确定任务流得分来选择合适的候选任务流,选定候选任务流更有可能与用户的预期目标一致。此外,在执行选定候选任务流期间不太可能发生致命错误。39.在用于数字助理的鲁棒操作的示例形过程中,接收用户话语。基于用户话语的多个候选文本表示,确定用户话语的多个候选用户意图。多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的各个候选任务流。确定多个候选任务流的多个任务流得分。多个任务流得分中的每个任务流得分对应于多个候选任务流中的相应候选任务流。基于多个任务流得分,选择多个候选任务流中的第一候选任务流。执行第一候选任务流,包括向用户呈现来自执行第一候选任务流的结果。40.尽管以下描述使用术语“第一”、“第二”等来描述各种元件,但这些元件不应受术语的限制。这些术语只是用于将一个元件与另一元件区分开。例如,在不脱离各种所述示例的范围的情况下,第一输入可被称为第二输入,并且类似地,第二输入可被称为第一输入。第一输入和第二输入均为输入,并且在一些情况下为独立且不同的输入。41.在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”(“includes”、“including”、“comprises”和/或“comprising”)在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件和/或其分组。42.根据上下文,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。[0043]1.系统和环境[0044]图1示出了根据各种示例的系统100的框图。在一些示例中,系统100实现数字助理。术语“数字助理”、“虚拟助理”、“智能自动化助理”或“自动数字助理”是指解译口头形式和/或文本形式的自然语言输入来推断用户意图并且基于推断出的用户意图来执行动作的任何信息处理系统。例如,为了作用于推断出的用户意图,系统执行下述步骤中的一个或多个:识别具有设计用于实现推断出的用户意图的步骤和参数的任务流,根据推断出的用户意图将特定要求输入到任务流中;通过调用程序、方法、服务、api等执行任务流;以及以可听(例如,语音)和/或可视形式来生成对用户的输出响应。[0045]具体地,数字助理能够接受至少部分地为自然语言命令、请求、声明、讲述和/或询问的形式的用户请求。通常,用户请求寻求数字助理作出信息性回答或执行任务。对用户请求的令人满意的响应包括提供所请求的信息性回答、执行所请求的任务或这两者的组合。例如,用户向数字助理提出问题,诸如“我现在在哪里?”。基于用户的当前位置,数字助理回答“你在中央公园西门附近。”用户还请求执行任务,例如“请邀请我的朋友们下周来参加我女朋友的生日聚会。”作为响应,数字助理可通过讲出“好的,马上”来确认请求,然后代表用户将合适的日历邀请发送到用户电子通讯录中列出的用户朋友中的每位朋友。在执行所请求的任务期间,数字助理有时在很长时间段内在涉及多次信息交换的持续对话中与用户进行交互。存在与数字助理进行交互以请求信息或执行各种任务的许多其他方法。除提供言语响应并采取经编程的动作之外,数字助理还提供其他视频或音频形式的响应,例如作为文本、警报、音乐、视频、动画等。[0046]如图1所示,在一些示例中,数字助理根据客户端-服务器模型来实现。数字助理包括在用户设备104上执行的客户端侧部分102(后文称作“da客户端102”)以及在服务器系统108上执行的服务器侧部分106(后文称作“da服务器106”)。da客户端102通过一个或多个网络110与da服务器106通信。da客户端102提供客户端侧功能,诸如面向用户的输入和输出处理,以及与da服务器106通信。da服务器106为各自位于相应用户设备104上的任意数量的da客户端102提供服务器侧功能。[0047]在一些示例中,da服务器106包括面向客户端的i/o接口112、一个或多个处理模块114、数据与模型116,以及到外部服务的i/o接口118。面向客户端的i/o接口112有利于da服务器106的面向客户端的输入和输出处理。一个或多个处理模块114利用数据与模型116来处理语音输入,并基于自然语言输入来确定用户意图。此外,一个或多个处理模块114基于推断出的用户意图来执行任务执行。在一些示例中,da服务器106通过一个或多个网络110与外部服务120通信以完成任务或采集信息。到外部服务的i/o接口118有利于此类通信。[0048]用户设备104可以是任何合适的电子设备。在一些示例中,用户设备是便携式多功能设备(例如,下面参考图2a描述的设备200)、多功能设备(例如,下面参考图4描述的设备400)或个人电子设备(例如,下面参考图6a至图6b描述的设备600)。便携式多功能设备是例如还包含诸如pda和/或音乐播放器功能的其他功能的移动电话。便携式多功能设备的特定示例包括来自appleinc.(cupertino,california)的ipod和设备。便携式多功能设备的其他示例包括但不限于膝上型电脑或平板电脑。此外,在一些示例中,用户设备104是非便携式多功能设备。具体地讲,用户设备104是台式计算机、游戏机、电视或电视机顶盒。在一些示例中,用户设备104包括触敏表面(例如,触摸屏显示器和/或触控板)。此外,用户设备104任选地包括一个或多个其他物理用户接口设备,诸如物理键盘、鼠标和/或操纵杆。下文更详细地描述了电子设备诸如多功能设备的各种示例。[0049]一个或多个通信网络110的示例包括局域网(lan)和广域网(wan),例如互联网。一个或多个通信网络110使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如以太网、通用串行总线(usb)、firewire、全球移动通信系统(gsm)、增强型数据gsm环境(edge)、码分多址(cdma)、时分多址(tdma)、蓝牙、wi-fi、互联网协议语音(voip)、wi-max或任何其他合适的通信协议。[0050]服务器系统108在一个或多个独立式数据处理设备或分布式计算机网络上实现。在一些示例中,服务器系统108还采用第三方服务提供方(例如,第三方云服务提供方)的各种虚拟设备和/或服务来提供服务器系统108的潜在计算资源和/或基础结构资源。[0051]在一些示例中,用户设备104经由第二用户设备122与da服务器106通信。第二用户设备122与用户设备104相似或相同。例如,第二用户设备122类似于下文参考图2a、图4以及图6a至图6b所述的设备200、400或600。用户设备104被配置为经由直接通信连接(诸如,蓝牙、nfc、btle等)或者经由有线或无线网络(诸如,局域wi-fi网络)而通信耦接到第二用户设备122。在一些示例中,第二用户设备122被配置为充当用户设备104与da服务器106之间的代理。例如,用户设备104的da客户端102被配置为经由第二用户设备122向da服务器106传输信息(例如,在用户设备104处接收的用户请求)。da服务器106处理该信息,并经由第二用户设备122将相关数据(例如,响应于用户请求的数据内容)返回到用户设备104。[0052]在一些示例中,用户设备104被配置为将针对数据的缩略请求发送到第二用户设备122,以减少从用户设备104传输的信息量。第二用户设备122被配置为确定添加到缩略请求的补充信息,以生成完整的请求来传输到da服务器106。该系统架构可有利地通过使用具有较强通信能力和/或电池电力的第二用户设备122(例如,移动电话、膝上型计算机、平板电脑等)作为到da服务器106的代理,允许具有有限通信能力和/或有限电池电力的用户设备104(例如,手表或类似的紧凑型电子设备)访问da服务器106提供的服务。虽然图1中仅示出两个用户设备104和122,但应当理解,在一些示例中,系统100可包括在此代理配置中被配置为与da服务器系统106通信的任意数量和类型的用户设备。[0053]虽然图1中所示的数字助理包括客户端侧部分(例如,da客户端102)和服务器侧部分(例如,da服务器106)两者,但在一些示例中,数字助理的功能被实现为被安装在用户设备上的独立式应用程序。此外,数字助理的客户端部分与服务器部分之间的功能划分在不同的具体实施中可变化。例如,在一些示例中,da客户端为仅提供面向用户的输入和输出处理功能并将数字助理的所有其他功能委派给后端服务器的瘦客户端。[0054]2.电子设备[0055]现在将注意力转至用于实现数字助理的客户端侧部分的电子设备的实施方案。图2a是示出了根据一些实施方案的具有触敏显示器系统212的便携式多功能设备200的框图。触敏显示器212有时为了方便被叫做“触摸屏”,并且有时被称为或被叫做“触敏显示器系统”。设备200包括存储器202(其任选地包括一个或多个计算机可读存储介质)、存储器控制器222、一个或多个处理单元(cpu)220、外围设备接口218、rf电路208、音频电路210、扬声器211、麦克风213、输入/输出(i/o)子系统206、其他输入控制设备216和外部端口224。设备200任选地包括一个或多个光学传感器264。设备200任选地包括用于检测设备200(例如设备200的触敏表面诸如触敏显示器系统212)上的接触的强度的一个或多个接触强度传感器265。设备200任选地包括用于在设备200上生成触觉输出的一个或多个触觉输出发生器267(例如,在触敏表面诸如设备200的触敏显示器系统212或设备400的触摸板455上生成触觉输出)。这些部件任选地通过一个或多个通信总线或信号线203进行通信。[0056]如在本说明书和权利要求书中所使用的,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同的值并且更典型地包括上百个不同的值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些具体实施中,来自多个力传感器的力测量值被组合(例如,加权平均)以确定所估计的接触力。类似地,触笔的压敏顶端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上检测到的接触区域的大小和/或其变化、接触附近的触敏表面的电容和/或其变化以及/或者接触附近的触敏表面的电阻和/或其变化任选地被用作触敏表面上的接触的力或压力的替代物。在一些具体实施中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值以对应于替代物测量的单位来描述)。在一些具体实施中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已超过强度阈值(例如,强度阈值是以压力的单位进行测量的压力阈值)。使用接触的强度作为用户输入的属性,从而允许用户访问用户在实地面积有限的尺寸更小的设备上本来不可访问的附加设备功能,该尺寸更小的设备用于(例如,在触敏显示器上)显示示能表示和/或接收用户输入(例如,经由触敏显示器、触敏表面或物理控件/机械控件,诸如旋钮或按钮)。[0057]如本说明书和权利要求书中所使用的,术语“触觉输出”是指将由用户利用用户的触感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解释为触感,该触感对应于设备或设备的部件的物理特征的所感知的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解释为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。又如,即使在触敏表面的光滑度无变化时,触敏表面的移动也会任选地由用户解释或感测为触敏表面的“粗糙度”。虽然用户对触摸的此类解释将受到用户的个体化感官知觉的限制,但是对触摸的许多感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“按下点击”、“松开点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将会生成典型(或普通)用户的所述感官知觉。[0058]应当理解,设备200仅仅是便携式多功能设备的一个示例,并且设备200任选地具有比所示出的部件更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图2a中所示的各种部件以硬件、软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理和/或专用集成电路。[0059]存储器202包括一个或多个计算机可读存储介质。这些计算机可读存储介质例如为有形的和非暂态的。存储器202包括高速随机存取存储器,并且还包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备。存储器控制器222控制设备200的其他部件访问存储器202。[0060]在一些示例中,存储器202的非暂态计算机可读存储介质用于存储指令(例如,用于执行下文描述的过程的各方面)以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备取出指令并执行指令的其他系统使用或与其结合使用。在其他示例中,指令(例如,用于执行下文描述的过程的各方面)存储在服务器系统108的非暂态计算机可读存储介质(未示出)上,或在存储器202的非暂态计算机可读存储介质与服务器系统108的非暂态计算机可读存储介质之间划分。[0061]外围设备接口218用于将设备的输入和输出外围设备耦接到cpu220和存储器202。一个或多个处理器220运行或执行存储器202中所存储的各种软件程序和/或指令集以执行设备200的各种功能并处理数据。在一些实施方案中,外围设备接口218、cpu220和存储器控制器222在单个芯片诸如芯片204上实现。在一些其他实施方案中,它们在独立的芯片上实现。[0062]rf(射频)电路208接收和发送也被称作电磁信号的rf信号。rf电路208将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备进行通信。rf电路208任选地包括用于执行这些功能的熟知的电路,包括但不限于天线系统、rf收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(sim)卡、存储器等等。rf电路208任选地通过无线通信来与网络和其他设备进行通信,这些网络为诸如互联网(也被称为万维网(www))、内联网和/或无线网络(诸如,蜂窝电话网络、无线局域网(lan)和/或城域网(man))。rf电路208任选地包括用于诸如通过近程通信无线电部件来检测近场通信(nfc)场的熟知的电路。无线通信任选地使用多种通信标准、协议和技术中的任一种,包括但不限于全球移动通信系统(gsm)、增强型数据gsm环境(edge)、高速下行链路分组接入(hsdpa)、高速上行链路分组接入(hsupa)、演进、纯数据(ev-do)、hspa、hspa+、双小区hspa(dc-hspda)、长期演进(lte)、近场通信(nfc)、宽带码分多址(w-cdma)、码分多址(cdma)、时分多址(tdma)、蓝牙、蓝牙低功耗(btle)、无线保真(wi-fi)(例如,ieee802.11a、ieee802.11b、ieee802.11g、ieee802.11n和/或ieee802.11ac)、互联网协议语音(voip)、wi-max、协议(例如,互联网消息访问协议(imap)和/或邮局协议(pop))、即时消息(例如,可扩展消息处理和存在协议(xmpp)、用于即时消息和存在利用扩展的会话发起协议(simple)、即时消息和存在服务(imps))和/或短消息服务(sms),或者任何其他适当的通信协议,包括在本文档提交日期时尚未开发出的通信协议。[0063]音频电路210、扬声器211和麦克风213提供用户与设备200之间的音频接口。音频电路210从外围设备接口218接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器211。扬声器211将电信号转换为人类可听到的声波。音频电路210还接收由麦克风213从声波转换的电信号。音频电路210将电信号转换为音频数据,并且将音频数据传输到外围设备接口218以用于处理。音频数据通过外围设备接口218检索自和/或传输至存储器202和/或rf电路208。在一些实施方案中,音频电路210还包括耳麦插孔(例如,图3中的312)。该耳麦插孔提供音频电路210与可移除的音频输入/输出外围设备之间的接口,该可移除的音频输入/输出外围设备诸如仅输出的耳机或者具有输出(例如,单耳耳机或双耳耳机)和输入(例如,麦克风)两者的耳麦。[0064]i/o子系统206将设备200上的输入/输出外围设备诸如触摸屏212和其他输入控制设备216耦接到外围设备接口218。i/o子系统206任选地包括显示控制器256、光学传感器控制器258、强度传感器控制器259、触觉反馈控制器261,以及用于其他输入或控制设备的一个或多个输入控制器260。一个或多个输入控制器260从其他输入控制设备216接收电信号/将电信号发送到其他输入控制设备。其他输入控制设备216任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击轮等。在一些另选实施方案中,输入控制器260任选地耦接至以下各项中的任一者(或不耦接至以下各项中的任一者):键盘、红外线端口、usb端口以及指向设备诸如鼠标。所述一个或多个按钮(例如,图3中的308)任选地包括用于扬声器211和/或麦克风213的音量控制的增大/减小按钮。所述一个或多个按钮任选地包括下压按钮(例如,图3中的306)。[0065]快速按下下压按钮会脱离触摸屏212的锁定或者开始使用触摸屏上的手势来对设备进行解锁的过程,如在2005年12月23日提交的名称为“unlockingadevicebyperforminggesturesonanunlockimage”的美国专利no.7,657,849的美国专利申请11/322,549中所述,该美国专利申请据此全文以引用方式并入本文。较长地按下下压按钮(例如,306)使设备200开机或关机。用户能够自定义一个或多个按钮的功能。触摸屏212用于实现虚拟按钮或软按钮以及一个或多个软键盘。[0066]触敏显示器212提供设备和用户之间的输入接口和输出接口。显示控制器256从触摸屏212接收电信号和/或将电信号发送至触摸屏。触摸屏212向用户显示视觉输出。视觉输出包括图形、文本、图标、视频及其任何组合(统称为“图形”)。在一些实施方案中,一些视觉输出或全部视觉输出对应于用户界面对象。[0067]触摸屏212具有基于触觉和/或触感接触来接受来自用户的输入的触敏表面、传感器或传感器组。触摸屏212和显示控制器256(与存储器202中的任何相关联的模块和/或指令集一起)检测触摸屏212上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与被显示在触摸屏212上的用户界面对象(例如,一个或多个软键、图标、网页或图像)的交互。在示例性实施方案中,触摸屏212与用户之间的接触点对应于用户的手指。[0068]触摸屏212使用lcd(液晶显示器)技术、lpd(发光聚合物显示器)技术或led(发光二极管)技术,但在其他实施方案中可使用其他显示技术。触摸屏212和显示控制器256使用目前已知或以后将开发的多种触摸感测技术中的任何技术,以及其他接近传感器阵列或用于确定与触摸屏212接触的一个或多个点的其他元件来检测接触及其任何移动或中断,所述多种触摸感测技术包括但不限于电容式、电阻式、红外和表面声波技术。在示例性实施方案中,使用投射式互电容感测技术,诸如在来自appleinc.(cupertino,california)的和ipod中使用的技术。[0069]在一些实施方案中,触摸屏212的触敏显示器类似于以下美国专利:6,323,846(westerman等人)、6,570,557(westerman等人)和/或6,677,932(westerman)和/或美国专利公开2002/0015024a1中所述的多点触敏触控板,这些专利申请均据此全文以引用方式并入本文。然而,触摸屏212显示来自设备200的视觉输出,而触敏触摸板不提供视觉输出。[0070]在一些实施方案中,触摸屏212的触敏显示器如以下申请所述:(1)2006年5月2日提交的名称为“multipointtouchsurfacecontroller”的美国专利申请no.11/381,313;(2)2004年5月6日提交的名称为“multipointtouchscreen”的美国专利申请no.10/840,862;(3)2004年7月30日提交的名称为“gesturesfortouchsensitiveinputdevices”的美国专利申请no.10/903,964;(4)2005年1月31日提交的名称为“gesturesfortouchsensitiveinputdevices”的美国专利申请no.11/048,264;(5)2005年1月18日提交的名称为“mode-basedgraphicaluserinterfacesfortouchsensitiveinputdevices”的美国专利申请no.11/038,590;(6)2005年9月16日提交的名称为“virtualinputdeviceplacementonatouchscreenuserinterface”的美国专利申请no.11/228,758;(7)2005年9月16日提交的名称为“operationofacomputerwithatouchscreeninterface”的美国专利申请no.11/228,700;(8)2005年9月16日提交的名称为“activatingvirtualkeysofatouch-screenvirtualkeyboard”的美国专利申请no.11/228,737;以及(9)2006年3月3日提交的名称为“multi-functionalhand-helddevice”的美国专利申请no.11/367,749。所有这些申请全文以引用方式并入本文。[0071]触摸屏212例如具有超过100dpi的视频分辨率。在一些实施方案中,触摸屏具有约160dpi的视频分辨率。用户使用任何合适的对象或附加物诸如触笔、手指等与触摸屏212进行接触。在一些实施方案中,将用户界面设计为主要通过基于手指的接触和手势来工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施方案中,设备将基于手指的粗略输入转化为精确的指针/光标位置或命令以用于执行用户所期望的动作。[0072]在一些实施方案中,除了触摸屏之外,设备200还包括用于激活或去激活特定功能的触控板(未示出)。在一些实施方案中,触控板是设备的触敏区域,与触摸屏不同,该触敏区域不显示视觉输出。触控板是与触摸屏212分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸。[0073]设备200还包括用于为各种部件供电的电力系统262。电力系统262包括电力管理系统、一个或多个电源(例如,电池、交流电(ac))、再充电系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如,发光二极管(led))和与便携式设备中电力的生成、管理和分配相关联的任何其他部件。[0074]设备200还包括一个或多个光学传感器264。图2a示出了耦接到i/o子系统206中的光学传感器控制器258的光学传感器。光学传感器264包括电荷耦合器件(ccd)或互补金属氧化物半导体(cmos)光电晶体管。光学传感器264从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块243(也叫做相机模块),光学传感器264捕获静态图像或视频。在一些实施方案中,光学传感器位于设备200的后部,与设备前部的触摸屏显示器212相背对,使得触摸屏显示器被用作用于静态图像和/或视频图像采集的取景器。在一些实施方案中,光学传感器位于设备的前部,使得在用户在触摸屏显示器上查看其他视频会议参与者的同时获取该用户的图像以用于视频会议。在一些实施方案中,光学传感器264的位置可由用户改变(例如,通过旋转设备外壳中的透镜和传感器),使得单个光学传感器264与触摸屏显示器一起使用,以用于视频会议和静态图像和/或视频图像采集两者。[0075]设备200任选地还包括一个或多个接触强度传感器265。图2a示出了耦接到i/o子系统206中的强度传感器控制器259的接触强度传感器。接触强度传感器265任选地包括一个或多个压阻应变仪、电容式力传感器、电气力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器265从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施方案中,至少一个接触强度传感器与触敏表面(例如,触敏显示器系统212)并置排列或邻近。在一些实施方案中,至少一个接触强度传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。[0076]设备200还包括一个或多个接近传感器266。图2a示出了耦接到外围设备接口218的接近传感器266。另选地,接近传感器266耦接到i/o子系统206中的输入控制器260。接近传感器266如以下美国专利申请中所述的那样执行:no.11/241,839,名称为“proximitydetectorinhandhelddevice”;no.11/240,788,名称为“proximitydetectorinhandhelddevice”;no.11/620,702,名称为“usingambientlightsensortoaugmentproximitysensoroutput”;no.11/586,862,名称为“automatedresponsetoandsensingofuseractivityinportabledevices”;以及no.11/638,251,名称为“methodsandsystemsforautomaticconfigurationofperipherals”,这些美国专利申请据此全文以引用方式并入本文。在一些实施方案中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并且禁用触摸屏212。[0077]设备200任选地还包括一个或多个触觉输出发生器267。图2a示出了耦接到i/o子系统206中的触觉反馈控制器261的触觉输出发生器。触觉输出发生器267任选地包括一个或多个电声设备诸如扬声器或其他音频部件;和/或用于将能量转换成线性运动的机电设备诸如电机、螺线管、电活性聚合器、压电致动器、静电致动器或其他触觉输出生成部件(例如,用于将电信号转换成设备上的触觉输出的部件)。接触强度传感器265从触觉反馈模块233接收触觉反馈生成指令,并且在设备200上生成能够由设备200的用户感觉到的触觉输出。在一些实施方案中,至少一个触觉输出发生器与触敏表面(例如,触敏显示器系统212)并置排列或邻近,并且任选地通过竖直地(例如,向设备200的表面内/外)或侧向地(例如,在与设备200的表面相同的平面中向后和向前)移动触敏表面来生成触觉输出。在一些实施方案中,至少一个触觉输出发生器传感器位于设备200的后部上,与位于设备200的前部上的触摸屏显示器212相背对。[0078]设备200还包括一个或多个加速度计268。图2a示出了耦接到外围设备接口218的加速度计268。另选地,加速度计268耦接至i/o子系统206中的输入控制器260。加速度计268如以下美国专利公开中所述那样执行:美国专利公开20050190059,“acceleration-basedtheftdetectionsystemforportableelectronicdevices”和美国专利公开20060017692,“methodsandapparatusesforoperatingaportabledevicebasedonanaccelerometer”,这两个美国专利公开全文以引用方式并入本文。在一些实施方案中,基于对从一个或多个加速度计接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图显示信息。设备200任选地除了加速度计268之外还包括磁力仪(未示出)和gps(或glonass或其他全球导航系统)接收器(未示出),以用于获取关于设备200的位置和取向(例如,纵向或横向)的信息。[0079]在一些实施方案中,存储于存储器202中的软件部件包括操作系统226、通信模块(或指令集)228、接触/运动模块(或指令集)230、图形模块(或指令集)232、文本输入模块(或指令集)234、全球定位系统(gps)模块(或指令集)235、数字助理客户端模块229以及应用程序(或指令集)236。此外,存储器202存储数据与模型,诸如用户数据与模型231。此外,在一些实施方案中,存储器202(图2a)或470(图4)存储设备/全局内部状态257,如图2a和图4中所示。设备/全局内部状态257包括以下中的一者或多者:活动应用程序状态,其指示哪些应用程序(如果有的话)当前是活动的;显示状态,其指示什么应用程序、视图或其他信息占据触摸屏显示器212的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备216获取的信息;以及关于设备的位置和/或姿态的位置信息。[0080]操作系统226(例如,darwin、rtxc、linux、unix、osx、ios、windows、或嵌入式操作系统诸如vxworks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动程序,并且促进各种硬件部件和软件部件之间的通信。[0081]通信模块228便于通过一个或多个外部端口224来与其他设备进行通信,并且还包括用于处理由rf电路208和/或外部端口224所接收的数据的各种软件部件。外部端口224(例如,通用串行总线(usb)、火线等)适于直接耦接到其他设备,或间接地通过网络(例如,互联网、无线lan等)进行耦接。在一些实施方案中,外部端口是与(appleinc.的商标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接器。[0082]接触/运动模块230任选地检测与触摸屏212(结合显示控制器256)和其他触敏设备(例如,触摸板或物理点击式转盘)的接触。接触/运动模块230包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已发生接触(例如,检测手指按下事件)、确定接触强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已停止(例如,检测手指抬起事件或接触断开)。接触/运动模块230从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)和/或加速度(量值和/或方向的改变),所述接触点的移动由一系列接触数据表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施方案中,接触/运动模块230和显示控制器256检测触摸板上的接触。[0083]在一些实施方案中,接触/运动模块230使用一组一个或多个强度阈值来确定操作是否已由用户执行(例如,确定用户是否已“点击”图标)。在一些实施方案中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由具体物理致动器的激活阈值来确定的,并且可在不改变设备200的物理硬件的情况下被调节)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个阈值。另外,在一些具体实施中,向设备的用户提供用于调节一组强度阈值中的一个或多个强度阈值(例如,通过调节各个强度阈值和/或通过利用对“强度”参数的系统级点击来一次调节多个强度阈值)的软件设置。[0084]接触/运动模块230任选地检测用户的手势输入。触敏表面上的不同手势具有不同的接触模式(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测特定接触模式来检测手势。例如,检测手指轻击手势包括检测手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标的位置处)检测手指抬起(抬离)事件。作为另一个示例,在触敏表面上检测手指轻扫手势包括检测手指按下事件,然后检测一个或多个手指拖动事件,并且随后检测手指抬起(抬离)事件。[0085]图形模块232包括用于在触摸屏212或其他显示器上呈现和显示图形的各种已知的软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉特征)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如,包括软键的用户界面对象)、数字图像、视频、动画等。[0086]在一些实施方案中,图形模块232存储表示待使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块232从应用程序等接收用于指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,并且然后生成屏幕图像数据,以输出至显示控制器256。[0087]触觉反馈模块233包括用于生成指令的各种软件部件,该指令由触觉输出发生器267使用,以便响应于用户与设备200的交互而在设备200上的一个或多个位置处产生触觉输出。[0088]在一些示例中作为图形模块232的部件的文本输入模块234提供用于在各种应用程序(例如,联系人237、240、im241、浏览器247和需要文本输入的任何其他应用程序)中输入文本的软键盘。[0089]gps模块235确定设备的位置,并提供该信息以供在各种应用程序中使用(例如提供给电话238以供在基于位置的拨号中使用;提供给相机243作为图片/视频元数据;以及提供给提供基于位置的服务的应用,诸如天气桌面小程序、本地黄页桌面小程序和地图/导航桌面小程序)。[0090]数字助理客户端模块229包括各种客户端侧数字助理指令,以提供数字助理的客户端侧功能。例如,数字助理客户端模块229能够通过便携式多功能设备200的各种用户接口(例如,麦克风213、一个或多个加速度计268、触敏显示器系统212、一个或多个光学传感器229、其他输入控制设备216等)接受声音输入(例如,语音输入)、文本输入、触摸输入和/或手势输入。数字助理客户端模块229还能够通过便携式多功能设备200的各种输出接口(例如,扬声器211、触敏显示器系统212、一个或多个触觉输出生成器267等)提供音频形式的输出(例如,语音输出)、视觉形式的输出和/或触觉形式的输出。例如,将输出提供为语音、声音、警报、文本消息、菜单、图形、视频、动画、振动和/或以上两者或更多者的组合。在操作期间,数字助理客户端模块229使用rf电路208与da服务器106通信。[0091]用户数据与模型231包括与用户相关联的各种数据(例如,用户特定的词汇数据、用户偏好数据、用户指定的名称发音、来自用户电子通讯录的数据、待办事项、购物清单等)以提供数字助理的客户端侧功能。此外,用户数据与模型231包括用于处理用户输入并且确定用户意图的各种模型(例如,语音识别模型、统计语言模型、自然语言处理模型、知识本体、任务流模型、服务模型等)。[0092]在一些示例中,数字助理客户端模块229利用便携式多功能设备200的各种传感器、子系统和外围设备来从便携式多功能设备200的周围环境采集附加信息,以建立与用户、当前用户交互和/或当前用户输入相关联的上下文。在一些示例中,数字助理客户端模块229将上下文信息或其子集与用户输入一起提供至da服务器106以帮助推断用户意图。在一些示例中,数字助理还使用上下文信息来确定如何准备输出并将其传送给用户。上下文信息被称为上下文数据。[0093]在一些示例中,伴随用户输入的上下文信息包括传感器信息,例如照明、环境噪声、环境温度、周围环境的图像或视频等。在一些示例中,上下文信息还可包括设备的物理状态,例如设备取向、设备位置、设备温度、功率电平、速度、加速度、运动模式、蜂窝信号强度等。在一些示例中,将与da服务器106的软件状态相关的信息,例如便携式多功能设备200的运行过程、已安装程序、过去和当前的网络活动、后台服务、错误日志、资源使用等,作为与用户输入相关联的上下文信息提供至da服务器106。[0094]在一些示例中,数字助理客户端模块229响应于来自da服务器106的请求而选择性地提供存储在便携式多功能设备200上的信息(例如,用户数据231)。在一些示例中,数字助理客户端模块229还在da服务器106请求时引出来自用户经由自然语言对话或其他用户接口的附加输入。数字助理客户端模块229将该附加输入传送至da服务器106,以帮助da服务器106进行意图推断和/或满足在用户请求中表达的用户意图。[0095]下面参考图7a至图7c对数字助理进行更详细的描述。应当认识到,数字助理客户端模块229可包括下文所述的数字助理模块726的任意数量的子模块。[0096]应用程序236包括以下模块(或指令集)或者其子集或超集:[0097]·联系人模块237(有时称为通讯录或联系人列表);[0098]·电话模块238;[0099]·视频会议模块239;[0100]·客户端模块240;[0101]·即时消息(im)模块241;[0102]·健身支持模块242;[0103]·用于静态图像和/或视频图像的相机模块243;[0104]·图像管理模块244;[0105]·视频播放器模块;[0106]·音乐播放器模块;[0107]·浏览器模块247;[0108]·日历模块248;[0109]·桌面小程序模块249,其在一些示例中包括以下各项中的一者或多者:天气桌面小程序249-1、股票桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4、词典桌面小程序249-5和用户获取的其他桌面小程序以及用户创建的桌面小程序249-6;[0110]·用于形成用户创建的桌面小程序249-6的桌面小程序创建器模块250;[0111]·搜索模块251;[0112]·视频和音乐播放器模块252,其合并视频播放器模块和音乐播放器模块;[0113]·记事本模块253;[0114]·地图模块254;以及/或者[0115]·在线视频模块255。[0116]存储在存储器202中的其他应用程序236的示例包括其他文字处理应用程序、其他图像编辑应用程序、绘图应用程序、呈现应用程序、支持java的应用程序、加密、数字权限管理、声音识别和声音复制。[0117]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、和文本输入模块234,联系人模块237用于管理通讯录或联系人列表(例如,存储在存储器202或存储器470中的联系人模块237的应用程序内部状态292中),包括:将一个或多个姓名添加到通讯录;从地址簿删除姓名;将电话号码、地址、物理地址或其他信息与姓名关联;将图像与姓名关联;对姓名进行归类和分类;提供电话号码或地址来发起和/或促进通过电话238、视频会议模块239、240或im241进行的通信;等等。[0118]结合rf电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,电话模块238用于输入对应于电话号码的字符序列、访问联系人模块237中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信使用多种通信标准、协议和技术中的任一种。[0119]结合rf电路208、音频电路210、扬声器211、麦克风213、触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232、文本输入模块234、联系人模块237和电话模块238,视频会议模块239包括根据用户指令来发起、进行和终止用户与一个或多个其他参与方之间的视频会议的可执行指令。[0120]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,客户端模块240包括响应于用户指令来创建、发送、接收和管理的可执行指令。结合图像管理模块244,客户端模块240使得非常容易创建和发送具有由相机模块243拍摄的静态图像或视频图像的。[0121]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,即时消息模块241包括用于以下操作的可执行指令:输入与即时消息对应的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(sms)或多媒体消息服务(mms)协议以用于基于电话的即时消息或者使用xmpp、simple、或imps以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息。在一些实施方案中,所传输和/或接收的即时消息包括图形、照片、音频文件、视频文件和/或如mms和/或增强型消息服务(ems)中支持的其他附件。如本文所用,“即时消息”是指基于电话的消息(例如,使用sms或mms发送的消息)和基于互联网的消息(例如,使用xmpp、simple或imps发送的消息)两者。[0122]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、gps模块235、地图模块254和音乐播放器模块,健身支持模块242包括用于以下各项的可执行指令:创建健身(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)进行通信;接收健身传感器数据;校准用于监视健身的传感器;为健身选择和播放音乐;以及显示、存储和传输健身数据。[0123]结合触摸屏212、显示控制器256、光学传感器264、光学传感器控制器258、接触/运动模块230、图形模块232和图像管理模块244,相机模块243包括用于以下操作的可执行指令:捕获静态图像或视频(包括视频流)并且将它们存储到存储器202中、修改静态图像或视频的特征,或从存储器202删除静态图像或视频。[0124]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、和相机模块243,图像管理模块244包括用于排列、修改(例如,编辑)、或以其他方式操控、加标签、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。[0125]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,浏览器模块247包括用于根据用户指令来浏览互联网,包括搜索、链接至、接收和显示网页或其部分,以及链接至网页的附件和其他文件的可执行指令。[0126]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、客户端模块240和浏览器模块247,日历模块248包括根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。[0127]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序模块249是可由用户下载并使用的微型应用程序(例如,天气桌面小程序249-1、股市桌面小程序249-2、计算器桌面小程序249-3、闹钟桌面小程序249-4和词典桌面小程序249-5)或由用户创建的微型应用程序(例如,用户创建的桌面小程序249-6)。在一些实施方案中,桌面小程序包括html(超文本标记语言)文件、css(层叠样式表)文件和javascript文件。在一些实施方案中,桌面小程序包括xml(可扩展标记语言)文件和javascript文件(例如,yahoo!桌面小程序)。[0128]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234和浏览器模块247,桌面小程序创建器模块250被用户用于创建桌面小程序(例如,使网页的用户指定部分变成桌面小程序)。[0129]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,搜索模块251包括用于根据用户指令来搜索存储器202中与一个或多个搜索条件(例如,一个或多个用户指定的搜索词)匹配的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。[0130]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、rf电路208和浏览器模块247,视频和音乐播放器模块252包括允许用户下载和回放以一种或多种文件格式(诸如mp3或aac文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏212上或在经由外部端口224连接的外部显示器上)的可执行指令。在一些实施方案中,设备200任选地包括mp3播放器诸如ipod(appleinc.的商标)的功能。[0131]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232和文本输入模块234,记事本模块253包括根据用户指令来创建和管理记事本、待办事项等的可执行指令。[0132]结合rf电路208、触摸屏212、显示控制器256、接触/运动模块230、图形模块232、文本输入模块234、gps模块235和浏览器模块247,地图模块254用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾驶方向、与特定位置处或附近的商店及其他兴趣点有关的数据,以及其他基于位置的数据)。[0133]结合触摸屏212、显示控制器256、接触/运动模块230、图形模块232、音频电路210、扬声器211、rf电路208、文本输入模块234、客户端模块240和浏览器模块247,在线视频模块255包括允许用户访问、浏览、接收(例如,通过流式传输和/或下载)、回放(例如,在触摸屏上或经由外部端口224在所连接的外部显示器上)、发送具有至特定在线视频的链接的,以及以其他方式管理一种或多种文件格式(诸如,h.264)的在线视频的指令。在一些实施方案中,使用即时消息模块241而不是客户端模块240来发送特定在线视频的链接。在线视频应用程序的其他描述可见于2007年6月20日提交的名称为“portablemultifunctiondevice,method,andgraphicaluserinterfaceforplayingonlinevideos”的美国临时专利申请no.60/936,562和2007年12月31日提交的名称为“portablemultifunctiondevice,method,andgraphicaluserinterfaceforplayingonlinevideos”的美国专利申请no.11/968,067,这两个专利申请的内容据此全文以引用方式并入本文。[0134]上述每个模块和应用程序对应于用于执行上述一种或多种功能以及在本专利申请中所述的方法(例如,本文所述的计算机实现的方法和其他信息处理方法)的可执行指令集。这些模块(例如,指令集)不必被实现为独立的软件程序、过程或模块,并因此在各种实施方案中可组合或以其他方式重新布置这些模块的各种子集。例如,视频播放器模块可与音乐播放器模块组合成单个模块(例如,图2a中的视频和音乐播放器模块252)。在一些实施方案中,存储器202存储上述模块和数据结构的子组。此外,存储器202存储上文未描述的另外的模块和数据结构。[0135]在一些实施方案中,设备200是该设备上的预定义的一组功能的操作唯一地通过触摸屏和/或触摸板来执行的设备。通过使用触摸屏和/或触控板作为用于设备200的操作的主要输入控制设备,减少设备200上的物理输入控制设备(诸如下压按钮、拨盘等)的数量。[0136]唯一地通过触摸屏和/或触控板来执行的预定义的一组功能任选地包括在用户界面之间的导航。在一些实施方案中,触摸板在被用户触摸时将设备200从设备200上显示的任何用户界面导航到主菜单、home菜单或根菜单。在此类实施方案中,使用触摸板来实现“菜单按钮”。在一些其他实施方案中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触摸板。[0137]图2b是示出了根据一些实施方案的用于事件处理的示例性部件的框图。在一些实施方案中,存储器202(图2a)或存储器470(图4)包括事件分类器270(例如,在操作系统226中)以及相应的应用程序236-1(例如,前述应用程序237至251、255、480至490中的任一个应用程序)。[0138]事件分类器270接收事件信息并确定要将事件信息递送到的应用程序236-1和应用程序236-1的应用程序视图291。事件分类器270包括事件监视器271和事件分配器模块274。在一些实施方案中,应用程序236-1包括应用程序内部状态292,该应用程序内部状态指示当应用程序是活动的或正在执行时被显示在触敏显示器212上的一个或多个当前应用程序视图。在一些实施方案中,设备/全局内部状态257被事件分类器270用来确定哪个(哪些)应用程序当前是活动的,并且应用程序内部状态292被事件分类器270用来确定要将事件信息递送到的应用程序视图291。[0139]在一些实施方案中,应用程序内部状态292包括附加信息,诸如以下各项中的一者或多者:当应用程序236-1恢复执行时将被使用的恢复信息、指示信息正被显示或准备好用于被应用程序236-1显示的用户界面状态信息、用于使得用户能够返回到应用程序236-1的前一状态或视图的状态队列,以及用户采取的先前动作的重复/撤销队列。[0140]事件监视器271从外围设备接口218接收事件信息。事件信息包括关于子事件(例如,作为多点触摸手势一部分的触敏显示器212上的用户触摸)的信息。外围设备接口218传输其从i/o子系统206或传感器诸如接近传感器266、一个或多个加速度计268和/或麦克风213(通过音频电路210)接收的信息。外围设备接口218从i/o子系统206接收的信息包括来自触敏显示器212或触敏表面的信息。[0141]在一些实施方案中,事件监视器271以预先确定的间隔将请求发送至外围设备接口218。作为响应,外围设备接口218传输事件信息。在其他实施方案中,外围设备接口218仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。[0142]在一些实施方案中,事件分类器270还包括命中视图确定模块272和/或活动事件识别器确定模块273。[0143]当触敏显示器212显示多于一个视图时,命中视图确定模块272提供用于确定子事件已在一个或多个视图内的什么地方发生的软件过程。视图由用户能够在显示器上看到的控件和其他元素构成。[0144]与应用程序相关联的用户界面的另一方面是一组视图,本文中有时也称为应用程序视图或用户界面窗口,在其中显示信息并且发生基于触摸的手势。在其中检测到触摸的(相应应用程序的)应用程序视图对应于应用程序的程序化分级结构或视图分级结构内的程序化水平。例如,在其中检测到触摸的最低水平视图被称为命中视图,并且被认为是正确输入的事件集至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。[0145]命中视图确定模块272接收与基于触摸的手势的子事件相关的信息。当应用程序具有以分级结构组织的多个视图时,命中视图确定模块272将命中视图识别为应当对子事件进行处理的分级结构中的最低视图。在大多数情况下,命中视图是发起子事件(例如,形成事件或潜在事件的子事件序列中的第一子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块272识别,命中视图便通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。[0146]活动事件识别器确定模块273确定视图分级结构内的哪个或哪些视图应接收特定子事件序列。在一些实施方案中,活动事件识别器确定模块273确定仅命中视图应接收特定子事件序列。在其他实施方案中,活动事件识别器确定模块273确定包括子事件的物理位置的所有视图是活跃参与的视图,并因此确定所有活跃参与的视图都应接收特定子事件序列。在其他实施方案中,即使触摸子事件完全被局限到与一个特定视图相关联的区域,分级结构中的较高视图将仍然保持为活跃参与的视图。[0147]事件分配器模块274将事件信息分配到事件识别器(例如,事件识别器280)。在包括活动事件识别器确定模块273的实施方案中,事件分配器模块274将事件信息递送到由活动事件识别器确定模块273确定的事件识别器。在一些实施方案中,事件分配器模块274在事件队列中存储事件信息,该事件信息由相应事件接收器282进行检索。[0148]在一些实施方案中,操作系统226包括事件分类器270。另选地,应用程序236-1包括事件分类器270。在又一个实施方案中,事件分类器270是独立模块,或者是存储在存储器202中的另一个模块(诸如,接触/运动模块230)的一部分。[0149]在一些实施方案中,应用程序236-1包括多个事件处理程序290和一个或多个应用程序视图291,其中的每一个都包括用于处理发生在应用程序的用户界面的相应视图内的触摸事件的指令。应用程序236-1的每个应用程序视图291包括一个或多个事件识别器280。通常,相应应用程序视图291包括多个事件识别器280。在其他实施方案中,事件识别器280中的一个或多个事件识别器是独立模块的一部分,该独立模块为诸如用户界面工具包(未示出)或应用程序236-1从中继承方法和其他属性的较高级别的对象。在一些实施方案中,相应事件处理程序290包括以下各项中的一者或多者:数据更新器276、对象更新器277、gui更新器278、和/或从事件分类器270接收的事件数据279。事件处理程序290利用或调用数据更新器276、对象更新器277或gui更新器278来更新应用程序内部状态292。另选地,应用程序视图291中的一个或多个应用程序视图包括一个或多个相应事件处理程序290。另外,在一些实施方案中,数据更新器276、对象更新器277和gui更新器278中的一者或多者包括在相应应用程序视图291中。[0150]相应的事件识别器280从事件分类器270接收事件信息(例如,事件数据279),并且从事件信息识别事件。事件识别器280包括事件接收器282和事件比较器284。在一些实施方案中,事件识别器280还包括元数据283和事件传递指令288(其包括子事件传递指令)的至少一个子集。[0151]事件接收器282接收来自事件分类器270的事件信息。事件信息包括关于子事件例如触摸或触摸移动的信息。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息还包括子事件的速率和方向。在一些实施方案中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,或反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。[0152]事件比较器284将事件信息与预定义的事件或子事件定义进行比较,并且基于该比较来确定事件或子事件,或者确定或更新事件或子事件的状态。在一些实施方案中,事件比较器284包括事件定义286。事件定义286包含事件的定义(例如,预定义的子事件序列),例如事件1(287-1)、事件2(287-2)以及其他。在一些实施方案中,事件(287)中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个示例中,事件1(287-1)的定义是被显示对象上的双击。例如,双击包括被显示对象上的预先确定时长的第一触摸(触摸开始)、预先确定时长的第一抬离(触摸结束)、被显示对象上的预先确定时长的第二触摸(触摸开始)以及预先确定时长的第二抬离(触摸结束)。在另一个示例中,事件2(287-2)的定义是被显示对象上的拖动。例如,拖动包括被显示对象上的预先确定时长的触摸(或接触)、触摸在触敏显示器212上的移动、以及触摸的抬离(触摸结束)。在一些实施方案中,事件还包括用于一个或多个相关联的事件处理程序290的信息。[0153]在一些实施方案中,事件定义287包括对用于相应用户界面对象的事件的定义。在一些实施方案中,事件比较器284执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在触敏显示器212上显示三个用户界面对象的应用程序视图中,当在触敏显示器212上检测到触摸时,事件比较器284执行命中测试以确定这三个用户界面对象中的哪一个用户界面对象与该触摸(子事件)相关联。如果每个所显示对象与相应事件处理程序290相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理程序290应当被激活。例如,事件比较器284选择与子事件和触发该命中测试的对象相关联的事件处理程序。[0154]在一些实施方案中,相应事件(287)的定义还包括延迟动作,所述延迟动作延迟事件信息的递送,直到已确定子事件序列确实对应于或不对应于事件识别器的事件类型。[0155]当相应事件识别器280确定子事件序列不与事件定义286中的任何事件匹配时,该相应事件识别器280进入事件不可能、事件失败或事件结束状态,在此之后忽略基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪并处理持续进行的基于触摸的手势的子事件。[0156]在一些实施方案中,相应事件识别器280包括具有指示事件递送系统应当如何执行对活跃参与的事件识别器的子事件递送的可配置属性、标记和/或列表的元数据283。在一些实施方案中,元数据283包括指示事件识别器彼此如何交互或如何能够交互的可配置属性、标志和/或列表。在一些实施方案中,元数据283包括指示子事件是否递送到视图或程序化分级结构中的不同层级的可配置属性、标志和/或列表。[0157]在一些实施方案中,当事件的一个或多个特定子事件被识别时,相应事件识别器280激活与事件相关联的事件处理程序290。在一些实施方案中,相应事件识别器280将与事件相关联的事件信息递送到事件处理程序290。激活事件处理程序290不同于将子事件发送(和延期发送)到相应命中视图。在一些实施方案中,事件识别器280抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理程序290获取该标记并执行预定义过程。[0158]在一些实施方案中,事件递送指令288包括递送关于子事件的事件信息而不激活事件处理程序的子事件递送指令。相反,子事件递送指令将事件信息递送到与子事件序列相关联的事件处理程序或者递送到活跃参与的视图。与子事件序列或与活跃参与的视图相关联的事件处理程序接收事件信息并执行预先确定的过程。[0159]在一些实施方案中,数据更新器276创建并更新在应用程序236-1中使用的数据。例如,数据更新器276对联系人模块237中所使用的电话号码进行更新,或者对视频播放器模块中所使用的视频文件进行存储。在一些实施方案中,对象更新器277创建和更新在应用程序236-1中使用的对象。例如,对象更新器277创建新的用户界面对象或更新用户界面对象的位置。gui更新器278更新gui。例如,gui更新器278准备显示信息,并且将显示信息发送到图形模块232用以显示在触敏显示器上。[0160]在一些实施方案中,事件处理程序290包括数据更新器276、对象更新器277和gui更新器278或者具有对它们的访问权限。在一些实施方案中,数据更新器276、对象更新器277和gui更新器278被包括在相应应用程序236-1或应用程序视图291的单个模块中。在其他实施方案中,它们被包括在两个或更多个软件模块中。[0161]应当理解,关于触敏显示器上的用户触摸的事件处理的上述论述还适用于利用输入设备来操作多功能设备200的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地与单次或多次键盘按下或按住协作的鼠标移动和鼠标按钮按下;触控板上的接触移动,诸如轻击、拖动、滚动等;触笔输入;设备的移动;口头指令;检测到的眼睛移动;生物特征输入;和/或它们的任何组合任选地被用作对应于限定要识别的事件的子事件的输入。[0162]图3示出了根据一些实施方案的具有触摸屏212的便携式多功能设备200。触摸屏任选地在用户界面(ui)300内显示一个或多个图形。在本实施方案以及下文所述的其他实施方案中,用户能够通过例如利用一根或多根手指302(在图中未按比例绘制)或一支或多支触笔303(在图中未按比例绘制)在图形上作出手势来选择这些图形中的一个或多个图形。在一些实施方案中,当用户中断与一个或多个图形的接触时,将发生对一个或多个图形的选择。在一些实施方案中,手势任选地包括一次或多次轻击、一次或多次轻扫(从左向右、从右向左、向上和/或向下)和/或已与设备200发生接触的手指的滚动(从右向左、从左向右、向上和/或向下)。在一些具体实施中或在一些情况下,不经意地与图形接触不会选择图形。例如,当与选择对应的手势是轻击时,在应用程序图标上方扫动的轻扫手势任选地不会选择对应的应用程序。[0163]设备200还包括一个或多个物理按钮,诸如“home”或菜单按钮304。如前所述,菜单按钮304用于导航到在设备200上执行的一组应用程序中的任何应用程序236。另选地,在一些实施方案中,菜单按钮被实现为被显示在触摸屏212上的gui中的软键。[0164]在一个实施方案中,设备200包括触摸屏212、菜单按钮304、用于使设备通电/断电和用于锁定设备的下压按钮306、一个或多个音量调节按钮308、用户身份模块(sim)卡槽310、耳麦插孔312和对接/充电外部端口224。下压按钮306任选地用于通过压下该按钮并且将该按钮保持在压下状态持续预定义的时间间隔来对设备进行开/关机;通过压下该按钮并在该预定义的时间间隔过去之前释放该按钮来锁定设备;和/或对设备进行解锁或发起解锁过程。在另选的实施方案中,设备200还通过麦克风213接受用于激活或去激活某些功能的语音输入。设备200还任选地包括用于检测触摸屏212上的接触的强度的一个或多个接触强度传感器265,和/或用于为设备200的用户生成触觉输出的一个或多个触觉输出发生器267。[0165]图4是根据一些实施方案的具有显示器和触敏表面的示例性多功能设备的框图。设备400不必是便携式的。在一些实施方案中,设备400为膝上型计算机、台式计算机、平板电脑、多媒体播放器设备、导航设备、教育设备(诸如儿童学习玩具)、游戏系统、或控制设备(例如,家用控制器或工业用控制器)。设备400通常包括一个或多个处理单元(cpu)410、一个或多个网络或其他通信接口460、存储器470和用于使这些部件互连的一个或多个通信总线420。通信总线420任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时称作芯片组)。设备400包括具有显示器440的输入/输出(i/o)接口430,该显示器通常是触摸屏显示器。i/o接口430还任选地包括键盘和/或鼠标(或其他指向设备)450以及触控板455、用于在设备400上生成触觉输出的触觉输出发生器457(例如,类似于以上参考图2a所述的一个或多个触觉输出发生器267)、传感器459(例如,光学传感器、加速度传感器、接近传感器、触敏传感器,和/或类似于以上参考图2a所述的一个或多个接触强度传感器265的接触强度传感器)。存储器470包括高速随机存取存储器,诸如dram、sram、ddrram或其他随机存取固态存储器设备;并且任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器470任选地包括远离cpu410定位的一个或多个存储设备。在一些实施方案中,存储器470存储与便携式多功能设备200(图2a)的存储器202中存储的程序、模块和数据结构类似的程序、模块和数据结构或其子集。此外,存储器470任选地存储在便携式多功能设备200的存储器202中不存在的附加程序、模块和数据结构。例如,设备400的存储器470任选地存储绘图模块480、呈现模块482、文字处理模块484、网站创建模块486、盘编辑模块488、和/或电子表格模块490,而便携式多功能设备200(图2a)的存储器202任选地不存储这些模块。[0166]图4中的上述元件中的每一者在一些示例中存储在一个或多个先前提到的存储器设备中。上述模块中的每个模块对应于用于执行上述功能的指令集。上述模块或程序(例如,指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集在各种实施方案中组合或以其他方式重新布置。在一些实施方案中,存储器470存储上述模块和数据结构的子组。此外,存储器470存储上文未描述的另外的模块和数据结构。[0167]现在将注意力转到可在例如便携式多功能设备200上实现的用户界面的实施方案。[0168]图5a示出了根据一些实施方案的便携式多功能设备200上的应用程序菜单的示例性用户界面。类似的用户界面在设备400上实现。在一些实施方案中,用户界面500包括以下元件或者其子集或超集:[0169]一个或多个无线通信(诸如蜂窝信号和wi-fi信号)的一个或多个信号强度指示器502;[0170]·时间504;[0171]·蓝牙指示器505;[0172]·电池状态指示器506;[0173]·具有针对常用应用程序的图标的托盘508,该图标诸如:[0174]○电话模块238的被标记为“电话”的图标516,该图标任选地包括未接来电或语音留言的数量的指示符514;[0175]○客户端模块240的被标记为“邮件”的图标518,该图标任选地包括未读的数量的指示符510;[0176]○浏览器模块247的标记为“浏览器”的图标520;以及[0177]○视频和音乐播放器模块252(也称为ipod(appleinc.的商标)模块252)的被标记为“ipod”的图标522;以及[0178]·其他应用的图标,诸如:[0179]○im模块241的被标记为“消息”的图标524;[0180]○日历模块248的被标记为“日历”的图标526;[0181]○图像管理模块244的被标记为“照片”的图标528;[0182]○相机模块243的被标记为“相机”的图标530;[0183]○在线视频模块255的被标记为“在线视频”的图标532;[0184]○股市桌面小程序249-2的被标记为“股市”的图标534;[0185]○地图模块254的被标记为“地图”的图标536;[0186]○天气桌面小程序249-1的被标记为“天气”的图标538;[0187]○闹钟桌面小程序249-4的被标记为“时钟”的图标540;[0188]○健身支持模块242的被标记为“健身支持”的图标542;[0189]○记事本模块253的标记为“记事本”的图标544;以及[0190]○用于设置应用程序或模块的被标记为“设置”的图标546,该图标提供对设备200及其各种应用程序236的设置的访问。[0191]应当指出的是,图5a中示出的图标标签仅是示例性的。例如,视频和音乐播放器模relationships”的国际专利申请no.pct/us2013/069483,这两个专利申请中的每个专利申请据此全文以引用方式并入本文。[0197]在一些实施方案中,设备600具有一个或多个输入机构606和608。输入机构606和608(如果包括的话)是物理形式的。物理输入机构的示例包括下压按钮和可旋转机构。在一些实施方案中,设备600具有一个或多个附接机构。此类附接机构(如果包括的话)可允许将设备600与例如帽子、眼镜、耳环、项链、衬衣、夹克、手镯、表带、手链、裤子、皮带、鞋子、钱包、背包等附接。这些附接机构允许用户穿戴设备600。[0198]图6b示出了示例性个人电子设备600。在一些实施方案中,设备600包括相对于图2a、图2b和图4所述的部件中的一些或全部部件。设备600具有总线612,该总线将i/o部分614与一个或多个计算机处理器616和存储器618操作性地耦接。i/o部分614被连接到显示器604,该显示器可具有触敏部件622,并且任选地还具有触摸强度敏感部件624。此外,i/o部分614与通信单元630连接,以用于使用wi-fi、蓝牙、近场通信(nfc)、蜂窝和/或其他无线通信技术来接收应用程序和操作系统数据。设备600包括输入机构606和/或608。例如,输入机构606是可旋转输入设备或者可按压输入设备以及可旋转输入设备。在一些示例中,输入机构608是按钮。[0199]在一些示例中,输入机构608是麦克风。个人电子设备600包括例如各种传感器,诸如gps传感器632、加速度计634、定向传感器640(例如,罗盘)、陀螺仪636、运动传感器638和/或它们的组合,所有这些设备均可操作地连接到i/o部分614。[0200]个人电子设备600的存储器618是用于存储计算机可执行指令的非暂态计算机可读存储介质,该指令当由一个或多个计算机处理器616执行时例如使得计算机处理器执行上述技术和过程。该计算机可执行指令也例如在任何非暂态计算机可读存储介质内进行存储和/或传送,以供指令执行系统、装置或设备诸如基于计算机的系统、包含处理器的系统或可从指令执行系统、装置或设备获取指令并执行指令的其他系统使用或与其结合。个人电子设备600不限于图6b的部件和配置,而是可包括多种配置中的其他部件或附加部件。[0201]如本文所用,术语“示能表示”是指在设备104、200、400和/或600(图1、图2、图4和图6)的显示屏上显示的用户交互式图形用户界面对象。例如,图像(例如,图标)、按钮和文本(例如,超链接)各自构成示能表示。[0202]如本文所用,术语“焦点选择器”是指用于指示用户正与之进行交互的用户界面的当前部分的输入元件。在包括光标或其他位置标记的一些具体实施中,光标充当“焦点选择器”,使得当光标在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)上方时在触敏表面(例如,图4中的触控板455或图5b中的触敏表面551)上检测到输入(例如,按压输入)的情况下,该特定用户界面元素根据所检测到的输入而被调节。在包括能够实现与触摸屏显示器上的用户界面元素的直接交互的触摸屏显示器(例如,图2a中的触敏显示器系统212或图5a中的触摸屏212)的一些具体实施中,在触摸屏上所检测到的接触充当“焦点选择器”,使得当在触摸屏显示器上在特定用户界面元素(例如,按钮、窗口、滑块或其他用户界面元素)的位置处检测到输入(例如,由接触进行的按压输入)时,该特定用户界面元素根据所检测到的输入而被调节。在一些具体实施中,焦点从用户界面的一个区域移动到用户界面的另一个区域,而无需光标的对应移动或触摸屏显示器上的接触的移动(例如,通过使用制表键或箭头键将焦点从一个按钮移动到另一个按钮);在这些具体实施中,焦点选择器根据焦点在用户界面的不同区域之间的移动而移动。不考虑焦点选择器所采取的具体形式,焦点选择器通常是由用户控制的以便递送与用户界面的用户预期的交互(例如,通过向设备指示用户界面的用户期望与其进行交互的元素)的用户界面元素(或触摸屏显示器上的接触)。例如,在触敏表面(例如,触摸板或触摸屏)上检测到按压输入时,焦点选择器(例如,光标、接触或选择框)在相应按钮上方的位置将指示用户期望激活相应按钮(而不是设备显示器上示出的其他用户界面元素)。[0203]如说明书和权利要求中所使用的,接触的“特征强度”这一术语是指基于接触的一个或多个强度的接触的特征。在一些实施方案中,特征强度基于多个强度样本。特征强度任选地基于相对于预定义事件(例如,在检测到接触之后,在检测到接触抬离之前,在检测到接触开始移动之前或之后,在检测到接触结束之前,在检测到接触的强度增大之前或之后和/或在检测到接触的强度减小之前或之后)而言在预先确定的时间段(例如,0.05秒、0.1秒、0.2秒、0.5秒、1秒、2秒、5秒、10秒)期间采集的预定义数量的强度样本或一组强度样本。接触的特征强度任选地基于以下各项中的一者或多者:接触强度的最大值、接触强度的均值、接触强度的平均值、接触强度的前10%处的值、接触强度的半最大值、接触强度的90%最大值等。在一些实施方案中,在确定特征强度时使用接触的持续时间(例如,在特征强度是接触的强度在时间上的平均值时)。在一些实施方案中,将特征强度与一组一个或多个强度阈值进行比较,以确定用户是否已执行操作。例如,该组一个或多个强度阈值包括第一强度阈值和第二强度阈值。在该示例中,特征强度未超过第一阈值的接触导致第一操作,特征强度超过第一强度阈值但未超过第二强度阈值的接触导致第二操作,而特征强度超过第二阈值的接触导致第三操作。在一些实施方案中,使用特征强度与一个或多个阈值之间的比较来确定是否要执行一个或多个操作(例如,是执行相应操作还是放弃执行相应操作),而不是用于确定执行第一操作还是第二操作。[0204]在一些实施方案中,识别手势的一部分以用于确定特征强度。例如,触敏表面接收连续的轻扫接触,该连续的轻扫接触从起始位置过渡并到达结束位置,在该结束位置处,接触的强度增加。在该示例中,接触在结束位置处的特征强度仅基于连续轻扫接触的一部分,而不是整个轻扫接触(例如,轻扫接触仅位于结束位置处的部分)。在一些实施方案中,在确定接触的特征强度之前向轻扫接触的强度应用平滑化算法。例如,平滑化算法任选地包括以下各项中的一种或多种:不加权滑动平均平滑化算法、三角平滑化算法、中值滤波器平滑化算法和/或指数平滑化算法。在一些情况下,这些平滑化算法消除了轻扫接触的强度中的窄的尖峰或凹陷,以实现确定特征强度的目的。[0205]相对于一个或多个强度阈值诸如接触检测强度阈值、轻按压强度阈值、深按压强度阈值和/或一个或多个其他强度阈值来表征触敏表面上的接触的强度。在一些实施方案中,轻按压强度阈值对应于这样的强度:在该强度下设备将执行通常与点击物理鼠标或触摸板的按钮相关联的操作。在一些实施方案中,深按压强度阈值对应于这样的强度:在该强度下设备将执行与通常与点击物理鼠标或触控板的按钮相关联的操作不同的操作。在一些实施方案中,当检测到特征强度低于轻按压强度阈值(例如,并且高于标称接触检测强度阈值,比标称接触检测强度阈值低的接触不再被检测到)的接触时,设备将根据接触在触敏表面上的移动来移动焦点选择器,而不执行与轻按压强度阈值或深按压强度阈值相关联的操作。一般来讲,除非另有陈述,否则这些强度阈值在不同组的用户界面附图之间是一致的。[0206]接触特征强度从低于轻按压强度阈值的强度增大到介于轻按压强度阈值与深按压强度阈值之间的强度有时被称为“轻按压”输入。接触特征强度从低于深按压强度阈值的强度增大到高于深按压强度阈值的强度有时被称为“深按压”输入。接触特征强度从低于接触检测强度阈值的强度增大到介于接触检测强度阈值与轻按压强度阈值之间的强度有时被称为检测到触摸表面上的接触。接触特征强度从高于接触检测强度阈值的强度减小到低于接触检测强度阈值的强度有时被称为检测到接触从触摸表面抬离。在一些实施方案中,接触检测强度阈值为零。在一些实施方案中,接触检测强度阈值大于零。[0207]在本文中所述的一些实施方案中,响应于检测到包括相应按压输入的手势或响应于检测到利用相应接触(或多个接触)执行的相应按压输入来执行一个或多个操作,其中至少部分地基于检测到该接触(或多个接触)的强度增大到高于按压输入强度阈值而检测到相应按压输入。在一些实施方案中,响应于检测到相应接触的强度增大到高于按压输入强度阈值(例如,相应按压输入的“向下冲程”)来执行相应操作。在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于按压输入强度阈值,并且响应于检测到相应接触的强度随后减小到低于按压输入阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。[0208]在一些实施方案中,设备采用强度滞后以避免有时被称为“抖动”的意外输入,其中设备限定或选择与按压输入强度阈值具有预定义关系的滞后强度阈值(例如,滞后强度阈值比按压输入强度阈值低x个强度单位,或滞后强度阈值是按压输入强度阈值的75%、90%或某个合理比例)。因此,在一些实施方案中,按压输入包括相应接触的强度增大到高于按压输入强度阈值以及该接触的强度随后减小到低于对应于按压输入强度阈值的滞后强度阈值,并且响应于检测到相应接触的强度随后减小到低于滞后强度阈值(例如,相应按压输入的“向上冲程”)来执行相应操作。类似地,在一些实施方案中,仅在设备检测到接触强度从等于或低于滞后强度阈值的强度增大到等于或高于按压输入强度阈值的强度并且任选地接触强度随后减小到等于或低于滞后强度的强度时才检测到按压输入,并且响应于检测到按压输入(例如,根据环境,接触强度增大或接触强度减小)来执行相应操作。[0209]为了容易解释,任选地,响应于检测到以下各种情况中的任一种情况而触发对响应于与按压输入强度阈值相关联的按压输入或响应于包括按压输入的手势而执行的操作的描述:接触强度增大到高于按压输入强度阈值、接触强度从低于滞后强度阈值的强度增大到高于按压输入强度阈值的强度、接触强度减小到低于按压输入强度阈值、和/或接触强度减小到低于与按压输入强度阈值对应的滞后强度阈值。另外,在将操作描述为响应于检测到接触的强度减小到低于按压输入强度阈值而执行的示例中,任选地响应于检测到接触的强度减小到低于对应于并且小于按压输入强度阈值的滞后强度阈值来执行操作。[0210]3.数字助理系统[0211]图7a示出了根据各种示例的数字助理系统700的框图。在一些示例中,数字助理系统700在独立式计算机系统上实现。在一些示例中,数字助理系统700跨多个计算机分布。在一些示例中,数字助理的模块和功能中的一些被划分成服务器部分和客户端部分,其中客户端部分位于一个或多个用户设备(例如,设备104、设备122、设备200、设备400或设备600)上并通过一个或多个网络与服务器部分(例如,服务器系统108)通信,例如,如图1中所示。在一些示例中,数字助理系统700是图1中所示的服务器系统108(和/或da服务器106)的具体实施。应当指出,数字助理系统700仅为数字助理系统的一个示例,且该数字助理系统700具有比所示更多或更少的部件、组合两个或更多个部件,或者可具有部件的不同配置或布局。图7a中所示的各种部件在硬件、用于在由一个或多个处理器执行的软件指令、固件(包括一个或多个信号处理集成电路和/或专用集成电路),或它们的组合中实现。[0212]数字助理系统700包括存储器702、输入/输出(i/o)接口706、网络通信接口708,以及一个或多个处理器704。这些部件可通过一条或多条通信总线或信号线710彼此通信。[0213]在一些示例中,存储器702包括非暂态计算机可读介质,诸如高速随机存取存储器和/或非易失性计算机可读存储介质(例如,一个或多个磁盘存储设备、闪存存储器设备或其他非易失性固态存储器设备)。[0214]在一些示例中,i/o接口706将数字助理系统700的输入/输出设备716诸如显示器、键盘、触摸屏和麦克风耦接至用户界面模块722。i/o接口706与用户界面模块722一起接收用户输入(例如,语音输入、键盘输入、触摸输入等)并相应地对这些输入进行处理。在一些示例中,例如,当数字助理在独立式用户设备上实现时,数字助理系统700包括分别相对于图2a、图4、图6a-b中的设备200、设备400或设备600所描述的部件和i/o通信接口中的任一者。在一些示例中,数字助理系统700代表数字助理具体实施的服务器部分,并且可通过位于用户设备(例如,设备104、设备200、设备400或设备600)上的客户端侧部分与用户进行交互。[0215]在一些示例中,网络通信接口708包括一个或多个有线通信端口712和/或无线传输和接收电路714。一个或多个有线通信端口经由一个或多个有线接口例如以太网、通用串行总线(usb)、firewire等接收和发送通信信号。无线电路714从通信网络及其他通信设备接收rf信号和/或光学信号以及将rf信号和/或光学信号发送至通信网络及其他通信设备。无线通信使用多种通信标准、协议和技术中的任一种,诸如gsm、edge、cdma、tdma、蓝牙、wi-fi、voip、wi-max、或任何其他合适的通信协议。网络通信接口708使数字助理系统700通过网络,诸如互联网、内联网和/或无线网络诸如蜂窝电话网络、无线局域网(lan)和/或城域网(man),与其他设备之间的通信成为可能。[0216]在一些示例中,存储器702或存储器702的计算机可读存储介质存储程序、模块、指令和数据结构,包括以下内容中的全部或其子集:操作系统718、通信模块720、用户界面模块722、一个或多个应用程序724和数字助理模块726。具体地,存储器702或存储器702的计算机可读存储介质存储用于执行上述过程的指令。一个或多个处理器704执行这些程序、模块和指令,并从数据结构读取数据或将数据写到数据结构。[0217]操作系统718(例如,darwin、rtxc、linux、unix、ios、osx、windows、或嵌入式操作系统诸如vxworks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电源管理等)的各种软件部件和/或驱动器,并且有利于各种硬件、固件和软件部件之间的通信。[0218]通信模块720有利于数字助理系统700与其他设备之间通过网络通信接口708进行的通信。例如,通信模块720与电子设备诸如分别在图2a、图4、图6a至图6b中所示的设备200,400或600的rf电路208通信。通信模块720还包括各种部件,用于处理由无线电路714和/或有线通信端口712所接收的数据。[0219]用户界面模块722经由i/o接口706接收来自用户(例如,来自键盘、触摸屏、指向设备、控制器和/或麦克风)的命令和/或输入,并在显示器上生成用户界面对象。用户界面模块722还准备输出(例如,语音、声音、动画、文本、图标、振动、触觉反馈、光照等)并将其经由i/o接口706(例如,通过显示器、音频通道、扬声器、触控板等)传送给用户。[0220]应用程序724包括被配置为由所述一个或多个处理器704执行的程序和/或模块。例如,如果数字助理系统在独立式用户设备上实施,则应用程序724包括用户应用程序,诸如游戏、日历应用程序、导航应用程序或邮件应用程序。如果数字助理系统700在服务器上实现,则应用程序724包括例如资源管理应用程序、诊断应用程序、或调度应用程序。[0221]存储器702还存储数字助理模块726(或数字助理的服务器部分)。在一些示例中,数字助理模块726包括以下子模块或者其子集或超集:输入/输出处理模块728、语音转文本(stt)处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、服务处理模块738和语音合成处理模块740。这些模块中的每一者均具有对以下数字助理模块726的系统或数据与模型中的一者或多者或者其子集或超集的访问权限:知识本体760、词汇索引744、用户数据748、任务流模型754、服务模型756和asr系统758。[0222]在一些示例中,使用在数字助理模块726中实现的处理模块、数据和模型,数字助理可执行以下中的至少一些:将语音输入转换成文本;识别在从用户接收的自然语言输入中表达的用户意图;主动引出并获得完全推断用户意图所需的信息(例如,通过消除字词、游戏、意图等的歧义);确定用于满足推断出的意图的任务流;以及执行该任务流以满足推断出的意图。[0223]在一些示例中,如图7b中所示,i/o处理模块728可通过图7a中的i/o设备716与用户交互或通过图7a中的网络通信接口708与用户设备(例如,设备104、设备200、设备400或设备600)交互,以获取用户输入(例如,语音输入)并提供对用户输入的响应(例如,作为语音输出)。i/o处理模块728随同接收到用户输入一起或在接收到用户输入之后不久任选地获得与来自用户设备的用户输入相关联的上下文信息。上下文信息包括特定于用户的数据、词汇,和/或与用户输入相关的偏好。在一些示例中,该上下文信息还包括在接收到用户请求时的用户设备的软件状态和硬件状态,和/或在接收到用户请求时与用户的周围环境相关的信息。在一些示例中,i/o处理模块728还向用户发送与用户请求有关的跟进问题,并从用户接收回答。在用户请求被i/o处理模块728接收且用户请求包括语音输入时,i/o处理模块728将语音输入转发至stt处理模块730(或语音识别器)以进行语音文本转换。[0224]stt处理模块730包括一个或多个asr系统758。该一个或多个asr系统758可处理通过i/o处理模块728接收到的语音输入,以产生识别结果。每个asr系统758包括前端语音预处理器。前端语音预处理器从语音输入中提取代表性特征。例如,前端语音预处理器对语音输入执行傅里叶变换,以提取表征语音输入的频谱特征作为代表性多维向量的序列。另外,每个asr系统758包括一个或多个语音识别模型(例如,声学模型和/或语言模型)并且实现一个或多个语音识别引擎。语音识别模型的示例包括隐马尔可夫模型、高斯混合模型、深层神经网络模型、n元语言模型以及其他统计模型。语音识别引擎的示例包括基于动态时间规整的引擎和基于加权有限状态变换器(wfst)的引擎。使用一个或多个语音识别模型和一个或多个语音识别引擎来处理前端语音预处理器的所提取的代表性特征以产生中间识别结果(例如,音素、音素串和子字词),并且最终产生文本识别结果(例如,字词、字词串、或符号序列)。在一些示例中,语音输入至少部分地由第三方服务处理或在用户的设备(例如,设备104、设备200、设备400或设备600)上处理,以产生识别结果。一旦stt处理模块730产生包含文本串(例如,字词,或字词的序列,或符号序列)的识别结果,识别结果即被传送至自然语言处理模块732以供意图推断。在一些示例中,stt处理模块730产生语音输入的多个候选文本表示。每个候选文本表示是与语音输入对应的字词或符号的序列。在一些示例中,每个候选文本表示与语音识别置信度得分相关联。基于语音识别置信度得分,stt处理模块730对候选文本表示进行排序并将n个最佳(例如,n个排名最高)候选文本表示提供给自然语言处理模块732以供意图推断,其中n为大于零的预先确定的整数。例如,在一个示例中,仅将排名最高的(n=1)候选文本表示递送至自然语言处理模块732以供意图推断。又如,将5个排名最高的(n=5)候选文本表示传递给自然语言处理模块732以供意图推断。[0225]有关语音转文本处理的更多细节在提交于2011年9月20日的名为“consolidatingspeechrecognitionresults”的美国实用新型专利申请序列号13/236,942中有所描述,其全部公开内容以引用方式并入本文。[0226]在一些示例中,stt处理模块730包括可识别字词的词汇和/或经由语音字母转换模块731访问该词汇。每个词汇字词与语音识别语音字母表中表示的字词的一个或多个候选发音相关联。具体地,可识别字词的词汇包括与多个候选发音相关联的字词。例如,该词汇包括与和的候选发音相关联的字词“tomato”。另外,词汇字词与基于来自用户的先前语音输入的自定义候选发音相关联。此类自定义候选发音存储在stt处理模块730中,并且经由设备上的用户配置文件与特定用户相关联。在一些示例中,字词的候选发音基于字词的拼写以及一个或多个语言学和/或语音学规则确定。在一些示例中,候选发音手动生成,例如,基于已知的标准发音而手动生成。[0227]在一些示例中,基于候选发音的普遍性来对候选发音进行排名。例如,候选发音的排序高于因为前者是更常用的发音(例如,在所有用户中,对于特定地理区域的用户而言,或者对于任何其他合适的用户子集而言)。在一些示例中,基于候选发音是否为与用户相关联的自定义候选发音来对候选发音进行排序。例如,自定义候选发音的排名高于标准候选发音。这可用于识别具有偏离规范发音的独特发音的专有名词。在一些示例中,候选发音与一个或多个语音特征诸如地理起源、国家或种族相关联。例如,候选发音与美国相关联,而候选发音与英国相关联。此外,候选发音的排序基于存储在设备上的用户配置文件中的用户的一个或多个特征(例如,地理起源、国家、种族等)。例如,可从用户配置文件确定该用户与美国相关联。基于用户与美国相关联,候选发音(与美国相关联)可比候选发音(与英国相关联)排名更高。在一些示例中,经排序的候选发音中的一个可被选作预测发音(例如,最可能的发音)。[0228]接收到语音输入时,stt处理模块730被用来(例如,使用声音模型)确定对应于该语音输入的音素,然后尝试(例如,使用语言模型)确定匹配该音素的字词。例如,如果stt处理模块730首先识别对应于该语音输入的一部分的音素序列那么它随后可基于词汇索引744确定该序列对应于字词“tomato”。[0229]在一些示例中,stt处理模块730使用模糊匹配技术来确定话语中的字词。因此,例如,stt处理模块730确定音素序列对应于字词“tomato”,即使该特定音素序列不是该字词的候选音素序列。[0230]数字助理的自然语言处理模块732(“自然语言处理器”)获取由stt处理模块730生成的n个最佳候选文字表示(“字词序列”或“符号序列”),并尝试将每个候选文本表示与由数字助理所识别的一个或多个“可执行意图”相关联。“可执行意图”(或“用户意图”)表示可由数字助理执行并且可具有在任务流模型754中实现的相关联的任务流的任务。相关联的任务流是数字助理为了执行任务而采取的一系列经编程的动作和步骤。数字助理的能力范围取决于已在任务流模型754中实现并存储的任务流的数量和种类,或换言之,取决于数字助理所识别的“可执行意图”的数量和种类。然而,数字助理的有效性还取决于助理从以自然语言表达的用户请求中推断出正确的“一个或多个可执行意图”的能力。[0231]在一些示例中,除从stt处理模块730获取的字词或符号的序列之外,自然语言处理模块732还例如,从i/o处理模块728接收与用户请求相关联的上下文信息。自然语言处理模块732任选地使用上下文信息来明确、补充和/或进一步限定在从stt处理模块730接收的候选文本表示中包含的信息。上下文信息包括例如用户偏好,用户设备的硬件和/或软件状态,在用户请求之前、期间或之后不久收集的传感器信息,数字助理与用户之间的先前交互(例如,对话),等等。如本文所述,在一些示例中,上下文信息是动态的,并且随对话的时间、位置、内容、以及其他因素而变化。[0232]在一些示例中,自然语言处理基于例如知识本体760。知识本体760为包含许多节点的分级结构,每个节点表示“可执行意图”或与“可执行意图”或其他“属性”中的一者或多者相关的“属性”。如上所述,“可执行意图”表示数字助理能够执行的任务,即,该任务为“可执行的”或可被进行的。“属性”代表与可执行意图或另一属性的子方面相关联的参数。知识本体760中可执行意图节点与属性节点之间的连接限定由属性节点表示的参数如何从属于由可执行意图节点表示的任务。[0233]在一些示例中,知识本体760由可执行意图节点和属性节点组成。在知识本体760内,每个可执行意图节点直接连接至或通过一个或多个中间属性节点连接至一个或多个属性节点。类似地,每个属性节点直接连接至或通过一个或多个中间属性节点连接至一个或多个可执行意图节点。例如,如图7c所示,知识本体760包括“餐厅预订”节点(即,可执行意图节点)。属性节点“餐厅”、“日期/时间”(针对预订)和“派对人数”均直接连接至可执行意图节点(即,“餐厅预订”节点)。[0234]此外,属性节点“菜系”、“价格区间”、“电话号码”和“位置”是属性节点“餐厅”的子节点,并且均通过中间属性节点“餐厅”连接至“餐厅预订”节点(即,可执行意图节点)。又如,如图7c所示,知识本体760还包括“设定提醒”节点(即,另一个可执行意图节点)。属性节点“日期/时间”(针对设定提醒)和“主题”(针对提醒)均连接至“设定提醒”节点。由于属性“日期/时间”与进行餐厅预订的任务和设定提醒的任务二者相关,因此属性节点“日期/时间”连接至知识本体760中的“餐厅预订”节点和“设定提醒”节点二者。[0235]可执行意图节点连同其连接的概念节点一起,被描述为“域”。在本讨论中,每个域与相应的可执行意图相关联,并是指与特定可执行意图相关联的一组节点(以及这些节点之间的关系)。例如,图7c中示出的知识本体760包括在知识本体760内的餐厅预订域762的示例和提醒域764的示例。餐厅预订域包括可执行意图节点“餐厅预订”、属性节点“餐厅”、“日期/时间”和“派对人数”以及子属性节点“菜系”、“价格范围”、“电话号码”和“位置”。提醒域764包括可执行意图节点“设定提醒”和属性节点“主题”和“日期/时间”。在一些示例中,知识本体760由多个域组成。每个域与一个或多个其他域共享一个或多个属性节点。例如,除了餐厅预订域762和提醒域764之外,“日期/时间”属性节点还与许多不同域(例如,行程安排域、旅行预订域、电影票域等)相关联。[0236]尽管图7c示出知识本体760内的两个示例性域,但其他域包括例如“查电影”、“发起电话呼叫”、“查方向”、“安排会议”、“发送消息”以及“提供问题的回答”、“阅读列表”、“提供导航指令”、“提供针对任务的指令”等。“发送消息”域与“发送消息”可执行意图节点相关联,并且进一步包括属性节点诸如“一个或多个接收人”、“消息类型”和“消息正文”。属性节点“接收人”进一步例如由子属性节点诸如“接收人姓名”和“消息地址”来限定。[0237]在一些示例中,知识本体760包括数字助理能够理解并对其起作用的所有域(以及因而可执行意图)。在一些示例中,知识本体760诸如通过添加或移除整个域或节点,或者通过修改知识本体760内的节点之间的关系进行修改。[0238]在一些示例中,将与多个相关可执行意图相关联的节点集在知识本体760中的“超级域”下。例如,“旅行”超级域包括与旅行相关的属性节点和可执行意图节点的集。与旅行相关的可执行意图节点包括“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”、“寻兴趣点”,等等。同一超级域(例如,“旅行”超级域)下的可执行意图节点具有多个共用的属性节点。例如,针对“机票预订”、“酒店预订”、“汽车租赁”、“获取方向”和“寻兴趣点”的可执行意图节点共享属性节点“起始位置”、“目的地”、“出发日期/时间”、“到达日期/时间”和“派对人数”中的一者或多者。[0239]在一些示例中,知识本体760中的每个节点与跟由节点代表的属性或可执行意图有关的一组字词和/或短语相关联。与每个节点相关联的相应的一组字词和/或短语是所谓的与节点相关联的“词汇”。将与每个节点相关联的相应的一组字词和/或短语存储在与由节点所代表的属性或可执行意图相关联的词汇索引744中。例如,返回图7b,与“餐厅”属性的节点相关联的词汇包括字词诸如“美食”、“酒水”、“菜系”、“饥饿”、“吃”、“披萨”、“快餐”、“膳食”等。又如,与“发起电话呼叫”可执行意图的节点相关联的词汇包括字词和短语诸如“呼叫”、“打电话”、“拨打”、“与……通电话”、“呼叫该号码”、“打电话给”等。词汇索引744任选地包括不同语言的字词和短语。[0240]自然语言处理模块732接收来自stt处理模块730的候选文本表示(例如,一个或多个文本串或一个或多个符号序列),并针对每个候选表示,确定候选文本表示中的字词涉及哪些节点。在一些示例中,如果发现候选文本表示中的字词或短语(经由词汇索引744)与知识本体760中的一个或多个节点相关联,则所述字词或短语“触发”或“激活”那些节点。基于已激活节点的数量和/或相对重要性,自然语言处理模块732选择可执行意图中的一个可执行意图作为用户打算使数字助理执行的任务。在一些示例中,选择具有最多“已触发”节点的域。在一些示例中,选择具有最高置信度(例如,基于其各个已触发节点的相对重要性)的域。在一些示例中,基于已触发节点的数量和重要性的组合来选择域。在一些示例中,在选择节点的过程中还考虑附加因素,诸如数字助理先前是否已正确解译来自用户的类似请求。[0241]用户数据748包括特定于用户的信息,诸如特定于用户的词汇、用户偏好、用户地址、用户的默认第二语言、用户的联系人列表,以及每位用户的其他短期或长期信息。在一intentfromspeechinputs”的美国实用新型专利申请no.14/298,725中有所描述,其全部公开内容以引用方式并入本文。[0247]任务流处理模块736被配置为接收来自自然语言处理模块732的一个或多个结构化查询,(必要时)完成结构化查询,以及执行“完成”用户最终请求所需的动作。在一些示例中,完成这些任务所必需的各种过程在任务流模型754中提供。在一些示例中,任务流模型754包括用于获取来自用户的附加信息的过程,以及用于执行与可执行意图相关联的动作的任务流。[0248]如上所述,为了完成结构化查询,任务流处理模块736需要发起与用户的附加对话,以便获取附加信息和/或弄清可能有歧义的话语。当有必要进行此类交互时,任务流处理模块736调用对话流处理模块734来参与同用户的对话。在一些示例中,对话流处理器模块734确定如何(和/或何时)向用户请求附加信息,并且接收和处理用户响应。通过i/o处理模块728将问题提供给用户并从用户接收回答。在一些示例中,对话流处理模块734经由可听输出和/或视觉输出向用户呈现对话输出,并经由口头或物理(例如,点击)响应接收来自用户的输入。继续上述示例,在任务流处理模块736调用对话流处理模块734来确定针对与域“餐厅预订”相关联的结构化查询的“派对人数”和“日期”信息时,对话流处理模块734生成诸如“一行几位?”和“预订哪天?”之类的问题传递给用户。一旦收到来自用户的回答,对话流处理模块734就用缺失信息填充结构化查询,或将信息传递给任务流处理模块736以根据结构化查询完成缺失信息。[0249]一旦任务流处理模块736已针对可执行意图完成结构化查询,任务流处理模块736便开始执行与可执行意图相关联的最终任务。因此,任务流处理模块736根据结构化查询中包含的特定参数来执行任务流模型中的步骤和指令。例如,针对可执行意图“餐厅预订”的任务流模型包括用于联系餐厅并实际上请求在特定时间针对特定派对人数的预订的步骤和指令。例如,使用结构化查询诸如:{餐厅预订、餐厅=abc咖啡馆、日期=3/12/2012、时间=7pm、派对人数=5},任务流处理模块736可执行以下步骤:(1)登录abc咖啡馆的服务器或诸如的餐厅预订系统,(2)以网站上的形式输入日期、时间和派对人数信息,(3)提交表单,以及(4)在用户的日历中形成针对预订的日历条目。[0250]在一些示例中,任务流处理模块736在服务处理模块738(“服务处理模块”)的辅助下完成用户输入中所请求的任务或者提供用户输入中所请求的信息性回答。例如,服务处理模块738代表任务流处理模块736发起电话呼叫、设定日历条目、调用地图搜索、调用用户设备上安装的其他用户应用程序或与所述其他应用程序进行交互,以及调用第三方服务(例如,餐厅预订门户网站、社交网站、银行门户网站等)或与第三方服务进行交互。在一些示例中,通过服务模型756中的相应服务模型指定每项服务所需的协议和应用程序编程接口(api)。服务处理模块738针对服务访问适当的服务模型,并依据服务模型根据该服务所需的协议和api生成针对该服务的请求。[0251]例如,如果餐厅已启用在线预订服务,则餐厅提交服务模型,该服务模型指定进行预订的必要参数以及将必要参数的值传送至在线预订服务的api。在被任务流处理模块736请求时,服务处理模块738可使用存储在服务模型中的web地址来建立与在线预订服务的网络连接,并将预订的必要参数(例如,时间、日期、同行人数)以根据在线预订服务的api的格式发送至在线预订接口。[0252]在一些示例中,自然语言处理模块732、对话流处理模块734以及任务流处理模块736被共同且反复地使用,以推断并限定用户的意图、获取信息以进一步明确并细化用户意图并最终生成响应(即,输出至用户,或完成任务)以满足用户的意图。所生成的响应是至少部分地满足用户意图的对语音输入的对话响应。另外,在一些示例中,所生成的响应被输出为语音输出。在这些示例中,所生成的响应被发送到语音合成处理模块740(例如,语音合成器),其中可处理所生成的响应以将对话响应以语音形式合成。在其他示例中,所生成的响应是与满足语音输入中的用户请求相关的数据内容。[0253]在任务流处理模块736接收到来自自然语言处理模块732的多个结构化查询的示例中,任务流处理模块736首先处理所接收结构化查询的第一结构化查询以试图完成第一结构化查询和/或执行由第一结构化查询所表示的一个或多个任务或动作。在一些示例中,第一结构化查询对应于排名最高的可执行意图。在其他示例中,第一结构化查询选自基于对应的语音识别置信度得分和对应的意图置信度得分的组合而接收的结构化查询。在一些示例中,如果任务流处理模块736在第一结构化查询的处理期间(例如,由于无法确定必要的参数)遇到错误,任务流处理模块736可继续选择和处理所接收的结构化查询中与排名较低的可执行意图对应的第二结构化查询。例如基于对应候选文本表示的语音识别置信度得分、对应候选可执行意图的意图置信度得分、第一结构化查询中的缺失的必要参数或它们的任何组合来选择第二结构化查询。[0254]语音合成处理模块740被配置为合成用于呈现给用户的语音输出。语音合成处理模块740基于数字助理提供的文本来合成语音输出。例如,所生成的对话响应是文本串的形式。语音合成处理模块740将文本串转换成可听语音输出。语音合成处理模块740使用任何适当语音合成技术,以便从文本生成语音输出,包括但不限于:拼接合成、单元选择合成、双音素合成、特定于域的合成、共振峰合成、发音合成、基于隐马尔可夫模型(hmm)的合成以及正弦波合成。在一些示例中,语音合成处理模块740被配置为基于对应于这些字词的音素串来合成各个字词。例如,音素串与所生成的对话响应中的字词相关联。音素串存储在与字词相关联的元数据中。语音合成处理模块740被配置为直接处理元数据中的音素串,以合成语音形式的字词。[0255]在一些示例中,替代使用语音合成处理模块740(或除此之外),在远程设备(例如,服务器系统108)上执行语音合成,并且将合成的语音发送至用户设备以输出给用户。例如,这可发生在一些具体实施中,其中在服务器系统处生成数字助理的输出。而且由于服务器系统通常比用户设备具有更强的处理能力或更多的资源,其有可能获得比客户端侧合成将实现的质量更高的语音输出。[0256]有关数字助理的附加细节可见于提交于2011年1月10日的名称为“intelligentautomatedassistant”的美国实用新型专利申请no.12/987,982和提交于2011年9月30日的名称为“generatingandprocessingtaskitemsthatrepresenttaskstoperform”的美国实用新型专利申请no.13/251,088中,其全部公开内容以引用方式并入本文。[0257]返回参考图7a,数字助理模块726还包括音频处理模块770和延迟管理模块780。音频处理模块770被配置为分析由数字助理系统700接收的音频流(例如,在i/o处理模块728处并经由麦克风213)。在一些示例中,音频处理模块770被配置为分析音频流以识别哪些部分包含用户语音,以及哪些部分不包含用户语音。例如,音频处理模块770将音频流分成一系列重叠的音频帧。每个音频帧具有预定的持续时间(例如10ms)。音频处理模块770分析每个音频帧的音频特征(例如,使用音频和/或语音模型)以确定每个音频帧是否包含用户语音。所分析的音频特征可以包括时域和/或频域特征。时域特征包括例如过零速率、短时间能量、光谱能量、光谱平坦度、自相关等。频域特征包括(例如)梅尔频率倒谱系数、线性预测性倒谱系数、梅尔频率离散小波系数等。在一些示例中,音频处理模块770提供音频帧信息,其向数字助理模块726的其他部件指示音频流的哪些音频帧包含用户语音,以及音频流的哪些音频帧不包含用户语音。[0258]在一些示例中,延迟管理模块780从音频处理模块770接收音频帧信息。延迟管理模块780使用该信息来控制各种数字助理处理的定时以减小延迟。例如,延迟管理模块780使用音频帧信息来检测音频流中的用户语音的暂停或中断。此外,可以确定每个暂停或中断的持续时间。在一些示例中,延迟管理模块780应用一个或多个预定规则来确定音频流的第一部分是否满足预定条件。在一些示例中,预定条件包括在音频流的第一部分中检测长于第一预定持续时间(例如,50ms、75ms或100ms)的用户语音缺失(例如,暂停)的条件。响应于确定音频流的第一部分满足预定条件,延迟管理模块780基于包含在音频流的第一部分中的用户话语启动自然语言处理(例如,在自然语言处理模块732处)、任务流处理(例如,在任务流处理模块736或836处)和/或语音合成(例如,在语音合成处理模块740处)的执行。在一些示例中,延迟管理模块780在致使数字助理系统继续接收音频流的第二部分的同时启动这些过程的执行。[0259]在一些示例中,延迟管理模块780被配置为检测语音结束点条件。具体地,在确定音频流的第一部分满足预定条件之后,延迟管理模块780确定是否检测到语音结束点条件。在一些示例中,延迟管理模块780使用音频帧信息来确定是否检测到语音结束点条件。例如,检测语音结束点条件可以包括在音频流的第二部分中检测大于第二预定持续时间(例如,600ms、700ms或800ms)的用户语音缺失。第二预定持续时间长于第一预定持续时间。在一些示例中,检测语音结束点条件包括检测来自用户的预定类型的非语音输入。例如,预定类型的非语音输入可以是用户对电子设备的按钮(例如,“home”或菜单按钮304)的选择或者显示在电子设备的触摸屏(例如,触摸屏212)上的示能表示。响应于确定检测到语音结束点条件,延迟管理模块780致使将由任务流处理模块736或836、对话流处理模块734和/或语音合成处理模块740生成的结果呈现给用户。在一些示例中,结果包括语音对话。在一些示例中,延迟管理模块780防止在确定检测到语音结束点条件之前将所生成的结果呈现给用户。[0260]在一些示例中,延迟管理模块780确定未检测到语音结束点条件。而是,延迟管理模块780在音频流的第二部分中检测附加的语音。具体而言,例如,附加语音是音频流的第一部分中话语的延续。在这些示例中,延迟管理模块780基于跨音频流的第一部分和第二部分的用户话语来重新启动自然语言处理、任务流处理和/或语音合成的执行。下面参考图9至图10更详细地描述延迟管理模块780的延迟减小功能。[0261]图8是示出根据各种示例的数字助理模块800的一部分的框图。具体地,图8描绘了根据各种示例的可以能够实现数字助理的鲁棒操作的数字助理模块800的某些部件。更具体地,数字助理模块800中描绘的部件可以起到评估对应于用户话语的多个候选任务流的作用,以及提高任务流处理的鲁棒性和可靠性。为了简单起见,仅描绘了数字助理模块800的一部分。应当认识到,数字助理模块800可以包括附加部件。例如,数字助理模块800可以与数字助理模块726相似或基本上相同,并且可以驻留在数字助理系统700的存储器702中。[0262]如图8所示,stt处理模块830接收用户话语(例如,经由i/o处理模块728)。stt处理模块830与stt处理模块730相似或基本相同。在示意性示例中,所接收的用户话语是“到富达投资的方向”。stt处理模块830对用户话语执行语音识别以确定多个候选文本表示。多个候选文本表示中的每个候选文本表示对应于用户话语。stt处理模块830还为每个候选文本表示确定相关联的语音识别置信度得分。在一些示例中,所确定的多个候选文本表示是具有n个最高语音识别置信度得分的n个最佳候选文本表示。在本示例中,stt处理模块830确定用于用户话语的三个候选文本表示,其包括“到富达投资的方向”、“到熟食店的方向”和“到意大利餐厅的方向”。候选文本表示“到富达投资的方向”可以具有最高的语音识别置信度得分,并且候选文本表示“到熟食店的方向”和“到意大利菜的方向”可能会降低语音识别置信度得分。[0263]stt处理模块830将三个候选文本表示形式和相关联的语音识别置信度得分提供给自然语言处理模块832。自然语言处理模块832可以与自然语言处理模块732相似或基本上相同。基于三个候选文本表示,自然语言处理模块832确定对应的候选用户意图。每个候选用户意图是根据相应候选文本表示来确定的。自然语言处理模块832还为每个候选用户意图确定相关联的意图置信度得分。[0264]根据相应候选文本表示确定候选用户意图包括例如解析相应的候选文本表示,以确定候选文本表示的候选域和候选解析解释。可以基于所确定的候选域和解析解释以结构化查询的形式来表示所确定的候选用户意图。例如,在本示例中,自然语言处理模块832解析候选文本解释“到富达投资的方向”以确定候选域是“获取方向”。此外,自然语言处理模块832识别出“富达投资”是用户的联系人列表中的条目,并且因此将其解释为联系人列表的人/实体(联系人=“富达投资”)。因此,为候选文本解释“到富达投资的方向”确定的第一候选用户意图可以由结构化查询{获取方向,位置=搜索(联系人=“富达投资”)}表示。在一些示例中,自然语言处理模块832还可以将“富达投资”解释为业务。因此,为候选文本解释“到富达投资的方向”确定的第二候选用户意图可以由结构化查询{获取方向,位置=搜索(联系人=“富达投资”)}表示。[0265]自然语言处理模块832可以类似地解析候选文本表示“到熟食店的方向”和“到意大利餐馆的方向”以确定相应的候选用户意图。具体地,自然语言处理模块832可以将“熟食”和“意大利式”解释为与餐厅相关联的烹饪类型。因此,针对这些候选文本解释而确定的候选用户意图可以分别由结构化查询{获取方向,位置=搜索(餐厅,烹饪=“熟食”)}和{获取方向,位置=搜索(餐厅,烹饪=“意大利式”)}表示。[0266]因此,在本示例中,自然语言处理模块832从三个候选文本表示中确定四个候选用户意图。四个候选用户意图分别由以下结构化查询表示:[0267]1.{获取方向,位置=搜索(联系人=“富达投资”)}[0268]2.{获取方向,位置=搜索(业务=“富达投资”)}[0269]3.{获取方向,位置=搜索(餐厅,烹饪=“熟食”)}[0270]4.{获取方向,位置=搜索(餐厅,烹饪=“意大利式”)}[0271]四个候选用户意图中的每一个都有相关联的意图置信度得分。在此示例中,四个候选用户意图按意图置信度得分的降序排列,其中第一候选用户意图具有最高意图置信度得分,并且第四候选用户意图具有最低意图置信度得分。尽管在本示例中,每个确定的候选用户意图具有相同的推断域(“获取方向”),但应当认识到,在其他示例中,所确定的候选用户意图可以包括多个不同的推断域。[0272]自然语言处理模块832将四个候选用户意图提供给任务流处理模块836。例如,针对四个候选用户意图的结构化查询被提供给任务流处理模块836。此外,相关联的语音识别置信度得分和意图置信度得分被提供给任务流处理模块836。在一些示例中,任务流处理模块836与任务流处理模块736相似或基本相同。[0273]在一些示例中,任务流处理模块836的任务流管理器838最初仅选择四个候选用户意图中的一个以进行处理。如果任务流管理器838确定不能通过任务流处理模块836成功地处理最初选择的候选用户意图,则任务流管理器838选择另一个候选用户意图以进行处理。例如,最初选择具有最高意图置信度得分的第一候选用户意图。具体地,在本示例中,由结构化查询{获取方向,位置=搜索(联系人=“富达投资”)}表示的第一候选用户意图由任务流管理器838选择。任务流管理器838将第一候选用户意图映射到对应的第一候选任务流(例如,第一候选任务流842)。值得注意的是,针对第一候选用户意图的结构化查询不完整,因为它不包含“位置”属性的任何值。因此,对应的第一候选任务流中的“位置”任务参数可能缺少用于执行获取到对应于“富达投资”的位置的任务的必需值。在该示例中,第一候选任务流包括用于解析“位置”任务参数的规程。具体地,第一候选任务流包括用于搜索用户的联系人列表的“富达投资”条目以获得“位置”任务参数的对应值(例如,地址值)的规程。[0274]在一些示例中,任务流管理器838确定第一候选任务流的对应第一任务流得分。第一任务流得分可以表示对应候选任务流是用于执行给定用户话语的正确候选任务流的可能性。在一些示例中,第一任务流得分基于第一流参数得分。第一流参数得分可以表示为解析第一候选任务流的一个或多个流参数的置信度。在一些示例中,第一任务流得分基于以下各项的任意组合:对应候选文本表示“到富达投资的方向”的语音识别置信度得分、第一候选用户意图的意图置信度得分和第一任务参数得分。[0275]任务流解析器840通过尝试解析第一候选任务流的丢失“位置”流参数来确定第一流参数得分。在本示例中,任务流解析器840尝试搜索用户的联系人列表的“富达投资”条目以获得“位置”流参数的值(例如,地址值)。如果任务流解析器840通过从用户的联系人列表的“富达投资”条目中获得值来成功解析“位置”流参数,则任务流解析器840可以确定第一流参数得分的较高值。然而,如果任务流解析器840无法成功解析“位置”流参数(例如,在用户的联系人列表的“富达投资”条目中未到地址值),则任务流解析器840可以确定第一流参数得分的较低值。因此,第一流参数得分可以指示是否可以成功解析第一候选任务流的一个或多个流参数(例如,“位置”参数)。在一些示例中,任务流解析器840可以利用上下文数据来尝试解析丢失流参数。[0276]在一些示例中,任务流管理器838确定第一任务流得分是否满足预定标准(例如,大于预定阈值水平)。在任务流解析器840成功解析“位置”流参数的示例中,第一流参数得分可以足够高以使得第一任务流得分能够满足预定标准。在该示例中,任务流管理器838确定第一任务流得分满足预定标准,并且作为响应,任务流管理器838执行对应的第一候选任务流而不处理其余的三个候选用户意图。在本示例中,执行第一候选任务流可以包括搜索到从用户的联系人列表的“保真投资”条目获得的地址的方向,以及在电子设备上向用户显示方向。在一些示例中,执行第一候选任务流还包括生成响应于用户话语的对话文本,以及输出对话文本的语音表示。例如,对话文本的输出语音表示可以是“好的,这是到富达投资的方向”。[0277]在任务流解析器840不能成功解析“位置”流参数的替代示例中,第一流参数得分可以足够低以导致第一任务流得分不满足预定标准。在该示例中,任务流管理器838放弃执行对应的第一候选任务流,并且继续选择第二候选用户意图以进行处理。例如,可以选择具有第二最高意图置信度得分的第二候选用户意图。在本示例中,选定第二候选用户意图由第二结构化查询{获取方向,位置=搜索(业务=“富达投资”)}表示。[0278]任务流管理器838将第二候选用户意图映射到对应的第二候选任务流(例如,第二候选任务流844)。以与第一候选任务流类似的方式处理第二候选任务流。具体地,任务流解析器840通过尝试解析第二候选任务流的一个或多个丢失任务参数来确定第二候选任务流的第二流参数得分。例如,任务流解析器840尝试搜索一个或多个“业务”数据源(例如,业务目录),以获得与业务“富达投资”相对应的地址值。所确定的第二流参数得分基于任务流解析器840是否可以通过搜索“业务”数据源来成功解析“位置”流参数。基于第二流参数得分,任务流管理器838确定第二候选任务流的第二任务流得分。在一些示例中,第二任务流得分还基于对应候选文本表示“到富达投资的方向”的语音识别置信度得分和/或第二候选用户意图的意图置信度得分。如果任务流管理器838确定第二任务流得分满足预定标准,则执行第二候选任务流。然而,如果任务流管理器838确定第二任务流得分不满足预定标准,则任务流管理器838放弃执行第二候选任务流,并继续评估第三候选用户意图(并且如果需要,第四候选用户意图),直到确定对应的候选任务流具有满足预定标准的相关任务流得分。[0279]尽管在上述示例中,任务流处理模块836顺序评估候选用户意图以确定具有满足预定标准的相关任务流得分的候选任务流,但应当认识到,在其他示例中,任务流处理模块836可以并行地评估候选用户意图。在这些示例中,任务流管理器838将四个候选用户意图中的每一个映射到四个相应候选任务流。然后,任务流管理器838为每个候选任务流确定相应的任务流得分。如上所述,任务流处理模块836基于相应候选文本表示的语音识别置信度得分、相应候选用户意图的意图置信度得分、相应任务参数得分或其任意组合来确定每个任务流得分。任务流处理模块836通过尝试解析相应候选任务流的一个或多个丢失任务参数来确定每个相应任务参数得分。基于为四个候选任务流确定的任务流得分,任务流管理器838对四个候选任务流进行排名并选择排名最高的候选任务流。任务流管理器838然后执行选定候选任务流。[0280]在一些示例中,排名最高的候选任务流是具有最高任务流得分的候选任务流。在本示例中,排名最高的候选任务流可以对应于由结构化查询{获取方向,位置=搜索(业务=“保真投资”)}表示的第二候选用户意图。因此,在本示例中,任务流管理器838可以执行第二候选用户意图,该第二候选用户意图可以包括获得到通过搜索一个或多个业务数据源而获得的“保真投资”地址的方向(例如,通过显示具有方向的地图)并将这些方向呈现给用户。[0281]应当理解,在一些示例中,选定最高排名的候选任务流不必与具有最高意图置信度得分的候选用户意图相对应。例如,在本示例中,选定第二候选任务流对应于不具有最高置信度得分的第二候选用户意图(例如,由结构化查询{获取方向,位置=搜索(业务=“保真投资”)}表示)。另外,在一些示例中,选定最高排名的候选任务流不必与具有最高语音识别置信度得分的候选文本表示相对应。由于任务流得分可以基于语音识别置信度得分、意图置信度得分和流参数得分的组合,使用任务流得分来选择合适的候选任务流可以使得表示语音识别、自然语言处理和任务流处理的优化的候选任务流能够被选择。因此,选定候选任务流更有可能与用户提供用户话语的实际期望目标相一致,并且在执行过程中较不可能会失败(例如,导致致命错误)。[0282]图9和图10是时间线900和1000,其示出了根据各种示例的数字助理的低延迟操作的定时。在一些示例中,使用数字助理模块(例如,数字助理模块726)的延迟管理模块(例如,延迟管理模块780)来控制数字助理的低延迟操作的定时。参考图7a和图7b的数字助理系统700来描述图9和图10。[0283]如图9所示,数字助理系统700在第一时间904开始接收音频流902。例如,响应于接收到调用数字助理系统700的用户输入,数字助理系统700在第一时间904开始接收音频流902。在该示例中,从第一时间904到第三时间910连续接收音频流902。具体地,从第一时间904到第二时间908接收音频流902的第一部分,并且从第二时间908到第三时间910接收音频流902的第二部分。如图所示,音频流902的第一部分包括用户话语903。[0284]在一些示例中,当接收到音频流902时,数字助理系统700执行语音识别。例如,延迟管理模块780致使stt处理模块730在接收到音频流902时开始实时地执行语音识别。stt处理模块730确定用户话语903的一个或多个第一候选文本表示。[0285]延迟管理模块780确定音频流902的第一部分是否满足预定条件。例如,预定条件可以包括检测音频流902的第一部分中的长于第一预定持续时间(例如,50ms、75ms或100ms)的用户语音缺失的条件。应当理解,在其他示例中,预定条件可以包括与音频流902的第一部分相关联的其他条件。在本示例中,如图9所示,音频流902的第一部分包含在第一中间时间906和第二时间908之间的用户语音缺失。如果延迟管理模块780确定在第一中间时间906和第二时间908之间的这种用户语音缺失满足预定条件(例如,持续时间912长于第一预定持续时间),则延迟管理模块780致使数字助理系统700的相关部件启动一系列过程,其包括自然语言处理、任务流处理、对话流处理、语音合成或其任何组合。具体地,在本示例中,响应于确定音频流902的第一部分满足预定条件,延迟管理模块780致使自然语言处理模块732在第二时间908开始对一个或多个第一候选文本表示执行自然语言处理。这可能是有利的,因为在数字助理系统700在等待语音结束点条件的检测时,自然语言处理、任务流处理、对话流处理或语音合成可以至少部分在第二时间908和第三时间910之间完成。因此,在检测到语音结束点条件之后可以需要较少的处理,这可以减小数字助理系统700的响应延迟。[0286]如上所述,延迟管理模块780致使在第二时间908和第三时间910之间接收到音频流902的第二部分时,执行自然语言处理、任务流处理、对话流处理和语音合成中的一个或多个。具体地,在第二时间908和第三时间910之间,延迟管理模块780致使自然语言处理模块732基于一个或多个第一候选文本表示来确定用户话语903的一个或多个候选用户意图。在一些示例中,延迟管理模块780还致使任务流处理模块736(或836)确定(例如,至少部分地在第二时间908和第三时间910之间)针对一个或多个候选用户意图的一个或多个相应候选任务流,并且从一个或多个候选任务流中选择(例如,至少部分地在第二时间908与第三时间910之间)第一候选任务流。在一些示例中,延迟管理模块780还致使任务流处理模块736(或836)执行(例如,至少部分地在第二时间908和第三时间910之间)选定第一候选任务流,而无需向数字助理系统700的用户提供输出(例如,不在用户设备上显示任何结果或输出任何语音/音频)。[0287]在一些示例中,执行第一候选任务流包括响应于用户话语903而生成文本对话,以及生成文本对话的语音表示。在这些示例中,延迟管理模块780还致使对话流处理模块734生成(例如,至少部分地在第二时间908和第三时间910之间)文本对话,并且致使语音合成处理模块740生成(例如,至少部分地在第二时间908与第三时间910之间)文本对话的语音表示。[0288]在一些示例中,语音合成处理模块740接收请求(例如,来自任务流处理模块736或对话流处理模块734)以生成文本对话的语音表示。响应于接收到请求,语音合成处理模块740可以确定(例如,至少部分地在第二时间908与第三时间910之间)电子设备(例如,服务器106、设备104、设备200或系统700)的存储器(例如,存储器202、470或702)是否储存具有文本对话的语音表示的音频文件。响应于确定电子设备的存储器确实存储了具有文本对话的语音表示的音频文件,语音合成处理模块740在播放存储的音频文件之前等待结束点条件的检测。响应于确定电子设备的存储器未存储具有文本对话的语音表示的音频文件,语音合成处理模块740生成具有文本对话的语音表示的音频文件,并将该音频文件存储在存储器中。在一些示例中,在第二时间908与第三时间910之间至少部分地执行生成和存储音频文件。在存储音频文件之后,语音合成处理模块740在播放存储的音频文件之前等待语音结束点条件的检测。[0289]延迟管理模块780确定在第二时间908和第三时间910之间是否检测到语音结束点条件。例如,检测语音结束点条件可以包括在音频流902的第二部分中检测长于第二预定持续时间(例如,600ms、700ms或800ms)的用户语音缺失。应当认识到,在其他示例中,可以实现其他语音结束点条件。在本示例中,在第二时间908与第三时间910之间的音频流902的第二部分不包含任何用户语音。此外,第二时间908与第三时间910之间的持续时间914长于第二预定持续时间。因此,在该示例中,在第二时间908和第三时间910之间检测到语音结束点条件。响应于确定在第二时间和第三时间之间检测到语音结束点条件,延迟管理模块780致使数字助理系统700呈现(例如,在第四时间1014)从执行第一候选任务流获得的结果。例如,结果可以显示在电子设备的显示器上。在一些示例中,延迟管理模块780通过致使相应的存储音频文件被播放来致使将文本对话的语音表示输出给用户。[0290]由于自然语言处理、任务流处理、对话流处理和语音合成的至少一部分是在检测语音结束点条件之前执行的,因此在检测到语音结束点条件之后可以需要较少的处理,这可以减小数字助理系统700的响应延迟。具体地,在检测到语音结束点条件之后,可以更快地呈现从执行第一候选任务流获得的结果。[0291]在其他示例中,在第二时间908和第三时间910之间检测到语音结束点条件。例如,参考图10中的时间线1000,音频流1002包含第二时间1008与第三时间1012之间的用户语音。因此,在该示例中,在第二时间1008和第三时间1012之间未检测到语音结束点条件。图10的从第一时间1004到第二时间1008的时间线1000可以与图9的从第一时间904到第二时间908的时间线900相似或基本相同。具体地,从第一时间1004到第二时间1008接收包含用户话语1003的音频流1002的第一部分。延迟管理模块780确定在第一中间时间1006和第二时间1008之间的这种用户语音缺失满足预定条件(例如,持续时间1018长于第一预定持续时间),并且作为响应,延迟管理模块780致使数字助理系统700的相关部件首次启动一系列处理序列,其包括自然语言处理、任务流处理、对话流处理、语音合成或其任何组合。具体地,响应于确定音频流1002的第一部分满足预定条件,延迟管理模块780致使自然语言处理模块732在第二时间1008开始对音频流1002的第一部分中的用户话语1003的一个或多个第一候选文本表示执行自然语言处理。[0292]图10的时间线1000与图9的时间线900的不同之处在于用户话语1003从音频流1002的第一部分(在第一时间1004和第二时间1008之间)持续到音频流1002的第二部分(在第二时间1008和第三时间1012之间),并且音频流1002从第三时间1012进一步延伸到第四时间1014。在该示例中,延迟管理模块780确定在第二时间1008和第三时间1012之间未检测到语音结束点条件(例如,由于检测到用户语音),并且作为响应,延迟管理模块780致使数字助理系统700放弃从在第二时间1008和第三时间1012之间执行任务流处理而获得的任何结果的呈现。换句话说,在音频时间流1002的第二部分中检测到用户语音时,可以丢弃在第二时间1008和第三时间1012之间执行的自然语言处理、任务流处理、对话流处理或语音合成。此外,在检测到音频流1002的第二部分中的用户语音时,延迟管理模块780致使数字助理系统700处理音频流1002的第二部分中的用户语音(用户话语1003的继续)。具体地,延迟管理模块780致使stt处理模块730对音频流1002的第二部分执行语音识别并确定一个或多个第二候选文本表示。一个或多个第二候选文本表示中的每个候选文本表示是跨音频流1002的第一部分和第二部分(例如,从第一时间1004到第三时间1012)的用户话语1003的候选文本表示。此外,在检测到音频流1002的第二部分中的用户语音时,延迟管理模块780致使数字助理系统700从第三时间1012到第四时间1014继续接收音频流1002。具体地,从第三时间1012和第四时间1014接收音频流1002的第三部分。[0293]音频流1002的第二部分和第三部分以与以上参考图9描述的音频流902的第一部分和第二部分类似的方式进行处理。具体地,延迟管理模块780确定音频流1002的第二部分是否满足预定条件(例如,长于第一预定持续时间的用户语音缺失)。在本示例中,如图10所示,音频流1002的第二部分包含在第二中间时间1010和第二时间1012之间的用户语音缺失。如果延迟管理模块780确定在第二中间时间1010和第三时间1012之间的这种用户语音缺失满足预定条件(例如,持续时间1020长于第一预定持续时间),在延迟管理模块780致使数字助理系统700的相关部件第二次启动一系列处理序列,其包括自然语言处理、任务流处理、对话流处理、语音合成或其任何组合。具体地,在本示例中,响应于确定音频流1002的第二部分满足预定条件,延迟管理模块780致使自然语言处理模块732在第三时间1012开始对一个或多个第二候选文本表示执行自然语言处理。[0294]如上所述,延迟管理模块780致使在第三时间1012和第四时间1014之间执行自然语言处理、任务流处理、对话流处理和语音合成中的一个或多个。具体地,在第三时间1012和第四时间1014之间,延迟管理模块780致使自然语言处理模块732基于一个或多个第二候选文本表示来确定音频流1002的第一部分和第二部分中的用户话语1003的一个或多个第二候选用户意图。在一些示例中,延迟管理模块780致使任务流处理模块736(或836)确定(例如,至少部分地在第三时间1012与第四时间1014之间)一个或多个相应的第二候选任务流的一个或多个第二候选用户意图,并且从一个或多个第二候选任务流中选择(例如,至少部分地在第三时间1012和第四时间1014之间)第二候选任务流。在一些示例中,延迟管理模块780还致使任务流处理模块736(或836)执行(例如,至少部分地在第三时间1012和第四时间1014之间)选定第二候选任务流,而无需向数字助理系统的用户提供输出(例如,不在用户设备上显示任何结果或输出任何语音/音频)。[0295]延迟管理模块780确定在第三时间1012和第四时间1014之间是否检测到语音结束点条件。在本示例中,在第三时间1012和第四时间1014之间的音频流1002的第三部分不包含任何用户语音。此外,第三时间1012与第四时间1014之间的持续时间1022长于第二预定持续时间。因此,在该示例中,在第三时间1012和第四时间1014之间检测到语音结束点条件。响应于确定在第三时间1012和第四时间1014之间检测到语音结束点条件,延迟管理模块780致使数字助理系统700呈现(例如,在第四时间1014)从执行第一候选任务流获得的结果。例如,结果可以显示在电子设备的显示器上。在其他示例中,呈现结果包括响应于用户话语1003而输出语音对话。在这些示例中,可以在第三时间1012和第四时间1014之间至少部分地生成语音对话。[0296]4.数字助理操作过程[0297]图11a至图11b示出了根据各种示例的用于操作数字助理的过程1100。过程1100的一些方面涉及数字助理的低延迟操作。此外,过程1100的一些方面涉及数字助理的更可靠和鲁棒的操作。例如,使用实现数字助理的一个或多个电子设备来执行过程1100。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1100,并且在服务器(例如,da服务器106)和客户端设备(用户设备104)之间以任何方式来划分过程1100的框。在其他示例中,在服务器和多个客户端设备(例如,移动电话和智能手表)之间划分过程1100的框。因此,虽然过程1100的部分在本文中被描述为由客户端-服务器系统的特定设备执行,但应当理解,过程1100不限于此。在其他示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1100。在过程1100中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1100来执行附加步骤。[0298]在框1102处,接收音频流(例如,音频流902或1002)(例如,经由麦克风213在i/o处理模块728处)。例如,通过激活电子设备(例如,用户设备104)的麦克风(例如,麦克风213)并经由麦克风启动音频数据的收集来接收音频流。可以响应于检测到预定的用户输入来执行麦克风的激活和启动音频数据的收集。例如,检测到电子设备的“home”示能表示的激活(例如,由用户按下并保持示能表示)可以调用数字助理并启动音频流的接收。在一些示例中,音频流是音频数据的连续流。音频数据流可以被连续收集并存储在缓冲器(例如,音频电路210的缓冲器)中。[0299]在一些示例中,在框1104和1106之前执行框1102。具体地,在这些示例中,音频流是跨两个时间间隔接收的。在框1104处,从第一时间(例如,第一时间904或1004)到第二时间(例如,第二时间908或1008)接收音频流的第一部分。音频流的第一部分包含例如用户话语(用户话语903或1003)。在框1106处,从第二时间(例如,第二时间908或1008)到第三时间(例如,第三时间910或1012)接收音频流的第二部分。第一时间、第二时间和第三时间各自是特定时间点。第二时间在第一时间之后,并且第三时间在第二时间之后。在一些示例中,从第一时间到第三时间连续接收音频流,其中从第一时间到第二时间连续接收音频流的第一部分,并且从第二时间到第三时间连续接收音频流的第二部分。[0300]在框1108处,确定用户话语的多个候选文本表示(例如,使用stt处理模块730)。通过对音频流执行语音识别来确定多个候选文本表示。每个候选文本表示与相应语音识别置信度得分相关联。语音识别置信度得分可以指示特定候选文本表示是用户话语的正确文本表示的置信度。此外,语音识别置信度得分可以指示多个候选文本表示中的候选文本表示中的任何确定的单词的置信度。在一些示例中,多个候选文本表示是具有n个最高语音识别置信度得分的n个最佳候选文本表示。[0301]在一些示例中,当在框1104处接收到用户话语时,实时执行框1108。在一些示例中,在接收到音频流时自动执行语音识别。具体地,当接收到用户话语的每个部分时,对用户话语的单词进行解码和转录。在这些示例中,在框1110之前执行框1108。在其他示例中,在框1110之后执行框1108(例如,响应于确定音频流的第一部分满足预定条件而执行)。[0302]在框1110处,确定(例如,使用延迟管理模块780)音频流的第一部分是否满足预定条件。在一些示例中,预定条件是基于音频流的一个或多个音频特性的条件。一个或多个音频特性包括例如音频流的一个或多个时域和/或频域特征。时域特征包括例如过零速率、短时间能量、光谱能量、光谱平坦度、自相关等。频域特征包括(例如)梅尔频率倒谱系数、线性预测性倒谱系数、梅尔频率离散小波系数等。[0303]在一些示例中,预定条件包括在音频流的第一部分中检测用户话语后的长于第一预定持续时间的用户语音缺失的条件。具体地,过程1100可以连续地监测音频流的第一部分(例如,从第一时间到第二时间),并且确定用户话语的开始时间和结束时间(例如,使用常规语音检测技术)。如果在用户话语的结束时间之后,在音频流的第一部分中检测到长于第一预定持续时间(例如,50ms、75ms或100ms)的用户语音缺失,则可以确定音频流的第一部分满足预定条件。[0304]在一些示例中,基于音频能量水平(例如,在与人类语音相对应的频率范围(诸如50-500hz)内的音频流的能量水平)来检测用户语音的存在或缺失。在这些示例中,预定条件包括以下条件:在用户话语的结束时间之后,在音频流的第一部分中检测长于第一预定持续时间的小于预定阈值能量水平的音频能量水平。[0305]在一些示例中,预定条件包括与用户话语的语言特性有关的条件。例如,可以分析框1108的多个候选文本表示,以确定是否在一个或多个候选文本表示中检测到句子结束条件。在一些示例中,如果一个或多个候选文本表示的结束部分与单词的预定序列匹配,则检测句子结束条件。在一些示例中,语言模型用于检测一个或多个候选文本表示中的句子结束条件。[0306]响应于确定音频流的第一部分满足预定条件,执行框1112-1126中的一个或多个操作。具体地,响应于确定音频流的第一部分满足预定条件,自动(例如,无需来自用户的进一步输入)执行框1112-1126的一个或多个操作。此外,响应于确定音频流的第一部分满足预定条件,在第二时间(例如,第二时间908或1008)与第三时间(例如,第三时间910或1012)之间至少部分地执行框1112-1126的一个或多个操作。(例如,当在框1106处接收到音频流的第二部分时)。[0307]响应于确定音频流的第一部分不满足预定条件,框1110继续监测音频流的第一部分(例如,不执行框1112-1126),直到确定预定音频流的第一部分满足条件。[0308]确定音频流的第一部分是否满足预定条件,以及响应于确定音频流的第一部分满足预定条件,至少部分地在第二时间和第三时间之间执行框1112-1126中的一个或多个操作可以减小电子设备上的数字助理的响应延迟。具体地,电子设备可以在等待语音结束点条件被检测的同时至少部分地完成这些操作。这可以通过减少检测语音结束点条件之后需要执行的操作来增强电子设备的可操作性。继而,这可以减少接收用户话语(框1104)和向用户呈现结果(框1130)之间的总体延迟。[0309]在框1112处,确定用户话语的多个候选用户意图(例如,使用自然语言处理模块732)。具体地,对框1108的一个或多个候选文本表示执行自然语言处理以确定多个候选用户意图。多个候选用户意图中的每个候选用户意图是表示一个或多个任务的可动作意图,这些在被任务时将满足与用户话语相对应的预测目标。在一些示例中,以结构化查询的形式确定每个候选用户意图。[0310]在一些示例中,框1108的一个或多个候选文本表示中的每个候选文本表示被解析以确定一个或多个相应的候选用户意图。在一些示例中,在框1112处确定的多个候选用户意图包括与不同候选文本表示相对应的候选用户意图。例如,在框1112处,可以根据框1108的第一候选文本表示确定多个候选用户意图中的第一候选用户意图,并且可以根据框1108的第二候选候选文本表示来确定多个候选用户意图中的第二候选用户意图。[0311]在一些示例中,每个候选用户意图与相应的意图置信度得分相关联。意图置信度得分可以指示特定候选用户意图是针对相应候选文本表示的正确用户意图的置信度。此外,意图置信度得分可以指示为候选用户意图确定的对应域、可操作意图、概念或属性的置信度。在一些示例中,多个候选用户意图是具有m个最高意图置信度得分的m个最佳候选用户意图。[0312]在框1114处,从框1112的多个候选用户意图确定多个候选任务流(例如,使用任务流处理模块736或836)。具体地,多个候选用户意图中的每个候选用户意图被映射到多个候选任务流中的对应候选任务流。每个候选任务流包括用于执行满足相应候选用户意图的一个或多个动作的规程。对于具有不完整的结构化查询的候选用户意图(例如,具有一个或多个丢失属性值的部分结构化查询),对应候选任务流可以包括用于解析不完整的结构化查询的规程。例如,候选任务流可以包括用于通过搜索一个或多个数据源或向用户查询附加信息来确定一个或多个流参数(例如,对应于一个或多个丢失属性值)的规程。每个候选任务流还包括用于执行由对应候选用户意图表示的一个或多个动作(例如,由候选用户意图的完整结构化查询表示)的规程。[0313]在框1116处,针对多个候选任务流确定多个任务流得分(例如,使用任务流处理模块736或836)。多个任务流得分中的每个任务流得分对应于多个候选任务流中的相应候选任务流。相应候选任务流的任务流得分可以表示相应候选任务流是用于执行给定用户话语的正确候选任务流的可能性。例如,任务流得分可以表示通过执行相应的候选任务流来满足用户提供用户话语的实际期望目标的可能性。[0314]在一些示例中,每个任务流得分基于相应候选任务流的流参数得分。在这些示例中,框1116包括(例如,使用任务流管理器838)确定每个候选任务流的相应流参数得分。相应候选任务流的流参数得分可以表示解析相应候选任务流的一个或多个流参数的置信度。在一些示例中,确定相应候选任务流的流参数得分包括解析相应候选任务流的一个或多个流参数。具体地,对于每个候选任务流,过程1100在框1118处确定相应候选任务流是否包括用于解析一个或多个流参数的规程。一个或多个流参数可以例如对应于对应的不完整结构化查询的一个或多个丢失属性值。在一些示例中,一个或多个流参数是用户话语中未明确指定的参数。如果过程1100确定相应的候选任务流包括用于解析一个或多个流参数的过程,则可以执行规程(例如,使用任务流解析器840)来解析一个或多个流参数。在一些示例中,执行规程致使搜索一个或多个数据源。具体地,搜索一个或多个数据源以获得一个或多个流参数的一个或多个值。在一些示例中,一个或多个数据源对应于相应候选用户意图的一个或多个属性。[0315]如果可以解析相应候选任务流的一个或多个流参数(例如,通过从一个或多个数据源成功获得一个或多个流参数的一个或多个值),则为相应候选任务流确定的流参数得分可以是高的。相反,如果不能解析相应候选任务流的一个或多个流参数(例如,由于未能从一个或多个数据源获得一个或多个流参数的一个或多个值),则为相应候选任务流确定的流参数得分可以是低的。[0316]确定多个候选任务流的任务流得分和/或任务参数得分对于在选择和执行任何候选任务流之前评估每个候选任务流的可靠性可能是有利的。具体地,任务流得分和/或任务参数得分可以用于识别不能被解析的候选任务流。这允许过程1100仅选择(例如,在框1122)并执行(例如,在框1124)可以被解析的候选任务流,这提高了数字助理进行的任务流处理的可靠性和鲁棒性。[0317]在一些示例中,多个任务流得分中的每个任务流得分基于与相应候选任务流相对应的相应候选用户意图的意图置信度得分。此外,在一些示例中,多个任务流得分中的每个任务流得分基于与相应候选任务流相对应的相应候选文本表示的语音识别置信度得分。在一些示例中,每个任务流得分基于相应候选任务流的流参数得分、相应候选用户意图的意图置信度得分、以及相应候选文本表示的语音识别置信度得分的组合。[0318]在框1120处,根据框1116的多个任务流得分,对多个候选任务流进行排名(例如,使用任务流管理器838)。例如,从最高任务流得分到最低任务流得分对多个候选任务流进行排名。[0319]在框1122处,选择多个候选任务流中的第一候选任务流(例如,使用任务流管理器838)。具体地,基于多个任务流得分和框1120的排名来选择多个候选任务流中的第一候选任务流。例如,选定第一候选任务流是多个候选任务流中排名最高的候选任务流(例如,具有最高任务流得分)。[0320]在一些示例中,选定第一候选任务流具有最高任务流得分,但对应于多个候选用户意图中的具有非最高意图置信度得分的意图置信度得分的候选用户意图。在一些示例中,选定第一候选任务流对应于多个候选文本表示中的具有并非最高语音识别得分的语音识别得分的文本表示。[0321]在上述示例中,过程1100并行地评估多个候选任务流中的每一个,以选择具有最高任务流得分的第一候选任务流。然而,应当理解,在其他示例中,过程1100可以替代地串行地评估多个候选任务流。例如,在一些示例中,最初仅针对与具有最高意图置信度得分的候选用户意图相对应的候选任务流来确定第一任务流得分。如果第一任务流得分满足预定标准(例如,大于预定阈值水平),则在框1122处选择对应的候选任务流。然而,如果第一任务流得分不满足预定标准(例如,小于预定阈值水平),则针对与具有次高意图置信度得分的候选用户意图相对应的另一候选任务流确定第二任务流得分。取决于第二任务流得分是否满足预定标准,可以在框1122选择与第二任务流得分相对应的另一个候选任务流,或者可以随后基于相关意图置信度得分为附加候选任务流确定附加任务流得分。[0322]基于多个任务流得分来选择第一候选任务流可以增强电子设备上的数字助理的准确性和可靠性。具体地,使用多个任务流得分,过程1100可以避免选择不能被解析的候选任务流。这可以减少在执行选定第一候选任务流期间的任务流处理错误的可能性。此外,由于不能被解析的候选任务流不太可能与用户的实际目标一致,因此基于多个任务流得分选择第一候选任务流可增加选定第一候选任务流与用户实际期望目标重合的可能性。因此,通过基于多个任务流得分选择第一候选任务流,可以改善电子设备上的数字助理的准确性和可靠性。[0323]在框1124处,执行在框1122处选择的第一候选任务流(例如,使用任务流管理器838)。具体地,执行由第一候选任务流表示的一个或多个动作。在一些示例中,通过执行第一候选任务流来获得结果。结果可以包括例如用户在用户话语中请求的信息。在一些示例中,并非在框1124执行由第一候选任务流表示的所有动作。具体地,在框1124处不执行向设备的用户提供输出的动作。例如,框1124不包括在电子设备的显示器上显示通过执行第一候选任务流而获得的结果。框1124也不包括在电子设备上提供音频输出(例如,语音对话或音乐)。因此,在一些示例中,在框1128处检测到语音结束点条件之前,执行第一候选任务流而不向用户提供任何输出。[0324]在一些示例中,在框1124处执行第一候选任务流可以包括执行框1126的操作。在框1126处,生成响应于用户话语的文本对话(例如,结合对话流处理模块734使用任务流管理器838)。在一些示例中,所生成的文本对话包括从执行第一候选任务流获得的结果。在一些示例中,在框1126处生成文本对话,而不将文本对话或文本对话的语音表示输出给用户。在一些示例中,框1126还包括用于生成文本对话的语音表示以进行输出的附加操作(例如,下面参考图12描述的过程1200中的框1202-1208的操作)。在这些示例中,框1126可以包括生成文本对话的多个语音属性值。多个语音属性值提供可用于生成文本对话的语音表示的信息。在一些示例中,多个语音属性值可以包括指定文本对话(例如,可以由语音合成处理模块使用以将文本对话转换为对应语音的文本对话的表示)的第一语音属性值。在一些示例中,多个语音属性值可以指定用于生成文本对话的语音表示的一个或多个语音特性,诸如语言、性别、音频质量、类型(例如,口音/本地化)、语速、音量、音调等。[0325]在框1128处,确定在第二时间(例如,第二时间908或1008)和第三时间(例如,第三时间910或1012)之间是否检测到语音结束点条件。语音结束点是指音频流中用户已完成讲话的点(例如,用户话语的结束)。例如,在框1102处从第二时间到第三时间接收音频流的同时,进行框1128的确定。在一些示例中,通过监测音频流的第二部分中的一个或多个音频特性来执行框1128的确定。例如,在一些示例中,检测语音结束点条件可以包括在音频流的第二部分中检测大于第二预定持续时间(例如,600ms、700ms或800ms)的用户语音缺失。在这些示例中,框1128包括确定音频流的第二部分是否包含音频流的第一部分中的用户话语的继续。如果在音频流的第二部分中检测到音频流的第一部分中的用户话语的继续,则过程1100可以确定在第二时间和第三时间之间未检测到语音结束点条件。如果在大于第二预定持续时间的时间内,在音频流的第二部分中未检测到在音频流的第一部分中的用户话语的继续,则过程1100可以确定在第二时间和第三时间之间检测到语音结束点条件。可以使用上文相对于框1110描述的类似语音检测技术来检测用户语音的缺失。在一些示例中,第二预定持续时间长于框1110的第一预定持续时间。[0326]在一些示例中,检测语音结束点条件包括检测在第二时间和第三时间之间的来自用户的预定类型的非语音输入。例如,用户可以在第一时间通过按按压并保持电子设备的按钮(例如,“home”或菜单按钮304)来调用数字助理。在该示例中,预定类型的非语音输入可以是用户释放按钮(例如,第三时间)。在其他示例中,预定类型的非语音输入是在电子设备的触摸屏(例如,触摸屏212)上显示的示能表示的用户输入。[0327]响应于确定在第二时间和第三时间之间检测到语音结束点条件,执行框1130。具体地,在框1130处,将来自框1124处的执行选定第一候选任务流的结果呈现给用户。在一些示例中,框1130包括在电子设备上将结果输出给用户。例如,结果显示在电子设备的显示器上。结果可以包括例如在框1126处生成的文本对话。在一些示例中,结果以音频输出的形式呈现给用户。例如,结果可以包括音乐或语音对话。[0328]在一些示例中,在框1130处呈现结果包括执行框1132的操作。具体地,在框1132处,输出在框1126处生成的文本对话的语音表示。输出文本对话的语音表示包括,例如,播放具有文本对话的语音表示的音频文件。在一些示例中,输出文本对话的语音表示包括执行下面参考图12描述的过程1200的一个或多个框。例如,输出文本对话的语音表示包括确定电子设备的存储器是否存储具有文本对话的语音表示的音频文件(框1204)。响应于确定电子设备的存储器存储具有文本对话的语音表示的音频文件,通过播放存储的音频文件来输出文本对话的语音表示(框1212)。响应于确定电子设备的存储器未存储具有文本对话的语音表示的音频文件,在电子设备的存储器中生成(框1206)并被存储(框1208)具有文本对话的语音表示的音频文件。响应于确定检测到语音结束点条件(框1128或1210),播放所存储的音频文件以输出文本对话的语音表示(框1212)。[0329]如上所述,在第二时间和第三时间之间至少部分地执行框1112-1126和/或1202-1208的操作(在框1128或1210处检测语音结束点条件之前)可以减小在检测到语音结束点条件时要求执行的操作的数量。因此,在检测到语音结束点条件时可能需要较少的计算,这可以使数字助理能够在检测到语音结束点条件时提供更快的响应(例如,通过在框1130呈现结果或在框1132或1212输出语音对话)。[0330]返回参考框1128,响应于确定在第二时间和第三时间之间未检测到语音结束点条件,过程1100放弃框1130(和框1132)的执行。例如,如果过程1100确定音频流的第二部分包含用户话语的继续,则在第二时间和第三时间之间没有检测到语音结束点条件,并且过程1100放弃框1130和1132的执行。具体地,过程1100放弃呈现来自执行框1122的选定第一候选任务流的结果。在生成文本对话的示例中,过程1100进一步放弃文本对话的语音表示的输出。此外,如果过程1100相对于音频流的第一部分中的话语仍在执行框1112-1126或框1202-1208的任何操作,则过程1100在确定在第二时间和第三时间之间未检测到语音结束点条件时停止执行这些操作。[0331]在一些示例中,响应于确定在第二时间和第三时间之间未检测到语音结束点条件,过程1100可以返回到框1102-1126中的一个或多个以处理音频流的第二部分中的语音。具体地,在检测到音频流的第二部分中的用户话语的继续时,对音频流的第二部分中的用户话语的继续执行语音识别(框1108)。附加地,在一些示例中,过程1100在第三时间之后继续接收音频流(框1102)。具体地,可以从第三时间(第三时间1012)到第四时间(第四时间1014)接收音频流的第三部分(框1102)。[0332]在一些示例中,在音频流的第二部分中的用户话语的继续的语音识别结果与在音频流的第一部分中的用户话语的语音识别结果相结合以获得第二多个候选文本表示。第二多个候选文本表示中的每个候选文本表示是跨音频流的第一部分和第二部分的用户话语的文本表示。[0333]进行关于音频流的第二部分是否满足预定条件的确定(框1110)。响应于确定音频流的第二部分满足预定条件,相对于第二多个候选文本执行框1112-1126中的一个或多个操作。具体地,响应于确定音频流的第二部分满足预定条件,至少部分地在第三时间(例如,第三时间1012)和第四时间(例如,第四时间1014)之间执行框1112-1130中的一个或多个操作(例如,在框1102处接收音频流的第三部分时)。[0334]基于第二多个候选文本表示,确定音频流的第一部分和第二部分中的用户话语的第二多个候选用户意图(框1112)。根据第二多个候选用户意图确定第二多个候选任务流(框1114)。具体地,第二多个候选用户意图中的每个候选用户意图被映射到第二多个候选任务流中的对应候选任务流。从第二多个候选任务流中选择第二候选任务流(框1122)。该选择可以基于为第二多个候选任务流确定的第二多个任务流得分(框1116)。在检测到语音结束点条件之前,在不向用户提供任何输出的情况下执行选定第二候选任务流(框1124)。在一些示例中,通过执行第二候选任务流来获得第二结果。在一些示例中,执行第二候选任务流包括生成第二文本对话(框1126),该第二文本对话响应于音频流的第一部分和第二部分中的用户话语。在一些示例中,在检测到语音结束点条件之前,在不将第二文本对话或第二文本对话的语音表示输出给用户的情况下生成第二文本对话。在一些示例中,执行用于生成第二文本对话的语音表示以进行输出的附加操作(例如,下面参考图12描述的过程1200中的框1202-1208的操作)。[0335]在一些示例中,做出关于在第三时间与第四时间之间是否检测到语音结束点条件的确定(框1128)。响应于确定在第三时间和第四时间之间检测到语音结束点条件,将来自执行选定第二候选任务流的第二结果呈现给用户(框1130)。在一些示例中,呈现第二结果包括通过播放存储的第二音频文件(例如,在框1206生成的存储的第二音频文件),将第二文本对话的语音表示输出到设备的用户。[0336]图12示出了根据各种示例的用于操作数字助理以生成语音对话响应的过程1200。在一些示例中,过程1200被实现为用于操作数字助理的过程1100的一部分。例如,使用实现数字助理的一个或多个电子设备来执行过程1100。在数字助理系统中实现过程1200可以减少与文本到语音处理相关联的延迟。在一些示例中,使用客户端-服务器系统(例如,系统100)来执行过程1200,并且在服务器(例如,da服务器106)和客户端设备(用户设备104)之间以任何方式来划分过程1200的框。在一些示例中,使用仅客户端设备(例如,用户设备104)或仅多个客户端设备来执行过程1200。在过程1100中,一些框被任选地组合,一些框的次序被任选地改变,并且一些框被任选地省略。在一些示例中,可结合过程1200来执行附加操作。[0337]在框1202处,接收文本对话(例如,在语音合成处理模块740处)。在一些示例中,响应于所接收的用户话语(例如,在框1102处),由数字助理系统生成文本对话(例如,在框1126处)。在一些示例中,接收具有多个相关语音属性值(例如,以上参考框1126描述的语音属性值)的文本对话。在一些示例中,多个语音属性值指定用于生成文本对话的语音表示的一个或多个语音特性。一个或多个语音特征包括例如语言、性别、音频质量、类型(例如,口音/本地化)、语速、音量、音调等。文本对话和多个语音属性值的组合可以表示根据多个语音属性值中定义的一个或多个语音特征来生成文本对话的语音表示的请求。[0338]响应于在框1202处接收到文本对话,执行框1204。在框1204处,确定(例如,使用语音合成处理模块740)电子设备(例如,设备104、200、600或700)的存储器(例如,存储器202、470或702)是否存储具有文本对话的语音表示的音频文件。例如,框1204包括搜索电子设备的存储器的具有文本对话的语音表示的音频文件。在一些示例中,电子设备的存储器包含一个或多个音频文件。在这些示例中,框1204包括分析一个或多个音频文件中的每个音频文件,以确定一个或多个音频文件之一是否包括与框1202处接收的文本对话的多个语音属性值相匹配的多个语音属性值。如果一个或多个音频文件中的音频文件具有与文本对话的多个语音属性值匹配的第一多个语音属性值,则将确定存储器存储具有文本对话的语音表示的语音文件。[0339]在一些示例中,框1204包括搜索存储在电子设备的存储器中的一个或多个音频文件的文件名。在这些示例中,分析每个音频文件的文件名以确定文件名是否表示与文本对话的多个语音属性值匹配的多个语音属性值。具体地,每个文件名可以(例如,使用md5哈希)对多个语音属性值进行编码。因此,分析存储在存储器中的一个或多个音频文件的文件名可以确定存储器是否存储了具有文本对话的语音表示的音频文件。[0340]响应于确定电子设备的存储器存储具有文本对话的语音表示的音频文件,过程1200放弃框1206和1208的执行并且行进到框1210。响应于确定电子设备的存储器未存储具有文本对话的语音表示的音频文件,执行框1206。[0341]在框1206处,生成具有文本对话的语音表示的音频文件(例如,使用语音合成处理模块740)。具体地,使用文本对话和相关联的多个语音属性值来执行语音合成,以生成文本对话的语音表示的音频文件。根据在多个语音属性值中指定的一个或多个语音特性来生成文本对话的语音表示。[0342]在框1208处,将在框1206生成的音频文件存储在电子设备的存储器中。在一些示例中,具有文本对话的语音表示的音频文件可以指示文本对话的多个语音属性值。具体地,在一些示例中,具有文本对话的语音表示的音频文件与文件名一起存储,该文件名对用于文本对话的多个语音属性值进行编码(例如,使用md5哈希)。[0343]在一些示例中,执行框1202-1208而不向用户提供任何输出(例如,音频或视觉)。具体地,在框1210确定检测到语音结束点条件之前,文本对话或文本对话的语音表示均不输出给用户。在框1210检测到语音结束点条件之前,至少部分地执行过程1200的框1202-1208。这对于减少电子设备上的数字助理的响应延迟可能是有利的。[0344]在框1210处,确定(例如,使用延迟管理模块780)是否检测到语音结束点条件。框1208与上述框1128类似或基本上完全相同。例如,可以在框1102接收音频流的第二部分时,在第二时间(例如,第二时间908)和第三时间(例如,第三时间910)之间进行确定。响应于确定检测到语音结束点条件,执行框1212。具体地,在框1212处,通过播放存储的音频文件将文本对话的语音表示输出给用户。框1212与框1132类似或基本上完全相同。响应于确定未检测到语音结束点条件,过程1200放弃文本对话的语音表示的输出(框1214)。例如,过程1100可以保持在框1210以等待语音结束点条件的检测。[0345]在上述示例中,首先选择合适的候选任务流(框1122),并且然后执行选定候选任务流(框1124)。此外,仅针对选定候选任务流来生成语音对话的音频文件(框1206)。然而,应当认识到,在其他示例中,可以在框1122处选择合适的候选任务流,同时在框1124处执行多个候选任务流。在某些实施方式中,在选择合适的候选任务流之前执行多个候选任务流对于减少延迟可能是有利的。具体地,确定任务流得分(框1116)并基于所确定的任务流得分来选择合适的候选任务流(框1122)可以是计算密集的,并且因此为了减少延迟,可以并行执行多个候选任务流,同时确定任务流得分并选择合适的候选任务流。此外,可以在框1206处生成包含针对多个候选任务流的语音对话的多个相应音频文件,同时确定任务流得分并选择合适的候选任务流。通过并行执行这些操作,当选择了合适的候选任务流时,将例如至少部分地执行选定候选任务流,并且例如至少部分地生成包含选定候选任务流的语音对话的相应音频文件。因此,可以进一步减少响应延迟。在框1128或1210处检测到语音结束点条件时,可以从多个结果中检索与选定候选任务流相对应的结果,并将其呈现给用户。此外,可以从多个音频文件中检索与选定候选任务流相对应的音频文件,并播放其以输出针对选定候选任务流的对应语音对话。[0346]以上参考图11a至图11b和图12描述的操作任选地由图1至图4、图6a-b、图7a至图7c和图8中所描绘的部件来实现。例如,处理1100和1200的操作可以由i/o处理模块728、stt处理模块730、自然语言处理模块732、对话流处理模块734、任务流处理模块736、语音合成处理模块740、音频处理模块770、延迟管理模块780、任务流管理器838和任务流解析器840实现。本领域的普通技术人员会清楚地知道如何基于在图1至图4、图6a-b、图7a至图7c和图8中所描绘的部件来实现其他过程。[0347]根据一些具体实施,提供一种计算机可读存储介质(例如,非暂态计算机可读存储介质),该计算机可读存储介质存储供电子设备的一个或多个处理器执行的一个或多个程序,该一个或多个程序包括用于执行本文所述方法或过程中的任一个的指令。[0348]根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括用于执行本文所述的方法和过程中的任一者的装置。[0349]根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括处理单元,该处理单元被配置为执行本文所述的方法和过程中的任一者。[0350]根据一些具体实施,提供了一种电子设备(例如,便携式电子设备),该电子设备包括一个或多个处理器和存储用以由一个或多个处理器执行的一个或多个程序的存储器,该一个或多个程序包括用于执行本文所描述的方法和过程中的任一者的指令。[0351]出于解释的目的,前面的描述是通过参考具体实施方案来描述的。然而,上面的例示性论述并非旨在是穷尽的或将本发明限制为所公开的精确形式。根据以上教导内容,很多修改形式和变型形式都是可能的。选择并描述这些实施方案是为了最好地解释这些技术的原理及其实际应用程序。本领域的其他技术人员由此能够最好地利用这些技术以及具有适合于所预期的特定用途的各种修改的各种实施方案。[0352]虽然参照附图对本公开以及示例进行了全面的描述,但应当注意,各种变化和修改对于本领域内的技术人员而言将变得显而易见。应当理解,此类变化和修改被认为被包括在由权利要求书所限定的本公开和示例的范围内。当前第1页12当前第1页12

技术特征:


1.一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于以下操作的指令:接收用户话语;基于所述用户话语的多个候选文本表示,确定所述用户话语的多个候选用户意图,其中,所述多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的相应候选任务流;确定所述多个候选任务流的多个任务流得分,所述多个任务流得分中的每个任务流得分对应于所述多个候选任务流中的相应候选任务流;基于所述多个任务流得分,选择所述多个候选任务流中的第一候选任务流;以及执行所述第一候选任务流,包括向所述用户呈现来自执行所述第一候选任务流的结果。2.根据权利要求1所述的电子设备,其中,所述一个或多个程序还包括用于以下操作的指令:对于所述多个候选任务流中的每个候选任务流:解析相应候选任务流的一个或多个流参数,其中,所述相应候选任务流的相应任务流得分基于解析所述相应候选任务流的所述一个或多个流参数。3.根据权利要求2所述的电子设备,其中,解析所述相应候选任务流的所述一个或多个流参数包括搜索与所述一个或多个流参数对应的一个或多个值的数据源,所述数据源对应于所述多个候选用户意图中的相应候选意图的一个或多个属性。4.根据权利要求1所述的电子设备,其中:所述多个候选文本表示中的每个候选文本表示具有相关联的语音识别置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选文本表示中的相应候选文本表示的相应语音识别置信度得分。5.根据权利要求1所述的电子设备,其中:所述多个候选用户意图中的每个候选用户意图具有相关联的意图置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选用户意图中的相应候选用户意图的相应意图置信度得分。6.根据权利要求1所述的电子设备,其中:从所述多个候选文本表示的第一候选文本表示确定所述多个候选用户意图的第一候选用户意图;以及从所述多个候选文本表示的第二候选文本表示确定所述多个候选用户意图中的第二候选用户意图。7.根据权利要求1所述的电子设备,其中,所述一个或多个程序还包括用于以下操作的指令:根据所述多个任务流得分对所述多个候选任务流进行排序,其中,选择所述第一候选任务流基于对所述多个候选任务流的排序。
8.一种用于操作数字助理的方法,所述方法包括:在具有存储器以及一个或多个处理器的电子设备处:接收用户话语;基于所述用户话语的多个候选文本表示,确定所述用户话语的多个候选用户意图,其中,所述多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的相应候选任务流;确定所述多个候选任务流的多个任务流得分,所述多个任务流得分中的每个任务流得分对应于所述多个候选任务流中的相应候选任务流;基于所述多个任务流得分,选择所述多个候选任务流中的第一候选任务流;以及执行所述第一候选任务流,包括向所述用户呈现来自执行所述第一候选任务流的结果。9.根据权利要求8所述的方法,还包括:对于所述多个候选任务流中的每个候选任务流:解析相应候选任务流的一个或多个流参数,其中,所述相应候选任务流的相应任务流得分基于解析所述相应候选任务流的所述一个或多个流参数。10.根据权利要求9所述的方法,其中,解析所述相应候选任务流的所述一个或多个流参数包括搜索与所述一个或多个流参数对应的一个或多个值的数据源,所述数据源对应于所述多个候选用户意图中的相应候选用户意图的一个或多个属性。11.根据权利要求8所述的方法,其中:所述多个候选文本表示中的每个候选文本表示具有相关联的语音识别置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选文本表示中的相应候选文本表示的相应语音识别置信度得分。12.根据权利要求8所述的方法,其中:所述多个候选用户意图中的每个候选用户意图具有相关联的意图置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选用户意图中的相应候选用户意图的相应意图置信度得分。13.根据权利要求8所述的方法,其中:从所述多个候选文本表示的第一候选文本表示确定所述多个候选用户意图的第一候选用户意图;以及从所述多个候选文本表示的第二候选文本表示确定所述多个候选用户意图中的第二候选用户意图。14.根据权利要求8所述的方法,还包括:根据所述多个任务流得分对所述多个候选任务流进行排序,其中,选择所述第一候选任务流基于对所述多个候选任务流的排序。15.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储被配置为由电子设备的一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于以下操作的指令:接收用户话语;
基于所述用户话语的多个候选文本表示,确定所述用户话语的多个候选用户意图,其中,所述多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的相应候选任务流;确定所述多个候选任务流的多个任务流得分,所述多个任务流得分中的每个任务流得分对应于所述多个候选任务流中的相应候选任务流;基于所述多个任务流得分,选择所述多个候选任务流中的第一候选任务流;以及执行所述第一候选任务流,包括向所述用户呈现来自执行所述第一候选任务流的结果。16.根据权利要求15所述的非暂态计算机可读存储介质,其中,所述一个或多个程序还包括用于以下操作的指令:对于所述多个候选任务流中的每个候选任务流:解析相应候选任务流的一个或多个流参数,其中,所述相应候选任务流的相应任务流得分基于解析所述相应候选任务流的所述一个或多个流参数。17.根据权利要求16所述的非暂态计算机可读存储介质,其中,解析所述相应候选任务流的所述一个或多个流参数包括搜索与所述一个或多个流参数对应的一个或多个值的数据源,所述数据源对应于所述多个候选用户意图中的相应候选意图的一个或多个属性。18.根据权利要求15所述的非暂态计算机可读存储介质,其中:所述多个候选文本表示中的每个候选文本表示具有相关联的语音识别置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选文本表示中的相应候选文本表示的相应语音识别置信度得分。19.根据权利要求15所述的非暂态计算机可读存储介质,其中:所述多个候选用户意图中的每个候选用户意图具有相关联的意图置信度得分;以及所述多个任务流得分中的每个任务流得分基于所述多个候选用户意图中的相应候选用户意图的相应意图置信度得分。20.根据权利要求15所述的非暂态计算机可读存储介质,其中:从所述多个候选文本表示的第一候选文本表示确定所述多个候选用户意图的第一候选用户意图;以及从所述多个候选文本表示的第二候选文本表示确定所述多个候选用户意图中的第二候选用户意图。21.根据权利要求15所述的非暂态计算机可读存储介质,其中,所述一个或多个程序还包括用于以下操作的指令:根据所述多个任务流得分对所述多个候选任务流进行排序,其中,选择所述第一候选任务流基于对所述多个候选任务流的排序。22.一种电子设备,包括:一个或多个处理器;以及存储器,所述存储器存储被配置为由所述一个或多个处理器执行的一个或多个程序,所述一个或多个程序包括用于以下操作的指令:接收用户话语;
基于所述用户话语的多个候选文本表示,确定所述用户话语的多个候选用户意图,其中,所述多个候选用户意图中的每个候选用户意图对应于多个候选任务流中的相应候选任务流,并且其中所述多个候选任务流中的第一候选任务流对应于所述多个候选用户意图中的第一候选用户意图;确定所述多个候选任务流的多个任务流得分,所述多个任务流得分中的每个任务流得分对应于所述多个候选任务流中的相应候选任务流,其中:所述多个任务流得分中的第一任务流得分用于所述第一候选任务流;确定所述多个任务流得分包括确定与所述第一候选用户意图的属性对应的流参数值,所述流参数值未在所述用户话语中指定;以及所述第一任务流得分基于所述流参数值是否能够由所述电子设备确定;基于所述多个任务流得分,选择所述第一候选任务流;以及执行所述第一候选任务流,包括向所述用户呈现来自执行所述第一候选任务流的结果。23.根据权利要求22所述的电子设备,其中,所述第一任务流得分进一步基于所述第一候选用户意图的第一意图置信度得分。24.根据权利要求23所述的电子设备,其中,所述第一任务流得分是所述多个任务流得分中的最高任务流得分,并且其中,所述第一意图置信度得分不是对应于所述多个候选用户意图的多个意图置信度得分中的最高意图置信度得分。25.根据权利要求22所述的电子设备,其中:从所述多个候选文本表示的第一候选文本表示确定所述第一候选用户意图;以及所述第一任务流得分进一步基于所述第一候选文本表示的第一语音识别置信度得分。26.根据权利要求25所述的电子设备,其中,所述第一任务流得分是所述多个任务流得分中的最高任务流得分,并且其中,所述第一语音识别置信度得分不是对应于所述多个候选文本表示的多个语音识别置信度得分中的最高语音识别置信度得分。

技术总结


在示例性过程中,本发明提供了数字助理的低延迟操作。在该示例中,可以在等待语音结束点条件的检测时,至少部分地执行自然语言处理、任务流处理、对话流处理、语音合成或其任何组合。在检测到语音结束点条件时,可以将通过执行操作而获得的结果呈现给所述用户。在另一个示例中,提供了数字助理的鲁棒操作。在该示例中,由所述数字助理进行的任务流处理可以包括基于所确定的任务流得分从多个候选任务流中选择候选任务流。所述任务流得分可以基于语音识别置信度得分、意图置信度得分、流参数得分或其任意组合。执行所述的选定候选任务流并将对应结果呈现给所述用户。将对应结果呈现给所述用户。将对应结果呈现给所述用户。


技术研发人员:

A

受保护的技术使用者:

苹果公司

技术研发日:

2018.04.24

技术公布日:

2022/10/18

本文发布于:2024-09-24 01:24:18,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/24521.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:多个   用户   示例   模块
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议