首页> 中国专利> 利用本地文本响应映射呈现对用户的口头话语的响应

利用本地文本响应映射呈现对用户的口头话语的响应

摘要

本文公开的实施方式涉及由客户端设备生成和/或利用在客户端设备上本地存储的文本响应映射。文本响应映射可以包括多个映射,其中映射中的每一个定义相对应的文本和相对应的响应之间的相对应的直接关系。基于先前根据由客户端设备捕获的先前的音频数据生成的相对应的文本并且基于先前响应于向远程系统传输先前的音频数据和相对应的文本中的至少一个而从远程系统接收的相对应的响应,在文本响应映射中定义映射中的每一个。

著录项

  • 公开/公告号CN112334976A

    专利类型发明专利

  • 公开/公告日2021-02-05

    原文格式PDF

  • 申请/专利权人 谷歌有限责任公司;

    申请/专利号CN201880094598.1

  • 发明设计人 高宇立;成相洙;

    申请日2018-06-27

  • 分类号G10L15/22(20060101);G10L15/30(20060101);G10L15/26(20060101);

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人李宝泉;任庆威

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 09:47:53

说明书

背景技术

基于语音的用户界面越来越多地用于控制计算机和其他电子设备。基于语音的用户界面的一个尤其有用的应用是随同便携式电子设备,诸如移动电话、手表、平板电脑、头戴式设备、虚拟或增强现实设备等。另一有用的应用是随同车载电子系统,诸如结合导航和音频功能的汽车系统。这种应用通常以非传统形式因素为特征,这些非传统形式因素限制了更传统的键盘或触摸屏输入的效用和/或在期望鼓励用户保持专注于其他任务的情况(诸如当用户正在驾驶或行走时)下的用途。

基于语音的用户界面已经从只能理解简单直接命令的早期初级界面持续发展到响应自然语言请求并且能够理解场境并管理与用户的往返对话或会话的更复杂的界面。许多基于语音的用户界面结合了将人类语音的音频记录转换成文本的初始讲话到文本转换、以及在试图确定用户的请求的含义中分析文本的语义分析。基于用户的记录语音的确定含义,可以采取行动,诸如执行搜索或以其他方式控制计算机或其他电子设备。

用户可以经由口头话语向客户端设备提交查询和/或命令,从而口头指示提供什么用户感兴趣的信息和/或用户感兴趣执行的动作。典型地,口头话语由客户端设备的一个或多个麦克风检测,并被捕获为音频数据。音频数据被传输到远程系统以便进行进一步处理。远程系统处理音频数据以确定适当的响应,并将该响应传输给客户端设备,以便由客户端设备进行呈现。

由远程系统对音频数据进行的处理可以包括使用讲话到文本(speech-to-text,STT)组件来基于音频数据生成文本,其中所生成的文本反映了由音频数据捕获的口头话语。该处理还可以包括在试图确定文本的含义或意图——以及基于所确定的含义要执行的动作时,使用自然语言处理器(NLP)和/或其他语义处理器处理所生成的文本。然后,可以执行该动作以生成相对应的响应,并将该相对应的响应传输到从其接收音频数据的客户端设备。

远程系统的组件可以使大量计算资源致力于处理音频数据,使得能够实施比在客户端设备中本地实施的更复杂的讲话识别和语义分析功能。然而,客户机-服务器方法必然要求客户机在处理语音输入时在线(即,与远程系统通信)。在各种情况下,可能无法在所有时间和所有位置保证连续的在线连接,因此每当客户端设备“离线”并因此未连接到在线服务时,在该设备中,客户端-服务器的基于语音的用户界面可能被禁用。此外,客户端-服务器方法可能消耗大量带宽,因为它需要从客户端向远程系统的组件传输高带宽音频数据。在远程系统正在处理来自大量客户端设备的请求的一般情况下,带宽消耗被放大。更进一步地,客户端-服务器方法在向用户呈现响应时可能表现出显著的延迟,这可能导致基于语音的用户-客户端交互被延长,并且客户端设备的资源将被利用持续延长的持续时间。客户端-服务器方法的延迟可能是传输延迟和/或由远程系统执行的语音到文本处理、语义处理和/或响应生成方面的延迟的结果。更进一步地,在客户端-服务器方法中客户端和服务器之间的消息交换可能需要相对大量的功率消耗以便进行消息的传输和接收。这一点的影响可能尤其被客户端设备感受到,该客户端设备的可用功率通常由具有相对有限的存储容量的设备上的电池提供。

发明内容

本文公开的实施方式涉及由客户端设备生成和/或利用在客户端设备上本地存储的文本响应映射。文本响应映射可以包括多个映射,其中映射中的每一个定义相对应的文本和相对应的响应之间的相对应的直接关系。基于先前根据由客户端设备捕获的先前的音频数据生成的相对应的文本并且基于先前响应于向远程系统传输先前的音频数据和相对应的文本中的至少一个而从远程系统接收的相对应的响应,在文本响应映射中定义映射中的每一个。

当由客户端设备检测到口头话语时,客户端设备可以利用本地语音到文本/讲话到文本(STT)模型来生成对应于口头话语的文本。客户端设备然后可以确定所生成的文本是否与文本响应映射的相对应的文本中的任何一个相匹配。如果是并且可选地如果满足一个或多个其他条件(例如,基于本文描述的置信度得分的一个或多个条件),则客户端设备可以利用文本响应映射的相对应的映射来选择与相对应的文本具有直接关系的响应,如相对应的映射所定义的那样。客户端设备然后可以经由客户端设备的一个或多个输出设备(例如,一个或多个扬声器和/或一个或多个显示器),从其本地存储器立即呈现响应。响应于口头话语来呈现该响应,并且呈现响应可以包括呈现响应的文本、响应的一个或多个图形、响应的音频数据(或者使用本地存储的文本到讲话(TTS)处理器从响应转换的音频数据)和/或其他内容。响应可以附加地或替代性地包括要由客户端设备传输的命令,诸如被传输(例如,经由WiFi和/或蓝牙)到一个或多个外围设备以控制一个或多个外围设备的命令。如下所解释那样,在已经确定由本地语音到文本/讲话到文本(STT)生成的文本与文本响应映射的相对应的文本中的任何一个相匹配的情况下,响应可以由客户端设备提供,而无需客户端设备向远程系统传输指示检测到的口头话语的数据。

