用于提供针对受限的注意力分散情景和非受限的注意力分散情景的不同用户界面的应用网关的制作方法

文档序号:17454406发布日期:2019-04-20 03:06阅读:690来源:国知局
用于提供针对受限的注意力分散情景和非受限的注意力分散情景的不同用户界面的应用网关的制作方法

本申请要求2013年6月8日提交的美国申请13/913,428的优先权,该申请要求2012年6月9日提交名称为“Automatically Adapting User Interfaces For Hands-Free Interaction”的美国临时申请序列号61/657,744的权益,且是2011年9月30日提交的名称为“Automatically Adapting User Interfaces for Hands-Free Interaction”的美国申请序列号13/250,947的部分延续申请,该申请是2011年1月10日提交的名称为“Intelligent Automated Assistant”的美国申请序列号12/987,982的部分延续申请,该申请又要求2010年1月18日提交的美国临时申请序列号61/295,774和2011年6月3日提交的美国临时申请序列号61/493,201的权益。在此通过引用将所有以上申请的公开全文并入本文。

本申请与以下申请相关:2013年3月15日提交的名称为“Voice and Touch User Interface”的美国临时申请序列号61/793,924;2011年2月22日提交的名称为“Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device”的美国申请序列号13/032,614;2010年1月6日提交的名称为“Pushing a User Interface to a Remote Device”的美国申请序列号12/683,218;2008年5月13日提交的名称为“Pushing a User Interface to a Remote Device”的美国申请序列号12/119,960;2011年7月1日提交的名称为“Pushing a User Interface to a Remote Device”的美国申请序列号13/175,581;2011年6月15日提交的名称为“Pushing a Graphical User Interface to a Remote Device with Display Rules Provided by the Remote Device”的美国申请序列号13/161,339;2008年9月9日提交的名称为“Radio with Personal DJ”的美国申请序列号12/207,316;2012年11月16日提交的名称为“System and Method for Negotiating Control of a Shared Audio or Visual Resource”的美国临时申请序列号61/727,554(代理人案号P17965USP1);_____________提交的名称为“Mapping Application with Several User Interfaces”的美国申请序列号______________(代理人案号P19175USP1);2013年6月8日提交的名称为“Device and Method for Generating User Interfaces from a Template”的美国临时申请序列号61/832,841(代理人案号P20070USP1);2013年6月8日提交的名称为“Device,Method,and Graphical User Interface for Synchronizing Two of More Displays”的美国临时申请序列号61/832,842(代理人案号P19341USP1);在此通过引用将这些申请公开全文并入本文。

技术领域

本发明涉及多模用户界面,并更具体地,涉及适应于不同受限的注意力分散情景和非受限的注意力分散情景的用户界面。



背景技术:

随着电子多功能设备越来越依赖于个人、商务和社交任务,电子多功能设备的很多用户发现在处于“注意力分散”状况中时,诸如驾车、在踏车上跑步或听课时,难以利用这些设备的各种功能。在用户处于注意力分散情景中时尝试使用此类多功能设备可能会给要执行任务的用户和其他人带来危险。允许用户在处于注意力分散状况时执行这些设备的一些功能的现有工具的一个实例是一种车辆系统,其使用技术以允许用户接听电话而无需拿起或观看手机设备。另一个实例是使用配备有控件的有线电话以开始或停止在便携式音乐播放器设备上播放音乐。然而,现有的减轻在高度注意力分散状况下使用电子多功能设备的问题的各种工具不能在受限的注意力分散情景和非受限的注意力分散情景中提供综合的解决方案。



技术实现要素:

因此,需要一种电子多功能设备,其能够确定其是否在受限的注意力分散情景中被操作,并提供适当的用户界面。受限的注意力分散情景的实例是如下一种:设备连接到车辆信息呈现系统(例如,用于娱乐和/或导航信息的呈现系统),并且车辆正在运动或被确定为处于与运动一致的状态中(例如,其中传输处于与驾驶车辆一致的任何模式中)。

根据本发明的各种实施例,电子多功能设备接收对应于用于打开相应应用的请求的第一输入。响应于接收到该第一输入,确定该设备是否正在受限的注意力分散情景中被操作。如果正在受限的注意力分散情景中操作该设备,则提供受限的注意力分散用户界面,但如果不是在受限注意力分散情景中操作该设备,则提供非受限的用户界面。例如,电子设备从用户接收对应于用于打开电子邮件应用的请求的第一输入,响应于该输入,确定是否在受限的注意力分散情景(例如,在运动的车中)中操作该设备。该设备然后提供针对电子邮件应用的受限的注意力分散用户界面。

根据一些实施例,在显示受限的注意力分散用户界面时,设备接收第二输入,该第二输入对应于用于解除受限的注意力分散用户界面的请求。响应于接收到该第二输入,显示针对相应应用的非受限用户界面。例如,在设备正在(在设备自身或另一个显示器上)显示受限的注意力分散用户界面时,它接收对应于用于解除受限的注意力分散用户界面的请求的第二输入(例如,如果用户是运动车辆中的乘客),响应于第二输入,显示非受限的用户界面。

根据一些实施例,提供针对相应应用的受限的注意力分散用户界面包括提供听觉提示,其描述用于与受限的注意力分散用户界面交互的选项,以及响应于接收到一个或多个口头命令来执行一个或多个操作。例如,针对文本消息应用的受限的注意力分散用户界面提供听觉提示,以回复文本消息,撰写新文本消息,阅读最后的文本消息或稍晚撰写并发送文本消息。

根据一些实施例,提供相应应用的受限的注意力分散用户界面包括确定在相应时间段内是否接收到一个或多个与相应应用相关的新通知。例如,在提供针对电子邮件应用的受限的用户界面时,确定在最后30分钟之内是否接收到一封或多封新电子邮件。根据确定在相应时间段内接收到与相应应用相关的一个或多个新通知,为用户提供用于查看一个或多个新通知的第一选项和用于执行与相应应用相关联的预定义操作的第二选项。如前一个实例中那样,如果在最后30分钟内收到了一封或多封新电子邮件,为用户呈现第一选项以收听一封或多封新电子邮件的文本到语音转换,以及撰写新邮件的第二选项。根据确定在相应时间段内未接收到新通知的确定,为用户提供用于撰写电子邮件的第二选项。

根据一些实施例,在提供受限的注意力分散用户界面时,接收对应于用于收听与相应通信对应的音频(例如,文本消息的文本到语音转换)的请求的第二输入,播放对应于相应通信的音频,然后提供与相应通信对应的口头命令的多个选项的听觉描述(例如回复文本消息、转发文本消息、删除文本消息)。

根据一些实施例,该电子设备是便携式设备,其连接到车辆信息呈现系统,并且提供受限的注意力分散用户界面包括向车辆信息呈现系统发送指令,以输出对应于受限的注意力分散用户界面的信息。根据一些实施例,该电子设备是便携式设备,其连接到车辆信息呈现系统,并且提供非受限的用户界面包括向车辆信息呈现系统发送指令,以输出对应于非受限用户界面的信息。

根据一些实施例,非受限的用户界面包括用于执行相应操作的显示的用户界面(例如,用于语音通信应用的非受限用户界面显示小键盘)。受限注意力分散用户界面不包括用于执行相应操作的显示的用户界面(例如,用于语音通信的受限的用户界面不显示小键盘)。在提供受限的注意力分散用户界面时,接收用于执行相应操作的口头命令(例如,用户口头说出要拨打的电话号码)。响应于接收到口头命令,执行相应的操作(例如打电话)。

根据一些实施例,该设备接收用于提供消息文本的请求。响应于该请求,向用户提供消息的文本。在提供受限的注意力分散用户界面时,向用户提供消息的文本包括向用户阅读消息的文本而不显示文本在提供非受限的注意力分散用户界面时,向用户提供消息的文本包括在显示器(例如,设备上的显示器、车辆信息呈现系统或踏车上的显示器)上显示消息的文本。

根据一些实施例,提供受限的注意力分散用户界面包括显示用于在相应应用中执行相应操作的第一示能表示,其中第一示能表示的尺寸大于相应尺寸(例如,用于语音通信应用的受限注意力分散用户界面包括提供按钮以拨打电话,该按钮的尺寸大于此类按钮的相应尺寸)。提供非受限的用户界面包括显示用于在相应应用中执行相应操作的第二示能表示,其中第二示能表示的尺寸等于或小于相应尺寸(例如,用于语音通信应用的非受限用户界面允许有多个示能表示,以允许用户直接呼叫喜欢的联系人,由此示能表示小于相应尺寸)。

根据一些实施例,在提供受限的注意力分散用户界面时,响应于用户输入(例如,拨打电话或发送新的文本消息)来执行相应应用中的第一操作。在执行第一操作之后,在提供非受限的用户界面时,检测第二输入。响应于检测到第二输入,显示已经执行第一操作的指示(例如,设备显示最近的电话列表或消息会话,其示出在设备在受限注意力分散情景中操作时发送的呼叫或消息)。该设备可以在设备上的显示器上,或在外部显示器上,诸如车辆信息呈现系统上显示信息。

附图说明

图1是示出了根据现有技术用于读取文本消息的手动界面的实例的屏幕截图。

图2是示出了用于对文本消息做出响应的界面的实例的屏幕截图。

图3A和图3B是示出了其中使用语音口述界面回复文本消息的实例的屏幕截图的序列。

图4是示出了根据一个实施例的用于接收文本消息的界面的实例的屏幕截图。

图5A-图5D是示出了根据本发明的一个实施例的多模虚拟助理的操作的实例的一系列屏幕截图,其中用户在免提情景中接收和回复文本消息。

图6A-图6C是示出了根据本发明的一个实施例的多模虚拟助理的操作的实例的一系列屏幕截图,其中用户在免提情景中修改文本消息。

图7A-图7D是根据一些实施例的调整用户界面的方法的流程图。

图7E是示出了根据一个实施例的操作用于支持动态检测并适应于免提情景的虚拟助理的方法的流程图。

图8是示出了根据一个实施例的虚拟助理系统的实例的框图。

图9是示出了根据至少一个实施例的适于实现虚拟助理的至少一部分的计算设备的框图。

图10是示出了根据至少一个实施例的用于在独立计算系统上实现虚拟助理的至少一部分的架构的框图。

图11是示出了根据至少一个实施例的用于在分布式计算网络上实现虚拟助理的至少一部分的架构的框图。

图12是绘示示出了几种不同类型的客户端和操作模式的系统架构的框图。

图13是示出了根据一个实施例的彼此通信以实施本发明的客户端和服务器的框图。

图14A-图14L是示出了根据一些实施例的提供免提式列表读取的虚拟助理的操作方法的流程图。

图15A是示出了根据一些实施例的具有触敏显示器的便携式多功能设备的框图。

图15B是示出了根据一些实施例的用于事件处理的示例性部件的框图。

图15C是示出了根据一些实施例的一种操作环境的框图。

图16A-图16F示出了在受限的注意力分散情景中任选地结合外部信息处理系统来操作电子设备的方法的流程图。

具体实施方式

使用多功能电子设备,诸如智能电话(有时称为蜂窝电话)在社会上非常普遍。有时必须或希望在高度注意力分散的条件下使用此类设备。因为用户可能决定在驾驶汽车时检查电子邮件或希望在踏车上跑步时收听语音邮件消息,能够为在注意力分散情景中使用提供一种用户界面,为在非注意力分散情景中使用提供不同用户界面的设备可提供便利性、灵活性和安全性。

本文描述的方法、设备和用户界面根据确定正在受限的注意力分散情景(例如,在设备连接到车辆信息呈现系统时)中操作设备而提供针对相应应用的受限注意力分散用户界面,根据确定不在受限的注意力分散情景中操作设备而提供针对相应应用的非受限用户界面。

根据本发明的各种实施例,结合虚拟助理的操作来检测免提情景,并相应地调节虚拟助理的用户界面,以便使得用户能够在免提情景中与该助理进行有意义的交互。

为了描述的目的,术语“虚拟助理”等价于术语“智能自动化助理”,两者都是指执行如下一种或多种功能的任何信息处理系统:

·解释口头和/或文本形式的人类语言输入;

·使用户意图的表示操作为可执行的形式,诸如具有步骤和/或参数的任务表示;

·通过调用程序、方法、服务、API等执行任务表示;以及

·以语言和/或图形的形式生成对用户的输出响应。

在2011年1月10日提交的名称为“Intelligent Automated Assistant”的相关美国实用新型申请12/987,982中描述了这种虚拟助理的实例,在此通过引用将其整个公开并入本文。

现在将参照如附图所示的示例性实施例来详细描述各种技术。在以下描述中,阐述了众多具体细节,以便提供对其中描述或提到的一个或多个方面和/或特征的透彻理解。然而,对于本领域的技术人员显而易见的是,本文所描述或提到的一个或多个方面和/或特征可以在不具有这些具体细节中的一些或全部的情况下实践。在其他实例中,未详细描述熟知的过程步骤和/或结构,以免使本文中描述或提到的一些方面和/或特征模糊不清。

可以在本申请中描述一个或多个不同的发明。此外,对于本文描述的一个或多个发明,可以在本专利申请中描述众多实施例,并且仅仅出于例示的目的给出。所描述的实施例并非旨在任何意义上进行限制。从本公开将显而易见的是,一个或多个发明可以广泛应用于众多实施例。充分详细地描述了这些实施例,以使本领域的技术人员能够实践一个或多个发明,并且应理解的是,可以利用其他实施例,以及可以做出结构、逻辑、软件、电气和其他变化而不脱离该一个或多个发明的范围。因此,本领域的技术人员将认识到,可以利用各种修改和变更来实践该一个或多个发明。可以参考形成本公开一部分的一个或多个特定实施例或附图来描述该一个或多个发明的特定特征,在实施例或附图中通过例示,示出了一个或多个发明的具体实施例。然而,应当理解,此类特征并不限于在描述它们所参考的一个或多个特定实施例或附图中使用。本公开既不是一个或多个发明的所有实施例的文字描述,也不是必须要呈现于所有实施例中的一个或多个发明的特征列表。

本专利申请中提供的章节标题和本专利申请的标题仅仅为了方便,并非要视为以任何方式限制本公开。

彼此通信的设备未必彼此连续通信,除非明确做出另外的指定。此外,彼此通信的设备可以直接通信或通过一个或多个媒介体间接通信。

描述具有几个彼此通信的部件的实施例并非暗示需要所有此类部件。相反,描述了多种任选部件以例示一个或多个发明的多种可能实施例。

此外,尽管可以按照顺序次序描述过程步骤、方法步骤、算法等,但可以配置此类过程、方法和算法以任何适当次序工作。换句话讲,在本专利申请中可以描述的步骤的任何顺序或次序本身并非表示需要按照该次序执行步骤。此外,尽管被描述或暗示为非同时发生(例如,因为在其他步骤之后描述一个步骤),但可以同时执行一些步骤。此外,通过在附图中绘示过程来例示该过程并不暗示例示的过程不包括其他变型和修改,并不暗示例示的过程或其任何步骤是一个或多个发明必需的,并不暗示例示的过程是优选的。

在描述单个设备或制品时,将显而易见的是,可以使用超过一个设备/制品(无论是否合作)以替代单个设备/制品。类似地,在描述超过一个设备或制品时(无论它们是否合作),将显而易见的是,可以使用单个设备/制品来替代超过一个设备或制品。

可以另选地由未明确描述为具有这种功能/特征的一个或多个其他设备体现该设备的功能和/或特征。因此,一个或多个发明的其他实施例不需要包括设备自身。

有时将为了清晰起见以单数形式描述本文中描述或提到的多种技术和机构。然而,应当指出,除非另行指出,特定实施例包括一项技术的多次重复或一种机构的多个实例化。

尽管在用于实施智能自动化助理也称为虚拟助理技术的情景内描述,但可以理解,也可以将本文描述的各个方面和技术部署和/或应用于涉及与软件的人和/或计算机化交互的其他技术领域中。

在以下一个或多个文献中公开了涉及虚拟助理技术(例如,其可以由本文描述的一个或多个虚拟助理系统实施例利用、提供和/或在其那里实施)的其他方面,在此通过引用将其整个公开并入本文:

·2011年1月10日提交的名称为“Intelligent Automated Assistant”的美国实用新型申请序列号12/987,982;

·2010年1月18日提交的名称为“Intelligent Automated Assistant”的美国临时专利申请序列号61/295,774;

·2011年9月30日提交的名称为“Using Context Information to Facilitate Processing of Commands in a Virtual Assistant”的美国实用新型申请序列号13/250,854;

·2006年9月8日提交的名称为“Method And Apparatus for Building an Intelligent Automated Assistant”的美国专利申请序列号11/518,292;

·2009年6月12日提交的名称为“System and Method for Semantic Auto-Completion”的美国临时专利申请序列号61/186,414。

硬件架构

通常,可以在硬件或软件硬件的组合上实施本文描述的虚拟助理技术。例如,它们可以实现于操作系统内核中、独立的用户过程中、绑定到网络应用中的库封装中、特殊构造的机器上和/或网络接口卡上。在具体实施例中,本文公开的技术可以实现于诸如操作系统的软件中或运行于操作系统上的应用中。

可以将本文公开的至少一些虚拟助理实施例的软件/硬件混合具体实施实现于可编程机器上,该可编程机器由存储于存储器中的计算机程序选择性激活或重新配置。此类网络设备可以具有多个网络接口,该多个网络接口可以被配置或设计以利用不同类型的网络通信协议。用于这些机器中的一些机器的一般架构可以从本文公开的描述中获知。根据具体实施例,本文公开的各种虚拟助理实施例的至少一些特征和/或功能可以实现于一个或多个通用网络主机上,诸如最终用户计算机系统、计算机、网络服务器或服务器系统、移动计算设备(例如,个人数字助理、移动电话、智能电话、膝上型计算机、平板电脑等)、消费电子设备、音乐播放器或任何其他适当的电子设备、路由器、交换机等,或它们的任何组合。在至少一些实施例中,本文公开的各种虚拟助理实施例的至少一些特征和/或功能可以实现于一个或多个虚拟化计算环境中(例如,网络计算云等)。

现在参考图9,示出了绘示适用于实施本文公开的虚拟助理特征和/或功能的至少一部分的计算设备60的框图。计算设备60例如可以是最终用户计算机系统、网络服务器或服务器系统、移动计算设备(例如个人数字助理、移动电话、智能电话、膝上型计算机、平板电脑等)、消费电子设备、音乐播放器或任何其他适当的电子设备或它们的任何组合或部分。计算设备60可以适应于通过通信网络,诸如互联网,利用用于此类通信的已知协议,无论无线或有线,与其他计算设备通信,诸如客户端和/或服务器。

在一个实施例中,计算设备60包括中央处理单元(CPU)62、接口68和总线67(诸如外围部件互连(PCI)总线)。在适当软件或固件的控制下工作时,CPU 62可以负责实施与专门配置的计算设备或机器的功能相关联的特定功能。例如,在至少一个实施例中,可以配置或设计用户的个人数字助理(PDA)或智能电话以利用CPU 62、存储器61、65和接口68作为虚拟助理系统工作。在至少一个实施例中,可以使CPU 62在软件模块/部件的控制下执行一种或多种不同类型的虚拟助理功能和/或操作,软件模块/部件例如可以包括操作系统和任何适当的应用软件、驱动程序等。

CPU 62可以包括一个或多个处理器63,诸如来自Motorola或Intel的微处理器系列或MIPS微处理器系列的处理器。在一些实施例中,处理器63可以包括专门设计的用于控制计算设备60的操作的硬件(例如,专用集成电路(ASIC)、电可擦除可编程只读存储器(EEPROM)、现场可编程门阵列(FPGA)等)。在具体的实施例中,存储器61(诸如非易失性随机存取存储器(RAM)和/或只读存储器(ROM))还形成CPU 62的部分。然而,可以有很多不同方式将存储器耦接到系统。存储器块61可以用于多种目的,诸如高速缓存和/或存储数据、编程指令等。

如本文所用,术语“处理器”不仅限于现有技术中称为处理器的那些集成电路,而是宽泛地指微控制器、微计算机、可编程逻辑控制器、专用集成电路和任何其他可编程电路。

在一个实施例中,接口68提供作为接口卡(有时称为“线卡”)。通常,它们控制通过计算网络发送和接收数据包,且有时支持与计算设备60一起使用的其他外围设备。在可以提供的接口中,有以太网接口、帧中继接口、电缆接口、DSL接口、令牌环接口等。此外,可以提供各种类型的接口,诸如通用串行总线(USB)、串行、以太网、火线、PCI、并行、射频(RF)、蓝牙TM、近场通信(例如,使用近场磁场)、802.11(WiFi)、帧中继、TCP/IP、ISDN、快速以太网接口、千兆比特以太网接口、异步传输模式(ATM)接口、高速串行接口(HSSI)接口、销售点(POS)接口、光纤数据分布接口(FDDI)等。通常,此类接口68可以包括适合与适当介质通信的端口。在一些情况下,它们还可以包括独立的处理器,以及在一些情况下,易失性和/或非易失性存储器(例如RAM)。

尽管图9中所示的系统例示了用于实施本文所述发明的技术的针对计算设备60的一种具体架构,但其绝不是可以实施本文所述特征和技术的至少一部分的仅有设备架构。例如,可以使用具有一个或任意数量的处理器63的架构,此类处理器63可以存在于单个设备中或分布于任意数量的设备间。在一个实施例中,单个处理器63处理通信以及对计算进行路由。在各种实施例中,可以在虚拟助理系统中实施不同类型的虚拟助理特征和/或功能,该虚拟助理系统包括客户端设备(诸如个人数字助理或运行客户端软件的智能电话)和服务器系统(诸如下文更详细描述的服务器系统)。

不论网络设备配置如何,但本发明的系统可以采用一个或多个存储器或存储器模块(诸如存储器块65),它们被配置为存储用于通用网络操作的数据、程序指令和/或与本文所述的虚拟助理技术的功能相关的其他信息。例如,程序指令可以控制对操作系统和/或一个或多个应用的操作。还可以配置一个或多个存储器以存储数据结构、关键字分类信息、广告信息、用户点击和按压信息和/或本文所述的其他具体非程序信息。

因为可以利用此类信息和程序指令实现本文所述的系统/方法,所以至少一些网络设备实施例可以包括非暂态机器可读存储介质,例如,其可以被配置或设计为存储用于执行本文所述的各种操作的程序指令、状态信息等。此类非暂态机器可读存储介质的实例包括但不限于磁性介质,诸如硬盘、软盘和磁带;光学介质,诸如CD-ROM盘;磁光介质,诸如软光盘,和专门配置为存储和执行程序指令的硬件设备,诸如只读存储器设备(ROM)、闪存存储器、忆阻器存储器、随机存取存储器(RAM)等。程序指令的实例包括机器代码和文件,机器代码诸如是由编译器产生的代码,文件包含可以由计算机使用解释程序来执行的更高等级的代码。

在一个实施例中,本发明的系统实现于独立式计算系统上。现在参考图10,示出了绘示根据至少一个实施例的用于在独立计算系统上实现虚拟助理的至少一部分的架构的框图。计算设备60包括处理器63,处理器63运行用于实现多模虚拟助理1002的软件。输入设备1206可以是适于接收用户输入的任何类型的设备,例如包括键盘、触摸屏、鼠标、触控板、轨迹球、五路开关、操纵杆和/或它们的任何组合。设备60还可以包括语音输入设备1211,例如麦克风。输出设备1207可以是屏幕、扬声器、打印机和/或它们的任何组合。存储器1210可以是具有现有技术公知的结构和架构的随机存取存储器,在运行软件期间供处理器63使用。存储设备1208可以是任何磁性、光学和/或电气存储设备,用于以数字形式存储数据;实例包括闪存存储器、磁性硬盘驱动器、CD-ROM等。

在另一个实施例中,本发明的系统实现于分布式计算网络上,诸如具有任意数量的客户端和/或服务器的计算网络。现在参考图11,示出了绘示根据至少一个实施例用于在分布式计算网络上实现虚拟助理的至少一部分的架构的框图。

在图11中所示的布置中,提供了任意数量的客户端1304;每个客户端1304可以运行用于实施本发明客户端部分的软件。此外,可以提供任意数量的服务器1340,以处理从客户端1304接收的请求。客户端1304和服务器1340可以经由电子网络1361,诸如互联网,彼此通信。可以利用任何已知的网络协议,例如包括有线和/或无线协议,实现网络1361。

此外,在一个实施例中,服务器1340可以在需要时调用外部服务1360以获得额外的信息或参考存储关于与特定用户的先前交互的数据。例如,可以通过网络1361与外部服务1360进行通信。在各种实施例中,外部服务1360包括启用Web的服务和/或与硬件设备自身相关或安装于其上的功能。例如,在助理1002实现于智能电话或其他电子设备上的实施例中,助理1002能够获得日历应用(“应用”)、联系人和/或其他源中存储的信息。

在各种实施例中,助理1002能够控制其所安装的电子设备的很多特征和操作。例如,助理1002能够调用外部服务1360,外部服务通过API或通过其他方式与设备上的功能和应用交互,以执行本来可以利用设备上的常规用户界面发起的功能和操作。此类功能和操作可以包括,例如设置闹钟、拨打电话、发送文本消息或电子邮件消息、添加日历事件等。可以在用户和助理1002之间的会话对话上下文中将此类功能和操作作为附件功能来执行。此类功能和操作可以由用户在诸如对话的上下文中指定,或者可以基于对话上下文自动执行它们。本领域的技术人员将认识到,由此可以将助理1002用作控制机构,用于发起和控制电子设备上的各种操作,可以将其用作诸如按钮或图形用户界面的常规机构的替代。

例如,用户可以向助理1002提供输入,诸如“我需要明天早上8点醒来”。一旦助理1002利用本文描述的技术确定了用户意图,助理1002就能够调用外部服务1340以与设备上的闹钟功能或应用交互。助理1002代表用户设置闹钟。通过这种方式,用户可以将助理1002用作用于设置闹钟或执行设备上其他功能的常规机构的替代。如果用户的请求不明确或需要进一步澄清,助理1002可以使用本文描述的各种技术,包括主动启发、释义、建议等,并且其可以适应于免提情景,从而调用正确的服务1340并采取预期的行动。在一个实施例中,助理1002可以提示用户进行确认和/或在调用服务1340以执行功能之前从任何适当的源请求附加的上下文信息。在一个实施例中,用户可以选择性地禁用助理1002的能力,以调用特定服务1340,或者如果需要,可以禁用所有此类服务调用。

可以利用若干不同类型的客户端1304和操作模式的任一种实现本发明的系统。现在参考图12,示出了绘示系统架构的框图,该系统架构示出了几种不同类型的客户端1304和操作模式。本领域的技术人员将认识到,图12中所示的各种客户端1304和操作模式仅仅是示例性的,可以利用除所示那些之外的客户端1304和/或操作模式实现本发明的系统。此外,该系统可以单独地或任何组合地包括任何或所有此类客户端1304和/或操作模式。描述的实例包括:

·具有输入/输出设备和/或传感器1402的计算机设备。客户端部件可以被部署在任何此类计算机设备1402上。可以利用Web浏览器1304A或用于经由网络1361实现与服务器1340通信的其他软件应用实现至少一个实施例。

·可以是任何类型的输入和输出信道,例如,包括视觉和/或听觉信道。例如,在一个实施例中,可以利用基于语音的通信方法实现本发明的系统,允许将助理的实施例用于盲人,盲人的Web浏览器等价物是由语音驱动的并使用语音进行输出。

·具有I/O和传感器1406的移动设备,可以为其将客户端实现为移动设备1304B上的应用。这包括但不限于移动电话、智能电话、个人数字助理、平板设备、联网游戏机等。

·具有I/O和传感器1410的家用电器,对此而言,可以将客户端实现为电器1304C上的嵌入式应用。

