确定语言模型的对话状态的制作方法

文档序号:15285957发布日期:2018-08-29 00:05阅读:203来源:国知局

本文档总体上涉及基于计算机的语音识别,并且更具体地涉及基于对话状态偏置(biasing)语言模型。



背景技术:

除了键入输入之外或替代键入输入,计算设备越来越多地提供有接收口头用户输入的能力。例如,语音助理应用可以基于语音助理和用户之间的提示以及口头响应的多阶段对话来确定要对设备执行的任务。同样,一些设备上的网页浏览器和其他应用被安排在表单字段中接收语音输入,以避免用户需要在字段中键入输入。由用户提供给计算设备的语音输入可以由语音识别器处理。语音识别器可以包括被共同配置为将语音输入转录为文本的诸如声学模型和语言模型的组件。



技术实现要素:

本文描述了用于确定与语音输入相对应的对话状态并基于所确定的对话状态对语言模型进行偏置的系统、方法、设备以及其他技术。在一些实现方式中,语音识别系统可以自动学习对话状态集合以及针对每个相应的对话状态的相应的语言模型偏置模式。可以在没有用户预定义的情况下确定对话状态和偏置模式。

本文描述的主题的一些实现方式包括计算机实现的方法。方法可以包括:在计算系统处接收指示语音输入的音频数据;从多个对话状态中确定与语音输入相对应的特定对话状态。可以标识与对应于语音输入的特定对话状态相关联的n元(n-grams)集合。n元集合可以至少基于与对话状态相对应的历史语音输入中频繁发生的n元集合中的n元,与特定对话状态相关联。响应于标识与对应于语音输入的特定对话状态相关联的n元集合,可以通过调整语言模型对n元集合中的n元指示的概率得分来偏置语言模型。可以使用调整的语言模型来转录语音输入。

这些和其他实现方式可以可选地包括一个或多个以下特征。

多个对话状态可以分别指示涉及特定任务的计算设备与用户语音交互的多个阶段。

计算系统可以接收第二语音输入,并且可以从多个对话状态中确定与第二语音输入相对应的第二特定对话状态。可以标识与对应于第二语音输入的第二特定对话状态相关联的第二n元集合。第二n元集合可以不同于与对应于语音输入的特定对话状态相关联的n元集合。

确定与语音输入相对应的特定对话状态可以包括:从多个对话状态中标识与语音输入之前的第二语音输入相对应的第二特定对话状态,其中语音输入和第二语音输入各自涉及同一任务;以及基于指示可能在第二特定对话状态之后发生的多个对话状态中的一个或多个对话状态的数据,确定与语音输入相对应的特定对话状态。

确定与语音输入相对应的特定对话状态可以包括:生成语音输入的转录以及确定在语音输入的转录中发生的一个或多个n元和与特定对话状态相关联的n元集合中的一个或多个n元之间的匹配。

确定匹配可以包括确定在语音输入的转录中发生的一个或多个n元和与特定对话状态相关联的n元集合中的一个或多个n元之间的语义关系。

可以接收指示与语音输入相关联的语境(context)的数据。确定与语音输入相对应的特定对话状态可以包括基于与语音输入相关联的语境来标识特定对话状态。

与语音输入相关联的语境可以包括表征在接收语音输入时接收语音输入的计算设备处的用户界面的显示的数据。基于与语音输入相关联的语境标识特定对话状态可以包括:基于表征在接收语音输入时接收语音输入的计算设备处的用户界面的显示的数据、标识特定对话状态。

可以在计算系统处接收指示语音输入所导向的计算设备处的应用的应用标识符。多个对话状态可以涉及用于语音输入所导向的应用的应用特定任务。

本文描述的主题的一些实现方式包括另一种计算机实现的方法。方法可以包括获得与多状态对话中的不同状态相对应的语音输入的多个转录。对于多个转录中的每个转录,可以标识出现在转录中的n元集合。可以通过向每个组分配所标识的n元集合被确定为与之相关的多个转录中的、转录的相应子集,生成多个转录组。可以基于多个转录组,确定指示在多状态对话中发生的多个对话状态以及与每个对话状态相关联的相应n元集合的模型。可以提供确定的模型以在语音识别中偏置语言模型。

这些和其他实现方式可以可选地包括一个或多个以下特征。

可以通过将多个转录组中的每个组分配给多个对话状态中的相应对话状态来确定多个对话状态,使得多个对话状态中的每个对应于转录组的相应子集与对于多个对话状态中的每个的转录组的相应子集彼此不同。可以基于在对应于对话状态的转录组的相应子集中的转录中发生的所标识的n元集合,选择与多个对话状态中的每个对话状态相关联的相应的n元集合。

多个对话状态中的第一对话状态可以与包括转录的两个或更多个组的转录组的第一子集相对应。

生成多个转录组可以包括形成被确定为在语义上彼此相似的转录组。

计算系统可以接收指示语音输入中的至少一些在多状态对话中被提交的顺序的数据。可以至少基于指示语音输入中的至少一些在多状态对话中被提交的顺序的数据,确定多个对话状态中的对话状态的序列。对于每个相应的对话状态,该序列信息指示跟随相应对话状态的一个或多个其他对话状态或者在相应对话状态之前的一个或多个其他对话状态。

语音输入的多个转录可以包括:对于多状态对话中的多个对话状态中的每个相应对话状态、与多个对话状态中的相应对话状态相对应的语音输入的多个转录。

计算系统可以接收指示与对应于多个转录中的至少一些的语音输入相关联的相应语境的数据。生成多个转录组可以包括:进一步基于指示与对应于多个转录中的至少一些的语音输入相关联的相应语境的数据,对转录进行分组。

与对应于多个转录中的第一转录的第一语音输入相关联的相应语境可以包括:表征在接收第一语音输入时接收第一语音输入的计算设备处的用户界面的显示的数据。

本文描述的主题的一些实现方式可以包括计算系统。计算系统可以包括一个或多个处理器以及一个或多个计算机可读介质。计算机可读介质上存储有指令,指令在被执行时引起执行操作,操作包括:接收指示语音输入的音频数据;从多个对话状态中确定与语音输入相对应的特定对话状态;标识与对应于语音输入的特定对话状态相关联的n元集合,其中n元集合至少基于与对话状态相对应的历史语音输入中频繁发生的n元集合中的n元、与特定对话状态相关联;响应于标识与对应于语音输入的特定对话状态相关联的n元集合,通过增加通过n元集合中的n元的语言模型指示的概率得分来调整语言模型;以及使用调整的语言模型转录语音输入。

在一些实现方式中,本文描述的技术在特定情况下可以实现以下优点中的一个或多个。语音识别器可以使用基于被确定为与语音输入相对应的对话状态偏置的语言模型来生成语音输入的更精确的转录。此外,在人机对话中发生的对话状态可以通过计算系统自主确定,使得应用开发者不需要在他们相应的应用中跟踪对话状态,或将对话状态标识符提供给转录语音输入用于相应的应用的语音识别系统。在一些实现方式中,计算系统可以基于对历史语音输入和转录的分析来确定与多个对话状态相关联的相应的n元集合。基于针对给定转录请求检测到哪种对话状态,可以使用n元集合以不同的方式偏置语言模型。有益的是,在一些实现方式中,这些技术可以消除应用开发者手动将与每个对话状态相关联的n元集合提供给语音识别系统的需要。