以这些和其他方式,客户端设备可以呈现响应,而不需要执行和/或不等待执行本地和/或远程资源密集型的和延迟诱导的以下操作:用于确定文本的含义或意图的文本的语义处理;以及基于所确定的含义或意图生成响应。因此,当所生成的文本与文本响应映射的相对应的文本中的一个相匹配时,可以以减少的延迟和/或减少的资源消耗来呈现与文本(如由文本响应映射的相对应的映射所定义)具有直接关系的响应。而且,在各种情况下,可以在没有(捕获口头话语的)音频数据或基于音频数据生成的文本到远程系统的消耗带宽的传输的情况下呈现响应。这可以进一步提高客户端设备的电池寿命,或者另外地释放功率资源用于在客户端设备处进行其他任务,因为到远程系统/来自远程系统的消息的功率密集型传输和接收减少了。

在一些实施方式中,提供了一种方法,该方法包括以下步骤:客户端设备捕获用户的口头话语的音频数据,并处理该音频数据以生成文本。在这样的实施方式中,STT处理在客户端设备上本地执行,并且不需要将音频数据提交到云。接下来,访问文本响应映射,该文本响应映射包括映射到响应的文本。这个映射是基于先前文本来构建的,该先前文本是根据被映射到当先前提交音频数据时从远程系统接收的响应的、用户的先前口头话语的音频数据生成的。客户端设备然后确定文本响应映射是否包括所生成的文本的文本映射。响应于确定文本响应映射包括与文本相匹配的文本映射,由客户端设备选择并呈现这个文本映射的映射的响应。

如果文本未包括在映射中,则将音频数据(和/或对应于音频数据的、客户端设备生成的文本)提交给远程系统以便进行进一步处理。由远程系统执行STT和/或NLP以确定对应于口头话语的动作,利用所生成的动作来生成响应,并将该响应提供给客户端设备。然后,客户端设备可以呈现响应,并将生成的文本与响应一起存储。当用户随后提交相同的口头话语,客户端设备可以本地处理音频数据以生成相对应的文本、检查该文本是否包括在映射中,并且在不需要NLP处理和提交给服务器的情况下呈现映射的响应。因此,不仅客户端设备上的本地映射节省了计算时间,如果映射已经包括文本的话,则该方法可以离线执行。

在某些情况下,响应是动态的,并且对于相同的口头话语可能导致不同的响应。例如,“What time is it right now(现在几点了)”的口头话语是动态查询,该动态查询在其每次提交时不同。动态查询的其他示例包括天气、与用户的位置相关的查询以及时间敏感的其他查询。另一方面,一些查询可以是静态的,并且对于给定的话语很少(如果有的话)导致不同的响应。例如,“What is the capital of the United States(美国的首都是什么)”总是会导致相同的响应,而不管话语是何时提交的。在某些情况下,响应可能在给定的时间段内是静态的,并且然后过期。例如,“What is the weather today(今天天气如何)”可能会在一天的持续时间中保持是静态的,并且随后在给定时间过期,诸如在午夜。

在一些实施方式中,为了帮助保持在客户端设备上本地存储的文本的映射的响应是最新的,客户端设备即使在映射中标识了文本的情况下也可以向远程系统提交音频数据或指示口头话语的其他数据(诸如对应于音频数据的客户端设备生成的文本)。客户端设备可以提供映射的响应,并且一旦从远程系统接收响应,就可以用映射的响应来检查所接收的响应。如果映射的响应与接收的响应匹配,则客户端设备可以更新映射以反映响应是静态的。例如,可以更新与每个文本映射相关联的置信度得分,以反映接收到与存储在映射中相同的响应。如果接收到不同的响应,可以更新置信度得分以反映所存储的和所接收的响应不匹配。例如,在某些情况下,如果响应不匹配,则可以移除文本映射,以确保随后不向用户提供过时的响应。在某些情况下,映射可能被标记为过时,而不移除文本映射。在一些情况下,仅当与映射相关联的置信度得分满足阈值的情况下,才可以提供映射的响应。例如,在映射的响应的置信度得分达到代替向远程系统提供音频数据或指示口头话语的其他数据而提供映射的响应的水平之前,服务器响应可以被提供必要的次数(其中每个服务器响应是相同的)。可选地,当置信度得分满足阈值时,客户端设备可以自动不向远程系统传输音频数据或指示口头话语的其他数据。替代性地,在客户端设备向远程系统传输音频数据或指示口头话语的其他数据的实施方式中,客户端设备可以在从远程系统接收回复之前从其本地存储器提供映射的响应。

在一些实施方式中,提供了一种由客户端设备的一个或多个处理器实施的方法,并且该方法包括经由客户端设备的至少一个麦克风捕获音频数据,该音频数据捕获用户的口头话语。该方法还包括处理音频数据以生成对应于口头话语的当前文本。处理音频数据以生成当前文本利用在客户端设备上本地存储的语音到文本模型。该方法还包括访问本地存储在客户端设备上的文本响应映射。文本响应映射包括多个映射,其中映射中的每一个基于先前根据由客户端设备捕获的先前的音频数据生成的相对应的文本并且基于先前响应于向远程系统传输先前的音频数据和相对应的文本中的至少一个而从远程系统接收的相对应的响应来定义相对应的文本和相对应的响应之间的相对应的直接关系。该方法还包括确定文本响应映射的相对应的文本中的任何一个是否与当前文本相匹配。该方法还包括,响应于确定文本响应映射的相对应的文本中的给定文本与当前文本相匹配而:选择文本响应映射的相对应的响应中的给定响应,并使得该给定响应经由与客户端设备相关联的一个或多个用户界面输出设备被呈现。选择给定响应是基于包括映射中的将给定响应定义为与给定文本有直接关系的映射的文本响应映射。

该技术的这些和其他实施方式可以包括以下特征中的一个或多个。

在一些实施方式中,该方法还包括:将音频数据或当前文本传输到远程系统;响应于传输音频数据或当前文本,从远程系统接收响应于口头话语的服务器响应;将服务器响应与给定响应进行比较;以及基于比较来更新文本响应映射。在那些实施方式的一些版本中,接收服务器响应发生在给定响应的至少一部分已经经由一个或多个用户界面输出设备被呈现之后。在这些实施方式的一些附加或替代版本中,将服务器响应与给定响应进行比较指示服务器响应不同于给定响应。在这些附加或替代性版本中的一些版本中,更新文本响应映射包括:基于指示服务器响应不同于给定响应的比较,更新将给定响应定义为与给定文本具有直接关系的映射,以将服务器响应定义为与给定文本具有直接关系。在这些附加或替代性版本中的一些版本中,更新文本响应映射包括:基于指示服务器响应不同于给定响应的比较来从文本响应映射中移除将给定响应定义为与给定文本具有直接关系的映射。在这些附加或替代性版本中的一些版本中,更新文本响应映射包括:基于指示服务器响应不同于给定响应的比较来在文本响应映射中存储防止给定文本被映射到任何响应的数据。