·具有仪表板界面和传感器1414的汽车和其他车辆,对此而言,可以将客户端实现为嵌入式系统应用1304D。这包括但不限于汽车导航系统、语音控制系统、车载娱乐系统等。

·联网的计算设备,诸如路由器1418或驻留于网络或与网络交接的任何其他设备,对此而言,可以将客户端实现为设备驻留的应用1304E。

·电子邮件客户端1424,对此而言,助理的实施例经由电子邮件形态服务器1426连接。电子邮件形态服务器1426充当通信网桥,例如,以来自用户的输入作为发送到助理的电子邮件消息,并向用户发送来自助理的输出作为回复。

·即时消息客户端1428,对此而言,助理的实施例经由消息形态服务器1430连接。消息形态服务器1430充当通信网桥,以来自用户的输入作为发送到助理的消息,并向用户发送来自助理的输出作为回复消息。

·语音电话1432,对此而言,通过互联网协议语音(VoIP)形态服务器1434连接助理的实施例。VoIP形态服务器1434充当通信网桥,以来自用户的输入作为向助理讲的语音,并向用户发送来自助理的输出作为例如回复的合成语音。

对于包括但不限于电子邮件、即时消息、讨论论坛、分组聊天会话、实况帮助或客户支持会话等的消息平台,助理1002可以充当会话中的参与者。助理1002可以监测会话并利用本文描述的用于一对一交互的一种或多种技术和方法回复个人或小组。

在各种实施例中,用于实施本发明的技术的功能可以分布于任意数量的客户端和/或服务器部件之间。例如,可以实施各种软件模块,用于结合本发明执行各种功能,可以通过各种方式实施此类模块以运行于服务器和/或客户端部件上。在2011年1月10日提交的名称为“Intelligent Automated Assistant”的相关美国实用新型申请序列号12/987,982中提供了这种布置的更多细节,在此通过引用将其整个公开并入本文。

在图13的实例中,输入启发功能和输出处理功能分布于客户端1304和服务器1340之间,输入启发的客户端部分2794a和输出处理的客户端部分2792a位于客户端1304处,输入启发的服务器部分2794b和输出处理的服务器部分2792b位于服务器1340处。以下部件位于服务器1340处:

·完整的词汇表2758b;

·语音模式识别器2760b的完整库;

·短期个人存储器2752b的主版本;

·长期个人存储器2754b的主版本。

在一个实施例中,客户端1304在本地维持这些部件的子集和/或部分,以改善响应度并减小对网络通信的依赖。可以根据公知的高速缓存管理技术维护并更新此类子集和/或部分。此类子集和/或部分包括,例如:

·词汇表2758a的子集;

·语言模式识别器2760a的库的子集;

·短期个人存储器2752a的高速缓存;

·长期个人存储器2754a的高速缓存。

可以实现额外的部件作为服务器1340的一部分,包括例如:

·语言解释器2770;

·对话流处理器2780;

·输出处理器2790;

·域实体数据库2772;

·任务流模型2786;

·服务编排2782;

·服务能力模型2788。

服务器1340通过在需要时与外部服务1360交互来获得附加信息。

概念架构

现在参考图8,示出了多模虚拟助理1002的特定示例性实施例的简化框图。如上文引用的相关美国实用新型申请中更详细所述,多模虚拟助理1002的不同实施例可以被配置、被设计和/或可用于提供各种不同类型的通常与虚拟助理技术相关的操作、功能和/或特征。此外,如本文更详细所述,本文公开的多模虚拟助理1002的各种操作、功能和/或特征中的很多可以向与多模虚拟助理1002交互的不同实体实现或提供不同类型的优点和/或好处。可以利用上述任何硬件架构或利用不同类型的硬件架构实现图8中所示的实施例。

例如,根据不同的实施例,多模虚拟助理1002可以被配置、被设计和/或可用于提供各种不同类型的操作、功能和/或特征,例如,如下一种或多种(或它们的组合):

·使可以通过互联网获得的数据和服务的应用自动发现、查找、选择、购买、预留或订购产品或服务。除了使利用这些数据和服务的过程自动化之外,多模虚拟助理1002还可以实现一次组合使用几个数据和服务源。例如,它可以组合来自几个评论网站的关于产品的信息、最低价格和可从多个分销商获得的可能性,并检查其位置和时间约束,并帮助用户找到其问题的个性化解决方案。

·使通过互联网可获得的数据和服务的使用自动化,以发现、调查、选择、保留和通过其他方式了解要做的事情(包括但不限于电影、活动、表演、展览、演出和吸引人的事物);要去的地方(包括但不限于旅游目的地、宾馆和要停留的其他地方、地标和其他感兴趣的地点等);要吃喝的地方(诸如餐馆和酒吧),会见他人的时间和地方,以及可以在互联网上发现的任何其他娱乐或社交来源。

·经由自然语言对话实现应用和服务的操作,这本来是由具有图形用户界面的专用应用提供的,专用应用包括搜索(包括基于位置的搜索);导航(地图和方向);数据库查询(诸如按照名称或其他属性查找单位或人);获取天气状况和预报,检查市场物品的价格或金融交易的状态;监测航班的交通或状态;访问并更新日期和日程;管理提醒、提示、任务和项目;通过电子邮件或其他消息平台通信;以及在本地或远程操作设备(例如拨打电话,控制光和温度,控制家庭安全设备,播放音乐或视频等)。在一个实施例中,可以使用多模虚拟助理1002发起、操作和控制设备上可用的很多功能和应用。

·为活动、产品、服务、娱乐源、时间管理提供个人建议或其他任何种类的建议服务,其受益于以自然语言进行的交互对话以及对数据和服务的自动访问。

根据不同实施例,可以将多模虚拟助理1002提供的各种类型的功能、操作、动作和/或其他特征的至少一部分实现于一个或多个客户端系统处,一个或多个服务器系统处和/或它们的组合处。

根据不同的实施例,如本文中更详细所述,多模虚拟助理1002提供的各种类型的功能、操作、动作和/或其他特征的至少一部分可以在解释和运行用户输入时使用上下文信息。

例如,在至少一个实施例中,多模虚拟助理1002可以在执行特定任务和/或操作时利用和/或生成各种不同类型的数据和/或其他类型的信息。例如,这可以包括输入数据/信息和/或输出数据/信息。例如,在至少一个实施例中,多模虚拟助理1002可以访问、处理和/或通过其他方式利用来自一个或多个不同类型源的信息源,诸如例如一个或多个本地和/或远程存储器、设备和/或系统。此外,在至少一个实施例中,多模虚拟助理1002可用于生成一种或多种不同类型的输出数据/信息,例如,可以将其存储于一个或多个本地和/或远程设备和/或系统的存储器中。

可以由多模虚拟助理1002访问和/或利用的不同类型的输入数据/信息的实例可包括但不限于如下一项或多项(或它们的组合):

·语音输入:来自移动设备,诸如移动电话和平板电脑、具有麦克风的计算机、蓝牙耳麦、汽车语音控制系统、通过电话系统、应答服务上的录音、集成消息服务上的音频语音邮件、具有诸如时钟无线电设备的语音输入的消费应用、电话站、家庭娱乐控制系统和游戏机。

·来自计算机或移动设备上的键盘、遥控器或其他消费电子设备上的键盘、发向助理的电子邮件消息、发向助理的即时消息或类似短消息、从多用户游戏环境中的玩家接收的文本以及消息馈送源中流传输的文本的文本输入。

·来自传感器或基于位置的系统的位置信息。实例包括全球定位系统(GPS)和移动电话上的辅助GPS(A-GPS)。在一个实施例中,将位置信息与明确的用户输入组合。在一个实施例中,本发明的系统能够基于已知的地址信息和当前的位置确定检测用户何时在家。通过这种方式,可以对用户在家而非在外时可能感兴趣的信息类型,以及根据其是否在家而应当代表用户调用的服务和动作类型进行特定推导。

·来自客户端设备上的时钟的时间信息。这可以包括,例如,来自电话或其他客户端设备,指示本地时间和时区的时间。此外,可以在用户请求的情景中使用时间,例如,以解释诸如“一小时内”和“今晚”的短语。

·罗盘、加速度计、陀螺仪和/或行进速度数据,以及来自移动或手持式设备或嵌入式系统,诸如汽车控制系统的其他传感器数据。这还可以包括从远程控制到电器和游戏机的设备定位数据。

·来自具有GUI的任何设备上的图形用户界面(GUI)的点击和菜单选择及其他事件。其他实例包括对触摸屏的触摸。

·来自传感器和其他数据驱动的触发器,诸如闹钟、日历提示、价格改变触发器、位置触发器、从服务器向设备上推送通知等的事件。

本文所述实施例的输入还包括用户交互历史的情景,包括对话和请求历史。

如上文援引的相关美国实用新型申请中所述,可以由多模虚拟助理1002生成很多不同类型的输出数据/信息。这些可包括但不限于如下中的一项或多项(或它们的组合):

·直接向输出设备和/或向设备的用户界面发送的文本输出;

·通过电子邮件向用户发送的文本和图形;

·通过消息服务向用户发送的文本和图形;

·语音输出,其可以包括如下中的一项或多项(或它们的组合):

ο合成语音;

ο采样语音;

ο记录消息;

·带照片、富文本、视频、声音和超链接(例如,在Web浏览器中呈现的内容)的信息的图形布局;

·控制设备上的物理动作的致动器输出,诸如使其打开或关闭,发出声音,改变颜色,振动,控制灯等;

·调用设备上的其他应用,诸如调用测绘应用,语音拨打电话,发送电子邮件或即时消息,播放媒体,在日历、任务管理器和便签应用及其他应用中生成条目;

·用于控制附属或受控于设备的设备的物理动作的致动器输出,诸如操作远程相机、控制轮椅、在远程扬声器上播放音乐、在远程显示器上播放视频等。

应当理解,图8的多模虚拟助理1002仅仅是可以实施的宽范围虚拟助理系统实施例中的一个实例。虚拟助理系统的其他实施例(未示出)可以包括比图示的(例如,在图8的实例虚拟助理系统实施例中)那些多、少和/或不同的部件/特征。

多模虚拟助理1002可以包括多个不同类型的部件、设备、模块、过程、系统等,例如,可以通过使用硬件和/或硬件软件的组合对它们进行实现和/或实例化。例如,如图8的示例性实施例中所示,助理1002可以包括一个或多个以下类型的系统、部件、设备、过程等(或它们的组合):

·一个或多个活动本体1050;

·活动输入启发部件2794(可以包括客户端部分2794a和服务器部分2794b);

·短期个人存储器部件2752(可以包括主版本2752b和高速缓存2752a);

·长期个人存储器部件2754(可以包括主版本2754b和高速缓存2754a);

·域模型部件2756;

·词汇表部件2758(可以包括完整词汇表2758b和子集2758a);

·语言模式识别器部件2760(可以包括完整库2760b和子集2760a);

·语言解释器部件2770;

·域实体数据库2772;

·对话流处理器部件2780;

·服务编排部件2782;

·服务部件2784;

·任务流模型部件2786;

·对话流模型部件2787;

·服务模型部件2788;

·输出处理器部件2790。

在某些基于客户端/服务器的实施例中,这些部件中的一些或所有可以分布于客户端1304和服务器1340之间。在以上引用的相关美国实用新型申请中进一步描述了此类部件。

在一个实施例中,虚拟助理1002通过任何适当的输入形态接收用户输入2704,输入形态例如包括触摸屏输入、键盘输入、口头输入和/或它们的任何组合。在一个实施例中,助理1002还接收上下文信息1000,其可以包括事件情景、应用情景、个人声音情景和/或其他形式的情景,如2011年9月30日提交的名称为“Using Context Information to Facilitate Processing of Commands in a Virtual Assistant”的相关美国实用新型申请序列号13/250,854中所述,在此通过引用将其整个公开并入本文。上下文信息1000还包括免提情景,如果适用的话,可以使用其根据本文所述的技术调整用户界面。

在根据本文所述的技术处理用户输入2704和上下文信息1000时,虚拟助理1002生成输出2708以向用户呈现。可以根据任何适当的输出形态生成输出2708,如果适当的话,可以由免提情景以及其他因素通知该形态。输出形态的实例包括在屏幕上呈现的视觉输出、听觉输出(其可以包括讲出的输出和/或蜂鸣和其他声音)、触觉输出(诸如振动)和/或它们的任何组合。

在2011年1月10日提交的名称为“Intelligent Automated Assistant”的相关美国实用新型申请序列号12/987,982中提供了图8中所示关于各种部件操作的更多细节,在此通过引用将其整个公开并入本文。

使用户界面适应于免提情景

出于例示的目的,在此通过举例的方式描述本发明。然而,本领域的技术人员将认识到,实例中绘示的特定输入和输出机构仅仅是为了例示用户和助理1002之间的一种可能交互,并非要限制如权利要求书所主张的本发明范围。此外,在另选的实施例中,可以在一种未必涉及多模虚拟助理1002的设备中实施本发明;相反,可以直接在操作系统或运行于任何适当设备上的应用中的实施本发明的功能,而不脱离如权利要求书中唯一界定的本发明的必要特征。

现在参考图1,示出了例示根据现有技术的用于读取文本消息的常规手动界面209的实例的屏幕截图。图1中所示的图形用户界面(GUI)一般需要用户能够读取详细的细节,诸如气泡211中所示的消息文本,并通过在文本字段212中键入并轻击发送按钮213来做出响应。在很多设备中,此类动作需要观看并触摸屏幕,因此在特定情景例如本文所称免提情景中执行起来是不切实际的。

现在参考图2,示出了例示用于对文本消息211做出响应的界面210的实例的屏幕截图。响应于用户在文本字段212中轻击呈现虚拟键盘270,允许通过在对应于按键的屏幕区域上轻击来在文本字段212中输入文本。在已经输入文本消息时,用户在发送按钮213上轻击。如果用户希望通过讲话输入文本,他或她在语音按钮271上轻击,其调用语音指示界面,用于接收口头输入并将其转换成文本。因此,按钮271提供了用户能够指示其处于免提情景中的机构。

现在参考图3A和3B,示出了例示界面215的实例的屏幕截图的序列,其中使用语音口述界面回复文本消息211。例如,在用户在语音按钮271上轻击之后,呈现屏幕370。麦克风图标372指示设备准备好接受口头输入。用户输入语音,该语音经由语音输入设备1211接收,语音输入设备可以是麦克风或类似设备。用户在完成按钮371上轻击,以指示其已经完成了口头输入的输入。

利用任何熟知的语音到文本算法或系统将口头输入转换成文本。语音到文本功能可以存在于设备60上或服务器上。在一个实施例中,例如,利用可购自Nuance Communications,Inc.(Burlington,Massachusetts)的Nuance Recognizer来实现语音到文本功能。

如图3B中所示,可以在字段212中示出转换结果。可以呈现键盘270以允许用户编辑在字段212中生成的文本。在用户对输入文本满意时,他或她在发送按钮213上轻击,以发送文本消息。

在结合图2、3A和3B描述的实例中,若干操作需要用户看着显示屏和/或提供触摸输入。此类操作包括:

·阅读显示屏上的文本消息211;

·触摸按钮271以进入语音输入模式;

·触摸完成按钮371以指示完成语音输入;

·查看从用户的口头输入生成的转换文本;

·触摸发送按钮213以发送消息。

在本发明的一个实施例中,用于接受和处理语音输入的机构被集成到设备60中,从而减少了在处于免提情景中时用户与显示屏交互和/或使用触摸界面的需求。因此,本发明的系统因此能够提供改进的用户界面,以在免提情景中进行交互。

现在参考图4和图5A-图5D,示出了例示根据一个实施例的用于接收和回复文本消息的界面的实例的一系列屏幕截图,其中识别免提情景;因此,在该实例中,根据本发明的技术,减小了用户与屏幕交互的需求。

在图4中,屏幕470绘示了在设备60处于锁定模式中时接收的文本消息471。用户可以激活滑块472以根据已知技术回复或通过其他方式与消息471交互。然而,在该实例中,设备60可能在视线之外和/或在触及范围之外,或者用户可能不能与设备60交互,例如,如果他或她正在驾车或参与某项其他活动。如本文所述,多模虚拟助理1002提供了在这种免提情景中用于接收和回复文本消息471的功能。

在一个实施例中,设备60上安装的虚拟助理1002自动检测免提情景。此类检测可以通过确定如下情形或状况的任何方式而发生:用户可能难以或不可能与设备60的屏幕交互或正确操作GUI。

例如但并非限制,可以基于如下任何单项或任何组合进行免提情景的确定:

·来自传感器(包括例如罗盘、加速度计、陀螺仪、速度表(例如,无论设备60正在以预先确定的速度还是高于预先确定的速度行进)、环境光传感器、蓝牙连接检测器、时钟、WiFi信号检测器、麦克风等)的数据;

·例如,经由GPS确定设备60处在特定地理位置(例如,确定设备60正在路上或路附近行进);

·速度数据(例如,通过GPS、速度表、加速度计、无线数据信号信息(例如,蜂窝塔三角测量法));

·来自时钟的数据(例如,可以将免提情景指定为在一天的特定时间和/或一周的特定天活动);

·预定义参数(例如,用户或管理员能够指定,在检测到任何条件或条件组合时,免提情景是活动的);

·蓝牙或其他无线I/O设备的连接(例如,如果检测到与运动车辆的启用蓝牙的接口的连接);

·可能表示用户正在运动的车辆中或正在驾驶车辆的任何其他信息;

·存在或不存在附接的外围设备,包括耳机、耳麦、充电电缆或停靠站(包括车辆停靠站)、通过适配器电缆连接的东西等;

·确定用户未与设备60接触或密切接近设备60;

·用于触发与助理1002交互的特定信号(例如,运动手势,其中用户将设备拿向耳朵,或者按下蓝牙设备上的按钮或按下附接音频设备上的按钮);

·在连续字词流中检测到特定字词(例如,可以配置助理1002以收听命令,并在用户呼叫其名称或说出诸如“计算机!”的某种命令时被调用;该特定命令可以指示免提情景是否活动。)

如上所述,可以(至少部分)基于确定用户正位于运动的车中或正在驾驶车辆而自动确定为免提情景。在一些实施例中,做出此类确定而无需用户输入,且不涉及数字助理是否被用户独立调用。例如,用户与助理1002交互所经的设备可以包含多个应用,其被配置为在设备上的操作系统内执行。因此,可以确定设备位于车辆中,而无关于用户是否选择或激活数字助理应用以在设备上立即执行。在一些实施例中,在数字助理应用并未正在操作系统的前台中执行时或并未正在设备上显示图形用户界面时,做出确定。因此,在一些实施例中,用户不必独立调用数字助理应用以便由设备确定其在车辆中。在一些实施例中,自动确定电子设备在车辆中而无关于用户最近是否调用过数字助理应用。

在一些实施例中,自动确定免提情景可以(至少部分)基于检测到电子设备在以第一预先确定的速度或高于第一预先确定的速度运动。例如,如果设备正在以高于大约每小时20英里的速度运动,表示用户不仅仅在走路,也可以调用免提情景,包括如下所述调用收听模式。在一些实施例中,自动确定免提情景可以进一步基于检测到电子设备正在以第二预先确定的速度或低于第二预先确定的速度运动。例如,在用户正在飞机上时,这对于防止设备错误地检测到免提情景是有用的。在一些实施例中,如果电子设备正在以低于约每小时150英里的速度运动,则检测到免提情景,表示用户可能不是在飞机上飞行。

在其他实施例中,用户可以手动指示免提情景是活动的或者不活动的,和/或能够安排免提情景以在一天的特定时间和/或一周的特定一些天激活和/或去激活。

在一个实施例中,在处于免提情景中时接收文本消息470时,多模虚拟助理1002使得设备60输出音频指示,诸如蜂鸣或音调,表示接收到文本消息。如上所述,用户可以激活滑块472以根据已知的技术(例如,如果不正确地检测到免提模式,或者如果用户选择停止驾驶或通过其他方式使自己能够与设备60进行手动交互)回复或通过其他方式与消息471交互。另选地,用户能够参与与助理1002的口头对话,以能够以免提方式来与助理1002交互。

在一个实施例中,用户通过适于免提情景的任何适当机构发起口头对话。例如,在用户正在驾驶配备蓝牙设备的车辆且设备60与车辆通信的环境中,可以有一个容易触及的按钮(例如,安装在车辆方向盘上的按钮)。按下该按钮会发起与助理1002的口头对话,并允许用户通过蓝牙连接并通过安装于车辆中的麦克风和/或扬声器与助理1002通信。另选地,用户能够通过按下设备60自身上或耳麦或任何其他外围设备上的按钮,或者通过执行向助理1002指明用户希望发起口头对话的某种其他区别性动作来发起口头对话。作为另一个实例,用户能够讲出助理1002理解并发起口头对话的命令,如下文更详细所述。本领域的技术人员将认识到,可以提供很多其他技术以允许用户容易发起与助理1002的口头对话。优选地,用于发起口头对话的机构不需要用户部分的手眼协调,从而允许用户集中精力于主要任务,诸如驾驶,和/或可以由残疾个人执行,该残疾阻碍、妨碍、限制或局限其与诸如图2、3A和3B中所示的GUI交互的能力。

一旦已经发起口头对话,助理1002就收听口头对话。在一个实施例中,助理1002通过在处于免提情景中时容易被用户检测到的某种输出机构确认口头输入。实例为音频蜂鸣或声调和/或车辆仪表板上的视觉输出,即使在驾驶时也容易被用户和/或被某种其他机构看到。利用已知的语音识别技术处理口头输入。助理1002然后执行由口头输入指示的动作。在一个实施例中,助理1002提供口头输出,可以经由扬声器(在设备60中或安装于车辆中)、耳机等输出它,以便继续与用户进行音频对话。例如,助理1002能够读取文本消息、电子邮件消息等的内容并能够以口头形式向用户提供选项。

例如,如果用户说“读我的新消息”,助理1002可以使设备60发出确认声调。助理1002然后可以发出口头输出,诸如“您有来自Tom Devon的新消息。消息是:“嗨,你去看比赛吗?”。可以由助理1002利用任何已知用于将文本转换成语音的技术生成口头输出。在一个实施例中,例如,利用可购自Nuance Communications,Inc.(Burlington,Massachusetts)的Nuance Vocalizer实现文本到语音功能。

现在参考图5A,示出了屏幕截图570的实例,其示出了可以在进行用户和助理1002之间的口头交换时在设备60的屏幕上呈现的输出。在一些免提情况下,用户可以看到屏幕但不能容易触摸它,例如,如果正在车辆导航系统的显示屏上复制设备60的屏幕上的输出。如图5A-图5D所示的口头会话的视觉呼应能够帮助用户验证其口头输入已经被助理1002适当准确地理解,并能够进一步帮助用户理解助理1002的口头回复。然而,此类视觉呼应是任选的,可以实施本发明而在设备60的屏幕上或别处没有任何视觉显示。因此,用户能够纯粹通过口头输入和输出,或通过视觉和口头输入和/或输出的组合来与助理1002交互。

在一个实例中,助理1002显示并说出提示571。响应于用户输入,助理1002在显示器上和/或以口头形式重复用户输入572。助理然后介绍573传入的文本消息并阅读它。在一个实施例中,也可以在屏幕上显示文本消息。

如图5B中所示,在向用户阅读传入的消息之后,助理1002然后告诉用户,用户能够“回复或再次阅读它”574。同样,在一个实施例中,以口头形式(即,口头地)提供此类输出。通过这种方式,本发明的系统以非常适合免提情景的方式通知用户可用的动作,即其不要求用户查看文本字段、按钮和/或链接,也不需通过触摸或与屏幕上对象的交互来直接操控。如图5B中所示,在一个实施例中,在屏幕上对口头输出做出回声574;然而,不需要这样显示口头输出。在一个实施例中,在屏幕上显示的回声消息根据公知的机构自动向上滚动。

在该实例,用户说出“回复:是的,我六点到那里”。如图5B中所示,在一个实施例中,对用户的口头输入做出回声575,使得用户能够检查其已经被正确理解。此外,在一个实施例中,助理1002以听觉形式重复用户的口头输入,使得用户即使在不能看屏幕时也能够验证对其命令的理解。因此,本发明的系统提供了一种机构,通过该机构用户能够发起回复命令,撰写响应并验证命令和撰写的响应被正确理解,所有这些都在免提情景中进行且不需要用户以不切实际或很适合当前操作环境的方式查看屏幕或与设备60交互。

在一个实施例中,助理1002通过读回消息来提供对用户撰写的文本消息的进一步验证。在该实例中,助理1002口头讲道,“这里是您对Tom Devon的回复:‘对,我将六点到那里。’”。在一个实施例中,以语音和/或韵律的变化传达引号的含义。例如,可以通过一种语音,诸如男性语音,讲出一串字词“这里是您对Tom Devon的回复”,而可以通过另一种语音,诸如女性语音,讲出一串字词“对,我将在六点到那里”。或者,可以使用同一种语音,但具有不同的韵律以传达引号。

在一个实施例中,助理1002提供口头交换的视觉回声,如图5B和5C中所示。图5B和5C示出了消息576,对助理1002的口头输出“这里是您对Tom Devon的回复”进行回声显示。图5C示出了正在撰写的文本消息的概要577,包括接收者和消息的内容。在图5C中,先前的消息已经向上滚动到屏幕之外,但可以通过根据已知机构向下滚动来查看。发送按钮578发送消息;取消按钮579取消消息。在一个实施例中,用户也可以通过讲出关键字,诸如“发送”或“取消”来发送或取消消息。或者,助理1002能够生成口头提示,诸如“准备好发送了吗?”;再次,可以在输出口头提示时,显示具有按钮578、579的显示器570。用户然后能够通过触摸按钮578、579或通过回答口头提示来指示他或她希望做什么。可以以许可“是”或“否”响应的格式发出提示,使得用户不需要使用任何特殊的词汇表就能够使其意图被知道。

在一个实施例中,助理1002能够通过,例如生成口头输出,诸如“好的,我将发送您的消息”,来确认用户发送消息的口头命令。如图5D中所示,可以在屏幕570上对这一口头输出做出回应显示580,连同显示被发送的文本消息的概要581。

上述口头交换,与任选的视觉回应组合,例示了助理1002在多模界面中提供冗余输出的实例。通过这种方式,助理1002能够支持一定范围的情景,包括盲操作、免提和完全手动。

该实例还例示了所显示的和讲出的输出能够彼此不同以反映其不同情景的机构。该实例还例示了可以实现用于响应的另选机构的方式。例如,在助理说出“准备好发送了吗?”且显示图5C中所示的屏幕570之后,用户能够说出字词“发送”或“是”,或在屏幕上的发送按钮578上轻击。这些动作的任一个动作都会由助理1002以相同方式解释,并会使得文本消息被发送。因此,本发明的系统相对于用户与助理1002交互提供了高度灵活性。

现在参考图6A-图6C,其示出了用于示出根据本发明的一个实施例的多模虚拟助理1002的操作的实例的一系列屏幕截图,其中用户在免提情景中修订文本消息577,例如,以校正错误或添加更多内容。在涉及直接操控,诸如上文结合图3A和3B所述的视觉界面中,用户可以在虚拟键盘270上键入以编辑文本字段212的内容,由此修订文本消息577。由于此类操作可能在免提情景中不可行,因此多模虚拟助理1002提供了一种机构,通过这种机构,能够在会话界面中通过口头输入和输出进行文本消息577的此类编辑。

在一个实施例中,一旦(例如,基于用户的口头输入)撰写了文本消息577,多模虚拟助理1002就生成口头输出,通知用户该消息已经准备好发送,并询问用户是否应当发送消息。如果用户通过口头或直接操控输入指示他或她未准备好发送消息,那么多模虚拟助理1002生成口头输出,以通知用户可用的选项,诸如发送、取消、查看或更改消息。例如,助理1002可以说“好的,我不会发送它。要继续操作,您可以发送、取消、查看或更改它。”