附图说明

图1描绘了用于使用已经基于与语音输入相关联的识别的对话状态而偏置(biased)的语言模型将语音输入转录为文本的示例处理的概念性系统流程图。

图2描绘了使用偏置的语言模型将语音输入转录为文本的示例处理的第二概念性系统流程图。基于与系统基于该语音输入之前的一个或多个对话状态识别的特定对话状态相关联的n元,偏置在图2中表示的语言模型。

图3是表示示例对话状态流模型的图。该图包括与多个对话状态相对应的节点以及与特定对话状态之间的转换相对应的方向性边。

图4是用于基于对历史语音输入或转录记录的分析来确定对话状态以及与对话状态相关联的n元的各集合的示例处理的流程图。

图5a和5b是用于合并相似转录组以形成与确定在对话中发生的对话状态相对应的最终的组集合的技术的概念图。

图6是用于使用基于与识别的语音输入相关联的对话状态选择的偏置的语言模型来执行语音识别的示例处理的流程图。

图7示出可以用于执行本文中所描述的计算机实现的方法和其他技术的计算设备以及移动计算设备的示例。

各个附图中相同的附图标记表示相同的元件。

具体实施方式

本文档总体描述了用于识别和使用对话状态以偏置语言模型的系统、方法、设备以及其他技术,所述语言模型诸如可以由语音识别器用来将语音输入转录为文本的语言模型。例如,描述了用于在没有应用或应用开发者明确识别与给定语音输入转录请求相关联的对话状态或n元的情况下自动确定对话状态和n元的技术。相对于附图进一步详细描述这些技术和其他技术。

参照图1,示出计算系统执行示例处理100的概念图,该示例处理100使用已经基于与语音输入110相对应的识别的对话状态而偏置的语言模型120将语音输入110转录为文本。系统包括与用户设备108通信的语音识别器102。用户设备108通常可以是能够检测来自用户的语音输入的任何类型的计算设备。例如,用户设备108可以是桌面计算机、笔记本电脑、智能电话、平板计算设备、电视机或其他多媒体设备、或者可穿戴计算设备,诸如智能手表。用户设备108可以包括检测语音输入的麦克风以及将语音输入转换成数字音频数据的软件和电路(例如,模数转换器)。

在一些实现方式中,语音识别器102可以在远程于用户设备108的一个或多个计算机上运行。例如,语音识别器102可以提供基于云的语音识别服务,其转录来自通过一个或多个网络(例如,因特网)与语音识别器102通信的许多不同用户设备的语音输入。以这种方式,由于语音识别任务被卸载到具有潜在更大计算能力的远程服务器,因此可以节约各个用户设备处的计算资源。在一些实现方式中,可以在用户设备108上本地提供语音识别器102,以便即使当用户设备108离线并且网络连接不可用时也能够实现语音识别能力。

当用户106向用户设备108提供语音输入110时,处理100开始。在说话之前,用户106可能已经在设备108上激活了使得设备108能够检测语音输入并与语音识别器102通信以生成检测的语音的转录的模式。在图1所示的示例中,用户106已经说过短语“意大利辣香肠和蘑菇”。该短语可以在用户用设备108上的应用参与向披萨餐馆下单的多阶段对话的语境中说出。例如,用户106可以通过完成在用户界面中呈现的表单(例如,设备108上的网页或本机应用的呈现)来选择他或她的披萨订单的选项,该用户界面包括输入字段的集合(例如,文本字段、下拉菜单或单选按钮选择器),用于接收用户的输入。在一些实现方式中,设备108可以允许用户106使用诸如键入或语音输入的不同输入机制将输入提供到每个字段中。利用键入输入,用户106可以通过键盘直接将文本输入到各个字段中,而利用语音输入,用户106口述要被提供到各个字段中的文本,作为被转换为文本的语音输入。在一些实现方式中,用户106可以在设备108上与语音助理进行对话,其中设备108提示用户106响应于以视觉和/或听觉方式向用户106呈现的一系列问题(例如,“你想要什么尺寸的披萨?”、“你想在你的披萨上加什么配料?”、“你想添加任何边吗?”)提供语音输入。

在操作a(104)处,在接收语音输入110时,设备108生成用于语音识别器102将语音输入110转录为文本的请求112。如果语音识别器102远程于用户设备108,可以通过网络将转录请求112发送到语音识别器102。请求112可以包括一个或多个组件。通常,请求将包括用于语音输入110的数字音频数据。在一些实现方式中,请求112还可以包括语境数据、应用标识符、对话标识符、对话状态标识符或者这些中的两个或更多的组合。在一些实现方式中,请求112可以仅包括语音输入110的数字音频而没有附加的语境数据、应用标识符、对话标识符或对话状态标识符。

请求112中的语境数据通常可以包括除了语音识别器102可以用于确定转录的语音输入110的音频数据之外的任何数据。一些类型的语境数据可以指示用户设备108在处于或临近设备108检测到语音输入110的时候的状况或状态。如下面进一步描述的,语境数据的示例包括用户账户信息、匿名用户简档信息(例如,性别、年龄、浏览历史数据、指示在设备108上先前提交的查询的数据)、位置信息以及屏幕签名(即指示在处于或临近设备108检测到语音输入110的时候设备108显示的内容的数据)。在一些实现方式中,应用标识符、对话标识符以及对话状态标识符可以被视为特殊类型的语境数据,但是本文通过示例的方式单独讨论。

应用标识符可以被包括在请求112中,以在能够由语音识别器102识别的多个应用中识别语音输入110指向的特定应用。在一些实现方式中,语音识别器102可以存储用于不同应用的不同的对话状态集合或其他语言模型偏置数据,并且语音识别器102可以使用应用标识符来确定用于转录语音输入110的适当的对话状态集合。例如,语音识别器102可以存储用于披萨下单应用的第一对话状态集合和语言模型偏置数据、以及用于银行应用的不同的第二对话状态集合和语言模型偏置数据。例如,通过在请求112中包括应用标识符,语音识别器102可以识别请求112与披萨下单应用有关。因此,可以选择与披萨下单应用相关联的第一对话状态集合和语言模型偏置数据以用于转录语音输入110。

在一些实现方式中,转录语音输入110的请求112可以包括对话标识符。对话标识符可以指示多个对话中的转录请求112所属的特定对话。在一些实现方式中,对话标识符可以用于区分在单个应用中提供的多个对话。例如,披萨下单应用的主对话可以是用于提交披萨订单的对话。但是应用还可以提供其他对话,允许用户以不同方式与应用交互,诸如允许用户提交客户反馈的对话或允许用户调整帐户设置的对话。语音识别器102可以使用对话标识符将可能的对话相互区分,并且选择适当的模型和参数来偏置语言模型并且转录语音输入110。