在包括更新文本响应映射的一些实施方式中,更新文本响应映射包括调整与将给定响应定义为与给定文本具有直接关系的映射相关联的置信度得分。在那些实施方式的一些版本中,调整与将给定响应定义为与给定文本具有直接关系的映射相关联的置信度得分包括:如果比较指示给定响应与服务器响应相匹配,则将置信度得分调整为更多地指示置信度。在这些实施方式的一些附加或替代版本中,选择给定响应还基于与映射相关联的置信度得分满足阈值。

在一些实施方式中,该方法还包括:经由客户端设备的至少一个麦克风捕获附加音频数据,该附加音频数据捕获附加口头话语;利用在客户端设备上本地存储的语音到文本模型,处理附加音频数据以生成对应于附加口头话语的附加文本;确定文本响应映射的相对应的文本中的任何一个是否与附加文本相匹配;以及响应于确定文本响应映射的相对应的文本中没有一个与附加文本相匹配而:向服务器系统传输附加文本和附加音频数据中的至少一个、响应于传输附加文本和附加音频数据中的至少一个而从服务器系统接收附加响应,以及使得附加响应经由与客户端设备相关联的用户界面输出设备中的一个或多个被呈现。在这些实施方式的一些中,该方法还包括:从服务器系统与附加响应一起接收服务器响应是附加文本的静态响应的指示;以及响应于接收到服务器响应是附加文本的静态响应的指示而向文本响应映射添加定义附加文本和附加响应之间的新的直接关系的新映射。

在一些实施方式中,当执行该方法时,客户端设备缺乏到互联网的任何连接。

在一些实施方式中,该方法还包括确定与将给定响应定义为与给定文本具有直接关系的映射相关联的置信度得分。在这些实施方式中的一些实施方式中,使得给定响应被呈现包括:响应于置信度得分满足阈值而使得给定响应被呈现,而不将音频数据或当前文本传输到远程系统。

在一些实施方式中,该方法还包括:在呈现给定响应之前,向远程系统传输音频数据或当前文本;确定与将给定响应定义为与给定文本具有直接关系的映射相关联的置信度得分;以及基于置信度得分,确定用于等待响应于传输音频数据或当前文本从远程系统接收响应于口头话语的服务器响应的阈值时间量。在这些实施方式中的一些实施方式中,使得给定响应被呈现包括:当在阈值时间量到期之前没有接收到服务器响应时,使得给定响应在阈值时间量到期时被呈现。

在一些实施方式中,提供了一种由客户端设备的一个或多个处理器实施的方法,并且该方法包括经由客户端设备的至少一个麦克风捕获音频数据,该音频数据捕获用户的口头话语;以及处理音频数据以生成对应于口头话语的当前文本。处理音频数据以生成当前文本利用在客户端设备上本地存储的语音到文本模型。该方法还包括访问本地存储在客户端设备上的文本响应映射。文本响应映射包括多个映射,并且映射中的每一个基于先前根据由客户端设备捕获的先前的音频数据生成的相对应的文本并且基于先前响应于向远程系统传输先前的音频数据和相对应的文本中的至少一个而从远程系统接收的相对应的响应来定义相对应的文本和相对应的响应之间的相对应的直接关系。该方法还包括:由客户端设备确定文本响应映射的相对应的文本未能与当前文本相匹配;向远程系统传输音频数据或当前文本;响应于提交音频数据或当前文本从远程系统接收响应;以及通过添加给定的文本映射来更新文本响应映射。给定的文本映射定义了当前文本和响应之间的直接关系。该方法还包括:在更新文本响应映射之后,捕获第二音频数据;利用在客户端设备上本地存储的语音到文本模型,处理第二音频数据以生成第二文本;基于文本响应映射来确定当前文本与第二文本相匹配;并且响应于确定当前文本与第二文本相匹配,并且基于包括定义当前文本和响应之间的直接关系的给定文本映射的文本响应映射而:使得响应经由与客户端设备相关联的一个或多个用户输出设备被呈现。

该技术的这些和其他实施方式可以可选地包括以下特征中的一个或多个。

在一些实施方式中,该方法还包括与该响应一起接收该响应是否是静态的指示。在这些实施方式中的一些中:响应于指示响应是静态的指示而发生将给定的文本映射添加到文本响应映射。

在一些实施方式中,更新文本响应映射还包括存储与给定文本映射相关联的置信度得分,其中置信度得分指示响应是静态的可能性。在这些实施方式的一些中,该方法还包括:向远程系统提交第二音频数据;响应于提交第二音频数据,从远程系统接收第二服务器响应;以及基于第二服务器响应来进一步更新置信度得分。

在一些实施方式中,该方法还包括:与响应一起接收响应仅在直到期事件发生之前为止是静态的指示;利用给定的文本映射更新文本响应映射以包括到期事件的指示;以及当到期事件发生时,从文本响应映射中移除给定的文本映射。

在一些实施方式中,更新文本响应映射包括从文本响应映射中移除一个或多个映射。

一些实施方式包括计算装置,该计算装置包括一个或多个处理器和存储计算机可执行指令的至少一个存储器,该计算机可执行指令在被一个或多个处理器执行时,使得一个或多个处理器执行一种方法,诸如上文或本文别处描述的方法。计算装置可以是例如客户端设备。一个或多个处理器可以包括例如一个或多个中央处理单元、一个或多个图形处理单元和/或一个或多个张量处理单元。一些实施方式包括包含计算机可执行指令的非暂时性计算机可读介质,这些计算机可执行指令在由至少一个计算装置的一个或多个处理器执行时使得执行一种方法,诸如上文或本文别处描述的方法。

应当理解的是,本文更详细描述的前述构思和附加构思的所有组合被认为是本文公开的主题的一部分。例如,出现在本公开的结尾的所要求保护的主题的所有组合被认为是本文公开的主题的一部分。

附图说明

图1示出了其中可以实施本文描述的技术的示例环境。

图2提供了示出本文描述的方法的实施方式的流程图。

图3是示出验证文本响应映射包括文本的静态响应的方法的流程图。

图4示出了根据本文公开的实施方式的示例方法的流程图。

图5示出了根据本文公开的实施方式的另一示例方法的流程图。

图6是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备的框图。

具体实施方式