如图6A中所示,在一个实施例中,多模虚拟助理1002通过显示消息770来对口头输出做出回应,以视觉方式通知用户相对于文本消息577可用的选项。在一个实施例中,在可编辑字段773中显示文本消息577,以指示用户能够通过在字段773中轻击来编辑消息577,连同分别用于发送或取消文本消息577的按钮578、579。在一个实施例中,在可编辑字段773中轻击调用虚拟键盘(类似于图3B中所示),以允许通过直接操控进行编辑。

用户还可以通过提供口头输入而与助理1002交互。因此,响应于助理1002为与文本消息577交互提供选项的口头消息,用户可以说“更改它”。助理1002识别口头文本并利用口头消息做出响应,提示用户讲出修改后的消息。例如,助理1002可以说出,“好的……您希望消息讲什么?”,然后开始收听用户的响应。图6B示出了可以结合此类口头提示显示的屏幕570的实例。同样,用户的口头文本被以视觉方式回声处理771,连同助理1002的提示772。

在一个实施例中,一旦通过这种方式提示了用户,就将用户后续口头输入的精确内容解释为用于文本消息的内容,绕过用户命令的正常自然语言解释。假设在检测到输入中足够长度的暂停时,或在检测到指示输入完成的特定字词时,或在检测到用户按下按钮或激活某个其他命令以指示其已完成文本消息讲话时,完成了用户的口头输入。在一个实施例中,助理1002然后以口头形式重复回到输入的文本消息,并可以任选地如图6C中所示对其进行回应。助理1002提供口头提示,诸如“您准备好发送它了吗?”,也可以如图6C中所示在屏幕上对其进行回声处理770。用户然后可以通过说出“取消”、“发送”、“是”或“否”来回复,其中任一种都由助理1002正确解释。或者,用户能够按下屏幕上的按钮578或579以调用期望的操作。

通过以这种方式提供用于修改文本消息577的机构,在一个实施例中,本发明的系统提供了适于免提情景的流程路径,其与手动方式集成,使得用户能够在每个阶段自由选择交互的模式。此外,在一个实施例中,助理1002针对总体流程中的特定步骤调整其自然语言处理机构;例如,如上所述,在一些情况下,在提示用户讲出文本消息时,助理1002可以进入绕过对用户命令进行自然语言解释的模式。

方法

在一个实施例中,多模虚拟助理1002检测免提情景并调整其操作的一个或多个阶段,以修改针对免提操作的用户体验。如上所述,可以通过多种方式来应用对免提情景的检测,以影响多模虚拟助理1002的操作。

图7A是示出了根据一些实施例的调整用户界面的方法800的流程图。在一些实施例中,在电子设备处执行方法800,该电子设备具有一个或多个处理器以及存储用于被一个或多个处理器执行的一个或多个程序的存储器(例如设备60)。方法800包括自动确定(802)电子设备处于车辆中,无需用户输入以及无关于数字助理应用是否被用户独立调用。在一些实施例中,执行自动确定电子设备在车辆中以及无关于用户最近是否调用过数字助理应用(例如,在大约前1分钟、2分钟、5分钟之内)。

在一些实施例中,确定电子设备在车辆中包括检测到(806)电子设备与车辆通信。在一些实施例中,通信是无线通信。在一些实施例中,通信是蓝牙通信。在一些实施例中,通信是有线通信。在一些实施例中,检测到电子设备与车辆通信包括检测到电子设备正(例如,通过无线通信、蓝牙、有线通信等)与车辆的语音控制系统通信。

在一些实施例中,确定电子设备在车辆中包括检测到(808)电子设备正在以第一预先确定的速度或高于第一预先确定的速度运动。在一些实施例中,第一预先确定的速度为大约20英里每小时。在一些实施例中,第一预先确定的速度为大约10英里每小时。在一些实施例中,确定电子设备在车辆中还包括检测到(810)电子设备正在以第二预先确定的速度或低于第二预先确定的速度运动。在一些实施例中,第一预先确定的速度为大约150英里每小时。在一些实施例中,利用由如下项构成的组中的一项或多项来确定电子设备的速度:GPS位置信息;加速度计数据;无线数据信号信息;以及速度计信息。

在一些实施例中,确定电子设备在车辆中还包括检测到(812)电子设备正在道路上或附近行进。可以通过GPS位置信息、蜂窝塔三角测量法和/或其他位置检测技巧和技术来确定车辆的位置。

返回到图7A,方法800还包括,响应于该确定,调用(814)由电子设备实现的虚拟助理的收听模式。本文描述了收听模式的示例性实施例。在一些实施例中,收听模式使得电子设备连续收听(816)来自用户的语音输入。在一些实施例中,收听模式使得电子设备响应于检测到电子设备连接到充电源,连续收听来自用户的语音输入。在一些实施例中,收听模式使得电子设备在发起收听模式之后(例如,发起收听模式之后大约5分钟),在预先确定的时间内收听来自用户的语音输入。在一些实施例中,收听模式使得电子设备无需来自用户的物理输入,在电子设备提供听觉输出(诸如“蜂鸣”)之后,自动收听(818)来自用户的语音输入。

在一些实施例中,方法800还包括在确定电子设备在车辆中时限制设备(例如设备60)和/或数字助理(例如助理1002)的功能。在一些实施例中,该方法包括响应于确定电子设备在车辆中,采取任何以下动作(单独或组合):限制用于查看由电子设备呈现的视觉输出的能力;限制用于与电子设备呈现的图形用户界面交互的能力;限制用于使用电子设备物理部件的能力;限制用于在电子设备上执行触摸输入的能力;限制用于使用电子设备上的键盘的能力;限制用于执行电子设备上一种或多种应用的能力;限制用于执行由电子设备实现的一种或多种功能的能力;限制设备以不从用户请求触摸输入;限制设备,以不对来自用户的触摸输入做出响应;以及将列表中的项目量限制到预先确定的量。

现在参考图7B,在一些实施例中,方法800还包括,在设备处于收听模式时,检测(822)用户讲出的唤醒字词。唤醒字词可以是数字助理(例如助理1002)被配置为识别为触发向助理发信号以开始收听来自用户的语音输入的任何字词。该方法进一步包括,响应于检测到唤醒字词,收听(824)来自用户的语音输入,从用户接收(826)语音输入,以及生成(828)对语音输入的响应。

在一些实施例中,方法800进一步包括从用户接收(830)语音输入;生成(832)对语音输入的响应,该响应包括要向用户呈现的信息项的列表;以及通过听觉输出模式输出(834)信息项,其中如果电子设备不在车辆中,则将仅在电子设备的显示屏上呈现信息项。例如,在一些情况下,在设备上以视觉方式显示响应于Web搜索返回的信息项。在一些情况下,仅以视觉方式(例如,没有任何音频)显示它们。相反,方法800的这一方面仅为信息项提供了听觉输出,而没有任何视觉输出。

现在参考图7C,在一些实施例中,方法800还包括从用户接收(836)语音输入,其中语音输入对应于要向接收者发送的内容。在一些实施例中,要通过文本消息、电子邮件消息等向接收者发送内容。该方法进一步包括产生(838)对应于语音输入的文本,以及通过听觉输出模式输出(840)文本,其中如果电子设备不在车辆中,则将仅在电子设备的显示屏上呈现文本。例如,在一些情况下,在设备上以视觉方式显示从语音输入转录的消息内容。在一些情况下,仅以视觉方式(例如,没有任何音频)显示它。相反,方法800的这一方面仅为转录的文本提供听觉输出,而没有任何视觉输出。

在一些实施例中,该方法还包括在向接收者发送文本之前请求(842)确认。在一些实施例中,请求确认包括通过听觉输出模式询问用户是否应当向接收者发送文本。

图7D是示出了根据一些实施例的调整用户界面的方法850的流程图。在一些实施例中,在电子设备处执行方法850,该电子设备具有一个或多个处理器以及存储用于被一个或多个处理器执行的一个或多个程序的存储器。

方法850包括自动确定(852)电子设备在车辆中,无需用户输入。

在一些实施例中,确定电子设备在车辆中包括检测到(854)电子设备与车辆通信。在一些实施例中,通信为无线通信,其一个实例是蓝牙通信。在一些实施例中,通信是有线通信。在一些实施例中,检测到电子设备正与车辆通信包括检测到电子设备正(例如,通过无线通信,诸如蓝牙,或有线通信)与车辆的语音控制系统通信。

在一些实施例中,确定电子设备在车辆中包括检测到(856)电子设备正在以第一预先确定的速度或高于第一预先确定的速度运动。在一些实施例中,第一预先确定的速度为大约20英里每小时。在一些实施例中,第一预先确定的速度为大约10英里每小时。在一些实施例中,确定电子设备在车辆中还包括检测到(858)电子设备正在以第二预先确定的速度或低于第二预先确定的速度运动。在一些实施例中,第一预先确定的速度为大约150英里每小时。在一些实施例中,利用由如下项构成的组中的一项或多项来确定电子设备的运动速度:GPS位置信息;加速度计数据;无线数据信号信息;以及速度计信息。

在一些实施例中,确定电子设备在车辆中进一步包括检测到(860)电子设备正在道路上或附近行进。可以通过GPS位置信息、蜂窝塔三角测量法和/或其他位置检测技巧和技术来确定车辆的位置。

方法850进一步包括响应于该确定,如上所述,限制电子设备的某些功能。例如,在一些实施例中,限制设备的某些功能包括去激活(864)视觉输出模式,以有利于听觉输出模式。在一些实施例中,去激活视觉输出模式包括阻止(866)电子设备能够显示的视觉输出的子集的显示。

现在参考图7E,示出了绘示根据一个实施例的支持动态检测和适应于免提情景的虚拟助理1002的操作的方法10的流程图。可以结合多模虚拟助理1002的一个或多个实施例实施方法10。如图7中所示,根据一个实施例,可以在多模虚拟助理1002中处理的各个阶段使用免提情景。

在至少一个实施例中,方法10可用于执行和/或实施各种类型的功能、操作、动作和/或其他特征,例如,如下中的一种或多种(或它们的组合):

·在用户和多模虚拟助理1002之间执行会话界面的界面控制流程回路。方法10的至少一次重复可以充当会话中的一层。会话界面是用户和助理1002通过以会话方式来回讲话而通信的界面。

·为多模虚拟助理1002提供执行控制流。即,该过程控制输入的收集、输入的处理、输出的生成和向用户表示输出。

·协调多模虚拟助理1002的部件间的通信。即,它可以指示一个部件的输出馈送到另一个部件的哪里,来自环境和环境上动作的总体输入可以在哪里发生。

在至少一些实施例中,方法10的部分也可以实施于其他设备和/或计算机网络的系统处。

根据具体的实施例,可以通过使用一个或多个处理器63和/或硬件和/或硬件和软件的其他组合,同时实施和/或实例化方法10的多个实例或进程。在至少一个实施例中,可以在一个或多个客户端1304处,在一个或多个服务器1340处和/或它们的组合处实施方法10的中一个或多个方法或所选择的部分。

例如,在至少一些实施例中,可以由软件部件、网络服务、数据库等或它们的任何组合来执行、实施和/或发起方法10的各个方面、特征和/或功能。

根据不同的实施例,可以响应于检测到一个或多个条件或满足一个或多个不同类型的用于触发发起方法10的至少一个实例的标准(例如,最小阈值标准)的事件来发起方法10的一个或多个不同进程或实例。可以触发发起和/或实施方法的一个或多个不同进程或实例的各种类型的条件或事件的实例可包括但不限于如下中的一项或多项(或它们的组合):

·用户与多模虚拟助理1002的实例的会话,例如但不限于如下中的一种或多种:

ο启动移动设备应用,例如实施多模虚拟助理1002的实施例的移动设备应用;

ο启动计算机应用,例如实施多模虚拟助理1002的实施例的应用;

ο移动设备上按下的专用按钮,诸如“语音输入按钮”;

ο附接于计算机或移动设备的外围设备上的按钮,外围设备例如是耳麦、手机或基站、GPS导航系统、家用电器、遥控器或具有可能与调用助理相关联的按钮的任何其他设备;

ο从Web浏览器向实施多模虚拟助理1002的网站开始的Web会话;

ο从现有Web浏览器会话内向实施多模虚拟助理1002的网站发起的交互,其中,例如请求多模虚拟助理1002服务;

ο向电子邮件形态服务器1426发送的电子邮件消息,电子邮件形态服务器居间协调与多模虚拟助理1002的实施例的通信;

·向消息形态服务器1430发送文本消息,消息形态服务器居间协调与多模虚拟助理1002的实施例的通信;

·向VOIP形态服务器1434做出电话呼叫,VOIP形态服务器居间协调与多模虚拟助理1002的实施例的通信;

·向提供多模虚拟助理1002的实施例的应用发送诸如提示或通知的事件。

·在打开和/或启动提供多模虚拟助理1002的设备时。

根据不同的实施例,可以手动、自动、静态、动态、并发和/或以它们的组合发起和/或实施方法10的一个或多个不同进程或实例。此外,可以在一种或多种不同的时间间隔(例如,在特定时间段期间,以规则周期性间隔、以不规则周期性间隔,根据需求等)发起方法10的不同实例和/或实施例。

在至少一个实施例中,在执行特定任务和/或操作时,包括如本文所述检测到免提情景时,方法10的给定实例可以利用和/或生成各种不同类型的数据和/或其他类型的信息。数据还可以包括任何其他类型的输入数据/信息和/或输出数据/信息。例如,在至少一个实施例中,方法10的至少一个实例可以访问、处理和/或通过其他方式利用来自一个或多个不同类型源,例如一个或多个数据库的信息。在至少一个实施例中,可以经由与一个或多个本地和/或远程存储器设备通信来访问至少一部分数据库信息。此外,方法10的至少一个实例可以生成一种或多种不同类型的输出数据/信息,例如,可以将其存储于本地存储器和/或远程存储器设备中。

在至少一个实施例中,可以利用一种或多种不同类型的初始化参数来执行方法I/O的给定实例的初始配置。在至少一个实施例中,可以经由与一个或多个本地和/或远程存储器设备通信来访问至少一部分初始化参数。在至少一个实施例中,向方法10的实例提供的至少一部分初始化参数可以对应于输入数据/信息和/或可以从输入数据/信息导出。

在图7E的具体实例中,假设单个用户正在通过网络从具有语音输入能力的客户端应用访问多模虚拟助理1002的实例。在一个实施例中,助理1002安装于设备60上,设备60诸如移动计算设备、个人数字助理、移动电话、智能电话、膝上型计算机、平板电脑、消费电子设备、音乐播放器等。助理1002结合用户界面操作,用户界面允许用户通过口头输入和输出以及直接操控和/或显示图形用户界面(例如,经由触摸屏)而与助理1002交互。

设备60具有当前状态11,该当前状态可被分析以检测20其是否处于免提情景中。可以利用任何适用的检测机构或机构的组合(无论自动或手动),基于状态11来检测20免提情景。上文阐述了实例。

在检测到20免提情景时,将该信息添加到可用于通知助理的各种过程的其他上下文信息1000,如2011年9月30日提交的名称为“Using Context Information to Facilitate Processing of Commands in a Virtual Assistant”的相关美国实用新型申请序列号13/250,854中所述,在此通过引用将其整个公开并入本文。

启发并解释100语音输入。启发可以包括以任何适当的模式来呈现提示。因此,根据是否检测到免提情景,在各种实施例中,助理1002可以提供几种输入模式中的一种或多种。这些模式可以包括,例如:

·用于键入输入的界面,其可以调用活动键入输入启发过程;

·用于语音输入的界面,其可以调用活动语音输入启发过程。

·用于从菜单选择输入的界面,其可以调用基于活动GUI的输入启发。

例如,如果检测到免提情景,则可以通过声调或其他声音提示来启发语音输入,并可以将用户的语音解释为文本。然而,本领域的技术人员将认识到,可以提供其他输入模式。

步骤100的输出可以是输入语音的文本的一组候选解释。这一组候选解释被语言解释程序2770(也称为自然语言处理器或NLP)处理200,其对文本输入进行解析并生成用户意图的一组可能语义解释。

在步骤300中,将用户意图的这些表示传递到对话流处理器2780,该对话流处理器实施对话和流程分析过程的实施例以将用户意图作为任务步骤来操作。对话流处理器2780确定哪种意图解释最可能,将这一解释映射到域模型的实例和任务模型的参数,并确定任务流中的下一流步骤。如果适当的话,选择310适应于免提操作的一个或多个任务流步骤。例如,如上所述,在检测到免提情景时,用于修改文本消息的任务流步骤可以不同。

在步骤400中,执行识别的流步骤。在一个实施例中,流步骤的调用是由服务编排部件2782执行的,其代表用户的请求来调用一组服务。在一个实施例中,这些服务向公共结果贡献一些数据。

在步骤500中,生成对话响应。在一个实施例中,对话响应生成500受到免提情景状态的影响。因此,在检测到免提情景时,可以选择510不同和/或额外的对话单元以利用音频信道表示。例如,可以口头讲出附加的提示,诸如“准备好发送它了吗?”,且未必在屏幕上显示。在一个实施例中,检测到免提情景可能影响对额外输入520例如检验输入的提示。

在步骤700中,向用户呈现多模输出(在一个实施例中,包括口头和视觉内容),用户然后任选地利用语音输入再次做出响应。

如果在查看和/或听到响应之后用户完成790,则该方法结束。如果用户未完成,则通过返回到步骤100开始环路的另一次重复。

如上所述,可以由系统的各个部件使用上下文信息1000,包括检测到的免提情景,来影响方法10的各种步骤。例如,如图7E中所示,可以在步骤100、200、300、310、500、510和/或520使用包括免提情景的情景1000。然而,本领域的技术人员将认识到,使用包括免提情景的上下文信息1000不限于这些特定步骤,该系统也能够在其他点使用上下文信息,而不脱离本发明的实质特点。在2011年9月30日提交的名称为“Using Context Information to Facilitate Processing of Commands in a Virtual Assistant”的相关美国实用新型申请序列号13/250,854和2009年6月5日提交的名称为“Contextual Voice Commands”的相关美国实用新型申请序列号12/479,477中提供了在助理1002的各个操作步骤中使用情景1000的进一步描述,在此以引用方式将其整个公开并入本文。

此外,本领域的技术人员将认识到,方法10的不同实施例可以包括除图7中所示具体实施例中所示那些之外的附加特征和/或操作,和/或可以省去方法10的至少一部分特征和/或操作,如图7的具体实施例中所示。

下文更详细描述了使步骤100、200、300、310、500、510和/或520适应免提情景。

使输入启发和解释100适应于免提情景

语音输入100的启发和解释可以通过几种方式中的任一种(单独地或通过任何组合)适应于免提情景。如上所述,在一个实施例中,如果检测到免提情景,可以通过声调和/或其他声音提示来启发语音输入,并将用户的语音解释为文本。通常,多模虚拟助理1002可以提供用于音频输入的多种可能机构(例如,蓝牙连接的麦克风或其他附接的外围设备),以及用于调用助理1002的多种可能机构(例如,按下外围设备上的按钮或接近设备60使用运动手势)。关于如何调用助理1002和/或为音频输入使用哪种机构的信息可用于指示免提情景是否活动并可用于改变免提体验。更具体地,可以使用此类信息来指导步骤100以为输入和输出而使用特定的音频路径。

此外,在检测到免提情景时,可以改变使用音频输入设备的方式。例如,在手动模式中,该界面可能要求用户按下按钮或做出物理手势以使得助理1002开始收听语音输入。相反,在免提模式中,该界面可以连续提示在助理1002每次实例化输出之后进行输入,或者可以允许在两个方向上都连续进行语音输入(允许用户在助理1002仍然讲话时打断助理1002)。

使自然语言处理200适应于免提情景

自然语言处理(NLP)200可以通过例如添加对尤其适用于免提操作的特定口头响应的支持来适应于免提情景。此类响应可以包括,例如,“是”,“阅读消息”和“更改它”。在一个实施例中,可以额外提供对此类响应的支持以支持可用于手动状况中的口头命令。因此,例如,在一个实施例中,用户可能能够通过讲出出现于屏幕上的命令来操作图形用户界面(例如,在标记为“发送”的按钮出现于屏幕上时,可以提供支持以理解口头字词“发送”及其语义等价物)。在免提情景中,可以识别附加的命令以考虑到用户可能不能查看屏幕的事实。

检测到免提情景还可以改变助理1002对字词的解释。例如,在免提情景中,可以调谐助理1002以识别命令“安静!”及其语义变型,并响应于这种评论关闭所有音频输出。在非免提情景中,可以将此类命令作为不相关而忽略。

使任务流300适应于免提情景

可以单独或组合地通过几种方式中的任一种方式针对免提情景调整步骤300,其包括识别与用户意图相关联的任务、用于任务的参数和/或要执行的任务流步骤300。

在一个实施例中,为操作选择310一个或多个适应于免提操作的额外任务流步骤。实例包括口头查看和确认内容的步骤。此外,在免提情景中,助理1002能够阅读本来会呈现于显示屏上的结果列表。

在一些实施例中,在检测到免提情景时,将通常仅通过视觉界面(例如,在手动模式中)显示的项目通过听觉输出模式仅向用户输出。例如,用户可以提供语音输入,请求进行Web搜索,从而使得助理1002生成响应,包括要向用户呈现的信息项列表。在非免提情景中,例如可以仅通过视觉输出向用户呈现此类列表,而没有任何听觉输出。然而,在免提情景中,可能用户难以阅读此类列表或阅读会不安全。因此,助理1002能够全文或按照截取或总结版本大声讲出该列表,而不是在视觉界面上显示它。

在一些情况下,通常仅通过视觉界面显示的信息不会适应于听觉输出模式。例如,针对餐馆的典型Web搜索将返回包括多条信息的结果,诸如名称、地址、营业时间、电话号码、用户评价等。这些项非常适合以列表形式显示于屏幕上(例如,移动设备上的触摸屏)。但这种信息可能并非在免提情景中全部需要,如果要将其直接转换成口头输出,可能不确定或难以继续进行。例如,讲出餐馆结果列表的所有显示成分可能非常让人混乱不清,尤其对于更长的列表而言。此外,在免提情景中诸如在驾驶时,用户可能仅需要顶级信息(例如,餐馆的名称和地址)。因此,在一些实施例中,助理1002会总结或截取信息项(诸如列表中的项目),使得它们更容易被用户理解。继续以上实例,助理1002可以接收餐馆结果列表,并仅大声阅读每个结果中信息的子集,诸如针对每个结果的餐馆名称和街道名称,或餐馆名称和评价信息(例如4星)等。本公开也想到了对列表和/或列表之内信息项进行汇总或截取的其他方式。

在一些实施例中,可以提供口头命令以与列表中的个体项目交互。例如,如果要向用户呈现几条传入的文本消息,并检测到免提情景,那么识别的任务流步骤可以包括逐个大声阅读每条文本消息,在每条消息之后暂停,以允许用户提供口头命令。在一些实施例中,如果要向用户呈现搜索结果的列表(例如,来自Web搜索),并检测到免提情景,那么识别的任务流步骤可以包括逐条大声阅读每个搜索结果(整个结果或截取或汇总版本),并在每个结果之后暂停,以允许用户提供口头命令。

在一个实施例中,可以针对免提情景修改任务流。例如,用于在记事本应用中记事的任务流通常可能涉及提示内容并立即向记事本中添加它。此类操作可能适于手动环境,其中会在视觉界面中立即显示内容且立即能够通过直接操控来修改。然而,在检测到免提情景时,可以修改任务流,例如,以口头查看内容并允许在将其添加到记事本之前对内容进行修改。这允许用户在永久文档中存储语音指示之前捕捉到语音指示的错误。

在一个实施例中,也可以使用免提情景限制在给定时间允许的任务或功能。例如,可以实施策略以在用户设备处于免提情景或诸如开车的特定免提情景中时不允许播放视频。在一些实施例中,在确定免提情景(例如,驾驶车辆)时,设备60限制查看电子设备呈现的视觉输出的能力。这可以包括通过以下任何方式(逐个或通过任何组合)限制设备:

·限制查看电子设备呈现的视觉输出的能力(例如,去激活屏幕/视觉输出模式,阻止显示视频和/或图像,显示大文本,限制列表长度(例如搜索结果),限制屏幕上显示的视觉项目数量等);

·限制与电子设备呈现的图形用户界面交互的能力(例如,限制设备,以免从用户请求触摸输入,限制设备,以免对来自用户的触摸输入做出响应,等等);

·限制使用电子设备的物理部件的能力(例如,去激活设备上的物理按钮,诸如音量按钮、“主菜单”按钮、电源按钮等);

·限制在电子设备上执行触摸输入的能力(例如,去激活触摸屏的全部或部分);

·限制使用电子设备上键盘的能力(物理键盘或基于触摸屏的键盘);

·限制执行电子设备上一个或多个应用的能力(例如,阻止激活游戏、图像查看应用、视频查看应用、Web浏览器等);以及

·限制执行由电子设备实现的一个或多个功能的能力(例如,播放视频,显示图像等)。

在一个实施例中,助理1002能够使仅在免提情景中适用的讲话和/或任务的整个域可用。实例包括可访问模式,诸如为视力受限或对其双手使用受限的人士设计的那些模式。这些可访问模式包括被实现为免提替代的命令,用于操作给定应用平台上的任意GUI,例如,以识别命令,诸如“按下按钮”或“向上滚动”。其他可能仅在免提模式中适用的任务包括与免提体验自身相关的任务,诸如“使用我的汽车的蓝牙套件”或“减速[要进行语音输出的文本]”。

使对话生成500适应于免提情景

在各种实施例中,可以使用若干技术的任一种修改对话生成500以适应于免提情景。

在手动界面中,可以以书面方式对助理1002对用户输入的解释进行回声化;然而,在免提情景中,此类反馈可能是用户看不到的。因此,在一个实施例中,在检测到免提情景时,助理1002使用文本到语音(TTS)技术来对用户的输入进行释义。此类释义可以是选择性的;例如,在发送文本消息之前,助理1002能够讲出文本消息,使得即使在用户不能看到显示屏时也能够验证其内容。在一些情况下,助理1002根本不通过视觉方式显示转录的文本,而是向用户阅读文本。在用户从屏幕阅读文本不安全的情况下,诸如在用户驾驶车辆时和/或在已经去激活屏幕或视觉输出模式时,这可能是有益的。

可以由任务和/或特定于流程的对话来驱动确定何时对用户的语音进行释义以及释义语音的哪些部分。例如,响应于用户讲出的命令,诸如“读我的新消息”,在一个实施例中,助理1002不对命令进行释义,因为从助理1002的响应(读消息)显然可知命令被理解。然而,在其他情况下,诸如在步骤100中未识别或在步骤200中未理解用户输入时,助理1002可以尝试释义用户的口头输入,以便通知用户为何没有理解输入。例如,助理1002可能会说“我不理解‘读我的新消息’。请重新尝试。”

在一个实施例中,口头释义信息能够将对话模板与设备上的个人数据组合。例如,在阅读文本消息时,在一个实施例中,助理1002使用具有形式变量的口头输出模板,“您有来自$person的新消息。消息是$message。”可以利用用户数据替代模板中的变量,然后通过设备60上运行的过程转换成语音。在将本发明实施于客户端/服务器环境中的一个实施例中,此类技术能够帮助保护用户的隐私,同时仍然允许对输出进行个性化,因为个人数据能够保留在设备60上,并能够在从服务器接收到输出模板时填充。

在一个实施例中,在检测到免提情景时,可以选择510专门针对免提情景定制的不同和/或附加的对话单元以利用音频信道表示。用于确定选择哪些对话单元的规范或规则可能对于免提情景的细节是敏感的。通过这种方式,可以调整并扩展一般对话生成部件以支持各种免提变化而无需针对不同的免提状况构建独立的用户体验。

在一个实施例中,可以利用针对音频(口头字词)输出形态定制的文本注释生成文本和GUI输出单元的同一机构。例如:

·在一个实施例中,可以通过利用TTS阅读其书面对话响应的全部来使对话生成部件适应于免提情景。

·在一个实施例中,可以通过TTS逐字阅读其书面对话响应并将TTS变型用于其他对话响应,来使对话生成部件适应于免提情景。

·在一个实施例中,此类注释支持可变替换模板机构,其从对话生成分离出用户数据。

·在一个实施例中,可以利用指示如何在TTS上口头释义图形用户界面要素的文本来注释它们。

·在一个实施例中,可以调谐TTS文本,从而使用语音、讲话速率、间距、暂停和/或其他参数口头转换本来要通过标点或视觉呈现传达的意思。例如,用于重复用户话语的语音可以是不同的语音,或者可以使用与用于其他对话单元不同的韵律。作为另一个实例,根据是否讲出内容或指令,语音和/或韵律可以不同。作为另一个实例,可以在具有不同含义的文本章节之间插入暂停,以辅助理解。例如,在释义消息并请求确认时,可以在内容“您的消息是……”的释义和提示确认“准备好发送它了吗?”之间插入暂停。

在一个实施例中,可以利用与上文针对免提情景所述类似的使用TTS的机构来增强非免提情景。例如,对话能够在书面文本和GUI要素之外生成仅口头的提示。例如,在一些情况下,助理1002可以口头说出“应当发送它吗?”以增强屏幕上的发送按钮的显示。在一个实施例中,可以针对每种情况定制用于免提和非免提情景的TTS输出。例如,在处于免提情景中时,助理1002可以使用更长的暂停。

在一个实施例中,还可以使用免提情景的检测来确定是否以及何时自动提示用户做出响应。例如,在助理1002和用户之间的交互本质上同步时,从而一方讲话,同时另一方倾听,可以就助理1002讲话之后助理1002是否以及何时应当自动开始倾听来自用户的语音输入来做出设计选择。可以使用免提情景的具体细节为对话的这种自动开始收听属性实施各种策略。实例包括但不限于:

·始终自动开始收听;

·仅在处于免提情景中时自动开始收听;

·仅针对特定任务流步骤和对话状态自动开始收听;

·仅针对免提情景中的特定任务流步骤和对话状态自动开始收听。

在一些实施例中,响应于检测到免提情景而发起收听模式。在收听模式中,助理1002可以连续分析环境音频,以便识别来自用户的语音输入,诸如语音命令。可以在免提情景中使用收听模式,诸如在用户正在驾驶车辆时。在一些实施例中,无论何时检测到免提情景,就激活收听模式。在一些实施例中,响应于检测到助理1002正在用于车辆中而激活它。

在一些实施例中,只要助理1002检测到其在车辆中,收听模式是激活的。在一些实施例中,在发起收听模式之后在预先确定的时间内收听模式是活动的。例如,如果用户将助理1002配对到车辆,收听模式可以在配对事件之后的预先确定的时间是活动的。在一些实施例中,预先确定的时间是1分钟。在一些实施例中,预先确定的时间是2分钟。在一些实施例中,预先确定的时间是10分钟或更长。

在一些实施例中,在处于收听模式中时,助理1002分析接收到的音频输入(例如,使用语音到文本处理),以确定音频输入是否包括针对助理1002的语音输入。在一些实施例中,为了确保附近用户的隐私,在本地(即,在设备上)将接收的语音转换成文本,而不向远程计算机发送音频输入。在一些实施例中,首先在本地分析(例如,转换成文本)接收的语音,以便识别针对助理1002的字词。一旦确定一个或多个字词是针对助理的,就将接收的语音一部分发送到远程服务器(例如,服务器1340)以进一步处理,诸如语音到文本处理、自然语言处理、意图推断等。

在一些实施例中,向远程服务发送的部分是预定义唤醒字词之后的一组字词。在一些实施例中,助理1002连续分析接收到的环境音频(在本地将音频转换成文本),在检测到预定义唤醒字词时,助理1002将意识到一个或多个后续字词指向助理1002。助理1002然后将向远程计算机发送关键词之后的一个或多个字词的录制音频以用于进一步分析(例如,语音到文本处理)。在一些实施例中,助理1002检测到一个或多个字词之后预定义长度的暂停(即,静默期间),并仅向远程服务发送关键词和暂停之间的那些字词。助理1002然后继续履行用户的意图,包括执行适当的任务流和/或对话流。

例如,在收听模式中,用户可以说“你好,助理——帮我找到附近的加油站……”在这种情况下,配置助理1002以检测短语“你好,助理”作为唤醒,以指出指向助理1002的言辞开始。助理1002然后处理接收的音频以确定应当向远程服务发送什么用于进一步处理。在这种情况下,助理1002将字词“站”后面的暂停检测为言辞的结束。因此,向远程服务发送短语“帮我找到附近的加油站”以进一步分析(例如,意图推断、自然语言处理等)。然后助理继续执行一个或多个步骤,诸如参考图7所述的那些步骤,以便满足用户的请求。

在其他实施例中,检测免提情景还可能影响关于对话的其他参数的选择,例如:

·向用户提供的选项列表的长度;

·是否阅读列表;

·是否询问具有单个或多个有价值答案的问题;

·是否提示仅能够利用直接操控界面给出的数据。

因此,在各种实施例中,一旦检测到免提情景,其就是可用于调整诸如多模虚拟助理1002的复杂系统的各处理步骤的系统侧参数。本文描述的各种方法提供了针对免提情景调整助理1002的一般过程的方式,以支持来自同一下层系统的一定范围的用户体验。

在2011年9月30日提交的名称为“Using Context Information to Facilitate Processing of Commands in a Virtual Assistant”的美国实用新型申请序列号13/250,854中描述了用于收集、传送、表示和访问情景的各种机构,在此通过引用将其整个公开并入本文。本领域的技术人员将认识到,此类技术也适用于免提情景。

使用案例

以下使用案例是作为在免提情景中操作助理1002的实例而呈现的。本领域的技术人员将认识到使用案例是示例性的,是仅仅为了例示性目的给出的。

电话使用案例

在一个实施例中,在处于免提情景中时,如果用户能够不轻击或通过其他方式触摸设备而指定要呼叫的人,则助理1002允许用户能够呼叫任何人。实例包括通过联系人姓名呼叫,通过电话号码(由用户记下的数字)呼叫等。可以通过附加的口头提示解决模糊不清的问题。下面示出了实例。

实例1:呼叫联系人,明确

·用户的口头输入:“呼叫Adam Smith”

·助理1002的口头输出:“呼叫Adam Smith,移动电话。”

·拨打电话

对于以下使用案例的任一种,会发生类似的交互:

·按照姓名呼叫联系人(“呼叫adam smith”)

·按照姓名呼叫联系人,非默认电话号码(“呼叫adam smith的移动电话”)

·按照号码呼叫(“呼叫800 555 1212”)

·按照关系别名呼叫联系人(“呼叫我妈妈”)

·按照位置别名呼叫联系人(“给家里打电话”)

·通过FaceTime呼叫(“通过facetime联系adam smith”)

·从情景回呼(“给他回电话”)

实例2:取消电话呼叫

·用户的口头输入:“呼叫Adam Smith”

·助理1002的口头输出:“呼叫Adam Smith,移动电话。”

·用户记录的这是错误的呼叫人;用户单次按下主菜单按钮以取消呼叫,或者说“停止”

·呼叫被取消

实例3:按照姓名呼叫,不明确

·用户的口头输入:“呼叫Adam”

·助理1002的口头输出:“我找到<语音变化>Adam的多个匹配项”

·助理1002的视觉输出:“我找到<语音变化>Adam的多个匹配项”

·助理1002的口头输出:读出姓名

·助理1002的视觉输出:

明确的菜单

Adam Cheyer家庭电话

Adam Sandler家庭电话

Adam Smith移动电话

·用户的口头输入:“Adam Cheyer”

·助理1002的口头输出:“呼叫Adam Cheyer”

·拨打电话

实例4:按照姓名呼叫,双倍不明确

·用户的口头输入:“呼叫Paul”

·助理1002的口头输出:“我找到<语音变化>Paul的多个匹配项”

·助理1002的视觉输出:“我找到<语音变化>Paul的多个匹配项”

·助理1002的口头输出:读出姓名

·助理1002的视觉输出:

明确的菜单

Paul Holden家庭电话

Paul Marcos iPhone

Paul Marcos移动电话

Paul Marcos家庭电话

Pablo Picasso家庭电话

·用户的口头输入:“Paul Marcos”

·助理1002的口头输出:“Paul Marcos的哪个号码:iPhone、移动电话或家庭电话?”

·助理1002的视觉输出:“Paul Marcos的哪个号码?”

·助理1002的视觉输出:

明确的菜单

Paul Marcos iPhone

Paul Marcos移动电话

Paul Marcos家庭电话

·用户的口头输入:“移动电话”

·助理1002的口头输出:“呼叫Paul Marcos<暂停>移动电话”

·拨打电话

实例5:按照名称呼叫公司,无模糊

·用户的口头输入:“呼叫旧金山的sony metreon”

·助理1002的口头输出:“我在第四大街上找到了AMC Loews Metreon 16”

·助理1002的视觉输出:“我在第四大街上找到了AMC Loews Metreon 16”

·助理1002的视觉输出:

本地搜索片段

AMC Loews Metreon 16

101 Fourth St,San Francisco

(888)262-4386

<取消按钮><呼叫按钮>

·助理1002的口头输出:“我应该打电话吗?”

·用户的口头输入:“打吧”

·助理1002的口头输出:“呼叫AMC Loews Metreon 16”

·拨打电话

实例6:按照名称呼叫公司,多个匹配项

·用户的口头输入:“呼叫walgreens”

·助理1002的口头输出:“我为<改变语音>Walgreens找到几条匹配项”

·助理1002的视觉输出:“我为<改变语音>Walgreens找到几条匹配项”

·助理1002的视觉输出:

本地搜索片段的列表

Walgreens Store Los Gatos

423 N Santa Cruz Ave,Los Gatos

Walgreens

1570 Campbell Ave,Campbell,CA

Walgreens

20011 Bollinger Rd,Cupertino,CA

Walgreens

1334 Saratoga Ave,San Jose,CA

Walgreens

2680 Union Ave,San Jose,CA

·助理1002的口头输出:“我应该为您阅读它们吗?”

·用户的口头输入:“是”

·助理1002的口头输出:“Walgreens store los gatos on 423 North Santa Cruz Avenue in Los Gatos<暂停>2。Walgreens on 1570 Campbell Avenue in Campbell<暂停>3。”

·用户的口头输入:“Cupertino中那一家”

·助理1002的口头输出:“呼叫Cupertino的Walgreens”

·拨打电话

实例7:在车中拨打已安排的呼叫

·用户开始驾车回家

·助理1002发出在车中提醒的声调

·助理1002的视觉输出:

提醒提示呼叫

Adam Smith

<关闭按钮>

<呼叫按钮>

·用户的口头输入:“阅读它”

·助理1002的口头输出:“您有呼叫Adam Smith的提醒”

·用户的口头输入:“现在呼叫他”

·助理1002的口头输出:“呼叫Adam Smith,移动电话。”

·拨打电话

实例8:播放新的语音邮件

·用户的口头输入:“播放语音邮件”

·助理1002的口头输出:“您有三条新的语音邮件消息”

·助理1002播放语音邮件,一次一条,带提示

SMS文本消息使用案例

实例9:阅读单个文本消息提示

·助理1002的音频输出:阅读一条或多条提示;或生成指示传入的文本消息的声音

·助理1002的视觉输出:

文本消息

Mary Richards

晚上有时间一起吃晚饭吗?

<关闭按钮><回复按钮>

·用户的口头输入:“阅读它”

·助理1002的口头输出:“来自Mary Richards的消息<改变语音>晚上有时间一起吃晚饭吗?”

实例10:回复文本消息(继续实例8)

·用户的口头输入:“回复<暂停>没问题,8点怎么样?”

·助理1002的口头输出:“准备好用消息回复Mary Richards<改变语音>,确认8点怎么样”

·助理1002的视觉输出:

致:Mary Richards

确认8点怎么样

<取消按钮><发送按钮>

·用户的口头输入:“发送它”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

实例11:发送文本消息到一位接收者

·用户的口头输入:“告诉Lisa我会晚15分钟到”

·助理1002的口头输出:“准备好例如如下消息向Lisa Gonzalez发送文本<改变语音>我会晚15分钟到”

·助理1002的视觉输出:

文本消息

致:Lisa Gonzalez

我会晚15分钟到

<取消按钮><发送按钮>

·用户的口头输入:“发送它”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

实例12:发送文本消息到一位接收者——不明确

·用户的口头输入:“利用如下消息向Adam发送文本:在哪里见面?”

·助理1002的口头输出:“我找到<语音变化>Adam的多个匹配项”

·助理1002的口头输出:读出姓名

·助理1002的视觉输出:

明确的菜单

Adam Cheyer家庭电话

Adam Sandler家庭电话

Adam Smith移动电话

·用户的口头输入:“Adam Cheyer”

·助理1002的口头输出:“Adam Cheyer”

·助理1002的视觉输出:

文本消息

致:Adam Cheyer

在哪里见面?

<取消按钮><发送按钮>

·助理1002的口头输出:“准备好用如下消息向Adam Cheyer发送文本<改变语音>在哪里见面?”

·用户的口头输入:“发送它”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

实例13:从消息应用阅读SMS消息

·助理1002的视觉输出:

文本消息

Betty Joe Bialowski

Nancy,你可以给我打电话

<关闭按钮><回复按钮>

·用户的口头输入:“阅读它”

·助理1002的口头输出:“来自Betty Joe Bialowski的消息<改变语音>Nancy,你可以给我打电话”

实例14:在消息应用的情景中回复(继续实例12)

·用户的口头输入:“回复<暂停>你好,Nancy”

·助理1002的口头输出:“准备好用消息回复Betty Joe Bialowski<改变语音>你好,Nancy”

·助理1002的视觉输出:

致:Betty Joe Bialowski

你好,Nancy

<取消按钮><发送按钮>

·用户的口头输入:“发送它”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

实例15:阅读所有未读的SMS消息

·助理1002的视觉输出:

Melanie Haber(1)

Betty Joe Bialowski(3)

Audrey Farber(1)

·用户的口头输入:“阅读我的新消息”

·助理1002的口头输出:“您有4条新消息。来自Melanie Haber<改变语音>一起吃晚饭如何?<暂停>来自Betty Joe Bialowski,您有两条消息,<暂停>1。<改变语音>我叫MacGill。<暂停>2。<改变语音>我叫自己Lill。”“<暂停>3。<改变语音>你可以叫我Nancy”

实例16:在消息应用的情景中按照姓名回复

·用户的口头输入:“告诉Audrey我会晚15分钟到”

·助理1002的口头输出:“准备好用如下消息向Audrey Farber发送文本<改变语音>我会晚15分钟到”

·助理1002的视觉输出:

文本消息

致:Audrey Farber

我会晚15分钟到

<取消按钮><发送按钮>

·助理1002的口头输出:“我应当发送它吗?”

·用户的口头输入:“是”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

实例17:向多个接收者发送文本消息

在一个实施例中,确定这项任务在免提情景的范围之外。因此,助理1002返回到轻击以进行明确。

·用户的口头输入:“告诉Lisa,Paul和Nancy,我们重要的会面,我会晚15分钟到”

·助理1002的口头输出:“请在这些人中间选择”

·助理1002的视觉输出:GUI选择多个接收者

·用户通过GUI选择接收者

·助理1002的口头输出:“准备好用如下消息向Lisa Gonzalez、Paul Marcos和Audrey Farber发送文本<改变语音>我们重要的会面,我会晚15分钟到”

·助理1002的视觉输出:

文本消息

致:Lisa Gonzalez、Paul Marcos、Audrey Farber

我们重要的会面,我会晚15分钟到

<取消按钮><发送按钮>

·用户的口头输入:“发送它”

·助理1002的音频输出:“发送”;或者生成传出的文本消息声音

提示和提醒使用案例

实例18:阅读单个提醒提示

·助理1002发出提醒声调

·助理1002的视觉输出:

提醒

呼叫Mary Richards

<关闭按钮><呼叫按钮>

·用户的口头输入:“阅读它”

·助理1002的口头输出:“呼叫Mary Richards的提醒”

实例19:执行提醒提示(继续实例17)

·用户的口头输入:“给她打电话”

·助理1002的口头输出:“正在拨打Mary Richards的移动电话”

·拨打电话

实例20:创建具有提示的新提醒

·用户的口头输入:“提醒我在下午5点呼叫Bob Jones”

·助理1002的口头输出:“请确认:提醒在今天下午5点<改变语音>给Bob Jones打电话”

·助理1002的视觉输出:

请确认提醒

给Bob Jones打电话

提醒时间:今天下午5:00

<取消><保存>

·暂停

·助理1002的口头输出:“正确吗?”

·用户的口头输入:“正确,保存”

·助理1002的口头输出:“您的提醒已经保存”

实例21:创建没有提示的新提醒P1

·用户的口头输入:“提醒我拿面包”或“记得拿面包”

·助理1002的口头输出:“请确认:记得拿面包”

·助理1002的视觉输出:

请确认提醒

拿面包

<取消><保存>

·暂停

·助理1002的口头输出:“正确吗?”

·用户的口头输入:“对”

·助理1002的口头输出:“已经向您的待办事项添加”

日历使用案例

实例22:创建简单约会(给定描述和日期/时间)

·用户的口头输入:“明天2点安排会议,规划公司的野餐活动”

·助理1002的口头输出:“已经添加到您的日历上,明天下午2点”

·助理1002的视觉输出:

描述:规划公司的野餐活动

时间:明天下午2点

实例23:创建简单约会(未给出描述)

·用户的口头输入:“明天2点会见Carol”

·助理1002的口头输出:“已经添加到您的日历上,明天下午2点”

·助理1002的视觉输出:

描述:会见

时间:明天下午2点

实例24:创建简单约会(未给出时间)

·用户的口头输入:“下周四会见牙医”

·助理1002的口头输出:“下周四什么时间?”

·用户的口头输入:“3点钟”

·助理1002的口头输出:“已经添加到您的日历上,下周四下午3点”

·助理1002的视觉输出:

描述:会见牙医

时间:下周四——下午3点

实例25:创建简单约会(未给出日期或时间)

·用户的口头输入:“安排会议,规划公司的野餐活动”

·助理1002的口头输出:“您想什么时间开会?”

·助理1002的视觉输出:可编辑的约会表格

·用户的口头输入:“星期二3点钟”

·助理1002的口头输出:“已经添加到您的日历上,星期二下午3点”

·助理1002的视觉输出:

描述:开会规划公司的野餐活动

时间:星期二——下午3点

本领域的技术人员将认识到,以上实例仅仅是例示在特定状况下使用免提情景。额外的用法包括,例如,地图、播放媒体诸如音乐等。

以下使用案例更具体地涉及到如何在免提情景中,一般地以及在具体域中(例如,在本地搜索域、日历域、提醒域、文本消息域和电子邮件域等中),向用户呈现项目列表。用于在免提和/或免视情景中呈现项目列表的具体算法被设计成以直观个性方式向用户提供关于项目的信息,同时,避免以不必要的细节给用户带来过大负担。要通过基于语音的输出和/或伴随的文本界面向用户呈现的每条信息都是从很多条可能相关的信息中仔细选出的,并进行任选的释义,以提供平顺且个性化的对话流。此外,在免提和/或免视情景中向用户提供信息时,将信息(尤其是无限制的)分成适当大小的组块(例如,页面、子列表、类别等),使得用户不会被过多条信息同时或短时间内冲击。使用已知的认知限制(例如,成年人通常仅能够一次处理3-7条信息,儿童或残疾人能够同时处理更少的信息)来指导选择适当的组块大小,以及呈现对信息的分类。

一般的免提列表阅读

免提列表阅读是用户能够在涉及超过一个项目的结果中导航的核心跨域能力。该项目可以是与特定域相关联的普通数据项类型,诸如本地搜索的结果、一组电子邮件、一组日历条目、一组提醒、一组消息、一组语音邮件消息、一组文本消息等。通常,该组数据项可以按照特定顺序(例如,按照时间、位置、发送者和其他标准)排序,因此产生列表。

针对免提列表阅读的一般功能要求包括如下一项或多项:(1)通过基于语音的输出提供项目列表的口头概述(例如,“有6个项目。”);(2)任选地,在屏幕上提供表示项目列表的视觉片段列表(例如,在单个对话窗口之内);(3)通过项目来重复并大声阅读每个项目;(4)阅读项目的特定于域的释义(例如,“在日期Y来自X的关于Z的消息”);(4)阅读项目的无限制内容(例如,电子邮件的内容主体);(5)口头上对个体项目的无限制内容“编页码”(例如,电子邮件内容主体的章节);(6)允许用户通过开始语音请求对当前项目进行处理(例如,对于电子邮件项目,用户可以说出“回复”以开始回复动作);(7)允许用户打断项目和/或释义的阅读,以进入另一个请求;(8)允许用户暂停并恢复内容/列表的阅读,和/或跳到列表中的另一个项目(例如,下一个或前一个项目、第三个项目、最后一个项目,具有特定属性的项目等);(9)允许用户以自然语音引用列表中的第N项(例如,“回复第一条”);以及(10)使用列表作为自然语言消除歧义的情景(例如,在阅读消息列表期间,用户考虑到列表中消息的相应发送者输入“回复来自Mark的那个”)。

有几种基本的交互模式用于向用户呈现关于项目列表的信息,并用于启发用户输入且在呈现信息期间对用户命令做出响应。在一些实施例中,在呈现关于数据项列表的扩张时,首先提供基于语音的概述。如果已经基于特定一组选择标准(例如,新的、未读、来自Mark、用于今天、附近的、Palo Alto中的、餐馆等)识别了数据项列表和/或列表属于特定的特定于域的数据类型(例如,本地搜索结果、日历条目、提醒、电子邮件等),该概述对项目列表进行释义:使用的特定释义是特定于域的,通常指定用于选择数据项列表的一种或多种标准。此外,为了呈现数据项列表,该概述还指定列表的长度,以为用户提供阅读有多长以及涉及多少的一些概念。例如,概述可以是“您有3条来自Anna KareninaAlexei Vronsky的新消息。在这一概述中,还提供了列表长度(例如3)、用于为列表选择项目的标准(例如,未读/新的和发送者=“Anna Karenina”和“Alexei Vronsky”)。推测起来,用于选择项目的标准是由用户指定的,通过在概述中包括该标准,信息的呈现会看起来对用户请求响应度更高。

在一些实施例中,交互还包括为基于语音的提示提供选项,以向用户阅读列表和/或每个项目的无限制内容。例如,数字助理可以在提供概述之后提供基于语音的提示,诸如“我应当为您阅读它们吗?”。在一些实施例中,仅在免提模式中提供提示,因为在手动模式中,用户可能容易地在屏幕上阅读列表并在其中滚动,而不是收听被大声阅读的内容。在一些实施例中,如果原始命令是阅读项目列表,那么数字助理将继续大声阅读数据项,而不首先提供提示。例如,如果用户输入是“阅读我的新消息。”然后,数字助理继续阅读消息而不询问用户其是否希望大声阅读消息。或者,如果用户输入是“我有来自Henri的任何电子邮件吗?”由于原始用户输入未明确请求数字助理“阅读”消息,因此数字助理将首先提供消息列表的概述,并将提供阅读该消息的提示。除非用户提供这样做的确认,否则该消息将不会被大声阅读。

在一些实施例中,数字助理从列表中的每个数据项识别文本数据字段,并基于特定于域的模板和从数据项识别的实际文本生成项目内容的特定于域且特定于项目的释义。一旦生成了用于数据项的相应释义,数字助理就一个接一个地重复列表中的每个项目,并大声阅读其相应的释义。数据项中文本数据字段的实例包括日期、时间、人名、位置名称、公司名称和其他特定于域的数据字段。特定于域的可讲出文本模板将特定于域的项目类型的不同数据字段布置成适当的次序,并将数据字段与适当的连接词连接,并向不同文本字段的文本应用适当的变型(例如,基于语法、认识和其他要求的变化),以生成数据项的简明、自然且易于理解的释义。

在一些实施例中,在重复项目列表并提供信息(例如,项目的特定于域,特定于项目释义)时,数字助理将上下文标记设置为当前项目。在列表中阅读时,上下文标记从一个项目到另一个项目提前出现。如果用户发出命令从一个项目跳跃到另一个项目,上下文标记也可以从一个项目跳到另一个项目。数字助理使用上下文标记标识数字助理和用户之间交互的当前情景,从而能够在该情景中正确解释用户的输入。例如,用户能够在任何时间打断列表阅读,并发出适用于所有或多个列表项的命令(例如“回复”),并使用上下文标记识别应当应用命令的目标数据项(例如,当前项目)。在一些实施例中,通过文本到语音处理向用户提供特定于域、特定于项目的释义。在一些实施例中,还在屏幕上提供释义的文本版本。在一些实施例中,不在屏幕上提供释义的文本版本,而是在屏幕上呈现数据项的完整版本或详细版本。

在一些实施例中,在阅读数据项的无限制内容时,首先将无限制内容分成章节。该划分可以基于段落、行、字词数量和/或无限制内容的其他逻辑划分。目标是减轻用户的认知负担,且不会因为过多的信息或花费过长时间而使用户负担过重。在阅读无限制内容时,针对每个区段生成语音输出,一次向用户提供一个区段。一旦提供了针对一个区段的语音输出,就提供口头提示,询问用户是否希望继续为下一个区段提供语音输出。重复这个过程,直到读完无限制内容的所有区段,或直到用户要求停止阅读无限制内容为止。在停止阅读针对一个项目的无限制内容时(例如,在已经读完所有区段时或在用户停止阅读时),可以开始列表中下一项目的特定于项目的释义的阅读。在一些实施例中,数字助理自动恢复阅读列表中下一项目的特定于项目的释义。在一些实施例中,数字助理要求用户在恢复阅读之前确认。

在一些实施例中,数字助理对来自多个输入信道的用户输入完全做出响应。例如,在数字助理正在项目列表中阅读时或在阅读一个项目的信息中间,数字助理允许用户通过自然语言命令、触敏表面或显示器上的手势和其他输入接口(例如鼠标、键盘、光标等)导航到其他项目。实例导航命令包括:(1)下一个:停止阅读当前项目,开始阅读下一个。(2)更多:阅读当前项目的更多内容(如果其被截取或分割),(3)重复:再次阅读最后的语音输出(例如,重复刚刚阅读的无限制内容的项目或区段的释义),(4)前一个:停止阅读当前项目并开始阅读当前项目前面的一个项目,(5)暂停:停止阅读当前项目并等待命令,(6)恢复:如果暂停的话,继续阅读。

在一些实施例中,交互模式还包括总结输出。例如,在已经读完最后一个项目时,阅读用于结束列表的任选、特定于域的文本模式。例如,用于阅读电子邮件列表的适当总结输出可以是“这是全部5封电子邮件”,“这是全部的消息”,“这是最后消息的结尾”,等等。

以上一般性列表阅读实例适用于多个域,以及特定于域的项目类型。以下使用案例提供了在不同域中以及针对不同特定于域的项目类型的免提列表阅读的更详细实例。每个特定于域的项目类型还具有专门适用于该项目类型和/或域的项目的定制。

本地搜索结果的免提列表阅读

本地搜索结果是通过本地搜索获得的搜索结果,例如,搜索公司、地标和/或地址。本地搜索的实例包括搜索地理位置附近或地理区域之内的餐馆,搜索路线沿线的加油站,搜索特定连锁店的位置等。本地搜索是域的实例,本地搜索结果是特定于域的项目类型的实例。下文提供了用于在免提情景中向用户呈现本地搜索结果列表的算法。