在一些实现方式中,转录语音输入110的请求112可以包括对话状态标识符。对话状态标识符可以指示给定对话中的多个对话状态之中的、转录请求112所属的特定对话状态。对话状态通常是用户向计算设备提供语音输入的对话的一个或多个阶段的表示。对话阶段可以构成与特定任务或活动相关的一系列用户交互。例如,用于订购披萨的活动的对话可以包括接收用于选择披萨尺寸、选择配料、指定送货地址以及提供支付信息的相应语音输入的阶段。对话状态可以分配给活动的每个阶段,并且一些对话状态可以分配给多个阶段。对话状态标识符可以指示语音输入110指向哪个状态。在一些实现方式中,对话状态标识符可以是由语音识别器102用来确定用于偏置语言模型120的方式的对话状态的真实指示。在一些实现方式中,可以提供对话状态“暗示”(例如,整数形式),其指示对话阶段或设备对真实对话状态的估计。语音识别器102可以信任对话状态提示或者可以使用其他数据(例如,语境数据、对话状态历史数据)来验证提示是否准确。

在操作b(114)处,语音识别器102处理请求112以确定与请求112相关联(并因此与语音输入110相关联)的对话状态。在一些实现方式中,语音识别器102使用请求112中包含的、除用于确定与请求112相关联的对话状态的语音输入110的音频数据之外的信息。例如,如果请求112包括应用标识符、对话标识符以及对话状态标识符,则可以使用所有这三条信息来确定对话状态。应用标识符可以标识与一个或多个对话集合相关联的特定应用。对话标识符可以标识请求112与这些对话中的哪些对话相关,并且对话状态标识符可以标识请求12与所标识的对话内的哪个对话状态有关。在一些实现方式中,即使没有或少于所有这三条信息被提供给语音识别器102,也可以确定对话状态。

在一些实现方式中,语音识别器102可以使用其他类型的语境数据来选择对话状态。例如,请求112可以包括表征在处于或临近语音输入110被提供给设备108的时候(即,屏幕签名)在设备108上显示的用户界面的散列值。随后,语音识别器102可以将在请求112中接收的散列值和与不同对话状态相关联的预定散列值进行比较。然后,可以选择与匹配于在请求112中接收的散列值的预定散列值相关联的特定对话状态,作为语音输入110和请求112被确定为所对应的对话状态。在一些实现方式中,可以基于两种或更多种类型的语境数据(例如,屏幕签名、对话状态暗示以及当检测到语音输入110时指示设备108的地理位置的位置指示符)选择对话状态。在一些实现方式中,语音识别器102可以通过使用分类器来选择对话状态,该分类器基于包括多种类型的语境数据的多个信号来输出预测的对话状态。分类器可以是基于规则的,或者可以通过机器学习处理(例如,神经网络)来训练。

在图1的示例中,描绘了数据结构116的表示,其将多个对话状态中的每一个与相应的语境数据以及一个或多个n元的相应集合(例如,语言模型偏置数据)相关联。具体来说,显示对应于披萨下单对话中的不同阶段的五个对话状态。例如,对话状态“1”涉及用户对配送或外卖选项的偏好,而对话状态“2”涉及用户对饼皮类型的偏好,并且对话状态“3”涉及用户对披萨配料的偏好。在一些实现方式中,对话可以包括在对话的多个不同阶段引起来自用户的相似响应的相应提示。不同的提示中的每个可以与不同的语境数据相关联,但是语音识别器102可以已经将相似的提示和响应合并成单个对话状态。例如,披萨订购应用可以包括第一提示和第二提示,第一提示询问用户106在披萨上包括哪些配料,第二提示询问用户106他或她是否愿意以打折的价格添加额外的配料。设备108可以在针对第一提示的请求112中提供语境值“1”(例如,对话状态标识符),并且可以在针对第二提示的请求112中提供语境值“7”。但是由于响应于这些提示中的每个的语音输入之间的相似性,语音识别器102可以保持对应于两个提示各自的单个对话状态。

数据结构116识别与每个对话状态相关联的一个或多个n元的相应集合。与给定对话状态相关联的n元集合通常指示在已被确定为与给定对话状态相对应的语音输入中经常发生的单词、短语、数字或其它语言单位(即n元)。例如,数据结构116将n元“信用”、“支付”、“美元”、“美分”、“店内”以及“现金”识别为可能由用户在涉及披萨订单的付款选项的对话状态“5”中说出。在一些实现方式中,可以通过语音识别器102基于先前转录请求的结果的分析确定分配给每个对话状态的相应n元。例如,语音识别器102(或另一个计算系统)可以将在一段时间内来自许多不同用户的语音输入的转录记入日志。然后可以确定在语音输入转录中出现的最常用术语(n元)集合并且将其与对话状态相对应。这样,可以不需要应用开发者向语音识别器102提供与每个对话状态相关联的n元集合。相反,语音识别器102可以通过分析历史转录结果来自动确定n元集合。在一些实现方式中,与给定对话状态相关联的n元集合可以包括自动确定的n元的组合,无需来自应用开发者的输入以及由应用开发者指定的其他n元。

在操作c(118)处,处理100使用与所选择的对话状态相关联的n元集合来偏置由语音识别器102使用以将语音输入110转录为文本的语言模型120。通常,语言模型120被配置为确定语言序列表示语音输入的准确转录的似然性(例如,概率)。例如,语言模型120可以处理由语音识别器102的声学模型生成的音素序列或其他语音特征,以确定语音输入110的一个或多个候选转录。语言模型120可以向每个候选转录分配指示相应候选转录是语音输入的准确转录的概率。然后可以将前n个候选转录作为转录结果返回给用户设备108,其中n是预定整数(例如,1、2、3、4或更多)。

在一些实现方式中,语言模型120可以基于指示在一个或多个语言数据的语料库中出现不同的术语序列的频率的概率数据来确定候选转录的概率。例如,语言模型120可以给“三只盲鼠”(threeblindmice)的转录分配比“树盲鼠”(treeblindmice)更高的得分,因为前一种语言序列在搜索查询语料库中比后者更频繁地出现。在一些实现方式中,语言模型120可以是n元语言模型,其使用条件概率以基于语言序列中的n个或n-1个在前术语连续地预测该序列中的术语,其中n是预定整数(例如,1、2、3、4或更多)。

语音识别器102可以偏置语言模型120以增加或减小语音输入110的转录结果包括n元集合中的与所选择的对话状态相关联的n元的似然性。在一些实现方式中,可以向包括来自分配给所选择的对话状态的n元集合中的n元的偏好候选转录偏置语言模型120。例如,图1中的条形图122示出应用于与涉及披萨配料的所选择的对话状态(3)相关联的每个n元的概率“增强”。因此,鉴于无偏置语言模型可以对候选转录“意大利辣香肠和蘑菇”分配概率得分0.20,偏置语言模型可以分配概率得分0.85,因此指示候选转录准确表示用户的语音输入110的内容的高度似然性。

在一些实现方式中,即使由语言模型120存储的概率数据可以相对于与所选择的对话状态相关联的n元集合增加,但是偏置语言模型120仍然能够生成不包括所选择的集合内的n元(或至少包括所选择的集合外的一个或多个n元)的转录。然而,与使用不包括这样的n元的无偏置语言模型来生成转录的似然性相比,使用不包括来自所选择的n元集合的n元的偏置语言模型120生成转录的似然性可能减小。在一些实现方式中,可以通过降低与用于所选择的对话状态的n元相关联的概率,偏置语言模型120。在一些实现方式中,给定的对话状态可以与在偏置语言模型120中具有增加的概率的第一n元集合、以及在偏置语言模型120中具有降低的概率的第二n元集合相关联。