在下文讨论的实施方式中,支持语音的客户端设备的语义处理器利用本地存储在客户端设备上的文本响应映射来解析由该设备接收的口头话语。在一些实施方式中,基于由设备接收的先前的口头话语和从支持云的设备接收的一个或多个响应来生成文本响应映射。在文本响应映射不包括对应于所接收的口头话语的文本的情况下,设备可以向基于云的设备提供捕获口头话语(和/或由客户端设备生成的口头话语的文本表示)的音频数据,然后该基于云的设备可以执行进一步的分析,确定响应,并将响应提供给客户端设备以由设备的一个或多个接口呈现。然后,该响应可以与本地存储在客户端设备上的文本响应映射中的文本一起存储,并被用于在将来接收到相同的口头话语的情况下标识响应。如上文概述且在下文进一步解释的那样,这可能导致在涉及客户端设备和远程的支持云的设备的网络中更有效地使用硬件资源。

下文讨论关于所选择的实施方式的进一步细节。然而,应当理解的是,可以设想其他实施方式,因此本文公开的实施方式不是排他性的。

参考图1,示出了其中可以实施本文描述的技术的示例环境。示例环境包括客户端设备100和远程系统150。客户端设备100可以是例如:台式计算设备、膝上型计算设备、平板计算设备、移动电话计算设备、用户的车辆的计算设备(例如,车载通信系统、车载娱乐系统、车载导航系统)、独立的交互式扬声器、诸如智能电视的智能家电和/或包括计算设备的用户的可穿戴装置(例如,具有计算设备的用户的手表、具有计算设备的用户的眼镜、虚拟或增强现实计算)。

可以提供附加的和/或替代的客户端设备。客户端设备100的组件和远程系统150的组件可以经由通信网络101进行通信。通信网络101可以包括例如广域网(WAN)(例如,互联网)。进一步,客户端设备100的组件可以经由通信网络101与一个或多个其他组件通信。例如,通信网络101可以包括局域网(LAN)和/或蓝牙,并且可以经由LAN和/或蓝牙与一个或多个其他设备通信。

客户端设备100包括可以捕获指示用户的一个或多个口头话语的音频数据的一个或多个麦克风106。麦克风106然后可以向客户端设备100和/或远程系统150的一个或多个其他组件提供音频数据以便进行进一步处理。

客户端设备100可以包括适于实施本文描述的方法的多个模块,包括例如讲话到技术(STT)模块102、映射模块103、远程组件模块104和呈现模块105,以及用于存储多个文本映射的文本响应映射107。同样地,远程系统150可以包括多个模块,包括例如远程STT模块151、自然语言处理(NLP)模块152和适合于与一个或多个代理190交互的代理引擎153。

现在参考图2并继续参考图1,提供了示出使用图1中示出的各种组件来实施方式本文描述的方法的流程图。如图所示,音频数据200可以被提供给STT模块102。STT模块102接收音频数据200,并将数字音频数据转换成一个或多个文本单词或短语(本文也称为令牌)。在一些实施方式中,STT模块102可以是流模块,使得所捕获的话语的音频数据在逐令牌的基础上且实时或接近实时地被转换成文本,使得令牌可以有效地与用户的讲话同时并且因此在用户发出完整的口头请求之前从STT模块102输出。STT模块102可以依赖于一个或多个本地存储的离线声学和/或语言模型,这些模型一起对音频信号和语言中的音标单元以及语言中的单词序列之间的关系进行建模。在一些实施方式中,可以使用单个模型,而在其他实施方式中,可以支持多个模型,例如以支持多种语言、多个扬声器等。

在一些情况下,音频数据200和/或文本205可以被提供给远程组件模块104。远程组件模块104经由通信网络101与远程系统150通信,并且可以向远程STT模块151和/或自然语言处理(NLP)模块152提供音频数据和/或音频数据的文本表示。远程STT模块151类似于STT模块102起作用,类似在于它可以接收指示用户的口头话语的音频数据,并将该音频数据转换成文本。然而,远程STT模块151不利用客户端设备100的资源,而是利用远程系统150的资源。因此,在某些情况下,远程STT模块151可能比STT模块151更稳健,因为相比于客户端设备100,远程系统150对计算能力和/或存储具有较少约束。

由STT模块102和/或由远程STT模块151生成的文本可以被提供给NLP模块152以便进行进一步处理。NLP模块152处理自由形式自然语言输入,并基于自然语言输入来生成带注释的输出以便由远程系统150的一个或多个其他组件使用。例如,NLP模块152可以处理自然语言自由形式输入,该自然语言自由形式输入是由STT模块151和/或远程STT模块151对由用户经由客户端设备106提供的音频数据进行的转换的文本输入。而且,例如,NLP模块152可以直接根据从远程组件模块104接收的音频数据200来生成输出。所生成的带注释的输出可以包括自然语言输入的一个或多个注释,并且可选地包括自然语言输入的术语中的一个或多个(例如,全部)。

在一些实施方式中,NLP模块152被配置成标识和注释自然语言输入中的各种类型的语法信息。例如,NLP模块152可以包括被配置为以术语的语法角色来注释术语的讲话标注器(未示出)。而且,例如,在一些实施方式中,NLP模块152可以附加地和/或替代性地包括被配置为确定自然语言输入中的术语之间的句法关系的依赖性解析器(未描绘)。

在一些实施方式中,NLP模块152可以附加地和/或替代性地包括实体标记器(未描绘),该实体标记器被配置为在一个或多个段中注释实体引用,诸如对人类(包括例如文学人物、名人、公众人物等)、组织、地点(真实的和想象的)的引用等等。NLP模块152的实体标记器可以以高粒度水平注释对实体的引用(例如,以实现对诸如人类的实体类的所有引用的标识)和/或以低粒度水平注释对实体的引用(例如,以实现对诸如特定人的特定实体的所有引用的标识)。实体标记器可以依靠自然语言输入的内容来消解特定实体,和/或可以可选地与知识图或其他实体数据库通信来消解特定实体。如本文所述,所标识的实体可以用于标识文本中的模式。

在一些实施方式中,NLP模块152可以附加地和/或替代性地包括指代消解器(未描绘),该指代消解器被配置为基于一个或多个场境线索来将对相同实体的引用进行分组或“聚类”。例如,指代消解器可以用于将自然语言输入“I liked Hypothetical Cafe lasttime we ate there(我喜欢上次我们在那里吃饭的假设咖啡馆)”中的术语“there(那里)”消解为“Hypothetical Cafe(假设咖啡馆)”。