在该算法中,一些关键参数包括N:搜索引擎针对本地搜索请求而返回的结果数量,M:要向用户显示的搜索结果最大数量,以及P:每“页”的项目数(即,在屏幕上同时向用户呈现和/或在同一子区段概述下提供)。

在一些实施例中,数字助理检测免提情景,并整理针对免提情景的结果列表。换句话讲,数字助理将所有相关结果的列表整理成不超过M:要向用户显示的搜索结果最大数量。M的适当数字为大约3-7。这一最大值背后的合理性在于:首先,用户不太可能在免提模式中执行深度搜索,因此,通常会有少量的最相关项目满足用户的信息需求;第二,用户不太可能在免提模式中时能够在脑中同时记住过多信息,因为用户可能会因为其他任务而注意力分散(例如,驾驶或参与其他手动工作)。

在一些实施例中,数字助理在文本中总结结果列表,并从文本生成整个列表的特定于域的概述(以文本形式)。此外,调整概述以呈现本地搜索结果,并因此位置信息在概述中尤其相关。例如,假设用户请求针对形式为“类别,当前位置”的查询的搜索结果(例如,从自然语言搜索请求“帮我找到附近的中餐馆”或“这里哪儿能吃饭?”得到的查询)。然后,数字助理查看搜索结果,并识别出在用户当前位置附近的搜索结果。然后,数字助理以“我在附近找到几个<类别复数>”的形式生成搜索结果的概述。在一些实施例中,在概述中不提供数量,除非N<3。在一些实施例中,如果数量小于6,则在概述中提供搜索结果的数量。

对于另一个实例而言,假设用户请求针对形式为“类别,其他位置”的查询的搜索结果(例如,在用户当前不在Palo Alto时从自然语言搜索请求“帮我在Palo Alto找到一些浪漫的餐馆”得到的查询,或者“看完电影哪里能吃饭?”,其中电影将在与用户当前位置不同的位置上映)。数字助理将生成概述(以文本形式),形式为“我在<位置>中找到几家<类别复数>”。(或“附近”而非“其中”,对于给定的<位置>,无论哪个更适当使用哪个。)

在一些实施例中,在显示屏上提供概述的文本形式(例如,在对话窗口之内)。在提供整个列表的概述之后,如通常那样在显示器上呈现结果列表(例如,最多M个项目,例如M=25)。

在一些实施例中,在屏幕上呈现结果列表之后,向用户提供基于语音的概述。可以通过概述的文本版本的文本到语音转换来生成基于语音的概述。在一些实施例中,不在显示屏上提供内容,此时仅提供基于语音的概述。

一旦向用户提供了基于语音的概述,就可以提供第一“页”结果的基于语音的子区段概述。例如,子区段概述可以列出该“页”上前P个项目的名称(例如,公司名称)。具体地,

a.如果这是第一页,子区段概述为“包括<名称1>、<名称2>……和<名称P>”,其中<名称1><名称P>是前P个结果的公司名称,在列表概述“我在附近找到几个<类别复数>”之后立即呈现子区段概述。……”

b.如果这不是第一页,子区段概述为“接下来P个为<名称1>、<名称2>……<名称P>”等。

数字助理以上述方式重复通过所有“页”的搜索结果列表。

对于每页结果,执行以下步骤:

a.在一些实施例中,在显示器上,以视觉形式(例如,以文本形式)呈现当前页搜索结果。视觉上下文标记指示正在阅读的当前项目。用于每个搜索结果的文本释义包括顺序位置(例如,第一、第二等)、距离以及与搜索结果相关联的方位。在一些实施例中,用于每个结果的文本释义仅占用显示器上列表中的单行,使得列表显得简洁而易读。为了将文本保持在单行中,不呈现公司名称,文本释义的格式为“第二:向南0.6英里”。

b.在一些实施例中,针对每个结果提供个体视觉片段。例如,在显示器上显示的文本释义滚动时可以显露出每个结果的片段,使得1行文本气泡在顶部并且片段在下方配合。

c.在一些实施例中,在按照顺序次序向用户逐个呈现项目或其释义时,上下文标记或上下文光标在整个项目列表中移动。

d.在讲话时,宣告当前项目的顺序位置、公司名称、短地址、距离和方位。短地址例如是完整地址的街道名称部分。

1.如果项目是第一个(与页无关),利用“最近的是”、“评级最高的是”、“最匹配的是”或仅仅用“第一个是”来指示排序次序。

2.否则说“第二个是”(第三,第四等)。继续递增页码,即,如果页大小P=4,第2页上的第一个项目会是“第五个”。

3.对于短地址,使用“在<街道名称>上”(没有街道号)。

4.如果结果.地址.城市与所在地.城市不同,那么添加“在<城市>”。

5.例如,如果小于一英里,则说成“点x英里”。如果小于1.5英里,说成“1英里”。否则四舍五入到最接近的整英里数,说成“X英里”。在场所规定的情况下,使用公里而非英里。

6.对于方位,使用北、南、东或西(没有中间值)。

e.仅对于这一页的第一项,讲出用于如下选项的提示:“您想给它打电话,得到方向指引,还是到下一个?”

f.收听

g.在当前结果的情景中处理自然语言命令(例如,如基于上下文标记上下文标记的当前位置所确定的那样)。如果用户说出“下一个”或等价字词,则继续到列表中的下一个项目。

h.如果这是当前页的最后项目,返回步骤a或转到下一页。

针对剩余“页”的每个结果重复以上步骤,直到列表中没有更多页结果为止。

在一些实施例中,如果用户询问到达与结果项目相关联的位置的方向,且用户已经在规划的路线上的导航模式中,数字助理能够提供语音输出,说出“您已经在路线上导航。希望用通往<项目名称>的方向代替这条路线吗?”如果用户肯定地回复,数字助理给出通往与该结果相关联的位置的方向。在一些实施例中,数字助理提供语音输出“通往<项目名称>的方向”并呈现导航界面(例如,地图和方向界面)。如果用户给出否定的回复,则数字助理提供语音输出“好的,我不会替换您的路线。”如果处于免视模式,则恰好在这里停止。如果用户说“在地图上显示它,”但数字助理检测到免视情景,则数字助理生成语音输出,说“对不起,您的车不会让我在驾驶期间在地图上显示项目”或某种其他标准免视警告。如果未检测到免视情景,则数字助理提供语音输出,说道“这里是<项目名称>的位置”并再次针对该项目示出单个项目片段。

在一些实施例中,在显示项目时,用户例如通过说出“呼叫”来请求呼叫项目。数字助理识别正确的目标结果,并发起通往与目标结果相关联的电话号码的电话连接。在做出电话连接之前,数字助理提供语音输出,说道“呼叫<项目名称>”。

下文提供了用于识别动作命令的目标项目/结果的若干自然语言使用案例。例如,用户可以在命令中命名项目,然后基于在命令中指定的特定项目名称来识别目标项目。用户还可以使用“它”或其他标引来指示当前项目。数字助理可以基于上下文标记的当前位置来识别正确的目标项目。用户也可以使用“第n个”来指示列表中的第n个项目。在一些情况下,第n个项目可以在当前项目之前。例如,一旦用户听到名称概述列表并正在收听关于项目1的信息,用户就可以说“通往第3个的方向”。作为响应,数字助理将相对于列表中的第3个项目执行“方向”动作。

针对另一个实例,用户可以讲出公司名称以识别目标项目。如果列表中的多个项目匹配公司名称,那么,数字助理选择与公司名称匹配的最后阅读的项目作为目标项目。通常,数字助理在时间上返回消除当前项目(即,上下文标记指向的项目)的歧义,然后从当前项目向前进。例如,如果上下文标记在10个项目中的项目5上,用户说出匹配项目2、4、6和8的选择标准(例如,特定公司名称或结果的其他属性)。然后,数字助理选择项目4作为针对命令的目标项目。在另一种情形中,如果上下文标记位于项目2上,且项目3、5和7匹配选择标准,那么数字助理选择项目3作为命令的目标项目。在这种情况下,当前上下文标记之前没有任何东西匹配选择标准,并且项目3是与上下文标记最近的项目。

在呈现本地搜索结果的列表时,数字助理允许用户通过发出以下命令而在列表附近移动:下一个、前一个、返回、再次读它或重复。

在一些实施例中,在用户提供仅指定项目的语音命令但不指定适用于项目的任何动作时,然后,数字助理提示用户指定应用动作。在一些实施例中,由数字助理提供的提示提供了适用于特定项目类型的项目的一个或多个动作(例如,对本地搜索结果的动作,诸如“呼叫”、“方向”、“在地图上显示”等)。例如,如果用户简单地说“第3个”或“chevron”而没有适用的命令动词(例如“呼叫”或“方向”),那么数字助理利用语音输出“您想呼叫它还是得到方向?”提示用户。如果用户的语音输入已经指定了命令动词或适用于该项目的动作,那么,数字助理根据命令对项目作出动作。例如,如果用户的输入是“呼叫最近的加油站”等。数字助理识别目标结果(例如,对应于最近加油站的结果),并发起通往与目标项目相关联的电话号码的电话连接。

在一些实施例中,数字助理能够处理与不同域和情景相关的用户输入并对其做出响应。如果用户在另一个域中做出与情景无关、完全指定的请求,那么,数字助理暂停或终止列表阅读,并对其他域中的请求做出响应。例如,在数字助理正在列表读取期间在询问用户“您想呼叫它,得到方向还是到下一个”的过程中时,用户可以说出“现在北京是什么时间?”响应于这一新的用户输入,数字助理确定感兴趣的域已经从本地搜索和列表读取切换到另一个时钟/时间域。基于此类确定,数字助理执行在时钟/时间域中请求的动作(例如,启动时钟应用或提供北京当前的时间)。

下文提供了响应于“找到我附近的加油站”的搜索请求呈现加油站列表的另一个更详细实例。

在该实例中,参数为:页面大小P=4,最大结果数量M=12,以及查询:{类别(例如,加油站),最近,按距当前位置的距离排序}

实施以下任务流以呈现搜索结果列表(即,基于本地搜索请求识别的加油站)。

1.按照与用户当前位置的距离对加油站排序,并将搜索结果列表精简到总数量M。

2.为列表生成仅有文本的总结:“我在您附近找到几家加油站。”(在最多2行上配合)。

3.在显示器上针对完整结果列表显示N个本地搜索片段的列表。

4.生成并提供基于语音的概述:“我在您附近找到几家加油站,”

5.生成并提供基于语音的子区段概述:“包括Chevron加油站、Valero、Chevon和Shell加油站。”

6.针对列表中的<项目1>,执行以下步骤a至步骤g:

a.在文本中提供特定于项目的释义:“第一:向南0.7英里”。

b.为Chrvron加油站显示视觉片段。

c.对这个项目设置上下文标记(即<项目1>)。

d.提供基于语音的特定于项目的释义:“最近的是North De Anza Boulevard上的Chevon加油站,向北0.7英里。”

e.提供基于语音的提示,提供关于适用于该页第一项目(即<项目1>)的动作的选项:“您想给它打电话,得到方向指引,还是到下一个?”

f.蜂鸣音

g.用户说道“下一个”。

6.继续进行到下一个项目,<项目2>

a.在文本中提供项目的特定于项目的释义:“第二:向南0.7英里”。

b.为Valero示出视觉片段。

c.对这个项目设置上下文标记(即<项目2>)

d.提供该项目的基于语音的特定于项目的释义:“第二个是North De Anza Boulevard上的Valero,向北0.7英里。”

e.不提供关于适用于第二项目的动作的提示。

f.蜂鸣音

g.用户说道“下一个”。

6.<项目3>

a.以文本形式提供项目的特定于项目的释义:“第三:向南0.7英里”。

b.为Chevon示出视觉片段。

c.对这个项目设置上下文标记。

d.提供这个项目的基于语音的特定于项目的释义:“第三个是South De Anza Boulevard上的Chevron,向南0.7英里。”

e.不提供关于适用于第三项目的动作的提示。

f.蜂鸣音

g.用户说道“下一个”。

6.<项目4>

a.在文本中提供项目的特定于项目的释义:“第四:向南0.7英里”。

b.为Shell加油站显示视觉片段。

c.对这个项目设置上下文标记。

d.提供该项目的基于语音的特定于项目的释义:“第四个是South De Anza Boulevard上的Shell加油站,向南1英里。”

e.不提供关于适用于第二项目的动作的提示。

f.蜂鸣音

g.用户说道“下一个”。

5.<第2页>开始新一页项目

d.为第二页提供基于语音的区段概述:“后面4个是Cupertino的Smog Pro&Auto Service、Shell Station、Valero和Rotten Robbie。”

6.<项目5>

a.在文本中为本项目提供特定于项目的释义:“第五:向南1英里”。

b.为Cupertino的Smog Pro&Auto Service显示视觉片段。

c.对这个项目设置上下文标记。

d.提供这个项目基于语音的特定于项目的释义:“第五个是North de Anza Boulevard上的Cupertino的Smog Pro&Auto Service,向东1英里。”

e.提供基于语音的提示,该提示提供关于适用于该页第一项目(即<项目5>)的动作的选项:“您想给它打电话,得到方向指引,还是到下一个?”

f.蜂鸣音

g.用户说道“下一个”。

<项目6>

a.在文本中提供项目的特定于项目的释义:“第六:向西2英里。”

b.为Shell加油站显示视觉片段。

c.对这个项目设置上下文标记。

d.提供这个项目基于语音的特定于项目的释义:“第六个是Stevens Creek Boulevard上的Shell加油站,向西1英里。”

e.不提供关于适用于第二项目的动作的提示。

f.蜂鸣音

g.用户说道“方向”。

h.基于上下文标记的位置来确定目标项目,并将当前项目识别为目标项目。为当前项目调用方向检索。

针对本地搜索域中的列表阅读的以上实例仅仅是示例性的。针对本地搜索域公开的技术还适用于其他域和特定于域的项目类型。例如,列表阅读算法和呈现技术还可以适用于阅读本地搜索域外部的公司列示的列表。

阅读提醒

在免提模式中阅读提醒有两个重要部分:选择要阅读哪些提醒并决定如何阅读每条提醒。对于免提模式而言,对要呈现的提醒列表进行过滤,得到一组提醒,它们是与用户相关联的所有可用提醒的子集。此外,还可以基于各种提醒属性将要在免提情景中向用户呈现的该组提醒分成有意义的子组,提醒属性诸如是提醒触发时间、触发位置和用户或用户的设备可以执行的其他动作或事件。例如,如果某人说“我的提醒是什么”,助理回复“至少25……”可能没有太大帮助,因为用户不太可能有时间或感兴趣一次听到所有25条提醒。相反,要向用户呈现的提醒应当相当小,并且是现在相关的可执行一组提醒。例如“您有三条最近的提醒。”“您今天有4条提醒。”“您今天有5条提醒,1条是针对行进时的,4条是针对到家之后的。”

有几种结构化数据可用于帮助确定提醒是否是现在相关的,包括当前和触发日期/时间、触发位置和触发动作。用于选择现在哪些提醒相关的选择标准可以基于这些结构化数据中的一条或多条结构化数据。对于触发日期/时间,对于每条提醒,有提示时间和到期日期。

选择标准可以基于提醒的提示时间和到期日期以及当前日期和时间或其他用户指定的日期和时间之间的匹配。例如,用户可以询问“我的提醒是什么”,选择一小组(例如,5个)最近的提醒和/或触发时间(例如,提示时间和/或到期时间/日期)接近当前时间的即将到来的提醒,以向用户进行免提列表阅读。对于位置触发而言,可以在用户离开当前位置和/或到达另一个位置时触发提醒。

选择标准可以基于当前位置和/或用户指定的位置。例如,在用户离开当前位置时,用户可以说“我的提醒是什么”,助理可以选择一小组触发条件与用户离开当前位置相关联的提醒。针对另一个实例,用户可以在进入商店时说“我的提醒是什么”,可以选择与该商店相关联的提醒加以呈现。对于动作触发器,可以在助理检测到用户正在执行一种动作(例如,开车或步行)时触发提醒。另选地或除此之外,提醒中指定的要由用户执行的动作类型也可以用于选择相关提醒以用于呈现。

选择标准可以基于用户当前的动作或与提醒相关联的动作触发器。选择标准也可以基于用户当前的动作和用户要根据提醒执行的动作。例如,在用户驾驶的时候问道“我的提醒是什么”时,可以选择与驾驶动作触发器(例如,用于在车中打电话的提醒,用于到加油站的提醒,用于换油的提醒等)相关联的提醒进行呈现。针对另一个实例,在用户步行的时候问道“我的提醒是什么”时,可以选择与适于在用户步行时执行的动作相关联的提醒加以呈现,诸如用于打电话的提醒和用于检查当前花粉计数的提醒、用于涂上防晒霜的提醒等。

当用户在运动车辆中行进时(例如,驾驶或坐在车中),用户可以打电话,并预览接下来或很快就会触发的提醒。用于呼叫的提醒可以形成有意义的组,因为可以在一次坐着的时间内(例如,在用户在车中行进时)连续地拨打电话。

以下描述为免提提醒阅读提供了一些更详细的情形。如果有人在免提情况下说道“我的提醒是什么”,助理提供关于与一个或多个以下类别的提醒相关联的短提醒列表的报告或概述:(1)最近触发的提醒,(2)在用户离开某地时触发的提醒(假设某地是他们刚刚所在的地方),(3)要在到期日最早触发的提醒,(4)要在您到达某处时触发的提醒。

对于提醒而言,呈现各个提醒的次序有时不如概述那样重要。概述将提醒列表置于可以使提醒的任意标题串对用户而言有某种意义的情景中。例如,在用户询问提醒时。助理能够提供概述“您有N个最近到期的提醒,M个针对您行驶的时候,J条提醒针对今天。”在提供提醒列表的概述之后,助理可以继续通过列表中提醒的每个子组。例如,以下是助理能够执行以向用户呈现列表的步骤。

助理提供基于语音的子区段概述:“最近触发的提醒是:”,接着暂停。然后,助理提供提醒内容的基于语音的特定于项目的释义(例如,提醒标题,或提醒的简短描述),“就某事联系那个人。”在子组之内的提醒之间(例如,最近触发的提醒的子组),可以插入暂停,使得用户能够分开提醒,并能够在暂停期间用命令打断助理。在一些实施例中,如果未一直保持双向通信,助理在暂停期间进入收听模式。在提供第一提醒的释义之后,助理继续进行子组中的第二提醒,等等:“<暂停>从公司商店收到一封星际通信的电报。”在一些实施例中,在阅读释义之前提供提醒的顺序位置。然而,由于提醒的顺序不像其对于其他类型数据项那样重要,有时会有意省略提醒的顺序位置,使得通信更简洁。

助理通过首先提供子组概述来继续提醒的第二子组:“针对您行进时的提醒为:”然后,助理逐个进行第二子组中的提醒:“<暂停>给Justin Beaver打电话”“<暂停>结账离开sunset。”在呈现提醒的第二子组之后,助理继续阅读第三子组提醒的子组概述:“今天的提醒是:”然后,助理继续提供第三子组中每条提醒的特定于项目释义:“<暂停>完成该报告。”在呈现第三子组提醒之后,助理通过说出“针对您到家后的提醒是:”来提供第四子组的子组概述:然后,助理继续阅读第四子组中针对提醒的特定于项目释义:“<暂停>从地窖取一瓶酒”,“<暂停>点火。”以上实例仅仅是例示性的,示出了如何可以基于各种属性(例如,相对于当前时间的触发时间、最近触发、即将到来,基于动作触发、基于位置触发等)将相关提醒列表分成有意义子组或类别的想法。以上实例还例示了呈现提醒所用的关键短语。例如,可以提供列表等级的概述,包括子组的描述和每个子组之内的提醒数量。此外,在有超过一个子组时,在呈现子组中的提醒之前提供子组概述。子组概述基于创建该子组所用的且选择子组之内提醒所依据的特性或属性,指出子组的名称或标题。

在一些实施例中,用户将指定用户对哪个特定组的提醒感兴趣。换句话讲,通过用户输入提供选择标准。例如,用户可以明确请求“为我显示要打的电话”或“到家时我需要做什么”“我要在这家商店买什么”等。对于这些请求中的每个请求,数字助理基于自然语言处理从用户输入提取选择标准,并基于用户指定的选择标准和与提醒相关联的相关属性(例如,触发时间/日期、触发动作、要执行的动作、触发位置等)来识别要呈现的相关提醒。

以下是针对特定组的提醒进行阅读的实例:

对于打电话的提醒:用户可以询问“我需要打什么电话”,助理可以说“您有打3通电话的提醒:Amy Joe、Bernard Julia和Chetan Cheyer。”在这个响应中,助理提供概述,接着是提醒的特定于项目的释义。该概述指定用于选择相关提醒的选择标准(例如,要由用户执行的动作是“打电话”),以及相关提醒的数量(例如,3个)。针对打电话的提醒的特定于域、特定于项目释义仅包括要呼叫的人名(例如Amy Joe、Bernard Julia和Chetan Cheyer),在释义中不提供额外的信息,因为此时,姓名对于用户决定是否继续进行提醒的动作(例如,实际拨打一通电话)是足够的。

对于要在特定位置做事情的提醒:用户询问“到家时我需要做什么”,助理可以说“有2条针对您到家时的提醒:<暂停>从地窖取一瓶酒。以及<暂停>点火。”在这个响应中,助理提供概述,接着是提醒的特定于项目的释义。概述指定用于选择相关提醒的选择标准(例如,触发位置是“家”),以及相关提醒的数量(例如,2个)。针对提醒的特定于域、特定于项目释义仅包括要执行的动作(例如,在提醒中指定的动作),并且在释义中不提供任何额外信息,因为用户仅希望预览即将做什么。

以上实例仅仅例示针对提醒域的免提列表阅读。根据相关提醒的具体类型和类别,附加的变化是可能的,并应当在免提情景中向用户呈现。与助理提供的基于语音的输出相随,任选地在屏幕上提供提醒的视觉片段。仍然可以使用诸如重复、下一个等命令在不同子组的提醒之间导航或重复关于一条或多条提醒的信息。

阅读日历事件

以下描述涉及在免提模式中阅读日历事件。针对免提日历事件阅读要考虑的两个主要问题仍然是选择要阅读哪些日历条目以及决定如何阅读每个日历条目。类似于阅读提醒和其他特定于域的数据项类型,选择与用户相关联的所有日历条目的小子集,并分成均包括3-5个条目的有意义子组。子组的划分可以基于各种选择标准,诸如事件日期/时间、提醒日期/时间、事件类型、事件位置、参与者等。例如,如果用户询问“我日历上有什么事”,助理说出“您日历上至少有50个条目”将不会有太大帮助。相反,助理可以呈现关于当天或半天的事件条目的信息,然后根据用户后续命令继续向后进行。例如,用户可以通过简单地说“下一页”而询问下一天的额外事件。

在一些实施例中,按照日期将日历条目划分成子组。每个子组仅包括单日的事件。如果用户询问跨越多天的日期范围的日历条目,则一次呈现与该范围之内单个一天相关联的日历条目。例如,如果用户询问“我的日历上下周是什么”,助理能够利用列表等级概述“您星期一有3个事件,星期二有2个事件,其他天没有事件”做出回复。助理然后能够继续呈现星期一和星期二每天的事件。对于每天的事件,助理能够首先提供该天的子组概述。该概述能够指定该天事件的时间。在一些实施例中,如果事件是全天的事件,助理还在子组概述中提供该信息。例如,以下是实例情形,例示了日历条目的免提阅读:

用户询问“今天我日历上有什么安排。”助理用语音回复:“您的日历上,在上午11点、下午12:30、3:30和7:00有事件。还有一个全天的事件。”在该实例中,用户仅请求单日的事件,并且列表层次的概述是该天事件的概述。

在呈现日历事件的列表时,在大多数情况下,事件时间都是对用户而言最相关的一条信息。使时间列表的表示流线化能够改善用户体验,并使得信息通信更有效。在一些实施例中,如果日历条目的事件时间跨越上午和下午,则在基于语音的概述中仅为第一日历条目和最后日历条目的事件时间提供AM/PM指示。此外,如果所有事件都在上午,则为第一日历条目和最后日历条目的事件时间提供AM指示。如果所有事件都在下午,则为该天的最后事件提供PM指示符,但不为其他事件时间提供AM/PM指示符。从以上AM/PM规则排除中午和午夜。对于一些更明确的实例,以下是能够在日历条目列表概述中提供的:“上午11点、下午12:30、3:30和7点”,“上午8:30,上午9点和10点”,“下午5、6和7:30”,“中午,下午2、4、5、5:30和7点”、“5点、6点和午夜。”

对于全天的事件,助理提供全天事件的计数。例如,在被问及下周的事件时,数字助理可以说“您有(N)条全天事件。”

在阅读相关日历条目的列表时,数字助理首先阅读所有定时的事件,然后是全天事件。如果没有定时事件,那么助理在概述之后直接阅读全天事件的列表。然后,对于列表上的每个事件,助理根据以下模板提供基于语音的特定于项目的释义:<时间><主体><位置>,其中如果在日历条目中未指定位置,可以省略位置。例如,日历条目的特定于项目的释义包括如下形式的<时间>成分:“在上午11点”、“在中午”、“在下午1:30”、“在下午7:15”、“在中午”等。对于全天事件,不需要此类释义。对于<主体>成分,除了事件主题之外,助理任选地指定参与者的数量和/或身份。例如,如果一个事件有超过3个参与者,则<主体>成分可以包括“<事件主题>,大约N个人”。如果有1-3个参与者,则<主体>成分可以包括“<事件主题>,人员1、人员2和人员3”。如果除了用户之外,事件没有参与者,则<主体>成分可以仅包括<事件主题>。如果针对日历事件指定了位置,可以向日历事件的释义中插入<位置>成分。这需要进行某种过滤。

下文例示了针对日历事件的免提列表阅读情形。在用户询问“今天我日历上有什么安排。”之后。助理利用概述回复:“您的日历上,在上午11点、中午、下午3:30和7点有事件。您还有2个全天的事件。”在概述之后,助理继续日历条目的列表:“在上午11点:开会”,“在上午11:30:与Harry Saddler会面”,“中午:在房间(8),IL 2,与9个人查看设计”,“在下午3:30:与Susan会面”,“在下午7点:与Amy Cheyer和Lynn Julia共进晚餐。”在一些实施例中,助理可以通过提供总结输出,诸如“就这些了”,指示列表结束。

以上实例仅仅例示针对日历域的免提列表阅读。根据相关日历条目的具体类型和类别(例如,会面、约会、参与方、吃饭、需要准备的事件/旅行等),附加的变化是可能的,并应当在免提情景中向用户呈现。与助理提供的基于语音的输出相伴随,任选地在屏幕上提供日历条目的视觉片段。

针对电子邮件的列表阅读

类似于其他域中的其他数据项列表,电子邮件列表的免提阅读还涉及到在列表中包括哪些电子邮件以及如何向用户阅读每个电子邮件。电子邮件与其他项目类型不同之处在于:电子邮件通常包括大小无限制(例如,太大,无法整个阅读)的无限制部分(即,消息主体),并可以包括不能容易转换成语音的内容(例如,对象、表格、图片等)。因此,在阅读电子邮件时,将电子邮件的无限制部分分成更小的组块,一次仅提供一个组块,并从语音输出省略其余部分,除非用户明确请求听到它们(例如,通过利用诸如“更多”的命令)。此外,用于选择电子邮件进行呈现以及将电子邮件分成子组的相关属性包括发送者身份、日期、主题、已读/未读状态、紧急标记等。可以由助理识别电子邮件中的对象(例如表格、图片)和附件,但可以从免提阅读中省略。在一些实施例中,可以在显示器上呈现对象和附件。在一些实施例中,如果用户也处于免视模式中,可以由助理阻止这些对象和附件的显示。