在操作d(124)处,语音识别器102使用偏置语言模型120来确定语音输入110的一个或多个转录结果。在一些实现方式中,可以选择偏置语言模型120指示可能是语音输入110的最准确转录的排名靠前的转录结果126(例如“意大利辣香肠和蘑菇”)并且响应于请求112将其返回给用户设备108(操作e(128))。例如,用户设备108然后可以将转录结果作为文本输入表单字段中。

图2是执行使用偏置语言模型228将语音输入210转录为文本的示例处理200的计算系统的概念图。处理200类似于图1的处理100,但是在处理200中,对话状态历史数据至少部分用于确定与语音输入210相对应的对话状态。通常,对话状态历史数据标识在给定用户的对话会话中先前已经发生的一个或多个对话状态。在一些情况下,对话状态历史记录数据可以标识紧接在新的转录请求的对话状态之前的对话状态。然后,语音识别器102可以评估对话状态流模型,以基于哪个对话状态紧接在新请求的语音输入之前的指示来预测新转录请求的对话状态。在一些实现方式中,如以下段落中所述,可以单独使用对话状态历史数据(即,没有其他语境数据)来确定与转录请求相关联的对话状态。在一些实现方式中,可以由语音识别器102一起使用包括来自语境数据和对话状态历史数据这两者的多个信号以确定与转录请求相关联的对话状态。

在操作a(204)处,用户设备208生成转录请求212并将请求212发送到语音识别器202。请求212包括表征由设备208检测的语音输入210的音频数据。在此示例中,语音输入210是用户口述“意大利辣香肠和蘑菇”的记录。请求212可以包括或不包括可用于语音识别器202转录语音输入210的其他数据。在一些实现方式中,请求212还可以包括应用标识符、对话标识符、对话状态标识符、其他语境数据、对话状态历史数据、会话标识符或这些中两个或更多个的组合。在一些实现方式中,请求212可以包括对话状态历史数据,其标识在对话会话中已经发生的最后n个对话状态。语音识别器202可以通过将应用编程接口(api)暴露给设备208,或通过将与给定请求相对应的对话状态标识符的指示连同请求的转录结果230提供给用户设备208,使用户设备208可用对话状态历史数据。例如,用户设备208可以向语音识别器202提交第一转录请求,并且作为响应,语音识别器202向用户设备208提供转录结果以及与第一请求相关联的对话状态标识符。随后,用户设备208可以向语音识别器202提交第二转录请求,该第二转录请求包括作为对话状态历史数据的一部分的与第一(先前)请求相关联的对话状态标识符。如下面进一步描述的,与第一请求相关联的对话状态标识符随后可以与对话状态流模型一起由语音识别器202用于确定与第二请求相关联的对话状态。

在一些实现方式中,除了对话状态历史数据之外或替代对话状态历史数据,请求212可以包括对话会话标识符。对话会话标识符是指示与请求212相关联的特定对话会话的数据。语音识别器202可以使用对话会话标识符来关联涉及相同对话会话的一系列转录请求。例如,可以将包括对话会话标识符的第一转录请求从用户设备208发送到语音识别器202。语音识别器202可以确定与第一转录请求相关联的对话状态,并且可以存储将所确定的对话状态与会话标识符相关联的记录。当语音识别器202稍后接收包括相同会话标识符的第二转录请求时,语音识别器202可以访问存储的记录识别与第一请求相关联的先前对话状态。基于先前的对话状态和对话状态流模型,语音识别器202可以确定与第二请求相关联的对话状态,并且存储使第二对话状态与会话标识符相关的记录。语音识别器202可以继续该处理基于同一会话中的先前对话状态连续地确定后续转录请求的后续对话状态。

在操作b(214)处,当接收请求212时,语音识别器202识别语音识别器202确定为与从用户设备208接收的对于相同对话会话的最后的转录请求相关联的对话状态。例如,在完成披萨订单时,用户206可以提供一系列语音输入,诸如“外卖”,然后是“薄皮”,然后是“意大利辣香肠和蘑菇”,这些输入在连续的转录请求中被提供给语音识别器。响应于接收第三请求212,语音识别器202可以在与对话状态“2”相同的对话会话中(在图表216中高亮显示)标识与先前请求相关联的对话状态。在一些实现方式中,语音识别器202可以通过将包括在请求212中的对话会话标识符与由语音识别器202存储的信息进行相关来确定先前的对话会话,该信息指示针对相同对话会话确定的最后一个或多个对话状态。在一些实现方式中,语音识别器202可以基于包含在请求212中的直接标识先前状态的对话状态历史数据来确定先前对话状态。

在操作c(218)处,语音识别器202确定最有可能与转录请求212相关联(并且因此最可能与请求212中包括的语音输入110相关联)的对话状态。在一些实现方式中,可以基于在操作b(214)处标识的一个或多个先前的对话状态和对话状态流模型来确定对话状态。对话状态流模型通常指示期望在给定对话中发生的对话状态序列,并且在这里参照图3进行描述。

图3描绘了示例对话状态流模型的概念表示。对话状态流模型被表示为包括多个节点302a-g和连接不同节点302a-g的多个边304a-1的图300。由模型表示的对话中的每个相应对话状态通过图300中的相应节点302a-g表示。边304a-1表示对话状态之间的候选转换。例如,节点302a(表示第一对话状态)具有分别指向节点302b(表示第二对话状态)和302c(表示第三对话状态)的两个向外箭头304a和304b。因此,根据该模型,跟随第一对话状态302a的对话状态可能是第二对话状态302b或第三对话状态302c。然而,因为没有从第一对话状态的节点302a指向第四、第五、第六或第七对话状态(302d-g)的各个节点的边点,所以对话可能不可能从第一对话状态流到这些其他对话状态。

在一些实现方式中,对话状态流模型可以将概率分配给模型中表示的每对对话状态之间的转换。例如,该模型指示在第一对话状态302a之后第二或第三对话状态302a、302b存在相等概率。然而,紧接在第四对话状态302d之后返回到第一对话状态302a的似然性仅为百分之四十,而对话将从第四对话状态302d继续到第七对话状态302g的似然性为百分之六十。在一些实现方式中,对话状态流模型可以由语音识别器或另一计算系统基于对随着时间在来自一个或多个用户设备的许多对话会话中发生的对话状态序列的分析而自动学习。在一些实现方式中,对话状态流模型可以由用户(诸如开发给定对话的应用开发者)手动定义。在一些实现方式中,语音识别器可以能够访问并使用用于多个对话中的每个的相应模型。

再次参考图2并且讨论操作c(218),在一些实现方式中,可以基于为对话状态集合确定的相应得分为语音输入210(和请求212)确定对话状态,该对话状态集合指示每个相应的对话状态与请求212或语音输入210相匹配的似然性。表220中示出了与披萨下单对话相关联的五个对话状态的集合的示例得分。在一些实现方式中,语音识别器202选择具有最高概率得分的对话状态。在图2的示例中,与对话的披萨配料选择阶段对应的对话状态“3”具有最高的概率得分,并被确定为对应于转录请求212的对话状态。