在一些实施方式中,NLP模块152的一个或多个组件可以依赖于来自NLP模块152的一个或多个其他组件的注释。例如,在一些实施方式中,命名的实体标记器在注释对特定实体的所有提及时可以依赖于来自指代消解器和/或依赖性解析器的注释。而且,例如,在一些实施方式中,指代消解器在对相同实体的引用进行聚类时可能依赖于来自依赖性解析器的注释。在一些实施方式中,在处理特定自然语言输入时,NLP模块152的一个或多个组件可以使用相关的先前输入和/或特定自然语言输入之外的其他相关数据来确定一个或多个注释。

NLP模块152然后可以向代理模块153提供带注释的输出,该代理模块153可以向一个或多个代理190提供输出,该一个或多个代理190然后可以为用户的口头话语确定适当的响应。例如,代理模块153可以基于NLP模块152的输出的注释来确定哪个代理190最有可能利用带注释的输出并生成有意义的响应。然后,NLP模块152的带注释的输出可以被提供给该代理,并且来自该代理的所得到的响应可以被提供给客户端设备100用于呈现。例如,“What is the weather today(今天天气如何)”的口头话语可以被转换成由NLP模块152注释的文本,并且所得到的带注释的输出可以被提供给代理模块153。代理模块153可以基于注释来确定天气代理可能确定对带注释的输出的有意义的响应并将输出提供给天气组件。天气代理然后可以确定要提供给客户端设备的响应,该响应然后可以由客户端设备100呈现给用户。例如,基于由代理模块153从天气代理提供的“75,sunny(75,晴)”的响应,呈现模块105可以提供该响应的音频和/或视觉呈现(例如,“The weather will be sunny todayand 75(今天天气将是晴,且为75)”的音频呈现和/或天气的、到视觉界面的输出)。当处理由STT模块102和/或由远程STT模块151生成的文本时,NLP模块152可能在计算上要求相对较高。这意味着NLP模块在远程系统150处的存在对客户端设备100和整个系统是有利的,因为尽管客户端设备100可能在计算上能够实施NLP模块152,但是其整体处理能力和功率存储能力相比于远程系统150处可用的那些能力可能更有限。这些因素意味着NLP模块在远程系统150处的存在保持响应延迟较低(尤其是在客户端设备100需要等待自然语言处理以提供响应的情况下),并且保持响应的总体可靠性较高,而不管最终的响应是从客户端设备处的映射的本地存储还是通过等待来自远程系统150的响应来提供的。

一旦由代理模块153从一个或多个代理190接收到响应,则该响应可以经由远程组件模块104被提供给客户端设备100。所接收的响应可以被提供给呈现模块105,该呈现模块105然后可以经由一个或多个组件(未示出)来呈现动作。例如,呈现模块105可以包括文本到讲话组件,该文本到讲话组件可以将响应转换成讲话,并经由客户端设备100的一个或多个扬声器向用户提供音频。而且,例如,呈现模块105可以生成图形响应,并且经由与客户端设备100相关联的一个或多个可视界面来提供图形响应。而且,例如,呈现模块105可以与诸如Wi-Fi控制的照明的用户的一个或多个其他设备通信,并且可以向一个或多个其他设备提供响应以便进行呈现(例如,打开灯)。

在一些实施方式中,服务器响应可以与文本200一起存储在文本响应映射107中。文本响应映射107包括由STT模块102和/或远程STT模块151根据音频数据生成的、与从远程系统150接收的相对应的响应一起存储的文本。例如,“Turn on the kitchen light(打开厨房灯)”的口头话语的音频数据可以由STT模块102接收并将其转换成文本。该文本可以被提供给远程系统150,该远程系统150可以为命令确定适当的动作(例如,确定口头话语的含义)。所得到的指示打开灯的响应可以由呈现模块105接收,该呈现模块然后可以标识与客户端设备100相关联的“厨房灯”并关闭灯。所得到的响应然后可以与响应(例如,关闭特定灯的响应)一起存储在文本响应映射107中以便由客户端设备100稍后使用。

在一些实施方式中,文本响应映射可以被存储为数据库中的一个或多个表、被存储为堆栈(例如,后进先出数据结构)、被存储为队列(例如,先进先出数据结构)、和/或一个或多个替代性数据结构。如本文所述,文本可以以字母数字格式进行存储。然而,替代性地,文本可以被存储为一个或多个音素矩阵、被存储为音频数据、和/或允许映射模块103将由客户端设备100捕获的音频数据与存储在文本响应映射中的文本进行比较的任何其他格式。存储在文本响应模块中的响应可以被存储为文本响应、要由用户的一个或多个界面执行的动作、和/或可以被提供给一个或多个界面用于呈现给用户的一种或多种替代性格式。

文本和响应以直接关系存储在文本响应映射中,使得每个文本与特定的响应相关联。例如,文本“What is the capital of France(法国的首都是什么)”可以与“Paris(巴黎)”的响应一起存储,而不与其他响应一起存储。此外,例如,文本“Turn on the kitchenlight(打开厨房灯)”可以与可以被提供给用户的照明设备以打开该设备的命令直接关系一起而被存储。

在某些情况下,文本和响应可能已经存储在文本响应映射107中。例如,用户可能已经说出话语“Turn off the kitchen light(关掉厨房灯)”,并且所得到的响应可能已经与文本一起被存储。在这些情况下,映射模块103可以验证从远程系统150接收的结果与存储在文本响应映射中的响应相匹配。映射模块103可以基于检查所存储的响应是否与从远程系统150接收的响应相匹配来更新文本响应映射107。

再次参考图2,映射模块103可以访问文本响应映射107来确定所生成的文本205先前是否已经被存储,如上所述那样。在判定210处,如果在文本响应映射107中没有标识文本205的文本映射,则向远程系统150提供文本(或音频数据),并且从远程服务器150接收响应220,如前所述。响应220然后可以由呈现模块105呈现,并被进一步提供给映射模块103,该映射模块103然后基于文本205和响应220来生成文本映射。文本映射然后可以被存储在文本响应映射107中。

如果映射模块103在判定210处确定文本响应映射107包括文本205的文本映射,则映射模块103访问文本响应映射107,标识与文本205相关联的响应215,并将响应215提供给呈现模块105以便呈现给用户。因此,在用户的口头话语已经被远程系统150处理并存储在文本响应映射107中的情况下,不需要访问远程系统150来向用户呈现内容。因为所有动作在客户端设备100上发生,所以消除了由通信网络101和/或由远程系统150的组件引入的任何延迟。另外,由于远程系统150不需要被客户端设备100访问的事实,整体功耗降低。进一步,因为消除了自然语言处理和确定响应,所以当用户重复提交相同话语时,节省了本地和/或远程计算资源。在进一步,因为可以在不利用远程系统150的情况下呈现响应,所以即使当客户端设备100缺少到远程系统150的任何连接(例如互联网连接)时,也可以呈现响应。