以下是实例情形,例示了针对电子邮件的免提列表阅读。该实例例示了在概述之后和阅读电子邮件列表之前使用提示。在阅读电子邮件列表时,逐个提供每个电子邮件内容的概要或释义。用户可以利用命令“下一个”、“第一个”、“前一个”、“最后一个”等在列表中导航。为了听到电子邮件消息主体的更多内容,用户可以说“更多”。用户还可以说出与适用于电子邮件的动作相关的命令。在助理逐个阅读电子邮件时,上下文标记在整个电子邮件列表中移动。如果用户的命令涉及顺序次序中的电子邮件,则上下文标记还从一封电子邮件跳到另一封。

例如,用户可以询问:“我有来自Harry Saddler的新邮件吗?”

基于用户输入中指定的选择标准(例如,发送者=Harry Saddler,已读/未读状态=新),助理识别相关电子邮件,并提供列表概述以及用于阅读电子邮件列表的提示:“您有5封来自Harry Saddler的未读消息。您想听我阅读吗?”如果用户给出肯定答案,“是。”助理继续逐个阅读电子邮件列表的特定于域、特定于项目的释义。例如,助理可以说“第一条消息,来自Harry Saddler,3天前。主题是:今天下午3点简短会议。”释义是基于电子邮件的内容生成的,包括关键信息,诸如消息在列表中的顺序位置、与消息相关联的发送者身份、与消息相关联的时间以及消息的主题行。在此,不使用精确的到达时间。替代使用到达时间的释义,因为在免提情景中精确的到达时间可能不相关。在释义中不阅读或提供消息的主体。然后,在简短暂停之后,助理可以开始阅读消息无限制内容的第一个组块:“Harry写道:下次会议仔细研究项目X——是在10月17号星期一,下午2点。我找不到房间,我们在IL2/4层电梯大厅见面吧,从那里去。Harry”。在这种情况下,消息的无限制内容的总长度足够短,可以匹配到组块的预先确定的长度极限之内(例如,3行文本),因此,在一个组块中阅读消息的整个内容主体。

在阅读第一条消息之后,提供简短的暂停,使得用户能够输入命令,进行适用于刚读过的消息的动作(例如,回复、删除、重复等)或者前进到下一个消息。假设用户说“下一个。”然后,助理继续进行到列表中的下一个消息,上下文标记前进到下一个消息。助理提供语音输出,说道“下一条消息,来自Harry Saddler,今天上午8:23,主题是:列表阅读使用案例。”在因用户打断的暂停之后,助理继续阅读消息的无限制内容“Harry写道:根据大众需求,我们正在使用电子表格开发、细化和跟踪使用案例。每个案例都将附接到对应的TLF雷达;在更新时,将添加新的版本。我将是与相关域团队开发使用案例的负责人。”在阅读消息主体的第一组块之后,助理暂停,提示用户“继续阅读该消息吗?”如果用户说“是”,则助理继续阅读消息主体的下一组块:“Harry写道:日历使用案例已经完成一部分,仍然需要一些丰富的材料,当然还需要进行优先化。LINK.TLF:日历条目。……”在助理完成阅读消息主体的这个组块之前,用户利用命令“回复”打断阅读。作为响应,助理停止阅读,并将当前消息识别为针对用户输入所请求的动作的目标消息。助理生成基于语音的响应“好的,我可以帮助您回复Harry Saddler。您希望说什么?”用户讲出回复邮件的文本“好主意,帮了大忙。”助理将消息原样返回给用户以确认正确性,“您的消息是:好主意。帮了大忙。”助理然后询问“准备好发送了吗?”一旦用户确认(例如,说“是”),助理确认用户的确认,并说“好的,我会发送。我还要继续读您的邮件吗?”在用户回复“是”之后。助理前进到列表中的下一条消息并阅读“下一条消息,来自Harry Saddler,昨天下午2:34,主题是:电子数据表<暂停>电子邮件消息仅包含附件。”

需注意,在阅读这封电子邮件消息和前一封电子邮件消息的无限制内容时,助理检测到不容易大声阅读的一些对象。例如,在前一封电子邮件中,消息主题包含超级链接。助理不将超级链接的文本转换成语音。相反,助理仅仅利用关键字“LINK.TLF:.”标识消息主体中存在链接,从而通知用户有链接,但不将消息主体的语音输出扭曲成不可识别的形式。在当前消息中,识别出附件。助理不会尝试阅读附件。相反,助理仅提供指示电子邮件中存在附件的语音输出。

继续以上电子邮件阅读情形。在阅读第三条消息的无限制内容之后,数字助理继续阅读下一条消息,“下一条消息,来自Harry Saddler,30分钟前。回复您如下主题的消息:无法关闭TTS。”在暂停之后,助理继续无限制内容的第一组块“Harry写道:这个简单解决方案如何:使助理静默。在助理讲话时,摇动它;它停止讲话。使助理静默,做出新请求:在助理讲话时,再次摇动……<暂停>”在阅读第一组块之后,助理再次询问“继续阅读该消息吗?”用户说“重复。”作为响应,助理检查上下文标记的位置,现在上下文标记位于列表中第四条消息的无限制内容的第一组块上。助理然后再次阅读第四条消息的消息主体的第一组块,“这个简单解决方案如何:使助理静默。在助理讲话时,摇动它;它停止讲话。使助理静默,做出新请求:在助理讲话时,再次摇动……”

在短暂暂停之后,助理询问“继续吗?”如果用户说“是”,则助理继续阅读当前消息的第二组块,上下文标记也移动到第二组块。例如,助理阅读第二组块“这仅仅是‘使助理静默’+‘开始收听’,以联系助理,而不做出新请求。主菜单按钮,然后在mic按钮出现时按下mic按钮。这实际是强迫结束,而没有输入。Harry。”

在短暂暂停之后,助理询问“继续吗?”,用户说“不。”

响应于用户停止阅读当前消息的消息主体的命令,助理继续阅读下一条消息。“下一条消息,来自Harry Saddler,10分钟前,回复来自Siamak Hodjat关于如下主题的消息:用于保持在事务处理中的简单规则(模式提示)。”在短暂暂停之后,助理询问“继续阅读该消息吗?”用户说“下一个。”响应于用户的输入,助理回复“那是5个电子邮件消息中的最后一个。”

需注意,在以上实例中,在消息的特定于项目的释义中仅提供第一消息的次序位置,将其余消息在其相应释义中简单称为“下一条消息”。可以在释义中省略次序位置,因为仅阅读了几条消息(例如5条或更少)。用户不需要听到大声阅读的次序位置,以便在心里记录消息的次序位置。在这种情景中,通过其在列表中的相应次序位置援引消息的用户命令仍然有效。例如,在阅读第四条消息之后的语音输入“重复第二条消息”仍然会使用户返回到第二条消息。

以上电子邮件列表阅读实例仅仅是例示性的。可以实施针对助理的其他命令以发起适用于电子邮件消息的其他动作。相对于电子邮件阅读情形描述的技术和选项也适用于其他类型的数据项。

图14A-图14L是数字助理(也称为虚拟助理)用于提供免提列表阅读的方法的流程图。在过程1440中,数字助理识别用于向用户呈现的多条数据项,其中多条数据项均与特定于域的项目类型相关联(1442)。数据项的实例包括:与用户相关联的日历条目、来自特定发送者的电子邮件、针对特定一天的提醒以及从特定本地搜索请求获得的搜索结果。针对以上实例数据项的特定于域的项目类型为日历条目、电子邮件、提醒和本地搜索结果。每种特定于域的数据类型都具有相对稳定的数据结构,使得可以预测性地提取特定数据字段的内容并重构成内容的释义。在一些实施例中,还根据特定次序对多条数据项进行排序。例如,常常通过相关性和距离对本地搜索结果排序。常常按照事件时间对日历条目排序。一些项目类型的项目不需要排序。例如,可以不对提醒排序。

基于特定于域的项目类型,助理生成多条数据项的基于语音的概述(1444)。概述为用户提供列表中有什么种类项目,以及列表中有多少项目的一般概念。针对多条数据项中的每条数据项,助理还基于数据项的相应内容为数据项生成相应的基于语音、特定于项目的释义(1446)。特定于项目的释义格式常常取决于特定于域的项目类型(例如,项目是日历条目还是提醒)和数据项的实际内容(例如,事件时间和特定日历条目的主体)。然后,助理通过启用语音的对话界面向用户提供基于语音的概述(1448)。然后,基于语音的概述后面是针对多个数据项的至少一个子集的相应的基于语音的特定于项目的释义。在一些实施例中,如果按照特定次序对列表中的项目排序,则按照特定次序提供项目的释义。在一些实施例中,如果列表中有多于阈值数量(例如每“页”最大数量=5个项目)的项目,则一次仅呈现项目的子集。用户可以通过专门地这样请求来请求看到/听到更多项目。

在一些实施例中,针对多个数据项中的每个数据项,数字助理基于数据项的相应内容生成针对数据项的相应文本的、特定于项目的片段(1450)。例如,该片段可以包括对应的本地搜索结果的更多细节或电子邮件的内容主体等。该片段用于在显示器上呈现,伴随有基于语音的列表阅读。在一些实施例中,数字助理通过视觉界面向用户提供针对多个数据项的至少子集的相应文本的、特定于项目的片段(1452)。在一些实施例中,还在视觉界面上提供上下文标记。在一些实施例中,同时在视觉界面上呈现所有多个数据项,而项目的阅读继续“一页”“一页”地进行,即一次一个子集。

在一些实施例中,基于语音的特定于项目的释义的提供伴随着相应文本的特定于项目的片段的提供。

在一些实施例中,在提供相应的基于语音的特定于项目的释义时,数字助理在每对相邻的基于语音的特定于项目的释义之间插入暂停(1454)。数字助理进入收听模式以在暂停期间捕获用户输入(1456)。

在一些实施例中,在按照顺序次序提供相应的基于语音的特定于项目的释义时,数字助理将上下文标记推进到正在向用户提供其相应的基于语音的特定于项目的释义的当前数据项(1458)。

在一些实施例中,数字助理接收用于请求执行动作的用户输入,该动作适用于特定于域的项目类型(1460)。数字助理基于上下文标记的当前位置来确定针对多个数据项中的动作的目标数据项(1462)。例如,用户可以请求动作而不明确指定要施加动作的目标项目。助理假设用户援引当前数据项作为目标项目。然后,数字助理相对于所确定的目标数据项执行动作(1464)。

在一些实施例中,数字助理接收用于请求执行动作的用户输入,该动作适用于特定于域的项目类型(1466)。数字助理基于用户输入中指定的项目参考编号来确定针对多个数据项中的动作的目标数据项(1468)。例如,用户可以在用户输入中说出“第三个”项目,助理可以确定列表中哪个项目是“第三个”项目。一旦确定了目标项目,数字助理针对所确定的目标数据项执行动作(1470)。

在一些实施例中,数字助理接收用于请求执行动作的用户输入,该动作适用于特定于域的项目类型(1472)。数字助理基于用户输入中指定的项目特性来确定针对多个数据项中的动作的目标数据项(1474)。例如,用户可以说“回复Mark的消息”,数字助理可以基于消息列表中的发送者身份“Mark”确定用户指的是哪条消息。一旦确定了目标项目,数字助理就相对于所确定的目标数据项执行动作(1476)。

在一些实施例中,在确定针对动作的目标数据项时,数字助理:确定用户输入中指定的项目特性适用于多个数据项中的两个或更多个(1478),确定上下文标记在多个数据项间的当前位置(1480),并选择两个或更多个数据项之一作为目标数据项(1482)。在一些实施例中,选择数据项包括:相对于位于上下文标记之后的所有数据项,优先选择位于上下文标记之前的所有数据项(1484);以及在上下文标记同一侧的所有数据项之间优先选择距上下文光标最近的数据项(1486)。例如,在用户说道回复Mark的消息时,如果所有来自Mark的消息都位于当前上下文标记之后,那么选择与上下文标记最近的一个作为目标消息。如果来自Mark的一条消息在上下文标记之前,其余消息在上下文标记之后,那么选择上下文标记之前的作为目标消息。如果来自Mark的所有消息都在上下文标记之前,那么选择距上下文标记最近的一条作为目标消息。

在一些实施例中,数字助理接收用户输入,选择多个数据项之一而不指定适用于特定于域的项目类型的任何动作(1488)。响应于接收到用户输入,数字助理向用户提供基于语音的提示,该基于语音的提示提供适用于所选数据项的一个或多个动作选择(1490)。例如,如果用户说出“第一家加油站。”助理可以提供提示,说道“您希望打电话还是获得方向指引?”

在一些实施例中,对于多个数据项中的至少一个数据项,数字助理确定数据项无限制部分的相应大小(1492)。然后,根据预先确定的标准,数字助理执行如下操作之一:(1)提供基于语音的输出,该基于语音的输出向用户阅读无限制部分的全部(1494);以及(2)将数据项的无限制部分分成多个分立部分(1496),提供基于语音的输出,该基于语音的输出向用户阅读多个分立部分的特定分立部分(1498),以及提示关于是否阅读多个分立部分的其余分立部分的用户输入(1500)。在一些实施例中,基于语音的输出包括唯一标识多个分立部分间特定分立部分的口头分页指示符。

在一些实施例中,数字助理按照顺序次序为多个数据项中的至少子集提供相应基于语音的、特定于项目的释义(1502)。在一些实施例中,在按照顺序次序提供相应基于语音的特定于项目的释义时,数字助理从用户接收语音输入,该语音输入请求如下操作之一:跳过一个或多个释义,针对当前数据项呈现附加的信息,重复一个或多个先前呈现的释义(1504)。响应于语音输入,数字助理继续根据用户的语音输入提供释义(1506)。在一些实施例中,在按照顺序次序提供相应基于语音的特定于项目的释义时,数字助理从用户接收语音输入,该语音输入请求暂停提供释义(1508)。响应于该语音输入,数字助理暂停提供释义以及在暂停期间收听附加的用户输入(1510)。在暂停期间,数字助理响应于一个或多个附加的用户输入来执行一个或多个动作(1512)。在执行一个或多个动作之后,数字助理在执行该一个或多个动作之后自动恢复提供释义(1514)。例如,在阅读电子邮件列表中的一封邮件时,用户可以打断阅读,并让助理回复消息。在完成并发送消息之后,助理恢复阅读列表中的剩余消息。在一些实施例中,数字助理在自动恢复提供释义之前请求用户确认(1516)。

在一些实施例中,基于语音的概述指定多个数据项的数量。

在一些实施例中,数字助理接收用户输入,该用户输入请求呈现多个数据项(1518)。数字助理处理用户输入以确定用户是否明确请求过阅读多个数据项(1520)。在确定用户已明确请求过阅读多个数据项时,数字助理在提供基于语音的概述之后,无需用户再次请求,自动提供基于语音的特定于项目的释义(1522)。在确定用户未明确请求阅读多个数据项时,数字助理在向用户提供相应的基于语音的特定于项目的释义之前,提示用户进行确认(1524)。

在一些实施例中,数字助理确定免提情景的存在(1526)。数字助理根据每个子集中预先确定的最大项目数将多个数据项分成一个或多个子集(1528)。然后,数字助理一次针对一个子集中的数据项提供相应的基于语音的特定于项目的释义(1530)。

在一些实施例中,数字助理确定免提情景的存在(1532)。数字助理根据为免提情景指定的预先确定的最大项目数,限制要向用户呈现的多个数据项(1534)。在一些实施例中,数字助理在为每个子集中的数据项提供相应的特定于项目的释义之前,提供相应的基于语音的子集标识符(1536)。例如,子集标识符可以是“前五条消息”,“后五条消息”等。

在一些实施例中,数字助理在向用户提供基于语音的概述和特定于项目的释义时,接收用户的输入(1538)。数字助理处理语音输入以确定语音输入是否与多个数据项相关(1540)。在确定语音输入不与多个数据项相关时:数字助理暂停与多个数据项相关的输出生成(1542),并向用户提供响应于语音输入并与多个数据项无关的输出(1544)。

在一些实施例中,在针对所有多个数据项的相应基于语音的特定于项目的释义之后,数字助理通过对话界面向用户提供基于语音的关闭(1546)。

在一些实施例中,特定于域的项目类型是本地搜索结果,并且多个数据项是特定本地搜索的多个搜索结果。在一些实施例中,为了生成多个数据项的基于语音的概述,数字助理确定是否相对于当前用户位置执行特定的本地搜索(1548),在确定相对于当前用户位置执行特定的本地搜索时,数字助理生成基于语音的概述而不在基于语音的概述中明确指出当前用户位置(1550),在确定相对于除当前用户位置之外的相对于特定位置执行特定的本地搜索时,数字助理生成基于语音的概述,在基于语音的概述中明确指出该特定位置(1552)。在一些实施例中,为了生成多个数据项的基于语音的概述,数字助理确定多个搜索结果的数量是否超过三个(1554),在确定数量不超过三个时,助理生成基于语音的概述而不明确指定数量(1556),在确定数量超过三个时,数字助理生成基于语音的概述,并明确指定数量(1558)。

在一些实施例中,多个数据项的基于语音的概述指定与多个搜索结果的每个搜索结果相关联的相应公司名称。

在一些实施例中,每个数据项相应的基于语音的特定于项目的释义指定多个搜索结果之间搜索结果的相应次序位置,按次序接着是相应的公司名称、相应的短地址、相应的距离和与搜索结果相关联的相应方位,且其中相应的短地址仅包括与搜索结果相关联的相应街道名称。在一些实施例中,为了为每个数据项生成相应的特定于项目的释义,数字助理:(1)在确定与数据项相关联的实际距离小于一个距离单位时,在数据项的相应特定于项目的释义中指定实际距离(1560);(2)在确定与数据项相关联的实际距离大于一个距离单位时,将实际距离四舍五入到最接近的整数距离单位,并在数据项的相应特定于项目的释义中指定最接近的整数单位(1562)。

在一些实施例中,根据与数据项相关联的评级、距离和匹配分数中的一者,多个数据项中评级最高的数据项的相应特定于项目的释义包括指示数据项评级的短语,而多个数据项中其他数据项的相应特定于项目的释义省略了所述数据项的评级。

在一些实施例中,数字助理自动提示关于是否执行适用于特定于域项目类型的动作的用户输入,其中仅对多个数据项中的第一数据项提供一次自动提示,不对多个数据项中的其他数据项重复自动提示(1564)。

在一些实施例中,在正向用户呈现多个搜索结果的至少一个子集时,数字助理接收用于请求导航到与搜索结果之一相关联的相应公司位置的用户输入(1566)。响应于该用户输入,助理确定用户是否已经在通往与相应公司位置不同的目的地的规划路线上导航(1568)。在确定用户已经在通往与相应公司位置不同的目的地的规划路线上时,助理提供语音输出,请求用户确认利用新的通往相应公司位置的路线替换规划路线(1570)。

在一些实施例中,数字助理接收用于请求公司位置或新路线的地图视图的附加的用户输入(1572)。助理检测免视情景的存在(1574)。响应于检测到免视情景的存在,数字助理提供基于语音的警告,该警告指示将不在免视情景中提供地图视图(1576)。在一些实施例中,检测免视情景的存在包括检测用户在运动的车辆中。

在一些实施例中,特定于域的项目类型是提醒,多个数据项是针对特定时间范围的多个提醒。在一些实施例中,数字助理检测用于向用户呈现提醒列表触发事件(1578)。响应于该用户输入,数字助理根据一个或多个相关性标准识别要向用户呈现的多条提醒,该一个或多个相关性标准基于当前日期、当前时间、当前位置、由用户或与用户相关联的设备执行的动作、要由用户或与用户相关联的设备执行的动作、由用户指定的提醒类别中的一个或多个提醒类别(1580)。

在一些实施例中,用于呈现提醒列表的触发事件包括接收用户查看当天提醒的请求,且基于当前日期识别多个提醒,多个提醒中的每个提醒具有当前日期内相应的触发时间。

在一些实施例中,用于呈现提醒列表的触发事件包括接收用户查看最近提醒的请求,并基于当前时间来识别多个提醒,该多个提醒中的每个提醒是在当前时间之前的预先确定的时间段内被触发的。

在一些实施例中,用于呈现提醒列表的触发事件包括接收用户查看即将发生提醒的请求,并基于当前时间来识别多个提醒,该多个提醒中的每个提醒具有在当前时间之后预先确定的时间段内的相应触发时间。

在一些实施例中,用于呈现提醒列表的触发事件包括接收到用户查看特定类别提醒的请求,多个提醒中的每个提醒属于特定类别。在一些实施例中,用于呈现提醒列表的触发事件包括检测到用户离开预先确定的位置。在一些实施例中,用于呈现提醒列表的触发事件包括检测到用户到达预先确定的位置。

在一些实施例中,也可以将用于呈现提醒列表的基于位置、动作、时间的触发事件用作用于确定在提醒列表中应当包括哪些提醒的选择标准,以在用户请求查看提醒而未在其请求中指定选择标准时向用户呈现。例如,如针对免提列表阅读的使用案例中所述,可以将用户正在特定位置(例如),离开或到达特定位置,以及执行特定动作(例如开车、步行)的事实用作用于推导适当选择标准的情景,在用户简单问道“为我显示提醒”时,选择数据项(例如提醒)以在当前时间向用户显示。

在一些实施例中,数字助理按照根据提醒的相应触发时间排列的次序提供多个提醒的基于语音的特定于项目的释义(1582)。在一些实施例中,提醒未被排序。

在一些实施例中,为了识别多个提醒,数字助理应用越来越严格的相关性标准,以选择多个提醒,直到多个提醒的数量不再超过预先确定的阈值数量(1584)。

在一些实施例中,数字助理将多个提醒分成多个类别(1586)。数字助理为多个类别中的每个类别生成相应的基于语音的类别概述(1588)。数字助理在该类别中针对提醒的相应特定于项目的释义之前立刻提供针对每个类别的相应基于语音的类别概述(1590)。在一些实施例中,多个类别包括基于位置的类别、基于任务的类别、基于相对于当前时间的触发时间的类别、基于相对于用户指定的时间的触发时间的类别中的一种或多种。

在一些实施例中,特定于域的项目类型是日历条目,并且多个数据项是针对特定时间范围的多个日历条目。在一些实施例中,多个数据项的基于语音的概述提供了与多个日历条目中的每个日历条目相关联的定时或持续时间信息或两者,而不提供关于日历条目的附加细节。在一些实施例中,多个数据项的基于语音的概述提供了多个日历条目间全天事件的数量。

在一些实施例中,多个数据项的基于语音的概述包括与多个日历条目相关联的相应事件时间的列表,并且其中基于语音的概述仅明确宣告在以下条件之一下与特定事件时间相关联的相应AM/PM指示:(1)该特定事件时间是列表中的最后一个,(2)该特定事件时间是列表中的第一个且发生于上午。

在一些实施例中,多个数据项的基于语音的特定于项目的释义是根据“<时间><主体><位置,如果有的话>”格式生成的相应日历事件的释义。

在一些实施例中,如果参与者总数低于预先确定的数量,则相应日历事件的释义指出相应日历事件的一个或多个参与者;如果参与者总数高于预先确定的数量,则相应日历事件的释义不指出相应日历事件的参与者。

在一些实施例中,如果总数高于预先确定的数量,则相应日历事件的释义提供参与者的总数。

在一些实施例中,特定于域的项目类型是电子邮件,多个数据项是特定的一组电子邮件。在一些实施例中,数字助理接收请求用于列出电子邮件的用户输入(1592)。响应于该用户输入,数字助理根据一个或多个相关性标准来识别要向用户呈现的特定一组电子邮件,该一个或多个相关性标准基于如下一项或多项:发送者身份、消息到达时间、已读/未读状态和电子邮件主题(1594)。在一些实施例中,数字助理处理用户输入以确定一个或多个相关性标准中的至少一个相关性标准(1596)。在一些实施例中,多个数据项的基于语音的概述释义用于识别特定的一组电子邮件的一个或多个相关性标准,并提供特定的一组电子邮件的数量。在一些实施例中,在提供基于语音的概述之后,数字助理提示用于接受还是拒绝向用户阅读该组电子邮件的用户输入(1598)。在一些实施例中,针对每个数据项的相应基于语音的特定于项目的释义是针对特定的一组电子邮件中相应电子邮件的相应基于语音的特定于项目的释义,并针对相应电子邮件的相应释义指定相应电子邮件在该组电子邮件中的次序位置、相应电子邮件的发送者和电子邮件的主题。

在一些实施例中,对于特定的一组电子邮件中的至少一个电子邮件,数字助理确定电子邮件无限制部分的相应大小(1600)。根据预先确定的标准,数字助理执行如下操作中的一者:(1)提供基于语音的输出,向用户阅读无限制部分的全部(1602);以及(2)将数据项的无限制部分分成多个分立部分(1604),提供基于语音的输出,向用户阅读多个分立部分的特定的分立部分,在阅读特定的分立部分之后,提示关于是否阅读多个分立部分的其余分立部分的用户输入。

以上流程图例示了针对一般数据项以及针对各种特定于域的项目类型在免提列表阅读中可以实施的各种选项。尽管在流程图中示出了各个步骤,但未必要按照任何特定顺序执行各步骤,除非在特定步骤中明确指示。在各种实施例中并非要执行所有步骤。来自不同域的各个特征可以适用于阅读其他域中的项目。可以在各个实施例中选择性组合各步骤,除非明确禁止。其他步骤、方法和特征在说明书的其他部分中描述,可以与相对于图14A-图14L所述的步骤组合。

现在关注具有触敏显示器的便携式设备的实施例。图15A是示出了根据一些实施例的具有触敏显示器112的便携式多功能设备100的框图。触敏显示器112有时为了方便被叫做“触摸屏”,并且有时可被称为或被叫做触敏显示系统。设备100包括存储器102(任选地包括一个或多个计算机可读存储介质)、存储器控制器122、一个或多个处理单元(CPU)120、外围设备接口118、RF电路108、音频电路110、扬声器111、麦克风113、输入/输出(I/O)子系统106、其他输入或控制设备116和外部端口124。设备100任选地包括一个或多个光学传感器164。设备100任选地包括用于检测设备100上的接触强度的一个或多个强度传感器165(例如,触敏表面,诸如设备100的触敏显示系统112)。设备100任选地包括用于在设备100上生成触觉输出(例如,在触敏表面诸如设备100的触敏显示系统112或设备300的触控板355上生成触觉输出)。的一个或多个触觉输出发生器167。这些部件任选地通过一根或多根通信总线或信号线103通信。

如在本说明书和权利要求书中所用,术语触敏表面上的接触的“强度”是指触敏表面上的接触(例如,手指接触)的力或压力(每单位面积的力),或是指触敏表面上的接触的力或压力的替代物(代用物)。接触的强度具有值范围,该值范围包括至少四个不同值并且更典型地包括数百个不同值(例如,至少256个)。接触的强度任选地使用各种方法和各种传感器或传感器的组合来确定(或测量)。例如,在触敏表面下方或相邻于触敏表面的一个或多个力传感器任选地用于测量触敏表面上的不同点处的力。在一些实施例中,来自多个力传感器的力测量被合并(例如,加权平均数)以确定估计的接触的力。类似地,触笔的压敏尖端任选地用于确定触笔在触敏表面上的压力。另选地,在触敏表面上所检测到的接触面积的大小和/或其变化、邻近接触的触敏表面的电容和/或其变化,和/或邻近接触的触敏表面的电阻和/或其变化任选地用作触敏表面上的接触的力或压力的替代物。在一些实施例中,接触力或压力的替代物测量直接用于确定是否已经超过强度阈值(例如,强度阈值是以对应于替代物测量值的单位来描述)。在一些实施例中,接触力或压力的替代物测量被转换成估计的力或压力,并且估计的力或压力用于确定是否已经超过强度阈值(例如,强度阈值是以压力的单位测量的压力阈值)。