在一些实现方式中,对话状态概率得分可以进一步基于与请求212相关联的语境数据。语音识别器202可将包括在请求212中的语境数据和与每个对话状态相关联的相应语境数据进行比较,为每个对话状态确定相应的语境相似性得分。通常,较高的语境相似性得分表示请求212中的语境数据和与给定对话状态相关联的语境数据之间的更接近匹配。在一些实现方式中,语境相似性得分可以基于诸如用户界面散列、位置数据以及用户简档数据的多种类型的语境数据之间的相似性得分的加权组合。在一些实现方式中,分配给每个对话状态(例如,在表220的最右侧列中示出)的最终概率得分可以基于语境相似性得分和序列得分的加权组合。序列得分可以从对话状态流模型中的概率导出,并且可以指示给定一个或多个在前对话状态的对话状态的概率。

在操作d(222)、e(226)以及f(232)处,处理200以类似于图1中描绘的处理100的操作c(118)、d(124)以及e(128)的方式进行。具体地,在操作d(222)处,基于与在操作c(218)期间选择的对话状态相关联的n元集合,偏置语言模型228。在操作e(226)中,语音识别器202使用偏置语言模型228来生成语音输入110的转录结果230。最后,在操作f(232)处,将转录结果230从语音识别器202提供给用户设备208。在一些实现方式中,可以将转录结果230结合对话状态标识符提供给设备208,设备208可以将对话状态标识符包括在对话会话中的后续转录请求中以用于语音识别器202确定下一个对话状态。

现在参考图4,示出了用于分析语音输入的转录以确定多交互语音对话中的对话状态的示例处理400的流程图。在一些实现方式中,可以将相应的n元集合分配给每个对话状态,并且这些n元集合稍后可以在运行时由语音识别器使用以偏置语言模型。例如,响应于确定语音输入与给定对话状态相对应,可以在语言模型中调整与用于给定对话状态的n元相关联的概率数据。在一些实现方式中,处理400可以由语音识别系统采用以自动学习对话的对话状态,并且自动学习如何偏置每个对话状态的语言模型。因此,在一些实现方式中,使用语音识别系统的语音识别服务的应用不需要跟踪与用户的给定系列语音交互期间的对话状态的流,并且不需要明确地通知语音识别系统给定转录请求对应的对话状态、用于偏置给定转录请求的语言模型的n元集合或两者。

在阶段402,计算系统从多个计算设备接收指示用户的语音输入的音频数据。语音输入通常是用户说出的作为对话的一部分的话语。对于每个用户,对话可以包括与特定活动相关的一系列语音输入。例如,用于约会安排活动的对话可以包括标识约会的开始时间、持续时间、位置、描述以及被邀请者的相应语音输入。在一些情况下,用户可以为所有可用的约会安排参数提供输入。在其他情况下,用户可以仅为一部分可用的约会安排参数提供输入。此外,在语音输入中提供参数的顺序可在用户中变化。因此,即使语音输入可能全部涉及用于同一活动(例如,约会安排)的对话,语音输入的数量和顺序可能在对话会话中变化。在一些实现方式中,计算系统可以接收与多个不同对话相对应的语音输入。由于处理400通常涉及确定用于特定对话(例如约会安排)的对话状态和n元集合,系统可以过滤接收的数据以仅包括与该对话相对应的语音输入的数据。与其他对话(例如披萨订购、金融交易、社交媒体发布)相对应的语音输入的数据可以被丢弃。

在阶段404处,计算系统可选地标识与接收的语音输入相关联的语境数据。在一些实现方式中,可以通过用户设备在对计算系统的转录请求中提供语境数据。转录请求还可以包括请求转录的语音输入的音频数据。语境数据通常包括语音识别器能够用于确定语音输入的转录的任何数据(不同于语音输入音频数据)。例如,用户设备可以在设备检测到语音输入时或附近计算表征设备上的用户界面的显示的屏幕签名。在一些情况下,屏幕签名可以是基于与在设备检测到语音输入时或附近设备所显示的用户界面元素相关联的值确定的散列值。屏幕签名(或其他单独的语境数据片段)可能足够或可能不足以使计算系统确定与语音输入相关联的对话状态。在一些实现方式中,给定的语音输入可以与单个语境数据片段(例如,屏幕签名)相关联。在一些实现方式中,语音输入可以与多个语境数据片段相关联(例如,屏幕签名和对话提示)。对话提示是一种语境数据,其指示用户设备的估计的对话状态。如果用户设备在对话期间可靠地跟踪对话状态,对话提示可以有效地用作对话状态标识符。如果用户设备没有可靠地跟踪对话状态,则计算系统可以在确定与用户设备相关联的对话状态时负担较少权重的对话。在一些实现方式中,计算系统可以不标识与接收的语音输入相关联的语境数据,并且可以没有语境数据而确定对话状态和n元集合。

在阶段406处,系统确定所接收的语音输入(或至少已经被过滤以用于分析的语音输入)的转录。可以通过将语音输入转换为文本的语音识别器来确定转录。语音识别器可以包括能够将语音输入的音频数据转换为文本的组件集合。在这些组件中可以包括语言模型,其通常被配置为确定语言中的术语序列的概率。语言模型可以评估用于转录的术语的候选序列,并选择最可能的术语序列作为最终作为语音识别器的输出提供的转录。在一些实现方式中,由于对话状态和语言模型偏置数据(例如,n元集合)可能还没有被处理400的该阶段确定,所以可以使用通用的、无偏置的语言模型来确定在阶段406期间的语音输入的转录。在一些实现方式中,计算系统可以简单地获得由一个或多个其他计算系统确定的语音输入的转录,本身不需要接收语音输入的音频数据,并且生成转录作为处理400的一部分。

在阶段408处,计算系统分析语音输入的转录以标识出现在至少一些转录中的每个中的一个或多个n元的相应集合。可以在代表转录的矢量中提供为每个转录标识的相应n元集合。该矢量可以指示针对每个转录标识的相应n元集合,而不考虑n元在转录中发生的顺序。在一些实现方式中,可以标识在转录中发生的每个n元并将其添加到该转录的相应矢量中。在一些实现方式中,只有在转录中发生的所有n元的真子集可以被标识并添加到该转录的相应矢量中。例如,可以基于与n元相关联的显著性得分来选择n元的子集。例如,语言中出现频率较少的n元可以被分配较高的显著性得分,而语言中出现频率较多的n元(例如,代词、冠词、常见形容词以及名词)可以被分配较低的显著性得分。例如,可以选择被分配超过阈值得分的显著性得分的n元以包含在转录的矢量中,或者可以选择在转录中具有前n个显著性得分的n元(其中n是预定义的整数,诸如1、2、3、4或更多)。