在某些情况下,响应可以是静态响应,该静态响应在由用户进行的重复请求之间不会改变。例如,在每次收到“Who was the first president of the United States(谁是美国第一任总统)”的口头话语时,该话语将导致相同的响应。然而,在某些情况下,响应可能是动态的,并且可以在接收到相同的口头话语时改变。例如,“What restaurants arenear me(我附近有哪些餐馆)”将随着用户的位置而变化,并且因此是动态响应。而且,例如,“What is the weather tomorrow(明天的天气是什么)”是动态的,因为天气预测可能在全天变化,并且进一步,“tomorrow(明天)”描述有限时间内的特定一天(即,只有当话语在“today(今天)”被接收时)。

在一些实施方式中,即使当映射模块103标识文本响应映射107中文本200的文本映射,远程组件模块104也向远程系统150提供文本205和/或音频数据200。这可以在例如在呈现模块105被提供文本映射的相对应的响应、或者呈现模块105在接收服务器响应之前可以被提供响应(并且开始响应的呈现)之前发生。在一些实施方式中,映射模块103可以在远程组件引擎104提供文本和/或音频数据之后等待阈值量的时间,并且如果在阈值时间到期之前没有从远程系统150接收到响应,则仅向呈现模块105提供本地存储的响应。

参考图3,提供了示出验证文本响应映射107包括文本的静态响应的方法的流程图。STT模块102可以向映射模块103提供文本205,该映射模块103然后可以标识文本200和相对应的响应205的文本映射。进一步,STT模块可以向远程组件模块104提供文本205(或音频数据200),该远程组件模块104从远程系统150接收响应215。然后,在判定300处,映射模块103可以将相对应的响应215与服务器响应220进行比较。如果相对应的响应215与服务器响应220相匹配,则相对应的响应更可能是静态的305,并且文本映射可以相应地被更新。然而,如果相对应的响应215与服务器响应220不匹配,则相对应的响应215可能是动态的310,并且可以相应地更新文本205的文本映射。

在一些实施方式中,映射模块103可以存储具有文本映射的置信度得分。置信度得分可以指示相对应的响应是静态的可能性。每次服务器响应与相对应的响应匹配时可以更新置信度得分,以反映文本的响应随后不会改变的更大可能性。例如,当文本映射首次存储在文本响应映射107中时,可以将置信度得分“1”分配给文本映射。随后,映射模块103可以标识文本映射(基于与文本映射的文本相匹配的后续文本),文本(或音频数据)可以被提供给远程系统150,并且可以将从远程系统接收的服务器响应与相对应的响应进行比较。如果两个响应相匹配,则文本映射的置信度得分可以被更新为“2”,以反映相同响应被标识两次。在文本在来自用户的一个或多个后续提交中被再次处理时,置信度得分可以继续被更新。

在一些实施方式中,只有在与所标识的文本映射相关联的置信度得分满足阈值时,才可以向呈现模块105提供由映射模块103标识的文本映射的相对应的响应。在这些情况下,呈现模块105可以呈现响应,而无需等待来自远程系统150的任何进一步的响应。这减少了延迟。例如,映射模块103可以以“3”(其指示相对应的响应已经被验证三次)的置信度得分标识文本映射。如果置信度水平大于“2”则映射模块可以仅提供相队应的文本,并且可以提供相对应的文本。而且,例如,如果文本映射的相关联的置信度为“1”,则映射模块103可以不提供相对应的响应。相反,远程组件模块可以向远程系统150提供音频数据200和/或文本205,并且服务器响应可以被提供给呈现模块105(并且被提供给映射模块103,以如上所述更新置信度得分)。如果相对应的响应与服务器响应匹配,则置信度得分可以被更新为“2”,并且当基于用户的后续话语来标识文本映射时,来自映射的相对应的响应而不是服务器响应可以被提供给呈现模块105。

在一些实施方式中,仅当映射模块103没有标识出文本响应映射107中的文本映射(如前所述)或者当与所标识的文本映射相关联的置信度得分不满足阈值时,远程组件模块才可以向远程系统150提供音频数据200和/或文本205。例如,如果置信度得分满足阈值而没有与远程服务器150的任何通信的情况下,可以将具有为“3”的置信度得分的文本映射的相对应的响应提供给呈现模块105。然而,具有为“2”的相关联的置信度得分的文本映射的相对应的响应可以被提供给呈现模块105,并且进一步地,音频数据或文本可以被提供给远程系统150。在这些情况下,来自本地存储在客户端设备100处的映射的响应可以在位于客户端设备100处接收到来自远程系统150的响应之前被呈现。当随后接收来自远程系统150的响应时,它可以用于迭代置信度得分,或者例如移除所存储的映射、将所存储的映射标记为陈旧的和/或更新映射以反映所存储的响应是动态的事实,如下所述。这取决于来自远程系统150的响应是否与本地映射中的响应匹配。因此,当所标识的文本映射的置信度得分不满足阈值时,仅可以访问远程服务器150。因此,只有当存储在客户端设备100上的响应的置信度不足够高以确保文本映射包括静态响应时,远程服务器150的资源受到影响。

在一些情况下,服务器响应可能与由映射模块103标识的文本映射的相对应的响应不匹配。在这些情况下,映射模块103可以更新文本映射以反映所存储的响应是动态的。例如,映射模块103可以将与文本映射相关联的置信度得分更新为“-1”或一些其他标志,以指示响应是陈旧的和/或动态的。如果由STT模块102随后生成相同的文本,则映射模块103可以标识该文本映射,确定不应该呈现相对应的响应,而是指示远程组件模块104向远程服务器150提供音频数据和/或文本以便进行进一步处理。通过设置置信度得分(或设置标志)来反映响应是动态的确保了在随后接收到相同文本的情况下,不会存储新的映射。因此,映射模块103将不会重复地花费计算资源来连续地添加永远不会被用来向用户呈现内容的文本映射。然而,在一些实施方式中,映射模块103可以完全移除文本映射以保留存储空间。

在一些实施方式中,远程系统150可以提供服务器响应是动态还是静态的指示。在一些情况下,代理模块153可以基于代理模块153基于接收到的音频数据和/或文本向其提供动作的代理190来确定要向客户端设备100提供的指示。例如,代理模块153可以确定该动作应该被提供给天气代理以确定特定天的天气。进一步,代理模块153可以确定来自天气代理的响应是动态的,并提供被提供给客户端设备100的服务器响应为动态的指示。基于接收服务器响应是动态的指示,映射模块103可以不将服务器响应与文本一起存储在文本响应映射107中,和/或可以存储具有文本映射的、指示该响应是动态的并且在文本的后续处理时不应该从文本响应映射107提供服务的指示。作为另一示例,代理模块153可以确定知识图代理应该处理带注释的文本,并且提供由组件利用的知识图是静态的并且映射模块103应该存储文本映射(即,文本与服务器响应一起)以便将来在捕获相同的口头话语时使用的指示。