如本说明书和权利要求书中所使用,术语“触觉输出”是指将由用户通过用户的触摸感检测到的设备相对于设备的先前位置的物理位移、设备的部件(例如,触敏表面)相对于设备的另一个部件(例如,外壳)的物理位移、或部件相对于设备的质心的位移。例如,在设备或设备的部件与用户对触摸敏感的表面(例如,手指、手掌或用户的手部的其他部分)接触的情况下,通过物理位移生成的触觉输出将由用户解读为触感,该触感对应于所感知到的设备或设备部件的物理特性上的变化。例如,触敏表面(例如,触敏显示器或触控板)的移动任选地由用户解读为对物理致动按钮的“按下点击”或“松开点击”。在一些情况下,用户将感觉到触感,诸如“按下点击”或“松开点击”,即使在通过用户的移动而物理地被按压(例如,被移位)的与触敏表面相关联的物理致动按钮没有移动时。作为另一个实例,触敏表面的移动任选地由用户解读为或感测为触敏表面的“粗糙度”,即使在触敏表面的光滑度无变化时。虽然此类由用户对触摸的解读将受到用户的个体化感官知觉限制,但是有许多触摸的感官知觉是大多数用户共有的。因此,当触觉输出被描述为对应于用户的特定感官知觉(例如,“松开点击”、“按下点击”、“粗糙度”)时,除非另外陈述,否则所生成的触觉输出对应于设备或其部件的物理位移,该物理位移将生成典型(或普通)用户的所描述的感官知觉。

应当理解,设备100只是一种便携式多功能设备的一个实例,并且设备100任选地具有比所示出的更多或更少的部件,任选地组合两个或更多个部件,或者任选地具有这些部件的不同配置或布置。图15A中所示的各种部件以硬件、软件、或硬件与软件两者的组合来实现,包括一个或多个信号处理和/或专用集成电路。

存储器102任选地包括高速随机存取存储器,并且还任选地包括非易失性存储器,诸如一个或多个磁盘存储设备、闪存存储器设备、或其他非易失性固态存储器设备。设备100的其他部件(诸如CPU 120和外围设备接口118)对存储器102的访问任选地由存储器控制器122来控制。

外围设备接口118可被用来将设备的输入外围设备和输出外围设备耦接到CPU 120和存储器102。该一个或多个处理器120运行或执行存储在存储器102中的各种软件程序和/或指令集以执行设备100的各种功能并处理数据。

在一些实施例中,外围设备接口118、CPU120和存储器控制器122任选地被实现在单个芯片诸如芯片104上。在一些其他实施例中,它们任选地被实现在独立的芯片上。

RF(射频)电路108接收和发送也被叫做电磁信号的RF信号。RF电路108将电信号转换为电磁信号/将电磁信号转换为电信号,并且经由电磁信号与通信网络及其他通信设备通信。RF电路108任选地包括用于执行这些功能的众所周知的电路,包括但不限于天线系统、RF收发器、一个或多个放大器、调谐器、一个或多个振荡器、数字信号处理器、编解码芯片组、用户身份模块(SIM)卡、存储器等。RF电路108任选地通过无线通信与网络以及其他设备通信,网络诸如是互联网(也被称为万维网(WWW))、内联网和/或无线网络(诸如蜂窝电话网络、无线局域网(LAN)和/或城域网(MAN))。无线通信任选地使用多种通信标准、协议和技术中的任何一种,包括但不限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、演进、纯数据(EV-DO)、HSPA、HSPA+、双单元HSPA(DC-HSPDA)、长期演进(LTE)、近场通信(NFC)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、无线保真(Wi-Fi)(例如,IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n)、互联网协议语音技术(VoiP)、Wi-MAX、电子邮件的协议(例如,互联网消息访问协议(IMAP)和/或邮局协议(POP))、即时消息(例如,可扩展消息处理现场协议(XMPP)、用于即时消息和现场利用扩展的会话发起协议(SIMPLE)、即时消息和现场服务(IMPS))和/或短消息服务(SMS)、或者其他任何适当的通信协议,包括在本文档提交日期还未开发出的通信协议。

音频电路110、扬声器111和麦克风113提供用户与设备100之间的音频接口。音频电路110从外围设备接口118接收音频数据,将音频数据转换为电信号,并将电信号传输到扬声器111。扬声器111将电信号转换为人耳可听见的声波。音频电路110还接收由麦克风113根据声波转换来的电信号。音频电路110将电信号转换为音频数据,并将音频数据传输到外围设备接口118以进行处理。音频数据任选地由外围设备接口118检索自和/或传输至存储器102和/或RF电路108。在一些实施例中,音频电路110还包括耳麦插孔。耳麦插孔提供音频电路110与可移除的音频输入/输出外围设备之间的接口,该外围设备诸如仅输出的耳机或者具有输出(例如,单耳或双耳耳机)和输入(例如,麦克风)二者的耳麦。

I/O子系统106将设备100上的输入/输出外围设备诸如触摸屏112和其他输入控制设备116,耦接到外围设备接口118。I/O子系统106任选地包括显示控制器156、光学传感器控制器158、强度传感器控制器159、触觉反馈控制器161、和用于其他输入或控制设备的一个或多个输入控制器160。该一个或多个输入控制器160从其他输入或控制设备116接收/发送电信号到其他输入或控制设备116。其他输入控制设备116任选地包括物理按钮(例如,下压按钮、摇臂按钮等)、拨号盘、滑动开关、操纵杆、点击式转盘等。在一些另选的实施例中,输入控制器160任选地耦接到(或不耦接到)以下任一个:键盘、红外线端口、USB端口和指针设备诸如鼠标。该一个或多个按钮可任选地包括用于扬声器111和/或麦克风113的音量控制的增大/减小按钮。该一个或多个按钮任选地包括推动按钮。

触敏显示器112提供设备与用户之间的输入接口和输出接口。显示控制器156从触摸屏112接收电信号和/或向触摸屏112发送电信号。触摸屏112向用户显示视觉输出。视觉输出任选地包括图形、文本、图标、视频和它们的任何组合(统称为“图形”)。在一些实施例中,一些视觉输出或全部的视觉输出对应于用户界面对象。

触摸屏112具有基于触觉和/或触觉接触来从用户接受输入的触敏表面、传感器或传感器组。触摸屏112和显示控制器156(与存储器102中的任何相关联模块和/或指令集一起)检测触摸屏112上的接触(和该接触的任何移动或中断),并且将所检测到的接触转换为与显示在触摸屏112上的用户界面对象(例如,一个或多个软按键、图标、网页或图像)的交互。在一个示例性实施例中,触摸屏112与用户之间的接触的点对应于用户的手指。

触摸屏112任选地使用LCD(液晶显示器)技术、LPD(发光聚合物显示器)技术、或LED(发光二极管)技术,但是在其他实施例中使用其他显示技术。触摸屏112和显示控制器156任选地使用现在已知的或以后将开发出的多种触摸感测技术中的任何技术以及其他接近传感器阵列或用于确定与触摸屏112接触的一个或多个点的其他元件来检测接触及其任何移动或中断,该多种触摸感测技术包括但不限于电容性的、电阻性的、红外线的、和表面声波技术。在一个示例性实施例中,使用投射式互电容感测技术,诸如从Apple Inc.(Cupertino,California)的iPod和中发现的技术。

触摸屏112任选地具有超过100dpi的视频分辨率。在一些实施例中,触摸屏具有约160dpi的视频分辨率。用户任选地使用任何合适的物体或附加物诸如触笔、手指等,与触摸屏112接触。在一些实施例中,将用户界面设计用来主要与基于手指的接触和手势工作,由于手指在触摸屏上的接触区域较大,因此这可能不如基于触笔的输入精确。在一些实施例中,设备将基于手指的粗略输入翻译为精确的指针/光标位置或命令以执行用户所期望的动作。

在一些实施例中,除了触摸屏之外,设备100任选地包括用于激活或去激活特定功能的触控板(未示出)。在一些实施例中,触控板是设备的触敏区域,该触敏区域与触摸屏不同,其不显示视觉输出。触控板任选地是与触摸屏112分开的触敏表面,或者是由触摸屏形成的触敏表面的延伸部分。

设备100还包括用于为各种部件供电的电力系统162。电力系统162任选地包括电力管理系统、一个或多个电源(例如,电池、交流电(AC))、再充电系统、电力故障检测电路、功率转换器或逆变器、电力状态指示器(例如,发光二极管(LED))和任何其他与便携式设备中电力的生成、管理和分配相关联的部件。

设备100任选地还包括一个或多个光学传感器164。图15A示出了耦接到I/O子系统106中的光学传感器控制器158的光学传感器。光学传感器164任选地包括电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)光电晶体管。光学传感器164从环境接收通过一个或多个透镜而投射的光,并且将光转换为表示图像的数据。结合成像模块143(也叫做相机模块),光学传感器164任选地捕获静态图像或视频。在一些实施例中,光学传感器位于设备100的后部上,与设备前部上的触摸屏显示器112相背对,使得触摸屏显示器能够用作用于静态图像和/或视频图像采集的取景器。在一些实施例中,另一光学传感器位于设备的前部上,使得用户在触摸屏显示器上观看其他视频会议参与者时,任选地获得该用户的图像以用于视频会议。

设备100任选地还包括一个或多个接触强度传感器165。图15A示出了耦接到I/O子系统106中的强度传感器控制器159的接触强度传感器。接触强度传感器165任选地包括一个或多个压阻应变计、电容式力传感器、电力传感器、压电力传感器、光学力传感器、电容式触敏表面或其他强度传感器(例如,用于测量触敏表面上的接触的力(或压力)的传感器)。接触强度传感器165从环境接收接触强度信息(例如,压力信息或压力信息的代用物)。在一些实施例中,至少一个接触强度传感器与触敏表面(例如,触敏显示系统112)并置排列或邻近。在一些实施例中,至少一个接触强度传感器位于设备100的后部上,与位于设备100的前部上的触摸屏显示器112相背对。

设备100任选地还包括一个或多个接近传感器166。图15A示出了耦接到外围设备接口118的接近传感器166。或者,接近传感器166耦接至I/O子系统106中的输入控制器160。在一些实施例中,当多功能设备被置于用户的耳朵附近时(例如,当用户正在进行电话呼叫时),接近传感器关闭并禁用触摸屏112。

设备100任选地还包括一个或多个触觉输出发生器167。图15A示出了耦接到I/O子系统106中触觉反馈控制器161的触觉输出发生器。触觉输出发生器167任选地包括:一个或多个电声设备,诸如扬声器或其他音频部件;和/或将能量转换成线性运动的机电设备,诸如电机、螺线管、电活性聚合物、压电致动器、静电致动器或其他触觉输出生成部件(例如,将电信号转换成设备上的触觉输出的部件)。接触强度传感器165从触觉反馈模块133接收触觉反馈生成指令,并且在设备100上生成能够由设备100的用户感测到的触觉输出。在一些实施例中,至少一个触觉输出发生器与触敏表面(例如,触敏显示系统112)并置排列或邻近,并且任选地通过竖直地(例如,向设备100的表面之内/之外)或侧向地(例如,在与设备100的表面相同的平面中前后地)移动触敏表面来生成触觉输出。在一些实施例中,至少一个触觉输出发生器传感器位于设备100的后部上,与位于设备100的前部上的触摸屏显示器112相背对。

设备100任选地还包括一个或多个加速度计168。图15A示出了耦接到外围设备接口118的加速度计168。另选地,加速度计168任选地耦接至I/O子系统106中的输入控制器160。在一些实施例中,信息基于对从该一个或多个加速度计所接收的数据的分析来在触摸屏显示器上以纵向视图或横向视图被显示。设备100任选地除了加速度计168之外还包括磁力仪(未示出)和GPS(或GLONASS或其他全球导航系统)接收器(未示出),用于获得关于设备100的位置和取向(例如,纵向或横向)的信息。

在一些实施例中,存储在存储器102中的软件部件包括操作系统126、通信模块(或指令集)128、接触/运动模块(或指令集)130、图形模块(或指令集)132、文本输入模块(或指令集)134、全球定位系统(GPS)模块(或指令集)135以及应用(或指令集)136。此外,在一些实施例中,存储器102存储设备/全局内部状态157,如图15A中所示。设备/全局内部状态157包括以下中的一个或多个:活动应用状态,指示哪些应用(如果有的话)当前在活动;显示状态,指示什么应用、视图或其他信息占据了触摸屏显示器112的各个区域;传感器状态,包括从设备的各个传感器和输入控制设备116获得的信息;以及涉及设备位置和/或姿态的位置信息。

操作系统126(例如,Darwin、RTXC、LINUX、UNIX、OS X、WINDOWS、或嵌入式操作系统诸如VxWorks)包括用于控制和管理一般系统任务(例如,存储器管理、存储设备控制、电力管理等)的各种软件部件和/或驱动器,并且有利于各种硬件和软件部件之间的通信。

通信模块128有利于通过一个或多个外部端口124来与其他设备进行通信,并且还包括用于处理由RF电路108和/或外部端口124所接收的数据的各种软件部件。外部端口124(例如,通用串行总线(USB)、火线等)适于直接耦接到其他设备或者间接地通过网络(例如,互联网、无线LAN等)耦接。在一些实施例中,外部端口是与iPod(Apple Inc.的商标)设备上所使用的30针连接器相同的或类似的和/或与其兼容的多针(例如,30针)连接器。

接触/运动模块130任选地检测与触摸屏112(结合显示控制器156)和其他触敏设备(例如,触控板或物理点击轮)的接触。接触/运动模块130包括各种软件部件以用于执行与接触检测相关的各种操作,诸如确定是否已经发生了接触(例如,检测手指按下事件)、确定接触的强度(例如,接触的力或压力,或者接触的力或压力的替代物)、确定是否存在接触的移动并跟踪在触敏表面上的移动(例如,检测一个或多个手指拖动事件),以及确定接触是否已经停止(例如,检测手指抬起事件或者接触断开)。接触/运动模块130从触敏表面接收接触数据。确定接触点的移动任选地包括确定接触点的速率(量值)、速度(量值和方向)、和/或加速度(量值和/或方向的改变),接触点的移动由一系列接触数据来表示。这些操作任选地被应用于单点接触(例如,单指接触)或者多点同时接触(例如,“多点触摸”/多个手指接触)。在一些实施例中,接触/运动模块130和显示控制器156检测触控板上的接触。

在一些实施例中,接触/运动模块130使用一组一个或多个强度阈值来确定操作是否已经由用户执行(例如,确定用户是否已经“点击”图标)。在一些实施例中,根据软件参数来确定强度阈值的至少一个子集(例如,强度阈值不是由特定物理致动器的激活阈值来确定,并且可在不改变设备100的物理硬件的情况下被调整)。例如,在不改变触控板或触摸屏显示器硬件的情况下,触控板或触摸屏显示器的鼠标“点击”阈值可被设定成预定义的阈值的大范围中的任一个。另外,在一些具体实施中,向设备的用户提供用于调整强度阈值组中的一个或多个强度阈值(例如,通过调整各个强度阈值和/或通过利用对“强度”参数的系统级点击一次调整多个强度阈值)的软件设置。

接触/运动模块130任选地检测用户的手势输入。触敏表面上的不同手势具有不同接触图案(例如,所检测到的接触的不同运动、计时和/或强度)。因此,任选地通过检测具体接触图案来检测手势。例如,检测手指轻击手势包括检测到手指按下事件,然后在与手指按下事件相同的位置(或基本上相同的位置)处(例如,在图标位置处)检测到手指抬起(抬离)事件。作为另一个实例,在触敏表面上检测到手指轻扫手势包括检测到手指按下事件、然后检测到一个或多个手指拖动事件,并且随后检测到手指抬起(抬离)事件。

图形模块132包括用于在触摸屏112或其他显示器上呈现和显示图形的各种已知软件部件,包括用于改变所显示的图形的视觉冲击(例如,亮度、透明度、饱和度、对比度或其他视觉属性)的部件。如本文所用,术语“图形”包括可被显示给用户的任何对象,非限制性地包括文本、网页、图标(诸如包括软键的用户界面对象)、数字图像、视频、动画等。

在一些实施例中,图形模块132存储表示要使用的图形的数据。每个图形任选地被分配有对应的代码。图形模块132从应用等接收指定待显示的图形的一个或多个代码,在必要的情况下还一起接收坐标数据和其他图形属性数据,然后生成屏幕图像数据来输出给显示控制器156。

触觉反馈模块133包括用于生成指令的各种软件部件,该指令由触觉输出发生器167使用,以便响应于用户与设备100的交互而在设备100上的一个或多个位置处产生触觉输出。

任选地为图形模块的部件的文本输入模块134提供用于在各种应用(例如,联系人137、电子邮件140、IM 141、浏览器147和需要文本输入的任何其他应用)中输入文本的软键盘。

GPS模块135确定设备的位置,并且提供该信息以在各种应用中使用(例如,提供给电话138以用于基于位置的拨号、提供给相机143作为照片/视频元数据,以及提供给提供基于位置的服务的应用,诸如天气桌面小程序、本地黄页桌面小程序、和地图/导航桌面小程序)。

应用136任选地包括以下模块(或指令集)或者其子集或超集:

·联系人模块137(有时叫做通讯录或联系人列表);

·电话模块138;

·视频会议模块139;

·电子邮件客户端模块140;

·即时消息(IM)模块141;

·健身支持模块142;

·用于静态图像和/或视频图像的相机模块143;

·图像管理模块144;

·浏览器模块147;

·日历模块148;

·桌面小程序模块149,任选地包括以下中的一个或多个:天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4、字典桌面小程序149-5和由用户获取的其他桌面小程序,以及用户创建的桌面小程序149-6;

·用于形成用户创建的桌面小程序149-6的桌面小程序创建器模块150;

·搜索模块151;

·视频和音乐播放器模块152,任选地由视频播放器模块和音乐播放器模块构成;

·便笺模块153;

·地图模块154;和/或

·在线视频模块155。

任选地被存储在存储器102中的其他应用136的实例包括其他文字处理应用、其他图像编辑应用、画图应用、呈现应用、启用JAVA的应用、加密、数字权利管理、语音识别和语音复制。

结合触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,联系人模块137任选地用于管理通讯录或联系人列表(例如,存储在存储器102或存储器370中的联系人模块137的应用内部状态192中),包括:向地址簿添加姓名;从地址簿删除姓名;将电话号码、电子邮件地址、物理地址或其他信息与姓名相关联;将图像与姓名相关联;对姓名分类并排序;提供电话号码或电子邮件地址以发起和/或促成通过电话138、视频会议139、电子邮件140或IM 141进行通信,等等。

结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,电话模块138任选地被用于输入对应于电话号码的字符序列、访问通讯录137中的一个或多个电话号码、修改已经输入的电话号码、拨打相应的电话号码、进行会话以及当会话完成时断开或挂断。如上所述,无线通信任选地使用多种通信标准、协议和技术中的任一种。

结合RF电路108、音频电路110、扬声器111、麦克风113、触摸屏112、显示控制器156、光学传感器164、光学传感器控制器158、接触模块130、图形模块132、文本输入模块134、联系人列表137和电话模块138,视频会议模块139包括用于根据用户指令发起、进行和终止用户与一个或多个其他参与者之间的视频会议的可执行指令。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,电子邮件客户端模块140包括响应于用户指令来创建、发送、接收和管理电子邮件的可执行指令。结合图像管理模块144,电子邮件客户端模块140使得非常容易创建和发送具有由相机模块143拍摄的静态图像或视频图像的电子邮件。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,即时消息模块141包括用于输入对应于即时消息的字符序列、修改先前输入的字符、传输相应即时消息(例如,使用短消息服务(SMS)或多媒体消息服务(MMS)协议以用于基于电话的即时消息或者使用XMPP、SIMPLE、或IMPS以用于基于互联网的即时消息)、接收即时消息以及查看所接收的即时消息的可执行指令。在一些实施例中,所传输和/或接收的即时消息任选地包括图形、照片、音频文件、视频文件和/或MMS和/或增强消息服务(EMS)中所支持的其他附接件。如本文所用,“即时消息”是指基于电话的消息(例如,使用SMS或MMS发送的消息)和基于互联网的消息(例如,使用XMPP、SIMPLE、或IMPS发送的消息)两者。

结合RF电路108、触摸屏112、显示控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135、地图模块154和音乐播放器模块146,健身支持模块142包括可执行指令,以创建健身计划(例如,具有时间、距离和/或卡路里燃烧目标);与健身传感器(运动设备)通信;接收健身传感器数据;校准用于监测健身的传感器;选择并播放用于健身的音乐;以及显示、存储和传输健身数据。

结合触摸屏112、显示控制器156、一个或多个光学传感器164、光学传感器控制器158、接触模块130、图形模块132和图像管理模块144,相机模块143包括用于捕获静态图像或视频(包括视频流)并且将它们存储到存储器102中、修改静态图像或视频的特性、或从存储器102删除静态图像或视频的可执行指令。

结合触摸屏112、显示控制器156、接触模块130、图形模块132、文本输入模块134和相机模块143,图像管理模块144包括用于排列、修改(例如,编辑)、或以其他方式操控、标记、删除、呈现(例如,在数字幻灯片或相册中)、以及存储静态图像和/或视频图像的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,浏览器模块147包括用于根据用户指令浏览互联网(包括搜索、链接到、接收、和显示网页或其部分,以及链接到网页的附件和其他文件)的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、电子邮件客户端模块140和浏览器模块147,日历模块148包括用于根据用户指令来创建、显示、修改和存储日历以及与日历相关联的数据(例如,日历条目、待办事项等)的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程序模块149是任选地由用户下载和使用的微型应用(例如,天气桌面小程序149-1、股市桌面小程序149-2、计算器桌面小程序149-3、闹钟桌面小程序149-4和字典桌面小程序149-5)或由用户创建的微型应用(例如,用户创建的桌面小程序149-6)。在一些实施例中,桌面小程序包括HTML(超文本标记语言)文件、CSS(层叠样式表)文件和JavaScript文件。在一些实施例中,桌面小程序包括XML(可扩展标记语言)文件和JavaScript文件(例如,Yahoo!桌面小程序)。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134和浏览器模块147,桌面小程序创建器模块150任选地被用户用来创建桌面小程序(例如,将网页的用户指定的部分转到桌面小程序中)。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132和文本输入模块134,搜索模块151包括根据用户指令来搜索匹配一个或多个搜索条件(例如,一个或多个用户指定的搜索词)的存储器102中的文本、音乐、声音、图像、视频和/或其他文件的可执行指令。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108和浏览器模块147,视频和音乐播放器模块152包括允许用户下载和回放以一种或多种文件格式(诸如MP3或AAC文件)存储的所记录的音乐和其他声音文件的可执行指令,以及用于显示、呈现或以其他方式回放视频(例如,在触摸屏112上或在经由外部端口124连接的外部显示器上)的可执行指令。在一些实施例中,设备100任选地包括MP3播放器,诸如iPod(Apple Inc.的商标)的功能性。

结合触摸屏112、显示控制器156、接触模块130、图形模块132和文本输入模块134,记事本模块153包括用于根据用户指令来创建和管理记事本、待办事项等的可执行指令。

结合RF电路108、触摸屏112、显示系统控制器156、接触模块130、图形模块132、文本输入模块134、GPS模块135和浏览器模块147,地图模块154任选地用于根据用户指令接收、显示、修改和存储地图以及与地图相关联的数据(例如,驾车路线;关于特定位置处或附近的商店和其他感兴趣点的数据;以及其他基于位置的数据)。

结合触摸屏112、显示系统控制器156、接触模块130、图形模块132、音频电路110、扬声器111、RF电路108、文本输入模块134、电子邮件客户端模块140和浏览器模块147,在线视频模块155包括允许用户访问、浏览、接收(例如,通过流媒体和/或下载)、回放(例如在经由外部端口124所连接的触摸屏上或外部显示器上)、发送具有至特定在线视频的链接的电子邮件,以及以其他方式管理一种或多种文件格式诸如H.264的在线视频的指令。在一些实施例中,即时消息模块141而不是电子邮件客户端模块140被用来发送通往特定在线视频的链接。

上述所识别的每个模块和应用对应于用于执行上述一种或多种功能以及在本申请中所描述的方法(例如,本文中所描述的计算机实现的方法和其他信息处理方法)的一组可执行指令。这些模块(即指令集)不必被实现为独立的软件程序、过程或模块,因此这些模块的各种子集任选地在各种实施例中被组合或以其他方式重新布置。在一些实施例中,存储器102任选地存储上述模块和数据结构的子集。此外,存储器102任选地存储上面未描述的附加模块和数据结构。

在一些实施例中,设备100是这样的设备:其中唯一地通过触摸屏和/或触控板来执行该设备上的预定义的一组功能的操作。通过使用触摸屏和/或触控板作为用于设备100的操作的主要输入控制设备,任选地减少设备100上的物理输入控制设备(诸如下压按钮、拨号盘等)的数量。

唯一地通过触摸屏和/或触控板执行的该预定义的一组功能任选地包括在用户界面之间的导航。在一些实施例中,触控板在被用户触摸时将设备100从显示在设备100上的任何用户界面导航到主页、主菜单或根菜单。在此类实施例中,使用触控板来实现“菜单按钮”。在一些其他实施例中,菜单按钮是物理下压按钮或者其他物理输入控制设备,而不是触控板。

图15B是示出了根据一些实施例的用于事件处理的示例性部件的框图。在一些实施例中,存储器102(图15A中)包括事件分类器170(例如,在操作系统126中)和相应应用136-1(例如,前述应用137-13、155、380-390中的任何应用)。

事件分类器170接收事件信息并确定应用136-1和要将事件信息传递到的应用136-1的应用视图191。事件分类器170包括事件监视器171和事件分配器模块174。在一些实施例中,应用136-1包括应用内部状态192,该应用内部状态192指示当应用是活动的或正在执行时显示在触敏显示器112上的当前应用视图。在一些实施例中,设备/全局内部状态157被事件分类器170用来确定哪个(哪些)应用当前是活动的,并且应用内部状态192被事件分类器170用来确定要将事件信息传递到的应用视图191。

在一些实施例中,应用内部状态192包括附加信息,诸如以下中的一个或多个:当应用136-1恢复执行时将被使用的恢复信息、指示正通过应用136-1显示的信息或准备好用于通过应用136-1显示的信息的用户界面状态信息、用于使得用户能够返回到应用136-1的前一状态或视图的状态队列、以及用户采取的先前动作的重做/撤销队列。

事件监视器171从外围设备接口118接收事件信息。事件信息包括关于子事件(例如,用户接触该触敏显示器112作为多点接触手势的一部分)的信息。外围设备接口118传输其从I/O子系统106或传感器(诸如接近传感器166)、加速度计168和/或麦克风113(通过音频电路110)所接收的信息。外围设备接口118从I/O子系统106所接收的信息包括来自触敏显示器112或触敏表面的信息。

在一些实施例中,事件监视器171以预先确定的间隔将请求发送至外围设备接口118。作为响应,外围设备接口118传输事件信息。在其他实施例中,外围设备接口118仅当存在显著事件(例如,接收到高于预先确定的噪声阈值的输入和/或接收到超过预先确定的持续时间的输入)时才传输事件信息。

在一些实施例中,事件分类器170还包括命中视图确定模块172和/或活动事件识别器确定模块173。

当触敏显示器112显示多于一个视图时,命中视图确定模块172提供用于确定子事件已经在一个或多个视图内的什么地方发生的软件过程。视图由用户在显示器上可以看到的控件和其他元件构成。

与应用相关联的用户界面的另一方面是一组视图,本文中有时也称为应用视图或用户界面窗口,在其中显示信息并发生基于触摸的手势。在其中检测到触摸的(相应应用的)应用视图任选地对应于在应用的程序化或视图分级结构内的程序化水平。例如,其中检测到触摸的最低水平视图任选地被叫做命中视图,并且被识别为正确输入的事件集任选地至少部分地基于初始触摸的命中视图来确定,该初始触摸开始基于触摸的手势。