在阶段410处,计算系统基于转录之间的相似性来生成转录组。值得注意的是,该描述仅以举例的方式涉及转录组。因为每个转录仅对应于单个语音输入和被标识为在转录中发生的单个n元集合,所以计算系统可以基于与本文描述的用于生成转录组的技术类似的技术同样地生成语音输入组或n元集合组。本文涉及转录组的讨论因此也适用于这些其他类型的组。

在一些实现方式中,可以基于在转录中发生的n元的语义相似性对转录进行分组。例如,在确定约会安排应用的语音输入的转录组中,第一转录组可以在具有与约会时间有关的n元(例如,“中午”“、下午12点”“、上午8:30”、“晚上”、“下午4点”)的转录之间形成;第二转录组可以在具有与约会地点有关的n元(例如“会议室”、“咖啡馆”、“市中心”、“办公室”、“大街”、“街道”、“楼层”、“套房”)的转录之间形成;并且第三转录组可以在具有与约会描述有关的n元(例如,“会议”、“午餐”、“电话会议”、“考察”、“派对”)的转录之间形成。在一些实现方式中,转录的语义相似性可以通过标识给定转录中与n元相关联的一个或多个主题来确定。主题可以由命名实体识别引擎标识,例如,将n元与主题相关联,并且可以使用基于文本样本中发现的n元的主题来标记文本样本。一旦确定了主题,可以对与一个或多个相同主题相关的转录进行分组。在一些实现方式中,可以对与不同但相似的主题相关的转录进行分组。

在一些实现方式中,可以基于与从中导出转录的语音输入相关联的标识的语境数据之间的相似性对转录进行分组。例如,可以在具有第一屏幕签名的语音输入的转录之间形成第一转录组,可以在具有第二屏幕签名的语音输入的转录之间形成第二转录组,等等。在另一个示例中,可以在第一时间段内的时间(例如,上午8点至下午12点)说出的语音输入的转录之间形成第一转录组,可以在第二时间段内的时间(例如,下午12:01至4点)说出的语音输入的转录之间形成第二转录组,等等。例如,也可以基于其他类型的匹配或类似的语境数据形成组,语境数据诸如位置数据、用户简档数据、用户人口统计数据、对话提示或当检测到口头输入时在设备上运行的一个或多个应用的指示。在一些实现方式中,可以基于与从中导出转录的语音输入相关联的多种类型的语境之间的相似性,对转录进行分组。例如,可以在在屏幕签名和在用户设备处检测到语音输入的时间段两者中具有相似性的语音输入的转录之间形成转录组。在一些实现方式中,可以相对于彼此加权不同类型的语境数据,使得特定类型的语境之间的相似性比其他类型的语境更可能影响分组。

在一些实现方式中,可以基于在转录中发生的n元的语义相似性生成转录组,并且不基于与从中导出转录的语音输入相关联的语境数据。在一些实现方式中,可以基于与从中导出转录的语音输入相关联的语境数据生成转录组,并且不基于在转录中发生的n元的语义相似性。然而,在一些实现方式中,可以基于(i)在转录中发生的n元的语义相似性和(ii)与从中导出转录的语音输入相关联的语境数据二者,生成转录组。在后面的实现方式中,例如,语义上相似并且具有相似语境数据的转录可以被分组在一起。因此,如果具有语义上仅仅略微相似的n元的转录的语境非常类似,则它们可以被分组,并且如果具有语义上仅仅略微相似的n元的转录在语义上高度相关,则它们可以被分组。

在一些实现方式中,在计算系统生成转录组的初始集合之后,可以合并被确定为相似的组以减少转录组的总数。由计算系统生成的最终转录组集合与确定在对话中发生的相应对话状态相对应。由于语音识别器可以使用每个对话状态以不同方式偏置语言模型,所以对组进行合成以减少语音识别器可检测的对话状态的数量可能是有益的。特别是,对组进行合成可以消除冗余组,并增加组间的分隔(以及因此对话状态之间的多样性),以确保语言模型在每个对话状态之间偏置的有意义差异。例如,对话的第一阶段可以征求用于约会开始时间用户的语音输入,对话的第二阶段可以征求用于约会结束时间用户的语音输入,并且对话的第三阶段可以征求用于约会参加者的人数的用户的语音输入。因为在这些阶段中的每个阶段的语音输入(例如,数字和时间的陈述)中的n元之间可能存在实质性重叠,所以可以将语音输入的转录合并成单个组。从合并组产生的确定的对话状态因此可以与语音交互的三个独立阶段相对应,因为可以使用相同的n元集合以相同的方式为这些阶段中的每个有效地偏置语言模型。

计算系统可以根据各种技术标识要合并的转录组。在一些实现方式中,来自每个组的n元集合可以与来自每个其他组的相应n元集合进行比较,并且可以基于该比较确定每对组的n元集合之间的相似性得分。如果给定对组中n元之间的相似性得分满足(例如,超过)阈值相似性得分,则可以合并这些组。合并的结果可以是包括来自每个合并组的所有或至少一些转录组。例如,可以基于被比较的组的n元之间的匹配的数量或频率,确定相似性得分。例如,如果初始的基于语境的转录的分组导致第一屏幕签名值的第一组和第二屏幕签名值的第二组,但每个组之间的语音输入的转录在很大程度上是相同的,则可以将这些组合并到由计算系统生成的最终的组集合中的单个组中。在一些实现方式中,可以在连续迭代中对组进行合并,直到达到极限为止(例如,直到已经完成预定次数的迭代为止、直到组之间的相似性得分都不满足阈值相似性得分为止、直到剩余组的数量不超过组的预定最大数量或这些的组合为止)。在一些实现方式中,得分可以通过取来自每个组的相应n元集合之间的余弦距离,确定转录组之间的相似性得分。可以通过从每组产生n元的矢量(例如,根据单词袋技术)并且确定矢量之间的距离,计算余弦距离。在一些实现方式中,得分可以通过将n元集合取为低维空间并确定低维空间中的相似性,确定转录组之间的相似性得分。

图5a和5b描绘了用于合并相似的转录组以形成确定在对话中发生的对话状态相对应的最终组集合的技术的概念图。

在图5a中,基于转录中的术语(n元)的语义相似性对初始转录组504、506以及510进行分组。例如,当语境数据不可用或者语音识别器被配置为使用对话状态流模型而不是语境数据在运行时检测语音输入转录请求的对话状态时,这种类型的分组可能是有益的。在生成初始组504、506以及510之后,确定组504和506中的两个包含相似的n元集合,并因此合并成单个组502。合并的组502和第三初始组510然后在给定的对话中与相应的对话状态508和512相关。

在图5b中,基于与转录相关联(并因此与从中确定转录的语音输入相关联)的语境数据将初始转录组552、556以及558分组。语境分组可能是有益的,例如,当语境数据与对话状态具有强相关性时,语音识别器可在运行时转录语音输入。在一些实现方式中,例如,基于语境确定的对话状态可以避免对于语音识别器基于对话状态历史数据或对话状态流模型来确定对话状态的任何需要。在生成初始组552、556以及558之后,组556和558中的两个被确定为包含相似的n元集合,并因此被合并成单个组554。合并的组554和第一初始组552然后在给定的对话中与相应的对话状态560和562相关。