在一些实施方式中,远程系统150可以提供服务器响应是静态多长时间的指示。例如,代理模块153和/或远程系统150的一个或多个其他组件可以确定,一旦被处理,“Whatis the weather like tomorrow(明天天气怎么样)”的话语可以导致直到午夜的静态响应,并且然后该响应在午夜之后(即,当“tomorrow(明天)”的定义改变为不同的一天时)将是不同的。而且,例如,“What do the Cubs play next(接下来小熊队与谁进行比赛)”的话语可以被提供有下一场小熊队比赛的时间的指示,并且在小熊队已经打完他们的下一场比赛之后响应将改变。此外,例如,“Find restaurants near me(查找我附近的餐馆)”的话语只有在用户没有改变位置和/或没有在提供话语之间移动超过阈值距离时才可能导致静态响应。映射模块103然后可以在向呈现模块105提供相对应的响应之前检查以确定与文本映射一起存储的到期事件是否已经发生。

在一些实施方式中,映射模块103可以周期性地从文本响应映射107中移除文本映射,以确保所存储的响应一直是最新的和/或防止文本响应映射107在存储空间需求方面增长超过客户端设备100的能力。例如,映射模块103可以利用“先入先出”的方法,并且在添加新的文本映射时移除尚未被访问的更旧的文本映射(例如,仅保留最后X个被访问的映射,并在添加新的映射时移除最长时间之前被访问的映射,并且文本响应包括X个文本映射)。在一些实施方式中,当事件发生时,映射模块103可以移除与到期事件一起被存储的文本映射。例如,映射模块103可以周期性地检查存储在文本响应映射107中的到期事件,并移除具有已经发生的到期事件的任何文本映射。在一些实施方式中,映射模块103可以周期性地移除已经被标记为动态的任何文本映射。

图4示出了根据本文公开的实施方式的示例方法的流程图。可以省略以不同的顺序执行的一个或多个步骤,和/或在各种实施方式中可以包括一个或多个附加步骤。

在步骤405处,捕获指示用户的口头话语的音频数据。口头话语可以由客户端设备的与客户端设备100的麦克风106共享一个或多个特征的一个或多个组件捕获。在一些实施方式中,可以在用户完成口头话语之前捕获口头话语的部分,并且可以将该部分提供给一个或多个其他组件,同时仍然捕获附加的音频数据。例如,麦克风106可以捕获音频数据的一部分,并将音频数据提供给一个或多个组件,同时继续捕获口头话语的附加音频数据。

在步骤410,根据音频数据生成当前文本。当前文本可以由与STT模块102共享一个或多个特征的组件生成。在一些实施方式中,STT模块102可以接收音频数据的一部分,并且在已经从例如麦克风106接收到口语话语的全部音频数据之前开始生成当前文本。在一些实施方式中,STT模块102可以在生成当前文本之前等待,直到已经提供了口语话语的所有音频数据。进一步,STT模块102可以执行文本的一些规范化,以例如移除填充词、将动词变位为标准变位、和/或移除文本的无意义部分。然而,相比于例如在服务器上执行的STT模块,STT模块102旨在计算强度更小。因此,STT模块102可以仅执行音频数据到文本的转换。

在步骤415,访问文本响应映射。文本响应映射可以与文本响应映射107共享一个或多个特征,并且可以由与映射模块103共享一个或多个特征的组件来访问。文本响应映射包括文本映射,这些文本映射中的每一个包括与相对应的响应具有直接关系的文本。文本响应映射中的文本映射可以基于先前的用户口头话语和响应于提交音频数据而从远程系统接收的响应、和/或响应于捕获用户说出话语的音频数据而生成的文本来生成。

在步骤420,检查文本响应映射以确定当前文本是否包括在文本映射中。例如,与映射模块103共享一个或多个特征的组件可以访问文本响应映射,并确定文本映射中的任何一个的文本是否包括当前文本。在一些实施方式中,映射模块103可能要求文本映射的文本和当前文本之间的精确匹配。在一些实施方式中,映射模块103可以标识与当前文本的紧密匹配。然而,因为映射模块103在用户的客户端设备上执行,并且可能是资源受限的,所以映射模块103可能不会将文本响应映射中的给定文本标识为匹配当前文本,除非匹配是精确的或者文本变化很小。

在步骤425,一旦已经在文本响应映射中标识出具有与当前文本相匹配的文本的文本映射,则选择该文本映射的相对应的响应。先前可能已经基于给定文本(或与给定文本相关联的音频数据)被提交给远程系统并从远程服务器接收相对应的响应来生成给定文本的相对应的响应并将其存储在文本响应映射中。在一些实施方式中,置信度得分可以与文本映射相关联,并且只有在置信度得分满足阈值的情况下才可以选择相对应的响应。可以基于例如给定文本已经被提交给远程系统的次数以及从远程系统接收到的相对应的响应来确定置信度得分。因此,随着给定文本(或给定文本的音频数据)被提供给远程系统用于处理相同的结果响应,相对应的响应有效的置信度越大。

在步骤430,一个或多个组件使得来自所标识的文本映射的响应被呈现。响应可以由与呈现模块105共享一个或多个特征的组件来呈现。在一些实施方式中,呈现模块103可以与一个或多个其他组件通信,诸如将响应转换成讲话并通过一个或多个扬声器向用户提供讲话的文本到讲话模块。而且,例如,呈现模块105可以与一个或多个其他接口(诸如视觉接口)通信,并且呈现可以包括经由视觉接口向用户提供视觉输出。而且,例如,呈现模块103可以与用户的一个或多个其他设备(诸如支持Wi-Fi的照明器材)通信,并且使得该设备执行一个或多个动作(例如,关闭特定的灯)。

图5示出了根据本文公开的实施方式的另一示例方法的流程图。可以省略以不同的顺序执行的一个或多个步骤,和/或在各种实施方式中可以包括一个或多个附加步骤。

在步骤505,一个或多个组件捕获用户的口头话语的音频数据。步骤505可以与图4的步骤405共享一个或多个特征。例如,音频数据可以由与麦克风106共享一个或多个特征的组件捕获。

在步骤510,根据音频数据生成当前文本。这个步骤可以与图4的步骤410共享一个或多个特征。例如,与STT模块102共享一个或多个特征的组件可以基于音频数据来生成文本。