命中视图确定模块172接收与基于触摸的手势的子事件相关的信息。当应用具有以分级结构组织的多个视图时,命中视图确定模块172将命中视图识别为该分级结构中应当处理该子事件的最低视图。在大多数情况下,命中视图是发起子事件(即在事件或潜在事件的子事件序列中的第一个子事件)在其中发生的最低水平视图。一旦命中视图被命中视图确定模块所识别,命中视图就通常接收与其被识别为命中视图所针对的同一触摸或输入源相关的所有子事件。

活动事件识别器确定模块173确定在视图分级结构内的哪些视图应接收特定的子事件序列。在一些实施例中,活动事件识别器确定模块173确定仅命中视图应当接收特定的子事件序列。在其他实施例中,活动事件识别器确定模块173确定包括子事件的物理位置的所有视图是活跃参与的视图,并且因此确定所有活跃参与的视图应接收特定子事件序列。在其他实施例中,即使触摸子事件完全被局限到与一特定视图相关联的区域,分级结构中更高的视图将仍然保持为活跃参与的视图。

事件分配器模块174将事件信息分配到事件识别器(例如,事件识别器180)。在包括活动事件识别器确定模块173的实施例中,事件分配器模块174将事件信息传递到由活动事件识别器确定模块173确定的事件识别器。在一些实施例中,事件分配器模块174在事件队列中存储事件信息,该事件信息由相应事件接收器模块182检索。

在一些实施例中,操作系统126包括事件分类器170。另选地,应用136-1包括事件分类器170。在其他实施例中,事件分类器170是独立的模块,或者是存储在存储器102中的另一模块(诸如接触/移动模块130)的一部分。

在一些实施例中,应用136-1包括多个事件处理器190和一个或多个应用视图191,其中每一个应用视图都包括用于处理发生在应用的用户界面的相应视图内的触摸事件的指令。应用136-1的每个应用视图191包括一个或多个事件识别器180。通常,相应应用视图191包括多个事件识别器180。在其他实施例中,事件识别器180中的一个或多个事件识别器是独立模块的一部份,独立模块诸如是用户界面工具包(未示出)或应用136-1从中继承方法和其他属性的更高水平对象。在一些实施例中,相应事件处理器190包括以下一个或多个:数据更新器176、对象更新器177、GUI更新器178和/或从事件分类器170接收的事件数据179。事件处理器190任选地利用或调用数据更新器176、对象更新器177或GUI更新器178来更新应用内部状态192。或者,应用视图191中的一个或多个包括一个或多个相应事件处理器190。另外,在一些实施例中,数据更新器176、对象更新器177和GUI更新器178中的一者或多者被包括在相应应用视图191中。

相应的事件识别器180从事件分类器170接收事件信息(例如,事件数据179),并且从事件信息识别事件。事件识别器180包括事件接收器182和事件比较器184。在一些实施例中,事件识别器180还包括至少以下中的至少一个子集:元数据183和事件传递指令188(任选地包括子事件传递指令)。

事件接收器182接收来自事件分类器170的事件信息。事件信息包括关于子事件的信息,例如,接触或接触运动。根据子事件,事件信息还包括附加信息,诸如子事件的位置。当子事件涉及触摸的运动时,事件信息任选地还包括子事件的速率和方向。在一些实施例中,事件包括设备从一个取向旋转到另一取向(例如,从纵向取向旋转到横向取向,反之亦然),并且事件信息包括关于设备的当前取向(也被称为设备姿态)的对应信息。

事件比较器184将事件信息与预定义的事件或子事件定义进行比较,基于比较结果,确定一个事件或子事件,或确定或更新事件或子事件的状态。在一些实施例中,事件比较器184包括事件定义186。事件定义186包含事件的定义(例如,预定义的子事件序列),例如事件1(187-1)、事件2(187-2)以及其他。在一些实施例中,事件187中的子事件例如包括触摸开始、触摸结束、触摸移动、触摸取消和多点触摸。在一个实例中,事件1(187-1)的定义是在被显示对象上的双击。例如,该双击包括预先确定的阶段内在被显示对象上的第一次触摸(触摸开始)、预先确定的阶段内的第一次抬起(触摸结束)、预先确定的阶段内在被显示对象上的第二次触摸(触摸开始)以及预先确定的阶段内的第二次抬起(触摸结束)。在另一个实例中,事件2(187-2)的定义是在被显示对象上的拖动。例如,该拖动包括预先确定的阶段内在该被显示对象上的触摸(或接触)、该触摸在触敏显示器112上的移动、以及该触摸的抬起(触摸结束)。在一些实施例中,事件还包括用于一个或多个相关联的事件处理器190的信息。

在一些实施例中,事件定义187包括用于相应的用户界面对象的事件的定义。在一些实施例中,事件比较器184执行命中测试以确定哪个用户界面对象与子事件相关联。例如,在其中在触摸显示器112上显示三个用户界面对象的应用视图中,当在触敏显示器112上检测到触摸时,事件比较器184执行命中测试以确定这三个用户界面对象中的哪一个与该触摸(子事件)相关联。如果每个所显示的对象与相应的事件处理器190相关联,则事件比较器使用该命中测试的结果来确定哪个事件处理器190应当被激活。例如,事件比较器184选择与子事件和触发该命中测试的对象相关联的事件处理器。

在一些实施例中,相应事件187的定义还包括延迟动作,该延迟动作延迟事件信息的传递,直到已经确定子事件序列是否确实对应于或不对应于事件识别器的事件类型之后。

当相应事件识别器180确定子事件串不与事件定义186中的任何事件匹配时,该相应事件识别器180进入事件不可能、事件失败或事件结束状态,在该状态之后其不理会基于触摸的手势的后续子事件。在这种情况下,对于命中视图保持活动的其他事件识别器(如果有的话)继续跟踪和处理正在进行的基于触摸的手势的子事件。

在一些实施例中,相应事件识别器180包括具有指示事件传递系统应该如何执行对活跃参与的事件识别器的子事件传递的可配置的属性、标记和/或列表的元数据183。在一些实施例中,元数据183包括指示事件识别器彼此如何交互或如何能够交互的可配置的属性、标志和/或列表。在一些实施例中,元数据183包括可配置的属性、标记和/或列表,该可配置的属性、标记和/或列表指示子事件是否被传递到视图或程序化分级结构中的变化的水平。

在一些实施例中,当事件的一个或多个特定子事件被识别时,相应事件识别器180激活与事件相关联的事件处理器190。在一些实施例中,相应事件识别器180将与该事件相关联的事件信息传递到事件处理器190。激活事件处理器190不同于将子事件发送(和延期发送)到相应的命中视图。在一些实施例中,事件识别器180抛出与所识别的事件相关联的标记,并且与该标记相关联的事件处理器190接到该标记并执行预定义的过程。

在一些实施例中,事件传递指令188包括传递关于子事件的事件信息而不激活事件处理器的子事件传递指令。相反,子事件传递指令将事件信息传递到与子事件的系列相关联的事件处理器或者传递到活跃参与的视图。与子事件的系列或与活跃参与的视图相关联的事件处理器接收事件信息并执行预先确定的过程。

在一些实施例中,数据更新器176创建和更新在应用136-1中所使用的数据。例如,数据更新器176对联系人模块137中使用的电话号码进行更新,或者对视频播放器模块145中使用的视频文件进行存储。在一些实施例中,对象更新器177创建和更新在应用136-1中所使用的对象。例如,对象更新器176创建新的用户界面对象或更新用户界面对象的位置。GUI更新器178更新GUI。例如,GUI更新器178准备显示信息,并且将显示信息发送到图形模块132用于显示在触敏显示器上。

在一些实施例中,一个或多个事件处理器190包括数据更新器176、对象更新器177和GUI更新器178或者具有对数据更新器176、对象更新器177和GUI更新器178的访问权限。在一些实施例中,数据更新器176、对象更新器177和GUI更新器178被包括在相应应用136-1或应用视图191的单个模块中。在其他实施例中,它们被包括在两个或更多个软件模块中。

应当理解,上述关于触敏显示器上的用户触摸的事件处理的论述还适用于利用输入设备操作多功能设备100的其他形式的用户输入,并不是所有用户输入都是在触摸屏上发起的。例如,任选地利用如下项来作为对应于子事件的定义要识别的事件的输入:任选地结合单次或多次键盘按压或保持的鼠标移动和鼠标按钮按压;触控板上的接触运动,诸如轻击、拖动、滚动等;触笔输入;设备的运动;口头指令;检测到的眼睛运动;生物测定输入;和/或它们的任何组合。

图15C示出了根据一些实施例的操作环境1700的框图。操作环境1700包括服务器1710、一个或多个通信网络1705、便携式多功能设备100和外部信息呈现系统1740。在一些实施例中,外部信息呈现系统1740被实现在车辆中。

服务器1710通常包括一个或多个用于执行存储器1724中所存储的模块、程序和/或指令从而执行处理操作的处理单元(CPU)1712、一个或多个网络或其他通信接口1720、存储器1724,以及用于使这些部件互连的一个或多个通信总线1722。通信总线1722任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时叫做芯片组)。存储器1724包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,并且可包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器1724任选地包括从一个或多个CPU1712远程定位的一个或多个存储设备。存储器1724或另选地存储器1724内的非易失性存储器设备包括非暂态计算机可读存储介质。在一些实施例中,存储器1724或存储器1724的计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集:

·操作系统1726,其包括用于处理各种基础系统服务和用于执行硬件相关的任务的过程。

·网络通信模块1728,其用于通过一个或多个通信网络接口1720和一个或多个通信网络1705(有线地或无线地)将服务器1710连接至其他计算设备,一个或多个通信网络1705诸如互联网、其他广域网、局域网、城域网等。

便携式多功能设备100通常包括参考图15A-图15B所描述的部件。

外部信息呈现系统1740通常包括用于执行存储器1754中所存储的模块、程序和/或指令从而执行处理操作的一个或多个处理单元(CPU)1742、一个或多个网络或其他通信接口1750、存储器1754,以及用于使这些部件互连的一根或多根通信总线1752。外部信息呈现系统1740任选地包括用户界面1744,该用户界面1744包括显示设备1746和控件1748(例如,机械示能表示或旋钮)。在一些实施例中,显示器1746是能够接收用户触摸输入的触摸屏显示器。通信总线1752任选地包括使系统部件互连并且控制系统部件之间的通信的电路(有时叫做芯片组)。存储器1754包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,并且可包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器1754任选地包括从一个或多个CPU 1742远程定位的一个或多个存储设备。存储器1752或另选地存储器1752内的非易失性存储器设备包括非暂态计算机可读存储介质。在一些实施例中,存储器1752或存储器1752的计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集:

·操作系统1756,其包括用于处理各种基础系统服务的过程和用于执行硬件相关的任务的过程;以及

·网络通信模块1758,其用于通过一根或多根有线或无线通信网络接口1750和一个或多个通信网络1705将服务器1740(有线或无线地)连接至其他计算设备,该一个或多个通信网络1705诸如互联网、其他广域网、局域网、城域网等。

在一些实施例中,设备100驱动系统1740的显示器1746。例如,设备100向系统1740发送视频信号,并且系统1740的CPU 1742在显示器1746上呈现该视频信号。在一些实施例中,设备100的触摸屏112上所显示的用户界面与系统1740的显示器1746上所显示的用户界面同步,并且在一些其他实施例中,设备100的触摸屏112上所显示的用户界面不与系统1740的显示器1746上所显示的用户界面同步。在一些实施例中,系统1740向设备100发送对应于用户输入(例如,显示器1746上的用户触摸输入、或通过控件1748的用户输入)的信息,并且设备100根据所接收的信息来更新设备100的触摸屏112上所显示的用户界面。

图16A-图16F是方法1610的流程图,该方法用于根据确定在或不在受限的注意力分散情景中操作设备来对打开相应应用的请求做出响应。在一些实施例中,由耦接到电子设备外部信息呈现系统(例如,系统1740,图15C)的电子设备(例如,图15A和15C中所示的设备100)执行或在其那里执行方法1610。在一些实施例中,方法1610部分地由电子设备执行,并部分地由外部信息呈现系统在电子设备的控制下执行。在一些实施例中,方法1610被存储器(例如,设备100中的非暂态计算机可读存储介质,图15A)中存储的一组指令支配,该指令是由电子设备的一个或多个处理器执行的。

在过程1610中,具有一个或多个处理器和存储器的电子设备接收第一输入,该第一输入对应于打开相应应用的请求(1611)。该第一输入的实例包括打开邮件应用、电话应用或除邮件应用之外的文本消息应用的请求。

设备通过如下方式之一对该第一请求(1612)做出响应。根据确定在受限的注意力分散情景中操作设备,该设备提供(1614)针对相应应用的受限的注意力分散用户界面包括显示比在针对相应应用的非受限用户界面中显示的可选择用户界面对象少的可选择用户界面对象。受限的注意力分散情景的实例是如下一种:设备连接到车辆的信息呈现系统(例如,用于娱乐和/或导航信息的表示系统),车辆正在运动或被确定为处于与运动一致的状态中(例如,传输处于与驾驶车辆一致的任何模式中)。

根据确定不在受限的注意力分散情景中操作设备(例如,设备未连接到车辆的信息呈现系统,或设备连接到车辆的信息呈现系统但车辆被确定为不处于与运动一致的状态中),设备提供(1628)针对相应应用的非受限的用户界面。

在一些实施例中,在显示受限的注意力分散用户界面(1616)时,设备接收(1618)第二输入,该第二输入对应于用于解除受限的注意力分散用户界面的请求。响应于接收到这第二输入,该设备显示(1620)针对相应应用的非受限的用户界面。例如,设备接收对应于解除用于文本消息应用的受限的注意力分散用户界面的请求的第二输入,并通过显示用于文本消息应用的非受限用户界面做出响应。

在一些实施例中,提供(1622)针对相应应用的受限的注意力分散用户界面包括提供(1624)听觉提示,其描述用于与受限的注意力分散用户界面交互的选项,以及响应于接收到一个或多个口头命令来执行(1626)一个或多个操作。例如,针对语音邮件应用的受限的注意力分散用户界面提供了用于收听相应语音邮件消息、重复一些或全部相应语音邮件消息(例如,重复最后30秒,或重复整个消息)、收听不同语音邮件消息、删除语音邮件消息或回呼留下相应消息的呼叫者的听觉提示。在另一个实例中,针对文本消息应用的受限注意力分散用户界面提供针对收听文本消息的文本到语音转换、对文本消息做出响应、回呼文本消息的发送者或提醒用户稍晚对文本消息做出响应的听觉提示。

在一些实施例中,提供(1630)受限注意力分散用户界面包括,根据确定在相应时间段内接收到(1632)与相应应用相关的一个或多个新通知,为用户提供用于查看一个或多个新通知的第一选项和用于执行与相应应用相关联的预定义操作的第二选项。类似地,根据确定在相应时间段内未接收到(1634)与相应应用相关的新通知,为用户提供用于执行与相应应用相关联的预定义操作的第二选项,而不为用户提供用于查看新通知的第一选项。有几种方式可以表现这些动作。例如,在相应应用是电子邮件应用时,根据确定已经在相应时间段内接收到与电子邮件应用相关的一个或多个新通知(例如,对于新的电子邮件消息),为用户提供用于查看一个或多个新通知(例如,新的电子邮件消息)的第一选项和用于执行与电子邮件应用相关联的预定义操作的第二选项(例如,回复、删除或转发一个或多个新电子邮件消息)。在一些实施例中,在提供第二选项之前提供第一选项。在一些实施例中,在提供第一选项之前提供第二选项。此外,相对于操作1632和1634,在一些实施例中,在使用受限注意力分散界面时,经由听觉提示并通过在耦接到用户设备的信息呈现系统上显示选项来向用户呈现选项,用户然后可以通过语音或通过与车辆的信息呈现系统交互来选择做出响应。在一些其他实施例中,在使用受限注意力分散界面时,经由听觉提示向用户呈现选项,但不在耦接到用户设备的信息呈现系统上显示。

在另一个实例中,其中相应应用是(1636)语音通信应用,用于查看一个或多个新通知的第一选项是用于收听一个或多个最近接收的语音邮件消息的选项并且用于执行预定义操作的第二选项是用于拨打新电话的选项。在另一个实例中,其中相应应用是(1638)文本通信应用,用于查看一个或多个新通知的第一选项是用于收听一个或多个最近接收的文本消息的文本到语音转换的选项,并且用于执行预定义操作的第二选项是用于利用语音到文本转换来指示新文本消息的选项。在一些实施例中,相应的时间段为可变时间段,诸如自从便携式设备连接到车辆的时间量或自从用户上次检查与相应应用相关的新通知的时间量。在一些实施例中,相应时间段是固定时间段,诸如30分钟、1小时、2小时、24小时。另选地,相应时间段是固定时间段和自从用户上次检查与相应应用相关的新通知的时间量中的较少者。在一些实施例中,在提供第二选项之前提供第一选项。在一些实施例中,在提供第一选项之前提供第二选项。

在一些实施例中,在提供(1640)受限的注意力分散用户界面时,该设备接收(1642)第二输入,该第二输入对应于用于收听与相应通信对应的音频的请求,然后播放(1644)与相应通信对应的音频,并进一步提供(1646)用于对相应通信做出响应的多个口头命令选项的听觉描述。例如,在为语音邮件应用提供受限的注意力分散用户界面时,该设备接收第二输入,该第二输入对应于用于收听与相应语音邮件消息对应的音频的请求,然后播放对应于相应语音邮件消息的音频,然后提供用于对相应语音邮件消息做出响应的口头命令的多个选项的听觉描述,以诸如重复相应语音邮件消息的一些或全部(例如,重复最后30秒或重复整个消息),删除语音邮件消息或回呼留下相应消息的呼叫者。在另一个实例中,在为文本消息应用提供受限的注意力分散用户界面时,该设备接收对应于用于收听与相应文本消息对应(例如文本到语音转换)的音频的请求的第二输入,在播放对应于相应文本消息的音频之后,提供用于对相应文本消息做出响应的口头命令的多个选项的听觉描述,以诸如通过文本消息对文本消息做出响应,回呼消息发送者或提醒用户稍晚对消息做出响应。

在一些实施例中,该电子设备是(1648)便携式设备,其连接到车辆信息呈现系统(例如,用于娱乐和/或导航信息的表示系统),提供(1650)受限注意力分散用户界面包括向车辆信息呈现系统发送指令,以输出对应于受限注意力分散用户界面的信息。例如,该设备为连接到车辆信息呈现系统的便携式设备,受限的注意力分散用户界面包括向车辆显示器和/或车辆扬声器系统发送指令。在一些实施例中,当车辆在运动或被确定处于与运动一致的状态中时(例如,在传输处于与驾驶车辆一致的任何模式中时),禁用车辆的显示器和/或扬声器。

如前所述,根据不在受限的注意力分散情景中操作设备的确定(例如,设备未连接到车辆信息呈现系统,或设备连接到车辆信息呈现系统但车辆被确定为不处于与运动一致的状态中),设备提供(1628)用于相应应用的非受限用户界面。在一些实施例中,该电子设备是(1652)便携式设备,其连接到车辆信息呈现系统,提供非受限的用户界面包括向车辆信息呈现系统发送指令,以输出对应于非受限用户界面的信息。例如,该设备为连接到车载信息呈现系统的便携式设备,非受限的注意力分散用户界面包括向车辆显示器和/或车辆扬声器系统发送指令。在一些实施例中,当车辆在运动或被确定处于与运动一致的状态中时(例如,在传输处于与驾驶车辆一致的任何模式中时),禁用车辆的显示器和/或扬声器。在一些实施例中,如果车辆正在以相应速度阈值(例如,0、1、2、或5英里每小时)或低于其的速度运动和/或如果已经解除了受限的注意力分散用户界面,则在设备连接到车辆信息呈现系统时显示非受限的用户界面。

在一些实施例中,非受限的用户界面包括(1654)显示的用于执行相应操作的用户界面,而受限的注意力分散用户界面不包括(1656)用于执行相应操作的所显示用户界面。在提供(1658)受限的注意力分散用户界面时,接收执行相应操作的口头命令。响应于接收到该口头命令,执行相应的操作(1660)。例如,针对发送电子邮件消息的受限的注意力分散用户界面不包括显示的用户界面,接收用于发送电子邮件消息的口头命令,响应于接收到用于发送电子邮件消息的口头命令,发送电子邮件消息。

在一些实施例中,方法1610包括接收用于提供(1662)消息文本的请求。响应于用于提供消息文本的请求(1664),向用户提供消息的文本。在提供受限的注意力分散用户界面时,向用户提供(1666)消息的文本包括向用户阅读消息的文本而不显示文本(例如,提供文本到语音转换)。在提供非受限的注意力分散用户界面时,向用户提供(1668)消息的文本包括在显示器(例如,设备100的显示器,图15A和15C)上显示消息的文本。通常,即使在提供非受限的用户界面时,也不在集成到车中的信息呈现系统(例如,系统1740,图15C)的显示器上显示消息的文本,相反,仅在用户的电子设备(例如设备100,图15A和15C中所示)的显示器上显示文本。然而,在一些其他实施例中,在提供非受限的用户界面时,在集成到车中的信息呈现系统(例如系统1740,图15C)上显示消息的文本。在另一些实施例中,利用文本到语音转换来指示消息的文本,但不显示(即,不在电子设备上显示,也不在信息呈现系统上显示),即使在提供非受限的用户界面时也如此。

在一些实施例中,提供(1670)受限的注意力分散用户界面包括提供用于在相应应用中执行相应操作的第一示能表示,其中第一示能表示具有比相应尺寸大的尺寸。本文有时将显示的示能表示称为用户界面对象。提供(1672)非受限注意力分散用户界面包括显示用于在相应应用中执行相应操作的第二示能表示,其中第二示能表示具有等于或小于相应尺寸的尺寸。在一些实施例中,受限的注意力分散用户界面仅包括所显示的尺寸大于相应尺寸(例如,在驾驶的情景中,以便为用户给出更大的选择目标,其需要更少的注意力来选择,由此降低驾驶员注意力分散的可能性)的示能表示(例如,“拨打电话”按钮和/或“收听语音邮件”按钮)。

在一些实施例中,在提供(1674)受限的注意力分散用户界面时,响应于用户输入(例如,收听语音邮件、拨打电话、收听文本消息或发送新的文本消息)来执行相应应用中的第一操作。在执行(1676)第一操作之后,在提供非受限用户界面时,检测第二输入。响应于检测到该第二输入(1678),显示已经执行第一操作的指示(例如,设备显示最近的电话列表或消息会话,其示出在设备在受限注意力分散情景中操作时发送的呼叫或消息)。

应当理解,对图16A-图16F中已经进行描述的操作的特定次序仅仅是示例性的,并非旨在指示所述次序是这些操作可被执行的唯一次序。本领域的普通技术人员会想到多种方式来对本文所述的操作进行重新排序。

已经相对于可能的实施例特别详细描述了本发明。本领域的技术人员应当理解,可以在其他实施例中实践本发明。首先,部件的特定命名、术语的大写、属性、数据结构或任何其他编程或结构方面不是强制性的或重要的,实施本发明或其特征的机构可以具有不同的名称、格式或协议。此外,可以如上所述通过硬件和软件的组合或整个在硬件元件中或整个在软件元件中实施该系统。而且,本文描述的各种系统部件之间的特别功能划分仅仅是示例性的,并非强制性的;由单个系统部件执行的功能可以转而由多个部件执行,由多个部件执行的功能可以转而由单个部件执行。

在各种实施例中,可以将本发明实现为一种用于单独或以任何组合执行上述技术的系统或方法。在另一个实施例中,可以将本发明实现为包括非暂态计算机可读存储介质和计算机程序代码的计算机程序产品,计算机程序代码编码在介质上,用于使得计算设备或其他电子设备中的处理器执行上述技术。

本说明书中提到的“一个实施例”或“实施例”是指,结合实施例所描述的特定特征、结构或特性可包括在本发明的至少一个实施例中。在本说明书中的不同位置出现短语“在一个实施例中”不一定都是指同一个实施例。

已按照对计算设备的存储器内的数据位进行操作的算法和符号表示给出了以上内容的一些部分。这些算法描述和表示是数据处理领域的技术人员所使用的装置,而这些装置也能最有效地将其工作实质传达给该领域的其他技术人员。算法在本文一般是指导致所希望的结果的操作的自相一致的步骤(指令)。步骤是那些需要对物理量进行物理操控的步骤。通常,尽管不是必要的,但这些量采用能够被存储、传送、组合、比较以及以其他方式操控的电、磁或光信号形式。在主要出于通用原因而将这些信号指代为位、值、要素、符号、字符、项、数字等时是方便的。此外,有时将需要物理操控物理量的步骤的特定布置指代为模块或代码设备也是方便而不失一般性的。

然而,应当谨记,所有这些以及类似的术语都与适当的物理量相关联,并且只是应用于这些量的方便标签。除非另外特别说明,否则从以下论述中显而易见的是,可以理解,在整个说明书中,使用诸如“处理”或“运算”或“计算”或“显示”或“确定”等术语的论述是指计算机系统或类似的电子计算模块和/或设备的动作和过程,其可对计算机系统存储器和寄存器或其他此类信息存储、传输或显示设备中表示为物理(电子)量的数据进行操控和转换。

本发明的特定方面包括本文以算法形式描述的过程步骤和指令。需注意,可以在软件、固件和/或硬件中体现本发明的过程步骤和指令,在实现于软件中时,可以将其下载以驻留于由各种操作系统使用的不同平台上或从其加以操作。

本发明还涉及一种用于执行本文的操作的装置。该装置可专门构造用于所需的目的,或者可包括由存储在计算设备中的计算机程序选择性地激活或重新配置的通用计算设备。此类计算机程序可存储在计算机可读存储介质中,例如但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘,只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、专用集成电路(ASIC),或适合用于存储电子指令的任何类型的介质,并且每个介质均耦接到计算机系统总线。此外,本文所称的计算设备可以包括单个处理器或者可以是针对提高的计算能力采用多个处理器设计的架构。

本文中所呈现的算法和显示并不固有地与任何特定计算设备、虚拟系统或其他装置相关。根据本文的教导内容,各种通用系统还可以与程序一起使用,或者可以证明其便于构造用于执行所要求的方法步骤的更专用的装置。根据本文所提供的描述,用于各种这些系统的所需结构将是显而易见的。此外,本发明未参照任何特定的编程语言进行描述。应当理解,可以使用多种编程语言实现本文所述的本发明的教导内容,上文提到的任何具体语言都是为了公开本发明的实现和最优模式而提供的。

因此,在各种实施例中,可以将本发明实现为软件、硬件和/或其他元件,以用于控制计算机系统、计算设备或其他计算设备或它们的任何组合或多者。根据现有技术中公知的技术,此类电子设备可以包括,例如处理器、输入设备(诸如键盘、鼠标、触控板、跟踪板、操纵杆、轨迹球、麦克风和/或它们的任何组合)、输出设备(诸如屏幕、扬声器等)、存储器、长期存储装置(诸如磁性存储装置、光存储装置等)和/或网络连接。此类电子设备可以是便携的或非便携的。可以用于实施本发明的电子设备的实例包括:移动电话、个人数字助理、智能电话、自助服务终端、台式计算机、膝上型计算机、平板电脑、消费电子设备、消费娱乐设备、音乐播放器、相机、电视、机顶盒、电子游戏设备等。用于实施本发明的电子设备可以使用任何操作系统,例如,可购自Apple Inc(Cupertino,California)的iOS或MacOS,或适应于在该设备上使用的任何其他操作系统。

尽管已经相对于有限数量的实施例描述了本发明,但是本领域的技术人员受益于以上描述,应当理解可以设计出不脱离本文所述的本发明的范围的其他实施例。此外,应当指出,出于可读性和指导性目的,在原则上选择了本说明书中使用的语言,可以不这样选择以描绘或界定本发明的主题。因此,本发明的公开内容意在例示而非限制在权利要求书中所阐述的本发明的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1