再次参考图4,在阶段414处,处理400为在阶段410和412处确定的每个对话状态分配语音识别器的相应的n元集合,用于在转录与各自的对话状态相对应的语音模型时偏置语言模型。在一些实现方式中,可以从在包括与给定对话状态相对应的组的转录中发生的所有n元中选择分配给给定对话状态的n元的集合。在一些实现方式中,可以确定在转录组中发生每个n元的次数的计数,并且可以基于计数选择最频繁发生的n元(例如,可以选择满足阈值计数的n元和/或可以选择预定数量的具有最高计数的n元)。在一些实现方式中,可以从例如排除无意义术语(例如,“的”、“该”、“一个”、“至”、“用于”等)的过滤的n元集合中选择所选择的n元。所选择的n元集合可以与它们各自的对话状态相关联地存储。

在一些实现方式中,在至少部分地基于与转录相关联的语境数据创建了转录组的情况下,在阶段416处,计算系统可以向在阶段410和412处确定的每个对话状态分配相应语境数据集合,相应语境数据集合可以由语音识别器使用以将给定语音输入或转录请求与相应对话状态相关联。分配给给定对话状态的语境数据集合可以类推到唯一标识对话状态的指纹。因此,当语音识别器接收包括语境数据的语音输入转录请求时,可以将来自该请求的语境数据与分配给每个对话状态的相应语境数据集合进行比较。如果在请求中的语境数据与所分配的语境数据集合中的一个之间确定了匹配或强关联,语音识别器可以标识该请求属于与匹配的语境数据集合相对应的对话状态。在一些实现方式中,计算系统分配给对话状态的语境数据集合可以基于与对应于对话状态的组中的全部或一些转录相关联的语境数据。例如,如果给定组中的相当多个或大部分转录与第一屏幕签名值相关联,可以将第一屏幕签名值分配给与该组相对应的对话状态。

在一些实现方式中,在阶段418处的计算系统可以确定指示对话会话中可能发生的对话状态的序列的对话状态流模型。在一些实现方式中,对话状态流模型可以针对在阶段410和412中确定的每个对话状态指示一个或多个其他对话状态将是对话会话中的下一个对话状态的概率。例如,在图3所示的流模型中,对话状态4之后的对话状态7的概率是0.6,并且对话状态4之后的对话状态1的概率是0.4。对话状态4之后的任何其他对话状态的概率为零。在一些实现方式中,计算系统可以基于在历史对话会话的记录中发生的所标识的对话状态序列来确定对话状态流模型。例如,如果在历史对话会话的记录中第一对话状态在80%的时间是被第二对话状态跟随的、并且在20%的时间是被第三对话状态跟随的,则可以在对话状态流模型中对从第一对话状态到第二对话状态的转变分配0.8的概率,并且可以对从第一对话状态到第三对话状态的转变分配0.2的概率。

图6是用于使用基于与语音输入相关联的对话状态而选择的偏置语言模型对语音输入执行语音识别的示例处理600的流程图。在一些实现方式中,可以由诸如图1和图2中描述的语音识别器的语音识别计算系统执行处理600。也可以使用在图4的处理400中关于对话状态、n元、语境数据以及对话状态流模型确定的数据来执行处理600。

在阶段602处,语音识别系统接收请求被转录的语音输入。在一些实现方式中,阶段602的系统还接收与语音输入相关联的语境数据。语境数据可以指示在检测到语音输入的时间或附近检测的用户设备的状况。例如,语境数据可以指示当检测到语音输入时表征用户设备的显示的屏幕签名、对话提示或者这些和其他类型的语境数据的组合。

在阶段606处,语音识别系统分析语音输入、语境数据或两者以确定语音输入的对话状态。在一些实现方式中,可以通过将转录请求中的语境数据与已经存储并且与对应的对话状态相关联的特定语境数据集合进行匹配来确定对话状态(阶段608)。在一些实现方式中,可以基于对话状态历史数据和预测对话状态序列的对话状态流模型来确定对话状态。对话状态历史数据可以指示在当前转录请求的对话状态之前的一个或多个对话状态,并且可以由语音识别系统预先存储,或者可以在来自用户设备的转录请求中提供。

在阶段612处,语音识别系统标识已经被分配给在阶段606处确定的对话状态的n元集合。在阶段614处,应用标识的n元集合以偏置语言模型。例如,可以在语言模型中增加与标识的n元集合中的n元相关的概率,使得语言模型更有可能选择分配的n元。在一些实现方式中,可以在接收语音输入并且确定语音输入的对话状态之后,偏置语言模型。在一些实现方式中,语音识别系统可以在接收语音输入之前为每个对话状态生成偏置语言模型。随后,当接收转录语音输入的请求时,语音系统可以访问与语音输入的对话状态相对应的预偏置语言模型。在阶段616处,可以使用偏置的语言模型将语音输入转录成文本。然后可以将转录的文本发送到请求转录的计算设备。

图7示出了可以用于实现本文描述的计算机实现的方法和其他技术的计算设备700和移动计算设备的示例。计算设备700意在表示各种形式的数字计算机,诸如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机以及其他适当的计算机。移动计算设备意图表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话以及其他类似的计算设备。这里示出的组件、它们的连接和关系以及它们的功能仅意味着示例性的,并不意味着限制本文中描述和/或要求保护的本发明的实现方式。

计算设备700包括处理器702、存储器704、存储设备706、连接到存储器704和多个高速扩展端口710的高速接口708、以及连接到低速扩展端口714和存储设备706的低速接口712。处理器702、存储器704、存储设备706、高速接口708、高速扩展端口710以及低速接口712中的每个使用各种总线互连,并且可以根据需要安装在公共主板上或以其他方式安装。处理器702可以处理用于在计算设备700内执行的指令,包括存储在存储器704或存储设备706中的指令,在外部输入/输出设备(诸如耦合到高速接口708的显示器716)上显示用于gui的图形信息。在其他实现方式中,可以适当使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。而且,可连接多个计算设备,每个设备提供必要操作的一部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器704在计算设备700内存储信息。在一些实现方式中,存储器704是一个或多个易失性存储器单元。在一些实现方式中,存储器704是非易失性存储器单元。存储器704也可以是另一种形式的计算机可读介质,诸如磁盘或光盘。

存储设备706能够为计算设备700提供大容量存储。在一些实现方式中,存储设备706可以是或包括计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或包括存储区域网络中的设备或其他配置的设备阵列。计算机程序产品还可以包括当被执行时执行诸如上述的一个或多个方法的指令。计算机程序产品还可以有形地体现在诸如存储器704、存储设备706或处理器702上的存储器的计算机或机器可读介质中。

高速接口708管理计算设备700的带宽密集型操作,而低速接口712管理较低带宽密集型操作。这种功能分配仅仅是示例性的。在一些实现方式中,高速接口708耦合到存储器704、显示器716(例如,通过图形处理器或加速器)以及高速扩展端口710,其可以接受各种扩展卡(未示出)。在该实现方式中,低速接口712耦合到存储设备706和低速扩展端口714。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口714可以例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、定点设备、扫描仪或诸如交换机或路由器的联网设备。