在步骤515,访问文本响应映射。文本响应映射可以与文本响应映射107共享一个或多个特征,并且这个步骤可以与图4的步骤415共享一个或多个特征。例如,映射模块103可以访问文本响应映射107,以确定当前文本是否包括在文本响应映射107中的文本映射中。

在步骤520,一个或多个组件确定文本响应映射不包括具有与当前文本相匹配的文本的文本映射。该确定可以由与文本响应映射107中的映射模块103共享一个或多个特征的组件来执行。例如,映射模块107可以访问文本响应映射并检查映射中所存储的文本,并确定没有文本映射与当前文本相匹配,没有匹配的文本映射具有指示有效数据的置信度得分,和/或任何匹配的文本映射已经过期,如上所述。

在步骤525,所捕获的音频数据和/或当前文本被提供给远程系统。远程系统可以与远程系统159共享一个或多个特征。例如,远程组件模块104可以向远程系统150提供音频数据和/或文本以便进行进一步处理,如本文所述。远程系统150然后可以确定音频数据和/或当前文本的响应。

在步骤530,响应然后由远程系统提供给客户端设备。在一些实施方式中,响应可以与由远程系统利用的代理生成响应的指示一起被接收。在一些实施方式中,响应可以与响应是否是静态的指示一起被接收。如果替代地响应与响应是动态的指示一起被接收,则根据图5的方法的剩余步骤,响应可以被呈现但不存储在文本响应映射中。

在步骤535,更新文本响应映射。更新文本响应映射可以包括生成新的文本映射,该新的文本映射包括被映射到服务器响应的当前文本。在一些实施方式中,更新文本响应映射可以包括与新的文本映射和/或与响应一起接收的指示一起存储置信度得分(例如,无论响应是静态的还是动态的,代理用于生成响应)。

在步骤540,捕获第二音频数据。步骤540可以与步骤505和/或图4的步骤405共享一个或多个特征。

在步骤545,根据第二音频数据生成第二文本。步骤545可以与步骤510和/或图4的步骤410共享一个或多个特征。

在步骤550,一个或多个组件确定当前文本与第二文本相匹配。这可以由与映射模块103共享一个或多个特征的组件来确定并且可以与图4的步骤420共享一个或多个特征。例如,映射模块103可以确定在步骤535处存储在文本响应映射中的文本映射的文本与第二文本相匹配。

在步骤555,一个或多个组件使得响应被呈现。这个步骤可以与图4的步骤430共享一个或多个特征。例如,与呈现模块105共享一个或多个特征的组件可以使得响应被呈现。可选地,响应的呈现可以在没有第二音频数据或表示第二音频数据被发送到远程系统150的数据的情况下发生。

图6是可以可选地用于执行本文描述的技术的一个或多个方面的示例计算设备610的框图。例如,客户端设备100可以包括示例计算设备610的一个或多个组件,和/或一个或多个远程系统150可以包括示例计算设备610的一个或多个组件。

计算设备610通常包括至少一个处理器614,该至少一个处理器614经由总线子系统612与多个外围设备通信。这些外围设备可以包括存储子系统624(包括例如存储器子系统625和文件存储子系统626)、用户接口输出设备620、用户接口输入设备622和网络接口子系统616。输入和输出设备允许用户与计算设备610进行交互。网络接口子系统616向外部网络提供接口,并耦合到其他计算设备中的相对应的接口设备。

用户界面输入设备622可以包括键盘、定点设备(诸如鼠标、轨迹球、触摸板或图形输入板)、扫描仪、结合到显示器中的触摸屏、音频输入设备(诸如语音识别系统)、麦克风和/或其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括将信息输入到计算设备610中或输入到通信网络上的所有可能类型的设备和方式。

用户界面输出设备620可以包括显示子系统、打印机、传真机或诸如音频输出设备的非视觉显示器。显示子系统可以包括阴极射线管(CRT)、诸如液晶显示器(LCD)的平板设备、投影设备或用于形成可视图像的一些其他机构。显示子系统还可以诸如经由音频输出设备提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括从计算设备610向用户或向另一机器或计算设备输出信息的所有可能类型的设备和方式。

存储子系统624存储提供本文描述的模块中的一些或所有的功能的编程和数据构造。例如,存储子系统624可以包括用于执行图2至图5的方法的所选择的方面和/或用于实施图1至图3中描绘的各种组件的逻辑。

这些软件模块通常由处理器614单独执行或与其他处理器结合执行。存储子系统624中使用的存储器625可以包括多个存储器,该多个存储器包括用于在程序执行期间存储指令和数据的主随机存取存储器(RAM)630和固定指令存储在其中的只读存储器(ROM)632。文件存储子系统626可以为程序和数据文件提供永久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、CD-ROM驱动器、光盘驱动器或可移动介质盒。实施某些实施方式的功能的模块可以由文件存储子系统626存储在存储子系统624中,或者存储在由一个或多个处理器614可访问的其他机器中。

总线子系统612提供了用于让计算设备610的各种组件和子系统按照预期相互通信的机制。尽管总线子系统612被示意性地示出为单个总线,但是总线子系统的替代实施方式可以使用多个总线。

计算设备610可以是各种类型,包括工作站、服务器、计算集群、刀片服务器、服务器群组或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图6中描绘的计算设备610的描述仅旨在作为用于示出一些实施方式的目的的特定示例。计算设备610的许多其他配置可能具有比图6中描绘的计算设备更多或更少的组件。

在本文讨论的某些实施方式可能收集或使用关于用户的个人信息(例如,从其他电子通信中提取的用户数据、关于用户的社交网络的信息、用户的位置、用户的时间、用户的生物特征信息、以及用户的活动和人口统计信息、用户之间的关系等)的情况下,向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集、存储和使用关于用户的信息。也就是说,本文讨论的系统和方法仅在从相关用户接收到这样做的明确授权时才收集、存储和/或使用用户个人信息。

例如,向用户提供对程序或功能是否收集关于该特定用户或与该程序或功能相关的其他用户的用户信息的控制。将为其收集个人信息的每个用户被呈现有一个或多个选项以允许对与该用户相关的信息收集进行控制,以提供关于是否收集该信息以及关于将收集该信息的哪些部分的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。此外,在存储或使用某些数据之前可能会以一种或多种方式对其进行处理,以便移除个人可标识信息。作为一个示例,可以处理用户的身份,使得不能确定任何个人可标识信息。作为另一示例,用户的地理位置可以被推广到更大的区域,使得用户的特定位置不能被确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号