如图所示,可以以多种不同的形式实现计算设备700。例如,它可以被实现为标准服务器720,或者在这样的服务器组中被多次实现。另外,它可以在诸如膝上型计算机722的个人计算机中实现。它也可以被实现为机架服务器系统724的一部分。替代地,来自计算设备700的组件可以与诸如移动计算设备750的移动设备中的其他组件(未示出)组合。这些设备中的每个可以包含计算设备700和移动计算设备750中的一个或多个,并且整个系统可以通过彼此通信的多个计算设备组成。

移动计算设备750包括处理器752、存储器764、诸如显示器754的输入/输出设备、通信接口766以及收发器768等等组件。移动计算设备750还可以提供有存储设备,诸如微型驱动器或其他设备,以提供额外的存储。处理器752、存储器764、显示器754、通信接口766以及收发器768中的每个使用各种总线互连,并且若干组件可以安装在公共主板上或以其他方式适当地安装。

处理器752可以执行移动计算设备750内的指令,包括存储在存储器764中的指令。处理器752可以实现为包括分离和多个模拟和数字处理器的芯片的芯片组。处理器752可以例如针对移动计算设备750的其他组件的协调提供诸如用户界面的控制、由移动计算设备750运行的应用以及移动计算设备750的无线通信。

处理器752可以通过控制接口758以及耦合到显示器754的显示器接口756与用户通信。显示器754可以是例如tft(薄膜晶体管液晶显示器)显示器或者oled(有机发光二极管)显示器或其他适当的显示技术。显示接口756可以包括用于驱动显示器754以向用户呈现图形和其他信息的适当电路。控制接口758可以接收来自用户的命令并将它们转换以用于提交给处理器752。另外,外部接口762可以提供与处理器752的通信,以便实现移动计算设备750与其他设备的近区域通信。外部接口762可以例如在一些实现方式中提供有线通信,或者在其他实现方式中提供无线通信,并且还可以使用多个接口。

存储器764存储移动计算设备750内的信息。存储器764可以被实现为计算机可读介质、易失性存储器单元或非易失性存储器单元中的一个或多个。扩展存储器774也可以被提供并且通过扩展接口772连接到移动计算设备750,该扩展接口772可以包括例如simm(单列直插式存储器模块)卡接口。扩展存储器774可以为移动计算设备750提供额外的存储空间,或者还可以为移动计算设备750存储应用或其他信息。具体而言,扩展存储器774可以包括执行或补充上述处理的指令,并且也可以包括安全信息。因此,例如,可以提供扩展存储器774作为用于移动计算设备750的安全模块,并且可以用允许安全使用移动计算设备750的指令来编程。另外,可以经由simm卡提供安全应用以及其他信息,例如以不可破解的方式在simm卡上放置标识信息。

如下面所讨论的,存储器可以包括例如闪存和/或nvram存储器(非易失性随机存取存储器)。计算机程序产品包含当被执行时执行诸如上述的一个或多个方法的指令。计算机程序产品可以是计算机可读介质或机器可读介质,诸如存储器764、扩展存储器774或处理器752上的存储器。在一些实现方式中,可以以用于例如通过收发器768或外部接口762的传播信号接收计算机程序产品。

移动计算设备750可以通过通信接口766进行无线通信,通信接口766在必要时可以包括数字信号处理电路。通信接口766可以提供诸如gsm语音呼叫(全球移动通信系统)、sms(短消息服务)、ems(增强型消息收发服务)或mms消息收发(多媒体消息服务)、cdma(码分多址)、tdma(时分多址)、pdc(个人数字蜂窝)、wcdma(宽带码分多址)、cdma2000或gprs(通用分组无线业务)等的各种模式或协议下的通信。例如,这种通信可以通过使用射频的收发器768来进行。另外,可以使用诸如蓝牙、wifi或其他这种收发器(未示出)发生短距离通信。另外,gps(全球定位系统)接收器模块770可以向移动计算设备750提供附加的与导航有关的以及与位置有关的无线数据,其可以通过移动计算设备750上运行的应用适当地使用。

移动计算设备750还可以使用音频编解码器760进行可听地通信,音频编解码器760可以从用户接收口头信息并将其转换为可用的数字信息。音频编解码器760同样可以诸如通过例如在移动计算设备750的听筒中的扬声器为用户生成可听的声音。这种声音可以包括来自语音电话呼叫的声音,可以包括录制的声音(例如,语音消息、音乐文件等)并且还可以包括通过在移动计算设备750上运行的应用生成的声音。

如图所示,移动计算设备750可以被实现为多种不同的形式。例如,它可以被实现为蜂窝电话780。它也可以被实现为智能电话782、个人数字助理或其他类似的移动设备的一部分。

可以在数字电子电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现本文描述的系统和技术的各种实现方式。这些各种实现方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实现方式,该可编程系统包括:至少一个可编程处理器,其可以是专用或通用的,耦合以从存储系统接收数据和指令,并将数据和指令发送到存储系统;至少一个输入设备;以及至少一个输出设备。

这些计算机程序(也称为程序、软件、软件应用程序或代码)包括用于可编程处理器的机器指令,并且可以以高级过程和/或面向对象的编程语言和/或汇编/机器语言实现。如本文所使用的,术语机器可读介质和计算机可读介质是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语机器可读信号是指用于向可编程处理器提供机器指令和/或数据的任何信号。

为了提供与用户的交互,本文描述的系统和技术可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器)监视器)、以及用户可以通过其向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)。其他类型的设备也可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如视觉反馈、听觉反馈或触觉反馈);并且可以以包括声音、语音或触觉输入的任何形式接收来自用户的输入。

本文描述的系统和技术可以在包括后端组件(例如,作为数据服务器)或者包括中间件组件(例如,应用服务器)、或者包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过其与本文描述的系统和技术的实现进行交互)、或者这种后端、中间件或前端组件的任何组合的计算系统中实现。系统的组件可以通过任何形式或介质的数字数据通信(例如通信网络)互连。通信网络的示例包括局域网(lan)、广域网(wan)以及因特网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离并且一般通过通信网络进行交互。客户端和服务器的关系是通过运行在各个计算机上的计算机程序产生的,并且彼此具有客户端-服务器关系。

在本文系统、方法、设备以及其他技术收集关于用户的个人信息(例如,语境数据)或者可以利用个人信息的情况下,可以向用户提供控制程序或特征收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)、或者控制是否和/或如何接收来自内容服务器的可能与用户更相关的内容的机会。另外,可以在存储或使用之前以一种或多种方式处理特定数据,使得移除个人可识别信息。例如,可以对用户的身份进行处理,使得不能对用户确定个人可识别信息,或者可以在获得位置信息(诸如城市、邮政编码或州级)的情况下将用户的地理位置概括化,使得不能确定用户的特定位置。因此,用户可以控制如何收集关于用户的信息并通过内容服务器使用。

尽管以上已经详细描述了各种实现方式,但是其他修改是可能的。另外,附图中描绘的逻辑流程不需要所示出的特定顺序或连续顺序来实现期望的结果。另外,可以从所描述的流程提供其他步骤,或者可以去除步骤,并且可以将其他组件添加到所描述的系统或从所描述的系统移除。因此,其他实现方式在权利要求的范围内。

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