利用协同定位信息的发言人验证的制作方法

文档序号:17360040发布日期:2019-04-09 22:00阅读:166来源:国知局
利用协同定位信息的发言人验证的制作方法

本说明书涉及发言人验证(speakerverification)。



背景技术:

在语音使能的环境(例如家庭或汽车)中,用户可利用话音输入访问信息或控制各种功能。这些信息和功能可针对给定用户个性化。在多用户环境中,从一群发言人当中识别给定发言人会是有利的。



技术实现要素:

本说明书涉及通过给发言人验证系统提供更多信息来增强发言人验证系统。例如,某些发言人验证系统涉及连续地倾听预定短语以便唤醒计算设备、通常执行进一步处理和/或接收更多用户输入,例如语音命令和查询。这样的发言人验证系统可区分来自设备中的一组登记的用户和未知的、未登记的用户的对预定义短语的话语。在典型场景中,特定的计算设备将检测由位置相对紧密接近设备的人说的预定义短语的任何话语,这些人例如会议室中的一群人或桌旁的其他用餐者。在一些情况下,这些人可使用与其设备相容的发言人验证系统。通过利用协同定位(co-location)信息,与每个设备关联的发言人验证系统可检测话语是由相应设备的登记用户说出的还是由紧密接近的另一用户(例如,冒名顶替者(imposter))说出的,并且该信息可用于改善发言人验证决定。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:由第一用户设备接收对话语进行编码的音频信号,由第一用户设备获得用于第一用户设备的第一用户的第一发言人模型,由第一用户设备针对与第一用户设备协同定位的第二用户设备的对应的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数,以及由第一用户设备利用(i)第一发言人模型和第二发言人模型或(ii)第一发言人模型和第二分数来确定话语是由第一用户说出的。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,所述计算机系统、装置和计算机程序每个都配置为执行所述方法的动作。一个或多个计算机的系统可以凭借在操作中使得系统执行动作的软件、固件、硬件或它们的组合安装在所述系统上而被配置为执行特定操作或动作。一个或多个计算机程序可配置为凭借包括被数据处理装置执行时使得所述装置执行动作的指令来执行特定操作或动作。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:由第一用户设备接收对话语进行编码的音频信号,由第一用户设备获得用于第一用户设备的第一用户的第一发言人模型,由第一用户设备针对与第一用户设备协同定位的其他用户设备的多个其他用户中的每一个获得用于每个相应用户的发言人模型或指示话语是由相应用户说出的相应的可能性的分数,以及由第一用户设备利用(i)第一发言人模型和多个其他发言人模型或(ii)第一发言人模型和多个分数来确定话语是由第一用户说出的。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,所述计算机系统、装置和计算机程序每个都配置为执行所述方法的动作。一个或多个计算机的系统可以凭借在操作中使得所述系统执行动作的软件、固件、硬件或它们的组合安装在所述系统上而被配置为执行特定操作或动作。一个或多个计算机程序可配置为凭借包括被数据处理装置执行时使得所述装置执行动作的指令来执行特定操作或动作。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:由第一用户设备接收对话语进行编码的音频信号,由第一用户设备确定用于第一用户设备的第一用户的第一发言人模型,由第一用户设备确定存储在第一用户设备上的用于可与第一用户设备协同定位的其他人的一个或多个第二发言人模型,以及由第一用户设备利用第一发言人模型和第二发言人模型确定话语是由第一用户说出的。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,所述计算机系统、装置和计算机程序每个都配置为执行所述方法的动作。一个或多个计算机的系统可以凭借在操作中使得所述系统执行动作的软件、固件、硬件或它们的组合安装在所述系统上而被配置为执行特定操作或动作。一个或多个计算机程序可配置为凭借包括被数据处理装置执行时使得所述装置执行动作的指令来执行特定操作或动作。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:通过至少一个计算机接收对话语进行编码的音频信号,通过至少一个计算机针对两个或更多个用户设备中的每一个获得对用于相应用户设备的相应用户的相应发言人模型的识别,通过至少一个计算机利用识别的发言人模型确定话语是由用户设备中的一个的特定用户说出的。该方面的其他实施例包括对应的计算机系统、装置和记录在一个或多个计算机存储设备上的计算机程序,所述计算机系统、装置和计算机程序每个都配置为执行所述方法的动作。一个或多个计算机的系统可以凭借在操作中使得所述系统执行动作的软件、固件、硬件或它们的组合安装在所述系统上而被配置为执行特定操作或动作。一个或多个计算机程序可配置为凭借包括被数据处理装置执行时使得所述装置执行动作的指令来执行特定操作或动作。

一般而言,在本说明书中描述的主题的一个创新方面可以体现在包括以下动作的方法中:由第一用户设备接收对话语进行编码的音频信号,由第一用户设备获得指示话语是由第一用户设备的第一用户说出的可能性的第一分数,由第一用户设备针对与第一用户设备协同定位的第二用户设备的对应的第二用户获得指示话语是由第二用户说出的相应的可能性的第二分数,由第一用户设备确定第一分数和第二分数的组合,由第一用户设备利用第一分数和第二分数的组合来归一化第一分数和第二分数,以及由第一用户设备利用归一化的第一分数和归一化的第二分数来确定话语是由第一用户说出的。

前述以及其他实施例每一个都可以可选地单独或组合地包括下列特征中的一个或多个。由第一用户设备针对与第一用户设备协同定位的第二用户设备的对应的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数可包括:由第一用户设备针对协同定位在第一用户设备的物理位置附近的物理区域中的第二用户设备的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数。所述方法可包括响应于确定话语是由第一用户发出的执行动作。所述方法可包括分析音频信号以识别包括在话语中的命令,并执行与命令对应的动作。所述方法可包括由第一用户设备利用音频信号的一部分和第一发言人模型生成指示话语是由第一用户说出的可能性的第一分数。所述方法可包括将第一分数与第二分数进行比较以确定最高分数。确定话语是由第一用户说出的可包括确定第一分数为最高分数。

在一些实现方式中,由第一用户设备针对协同定位在第一用户设备的物理位置附近的物理区域中的第二用户设备的对应的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数可包括:由第一用户设备获得第二发言人模型,并且由第一用户设备利用音频信号的一部分和第二发言人模型生成第二分数。

在一些实现方式中,由第一用户设备针对协同定位在第一用户设备的物理位置附近的物理区域中的第二用户设备的对应的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数可包括:由第一用户设备确定第二用户设备位于第一用户设备的物理位置附近的物理区域中,由第一用户设备确定第一用户设备具有允许第一用户设备访问第二发言人模型的设置,由第一用户设备接收第二发言人模型,以及由第一用户设备利用音频信号的一部分和第二发言人模型生成第二分数。由第一用户设备接收第二发言人模型可包括由第一用户设备识别存储在第一用户设备上的一个或多个第三发言人模型,以及由第一用户设备确定第三发言人模型的子集可包括第二发言人模型。所述方法可包括由第一用户设备从第一用户设备移除未包括在第三发言人模型的子集中的第三发言人模型。由第一用户设备接收第二发言人模型可包括由第一用户设备从第一用户设备中的存储器检索第二发言人模型。由第一用户设备生成第二分数可包括由第一用户设备利用存储在第一用户设备上的第二发言人模型和音频信号的一部分而不从另一用户设备请求第二发言人模型来生成第二分数。由第一用户设备接收第二发言人模型可包括由第一用户设备从服务器接收第二发言人模型。第二用户设备可包括第二发言人模型。由第一用户设备接收第二发言人模型可包括由第一用户设备从第二用户设备接收第二发言人模型。

在一些实现方式中,由第一用户设备针对位于第一用户设备的物理位置附近的物理区域中的第二用户设备的对应的第二用户获得用于第二用户的第二发言人模型或指示话语是由第二用户说出的相应的可能性的第二分数可包括:由第一用户设备确定第二用户设备位于第一用户设备的物理位置附近的物理区域中,以及由第一用户设备接收第二分数。由第一用户设备接收第二分数可包括由第一用户设备从第二用户设备接收第二分数。由第一用户设备接收第二分数可包括由第一用户设备从服务器接收第二分数。所述方法可包括由第一用户设备确定用于第二用户设备的设备识别符,以及由第一用户设备将设备识别符提供给服务器,其中第一用户设备响应于将识别符提供给服务器而从服务器接收第二分数。

在一些实现方式中,所述方法可包括由第一用户设备确定存储在第一用户设备上的用于可位于第一用户设备的物理位置附近的物理区域中的其他人的一个或多个第三发言人模型,以及由第一用户设备利用(i)第一发言人模型、第二发言人模型和第三发言人模型或(ii)第一发言人模型、第二分数和第三发言人模型来确定话语是由第一用户说出的。所述方法可包括由第一用户设备利用音频信号的一部分和第一发言人模型生成指示话语是由第一用户说出的可能性的第一分数,由第一用户设备针对第三发言人模型中的每一个利用相应的第三发言人模型和音频信号的一部分来生成相应的第三分数,以及由第一用户设备比较第一分数、第二分数和第三分数以确定最高分数。所述方法可包括由第一用户设备针对第三用户设备确定第三用户设备位于第一用户设备的物理位置附近的物理区域中的频率,由第一用户设备确定所述频率是否满足门限频率,以及由第一用户设备响应于确定所述频率满足门限频率来将用于第三用户设备的第三用户的第三发言人模型存储在第三发言人模型中。所述方法可包括由第一用户设备从第一用户接收识别第三发言人模型的输入,以及由第一用户设备响应于从用户接收到识别第三发言人模型的输入而将该第三发言人模型存储在第三发言人模型中。

在一些实现方式中,所述方法可包括通过至少一个计算机针对用户设备中的每一个从相应的用户设备接收相应的发言人模型。所述方法可包括通过至少一个计算机针对用户设备中的每一个利用相应的识别从包括在至少一个计算机中的存储器中检索相应的发言人模型。

在一些实现方式中,所述方法可包括由第一用户设备确定归一化的第一分数满足门限值,其中确定话语是由第一用户说出的是响应于确定归一化的第一分数满足门限值的。所述方法可包括由第一用户设备确定第一分数和第二分数的平均不满足门限值,其中确定第一分数和第二分数的组合是响应于确定第一分数和第二分数的平均不满足门限值的。所述方法可包括由第一用户设备确定第一分数和第二分数两者都不满足门限值,其中确定第一分数和第二分数的组合是响应于确定第一分数和第二分数两者都不满足门限值的。所述方法可包括由第一用户设备确定第一分数不满足门限值,其中确定第一分数和第二分数的组合是响应于确定第一分数不满足门限值的。

在一些实现方式中,一种系统,包括:被配置为当在锁定状态中时、在接收到特定预定义热词后响应话音命令的第一计算设备以及存储指令的一个或多个存储设备,所述指令在被所述第一计算设备执行时,可操作使得所述第一计算设备执行操作,所述操作包括:在所述第一计算设备处于锁定状态中并且与被配置为响应前面是所述特定预定义热词的话音命令的第二计算设备协同定位时,接收与前面是所述特定预定义热词的话音命令的话语对应的音频数据;由处于锁定状态中的所述第一计算设备向服务器传输包括发言人验证数据的第一消息,所述服务器从包括所述第一计算设备和第二计算设备的多个协同定位的设备接收发言人验证数据,并且使用接收的发言人验证数据来生成表示所述第一计算设备的第一用户说出了所述话音命令的可能性的第一发言人验证分数;基于所述第一发言人验证分数,由处于锁定状态中的所述第一计算设备从服务器接收指示所述第一计算设备的第一用户不可能说出所述话音命令的第二消息;以及响应于接收到所述第二消息,不管接收到与前面是所述特定预定义热词的话音命令的话语对应的音频数据,确定保持在锁定状态中而不响应所述话音命令。

在一些实现方式中,一种计算机实现的方法,包括:在第一计算设备处于锁定状态中并且与被配置为响应前面是预定义热词的话音命令的第二计算设备协同定位时,由第一计算设备接收与前面是特定预定义热词的话音命令的话语对应的音频数据,所述第一计算设备被配置为当在锁定状态中时、在接收到所述特定预定义热词后响应话音命令;由处于锁定状态中的所述第一计算设备向服务器传输包括发言人验证数据的第一消息,所述服务器从包括所述第一计算设备和第二计算设备的多个协同定位的设备接收发言人验证数据,并且使用接收的发言人验证数据来生成表示所述第一计算设备的第一用户说出了所述话音命令的可能性的第一发言人验证分数;基于所述第一发言人验证分数,由处于锁定状态中的所述第一计算设备从服务器接收指示所述第一计算设备的第一用户不可能说出所述话音命令的第二消息;以及响应于接收到所述第二消息,不管接收到与前面是所述特定预定义热词的话音命令的话语对应的音频数据,确定保持在锁定状态中而不响应所述话音命令。

在一些实现方式中,一种存储软件的非暂态计算机可读介质,所述软件包括可被一个或多个计算机执行的指令,所述指令在这样执行后使得所述一个或多个计算机执行操作,所述操作包括:在第一计算设备处于锁定状态中并且与被配置为响应前面是预定义热词的话音命令的第二计算设备协同定位时,由第一计算设备接收与前面是特定预定义热词的话音命令的话语对应的音频数据,所述第一计算设备被配置为当在锁定状态中时、在接收到所述特定预定义热词后响应话音命令;由处于锁定状态中的所述第一计算设备向服务器传输包括发言人验证数据的第一消息,所述服务器从包括所述第一计算设备和第二计算设备的多个协同定位的设备接收发言人验证数据,并且使用接收的发言人验证数据来生成表示所述第一计算设备的第一用户说出了所述话音命令的可能性的第一发言人验证分数;基于所述第一发言人验证分数,由处于锁定状态中的所述第一计算设备从服务器接收指示所述第一计算设备的第一用户不可能说出所述话音命令的第二消息;以及响应于接收所述第二消息,不管接收到与前面是所述特定预定义热词的话音命令的话语对应的音频数据,确定保持在锁定状态中而不响应所述话音命令。

在本说明书中描述的主题可以在特定实施例中实现以便实现下列优点中的一个或多个。在一些实现方式中,对冒名顶替者发言人模型的使用可减少用户设备响应于由不是用户设备的用户的其他人说出的话语的动作。在一些实现方式中,当使用冒名顶替者发言人模型时,系统可减少误报达6%-8%。在一些实现方式中,系统可利用用于不同的协同定位发言人的分数的组合来归一化最后的话语分数。

在附图和下面的描述中阐述本说明书的主题的一个或多个实施例的细节。根据描述、附图和权利要求书,所述主题的其他特征、方面和优点将变得明了。

附图说明

图1a-1c示出了在其中一个或多个用户设备a-d分析对话语进行编码的音频信号的环境的示例。

图2是发言人验证系统的示例。

图3是用于确定话语是否是由用户说出的过程的流程图。

图4是可用于实现在该文档中描述的系统和方法的计算设备的框图。

在不同附图中同样的参考标号和命名指示相同元素。

具体实施方式

发言人验证系统可包括连续地倾听预定义的短语以便唤醒计算设备、通常执行进一步处理和/或接收更多用户输入(例如语音命令和查询)的过程。这样的发言人验证系统可区分来自设备中的一组登记的用户和来自未知的、未登记的用户的对热词(hotword)的话语。

登记涉及用户是否已经将样本话语提供给系统以创建可用于将他或她与已知或未知的其他用户区分开的模型。发言人验证过程可涉及将针对给定话语创建的模型与针对发言人(或多个发言人)创建的模型进行比较,并且基于相似性门限决定是接受还是拒绝话语。

发言人验证系统在宽范围的领域中具有可应用性,并且也具有宽范围的性能要求——特别是对于识别质量和冒名顶替者防止有效性方面。例如,用于解锁设备的发言人验证系统与当系统被用在受信任环境中已经解锁的设备时相比,可具有较高的要求来提供对冒名顶替者的低错误接受(falseacceptance),在受信任环境中错误接受可不严格以支持较低的错误拒绝(不识别登记的用户)。

当验证系统仅具有从(一个或多个)登记的发言人提供的信息来执行对接受或拒绝给定话语的决定时,由于未知的可能的冒名顶替者的集合实际上无界,因此验证过程会是具有挑战性的。这可导致来自未知的发言人的话语将有较高概率超过用于登记的发言人的相似性门限,从而导致错误接受。这种挑战对于移动设备来说尤其重要,其中在移动设备周围的可能的冒名顶替者的可得性不断地增加和改变。

可以通过给发言人验证系统提供更多信息来改善这些系统。具体地,通过利用由一般可利用的api(其可已经存在于移动设备/平台中)提供的协同定位信息,在每个设备上的验证系统能够检测附近是否存在可能的冒名顶替者。这样的信息可用于调整相似性门限,并且还可共享其登记的发言人模型以改善验证决定。在一些示例中,系统可利用用于协同定位的发言人的分数的组合来归一化用于一个或多个发言人模型的分数。例如,用户设备可利用存储在用户设备上的发言人模型和从其他用户设备接收的发言人模型来生成相应的分数、决定分数的组合并利用该组合归一化每个分数。

例如,用户设备可由于背景噪声而针对话语生成较低的分数,例如,分数可以与背景噪声成比例地降低。在高度嘈杂的条件下(例如,奔跑的车辆或人多的餐厅),对于来自用户设备的用户的话语的分数不满足门限值(例如,该分数低于或等于接受门限)是有可能的,并且可能被错误地拒绝。对分数的归一化可减少噪声代价。例如,由于每个都利用不同的发言人模型生成的多个分数的平均不满足接受门限,例如,该平均低于或等于接受门限,因此归一化将导致对每个分数的改善,以使得对于用户设备的用户的分数应当满足接受门限,例如大于接受门限。

由于这样的验证系统可访问可能的冒名顶替者的模型,因此这些系统在其中冒名顶替者的话语比照登记的用户获得高于接受门限的相似性分数的情况下,将能够更好地拒绝一些话语(例如,减少错误接受率)。例如,如果话语比照“冒名顶替者”集合中的模型(例如,根据协同定位的用户创建)中的一个具有相等或更高的分数,那么系统可假设该话语很有可能来自冒名顶替者并且拒绝它。这种方法可以与各种类型的发言人模型(例如,i-向量、d-向量等)相容。

可有多种方式来确定设备何时协同定位在给定地理区域中。例如,该信息可以源自全球定位系统(gps)、近场通信(nfc)、蓝牙、次声音频(subsonicaudio)和/或其他传感器和技术中的一者或多者。在一些示例中,协同定位设备可以虚拟地关联,例如,当所述设备参与相同电话或视频会议时。在这些示例中,所述设备或服务器可利用日历条目、电子邮件或文本消息或者其他“软”概念来确定协同定位。

当不是所有用户都具有对应的用户设备时,多个用户也可以协同定位于相同区域中,但是用户设备中的一些包括用于那些用户的发言人模型。例如,当五个朋友在他们的起居室中的一个中并且这些朋友中的两个具有其移动设备时,第一移动设备可包括用于不随身具有移动设备的三个朋友的发言人模型并且第一和第二移动设备可利用这些发言人模型以及用于拥有设备的朋友的发言人模型来确定朋友中的哪个说出了特定话语。

在示例性实现方式中,发言人验证系统接收对话语进行编码的音频信号并且确定利用发言人模型生成的分数是否满足门限分数值。当发言人验证系统仅利用用于特定用户设备的特定用户的单个发言人模型时,发言人验证系统可为由另一用户(例如,该用户的兄弟)说出的话语生成满足门限分数值的分数。

发言人验证系统利用多个发言人模型(例如,一个用于该用户而另一个用于该用户的兄弟)来增加发言人验证系统的准确性。例如,发言人验证系统为对话语进行编码的音频信号生成两个分数,一个用于该用户而另一个分数用于他的兄弟。发言人验证系统比较这两个分数(这两个分数可都满足门限分数值)以确定哪个分数最高。与当不同的人说出话语(例如当用于该不同的人的发言人模型将要被用于生成最高分数之时)相比,发言人验证系统最有可能利用用于说出话语的特定用户的发言人模型生成最高分数。

当发言人验证系统确定对于该用户的分数(例如,利用用于该用户的发言人模型生成的分数)最高时,则该特定的用户设备可响应于话语来执行动作。当发言人验证系统确定对于该用户的兄弟的分数(例如,利用用于该用户的兄弟的发言人模型生成的分数)最高时,则该特定的用户设备不采取动作。

发言人验证系统可利用用于在特定用户设备附近的物理区域中(例如,与所述特定用户设备协同定位)的其他用户的其他发言人模型或者从这些其他用户设备接收的分数来确定哪个分数最高以及所述特定用户设备是否应该响应于话语执行动作。发言人验证系统可在特定设备或另一设备(例如,服务器)上执行。

图1a-1c示出了在其中一个或多个用户设备a-d102a-d分析对话语进行编码的音频信号的环境100的示例。用户设备a-d102a-d可利用多种不同算法中的一种来确定是话语可能为由用户设备的相应的用户说出的并且用户设备应当响应于话语执行动作,还是话语不可能主由相应的用户说出的并且用户设备应当不采取动作。

例如,四个同事可处于会议室中,并且第一同事(例如,用户d)可发出命令“好了,google,请开始演示(okaygoogle,pleasestartthedemo)”。用户设备a102a可利用包括用于用户设备a102a的用户a的发言人模型a1024a及用于其他用户的其他发言人模型的多个发言人模型分析音频信号,所述其他用户例如有时或经常处于与用户a或用户设备a102a相同的物理区域中。其他发言人模型可以存储在用户设备a102a的存储器中持续短时间段(例如,当用户设备a102a最近从另一用户设备b-d102b-d请求过特定发言人模型时)或持续长时间段(例如,当所述其他用户高概率地处于与用户设备a102a相同的物理区域中时)。

用户设备a102a确定对于发言人模型中的每一个的分数并从多个分数中确定最高分数。用户设备a102a可例如通过将所述最高分数与门限分数值进行比较来确定所述最高分数是否满足门限分数值以及是否有高的可能性所述最高分数是对于用户设备a102a的用户a的。如果所述最高分数不满足门限分数值,则用户设备a102a可例如不采取进一步的动作,并且确定所述话语是由对于其用户设备a102a不具有发言人模型的用户说出的。

当用户设备a102a确定所述最高分数是对于用户设备a102a的用户a的(例如,确定发出所述命令的第一同事是用户a)时,用户设备a102a响应于对该音频信号的接收执行动作。例如,用户设备a102a可发起请求的演示。

当用户设备a102a确定所述最高分数不是对于用户a的并且第一同事不是用户a时,用户设备a102a针对所述音频信号可不采取进一步的动作。例如,用户设备a102a可伴随由第一同事说出的另一话语接收另一音频信号并且响应于所述另一话语不采取动作。

在一些示例中,当用户设备a-d102a-d包括相同或相容的发言人验证系统时,用户设备a-d102a-d中的每一个可共享关于其相应的用户的信息,例如发言人模型,或关于对编码话语的音频信号的分析的信息,例如分数。例如,如图1a中所示,第一同事(例如,用户d)可说出话语10“6好了,google,请开始演示”,并且用户设备a-d102a-d中的每一个上的麦克风可捕获表示所述话语的信号并且将所述话语编码成音频信号。

用户设备a-d102a-d中的每一个利用对应的发言人模型a-d104a-d分析相应的音频信号以生成表示用户设备的相应的用户a-d说出话语106的可能性的分数,如图1b中所示。在该示例中,用户设备a102a为用户a生成0.76的分数,用户设备b102b为用户b生成0.23的分数,用户设备c102c为用户c生成0.67的分数,并且用户设备d102d为用户d生成0.85的分数。

用户设备a-d102a-d中的每一个与其他用户设备共享各自的分数。例如,用户设备a-d102a-d可利用一个或多个传感器(例如gps、nfc、蓝牙、次声音频或任何其他适当的技术)来确定物理上位于相应的用户设备附近的区域中的其他用户设备。用户设备a-d102a-d可确定指示用户设备是否可与另一用户设备共享其分数的访问设置,并且可例如确定该另一用户设备是否利用相同的发言人验证系统,并且可利用所述分数,或这两者。

用户设备a-d102a-d中的每一个将所有的分数相互比较以确定由相应的用户设备生成的分数是否是最高分数以及相应的用户设备是否应当响应于话语106执行动作。例如,如图1c中所示,用户设备d102d确定利用用于用户设备d102d的用户d的发言人模型d104d生成的分数为最高以及话语106是由用户d说出的可能性大于话语106是由其他用户设备a-c102a-c的其他用户说出的可能性。用户设备d102d可执行与话语106对应的动作,例如发起请求的演示108。用户设备d102d可将最高分数与门限分数值进行比较以确保存在高的可能性所述话语是由用户d而不是由例如对于其用户设备d102d没有接收到分数的另一用户说出的。

类似地,其他用户设备a-c102a-c中的每一个确定其相应的分数不是最大的以及相应的其他用户设备应当不采取动作。在确定其相应的分数不是最大的分数之前,其他用户设备a-c102a-c中的每一个可将最高分数与门限分数值(例如,特定于相应的用户设备)进行比较以确保在所述话语与所述发言人模型中的一个之间至少存在最小的相似性并且确保所述话语不是由对于其其他用户设备a-c102a-c不具有相应的发言人模型的另一用户说出的。当最高分数是从另一用户设备接收到的时,其他用户设备a-c102a-c可以知道或者可以不知道关于与最高分数对应的用户、用户设备或这两者的信息。例如,用户设备a-d102a-d中的每一个可将分数发送到其他用户设备,而不带有例如用户或用户设备的任何识别信息。在一些示例中,用户设备可以将分数与该分数被对于其生成的用户的识别符一起发送。

图2是发言人验证系统200的示例。一个或多个用户设备a-b202a-b或服务器204可分析对话语进行编码的音频信号(例如,表示话语的属性的数据)以确定最有可能说出所述话语的用户。用户设备a-b202a-b、服务器204或这些设备中的两个或更多个的组合可利用发言人模型分析音频信号,比较利用发言人模型确定的对音频信号的不同的分析,以及确定特定的用户是否说出了所述话语。

例如,用户设备a-b202a-b中的每一个包括用于其相应的用户的发言人模型a-b206a-b。可以利用任何适当的方法对于特定用户生成发言人模型a-b206a-b,所述适当的方法例如使每个用户说出登记短语,然后例如从关键词样本提取梅尔频率倒谱系数(mel-frequencycepstralcoefficient,mfcc)特征,并且利用这些特征作为将来比较的参考,和/或利用对由特定用户说出的话语的表示来训练神经网络。

发言人验证模块a208a利用用于用户设备a202a的用户a的发言人模型a206a来确定特定话语是由用户a说出的可能性。例如,发言人验证模块a208a接收编码特定话语的音频信号(例如,音频信号的表示),并且利用发言人模型a206a来生成表示所述特定话语是由用户a说出的可能性的分数。

发言人验证模块a208a可利用存储在用户设备a202a上的一个或多个冒名顶替者发言人模型210a来针对冒名顶替者发言人模型210a中的每一个生成表示所述特定话语是由与特定的冒名顶替者发言人模型对应的相应的用户说出的可能性的分数。例如,用户设备a202a可接收所述音频信号,确定用户设备b202b位于用户设备a202a的物理位置附近的物理区域中(例如,在同一房间中),并且从用户设备b202b或从服务器204请求用于用户设备b202b的用户的发言人模型(例如,发言人模型b206b)。例如,用户设备a可将用于用户设备b202b的设备识别符或用于用户b的识别符作为对发言人模型b206b的请求的一部分发送到例如服务器204。用户设备a202a将发言人模型b206b作为冒名顶替者发言人模型210a中的一个存储在存储器中并且发言人验证模块208a针对冒名顶替者发言人模型210a中的每一个生成分数。

冒名顶替者发言人模型210a可包括用于可处于用户设备a202a的物理位置附近的物理区域(例如,同一房间、走廊或者人行道或道路的一部分等等)中的其他用户的发言人模型。冒名顶替者发言人模型可包括用于频繁地处于与用户a或用户设备a202a相同的物理区域中的用户(例如,利用历史数据进行确定)的发言人模型。例如,用户设备a202a可确定另一用户设备(例如,用户设备c)每个工作日约四个小时处于与用户设备a202a相同的物理区域中,以及该每日四个小时的持续时间大于每日三个小时的门限持续时间(例如,特定于工作日,平均每日持续时间等),以及用于用户设备c的用户c的发言人模型c应当被存储在冒名顶替者发言人模型210a中,例如,直到用户a请求从冒名顶替者发言人模型210a中移除发言人模型c或对于用户设备c的每日持续时间不再满足门限持续时间。仅举几个例子,频率可为具体值,例如一天四个小时,或者为百分比,例如用户设备a202检测到特定其他用户设备的时间的百分之五或由用户设备a202检测为特定的其他用户设备的其他用户设备的总数量的百分之十。

在一些示例中,用户a可识别用户设备a202a应当将其包括在冒名顶替者发言人模型210a中的一个或多个发言人模型。例如,用户设备a202a可接收在用户设备a202a上为用户a的家庭成员或朋友训练另一发言人模型的输入。所述输入可例如指示该另一发言人模型应当为冒名顶替者发言人模型,并且是用于不是用户设备a202a的用户的、用户a之外的用户的发言人模型。该另一发言人模型可用于经常处于用户设备a202a周围的物理区域中的另一用户(例如,用户a的孩子),以减少或消除由用户设备a202a响应于该另一用户说出的话语而执行的动作,除非用户设备a202a另有编程。

例如,当发言人验证模块208a利用发言人模型a206a生成第一分数以及针对冒名顶替者发言人模型210a中的每一个生成相应的第二分数时,发言人验证模块208a比较所述分数以确定最高分数。当最高分数是利用发言人模型a206a生成的时,发言人验证模块208a确定用户a说出特定话语并且用户设备a202a可采取适当的动作,例如,语音识别模块212a可分析特定话语以识别包括在该特定话语中的命令。

在一个示例中,冒名顶替者发言人模型中的一个可以用于用户a的氏族成员,例如,当氏族成员中的两个具有相似的话音时。发言人验证模块208a可通过利用相应的发言人模型分析兄弟中的一个说出的话语来生成对于用户a的第一分数和对于其兄弟的第二分数。发言人验证模块208a比较这两个分数以确定哪个分数更大,所述两个分数中的每一个都可大于门限分数并且单个都将要不然触发用户设备a202a的动作(例如,由于发言人模型的相似性)。当对于用户a的第一分数大于第二分数时,用户设备a202例如基于所述话语执行动作,并且可部分地利用语音识别模块212a来确定所述动作。当对于用户a的兄弟的第二分数大于第一分数时,用户设备a202例如不采取进一步动作,并且响应于所述特定话语不执行动作。

冒名顶替者发言人模型210a中的一些可以在一天中的特定时间、特定几天期间,在特定位置,或在这些中的两个或更多个的组合被利用。例如,当用户设备a202a在用户a的家庭成员的房子里时,用户设备a202a例如可对于生活在家庭成员的房子内的人使用冒名顶替者发言人模型,以及除非检测到这些人中的一个的协同定位用户设备,否则不使用这些冒名顶替者发言人模型。

在一些示例中,用户设备a-b202a-b可利用存储在存储器中的设置214a-b来确定相应的发言人模型或利用相应的发言人模型生成的分数是否可以被提供(例如,利用无线通信信道216,例如利用近场通信创建的信道)到其他用户设备。例如,用户设备a202a可接收特定的话语,确定用户设备b202b处于用户设备a202a附近的物理区域中,并且从用户设备b202b请求发言人模型,例如,在不知道正在被请求的特定发言人模型的情况下请求发言人模型b206b。用户设备b202b接收请求、分析设置b214b以确定是否可以与另一设备或特定的用户设备a202a共享发言人模型b206b,另外,响应于确定用户设备b202b可共享发言人模型b206b,设备b202b利用无线通信信道216将发言人模型b206b的副本发送到用户设备a202a。

例如,在当多于一个人可操作单个用户设备时的示例中,用户设备a202a可针对用户设备b202b的用户b或用户设备b202b的所有用户请求发言人模型。在当多于一个人操作用户设备a202a时的示例中,发言人模型a206b可包括多个发言人模型。在这些示例中,发言人验证模块208a可针对用户设备a202a的用户中的每一个生成分数,将这些分数与利用冒名顶替者发言人模型210a生成的其他分数进行比较,并且确定最高分数。当最高分数是对于用户设备a202a的用户中的一个时,用户设备a202a可执行适当的动作,例如,至少部分利用语音识别模块212a确定的动作。

对是否要执行动作的确定可以利用特定类型的动作、用户设备a202a的具体用户或这两者来进行。例如,第一用户a可具有发起用户设备a202a上任何应用的许可,而第二用户b可具有仅发起用户设备a202a上的教育应用的许可。

在一些实现方式中,发言人模型中的一个或多个代替存储在用户设备a202a-b上或者除了存储在用户设备a202a-b上被存储在服务器204上。例如,服务器204可存储用于用户设备a-b202a-b的用户a-b的发言人模型218。在这些示例中,用户设备a202a或用户设备b202b可接收对话语进行编码的音频信号并且将音频信号或音频信号的一部分(例如,对音频信号的一部分的表示)提供给服务器204。服务器204接收用户设备、发言人模型或用户设备的用户的识别符,并且例如利用发言人识别符220确定发言人模型218中的哪一个与接收的识别符对应。

在一些示例中,服务器204接收在分析音频信号的一部分时除了用户设备的发言人模型之外将会被利用的其他发言人模型的识别符。例如,当用户设备a202a确定用户设备b202b物理上位于用户设备a202a的物理位置附近的区域中时,服务器204可利用发言人验证请求从用户设备a202a接收音频信号和用于用户设备a-b202a-b的识别符。

服务器204可以例如与音频信号一起或分开地从用户设备接收位置信息,并且利用该位置信息、例如利用其他用户设备的位置信息来确定向服务器204提供过音频信号的物理上位于所述用户设备的物理位置附近的区域中的其他用户设备。服务器204随后可为所确定的其他设备识别其他发言人模型218。服务器204可以在于服务器204上生成分数时或在将发言人模型提供给用户设备a-b202a-b时利用所识别的其他发言人模型。

服务器204上的发言人验证模块222利用来自给服务器204提供过音频信号的用户设备和所确定的其他用户设备的所有发言人模型来生成相应的分数,相应的分数中的每一个都表示相应的人说出了编码在音频信号中的特定话语的可能性。发言人验证模块222可从包括在服务器204中的存储器中检索发言人模型。发言人验证模块222可从相应的用户设备接收发言人模型。服务器204或发言人验证模块222确定最高分数并且向相应的用户设备提供指示该用户设备的用户最有可能说出了该特定话语的消息。服务器204可向其他用户设备提供指示对应的其他用户可能没有说过所述话语的消息。

在一些示例中,特定的用户设备可给服务器204提供多个发言人识别符,例如,一个识别符用于特定的用户设备的用户中的每一个,一个识别符用于与该特定的用户设备关联的冒名顶替者发言人模型中的每一个,或这两者。所述特定的用户设备可包括指示用于发言人识别符中的每一个的模型的类型的数据,例如用户或冒名顶替者。发言人验证模块222可利用与接收的发言人识别符对应的所有发言人模型218来分析音频信号并且确定要使用哪个发言人模型来生成最高分数。当利用用于特定的用户设备的用户中的一个的模型生成了最高分数时,服务器204给该特定的用户设备提供指示该特定的用户设备的用户最有可能说出了所述特定话语的消息。所述消息可包括用于生成所述最高分数的特定的发言人模型的发言人识别符。

在一些实现方式中,较低的数值可表示与较高的数值相比特定的用户说出过话语的更大可能性。例如,较低的数值的可为比较高的数值更高的分数。

在一些示例中,当用户设备具有多个用户时,用户设备或服务器204可确定用于用户设备的当前用户的特定的发言人模型。例如,用户设备可将用于当前用户的发言人标识符提供给服务器204并且指示用于用户设备的其他用户的所有其他发言人识别符是用于存储在服务器204上的冒名顶替者发言人模型的。在一些示例中,用户设备利用用于当前用户的发言人模型来确定是否响应于对音频信号的接收执行动作并且使用用于用户设备的其他用户的发言人模型作为冒名顶替者发言人模型。用户设备可利用任何适当的方法来确定用户设备的当前用户,例如利用密码、用户名或这两者来解锁用户设备和确定当前用户。

在一些实现方式中,当分数被针对音频信号利用冒名顶替者发言人模型或从另一用户设备接收的模型生成并且所述分数大于或等于利用用于特定用户设备的用户的发言人模型生成的分数时,该特定用户设备响应于对音频信号的接收而不执行动作。在这些实现方式中,当两个分数相同时,响应于对音频信号的接收,用户设备都不执行动作。在其他实现方式中,当对于不同用户设备的两个用户的两个分数相同,并且两个分数都是最高分数时,与这两个分数对应的两个用户设备可都执行动作。在当对于单个用户设备上的模型的两个分数都为相同最高分数时的实现方式中,用户设备可执行动作或可不执行动作。例如,当所述两个分数中的每一个是对于用户设备的不同用户的时,用户设备可执行动作。当分数中的一个是对于用户发言人模型的而分数中的另一个是对于冒名顶替者发言人模型的时,用户设备可不执行动作。

在一些实现方式中,取决于检测到的其他用户设备的数量,用户设备可调整门限值。例如在接收到音频信号之后,当没有检测到其他设备时门限值可以限制性较低,而当检测到其他用户设备时门限值可以限制性较高。门限值可以基于检测到的其他设备的数量变得限制性较高(例如,呈线性或指数),直到达到最大门限值。在一些示例中,例如利用针对相同话语利用不同的相似性模型生成的分数的组合,可以对一个或多个分数进行归一化。所述组合可为平均、和或积。

在一些实现方式中,用户设备a-b202a-b中的一个或多个可周期性地检测处于相应的用户设备附近的物理区域中的其他用户设备。例如,用户设备b202b可每五分钟、每十分钟或每三十分钟确定另一用户设备是否处于与用户设备b202b相同的房间中。在一些示例中,用户设备b202b在确定用户设备b202b已经逗留在大致相同的区域持续预定的时间段(例如,用户设备b202b的用户b持有用户设备b202b但是没有走动或者用户b逗留在单个房间中)之后可确定另一用户设备是否位于距离用户设备b202b的预定距离内。

用户设备a-b202a-b可包括个人计算机、移动通信设备(例如,智能电话或平板)和能够通过网络224发送和接收数据的其他设备,例如可穿戴设备,比如表或温度控制器、电视和网络连接的器具。网络224(例如,局域网(wan)、广域网(wan)、互联网或其组合)连接用户设备a-b202a-b和服务器204。

图3是用于确定话语是否是由用户说出的过程300的流程图。例如,过程300可以由发言人验证系统200的用户设备a202a或服务器204使用。

所述过程接收对话语进行编码的音频信号(302)。例如,用户设备上的麦克风接收音频信号并且将音频信号提供给第一用户设备上的发言人验证模块或提供给服务器。

所述过程获得用于第一用户设备的第一用户的第一发言人模型(304)。例如,发言人验证系统确定对于第一用户设备存在单个第一用户并且获得用于该第一用户的第一发言人模型。在一些示例中,发言人验证模块确定对于第一用户设备的当前用户,并且获得用于该用户的第一发言人模型,所述当前用户当前登入到第一用户设备或在第一用户设备处于锁定状态时最近登入到过第一用户设备。

在一些示例中,发言人验证模块确定对于第一用户设备存在多个用户并且获得用于这些用户中的一个的第一发言人模型。第一用户设备然后可对于其他用户重复过程300中的一个或多个步骤。例如,发言人验证模块可对于用户中的每一个重复步骤304和306。

所述过程利用音频信号的一部分和第一发言人模型生成指示话语是由第一用户说出的可能性的第一分数(306)。例如,第一设备的发言人验证模块利用音频信号的全部和第一发言人模型来生成第一分数。

所述音频信号可包括对话语的发言人验证模块可将其对照第一发言人模型进行比较的变换。例如,麦克风可记录话语并且将对话语的记录提供到特征提取模块,所述特征提取模块生成发言人验证模块用于生成第一分数的音频信号。

在当存在第一用户设备的多个用户时的实现方式中,发言人验证模块比较对于多个用户中的每一个的分数并且选择最大的分数。例如,第一用户设备可具有一到五个发言人模型,每个发言人模型用于第一用户设备的相应的用户。

发言人验证模块可将分数(例如,最大的分数)与门限分数值比较来确定所述分数是否满足门限分数值。例如,发言人验证模块例如在门限分数值是最低要求的分数时确定最大的分数是否高于门限分数值或者在门限分数值是最高要求的分数时确定最大的分数是否低于门限分数值,并且最大的分数具有对于第一用户设备的用户生成的分数的最低数值。

如果最大的分数满足门限分数值,则发言人验证模块或第一用户设备上的另一模块可针对在第一用户设备上识别的冒名顶替者发言人模型(例如,存储在第一用户设备上或在服务器上)中的每一个生成分数,并且继续过程300以执行步骤308。如果最大的分数不满足门限分数值,则用户设备或服务器可停止执行步骤300。当第一用户设备或服务器停止执行步骤300时,第一用户设备或服务器可停止从其他用户设备请求其他发言人模型或其他分数。

第一用户设备上的发言人验证模块或服务器上的类似模块可针对冒名顶替者发言人模型中的每一个生成分数直到生成了与针对第一用户设备的用户的最大分数相同或高于此最大分数的分数,此时,发言人验证模块停止执行过程300。当发言人验证模块确定没有更多的冒名顶替者发言人模型或者针对第一用户设备的用户的最大分数已经与针对所有冒名顶替者发言人模型的分数(例如利用步骤308和310确定的)(包括针对用于其他用户设备的其他用户的冒名顶替者发言人模型的分数)进行了比较时,所述过程继续步骤312。

例如,所述过程确定位于第一用户设备的物理位置附近的物理区域中的一个或多个第二用户设备(308)。第一用户设备可利用近场通信来确定第二用户设备。在当发言人验证模块已经确定了第一分数时的示例中,第一用户设备可将第一分数提供给其他用户设备,例如,用于由执行类似过程的其他发言人验证模块使用。在一些示例中,第一用户设备可将第一发言人模型、用于第一用户设备的其他用户的其他发言人模型或这两者的组合提供给第二用户设备中的至少一些。

在一些实现方式中,所述过程可确定与第一用户设备协同定位但是处于不同物理位置中的第二用户设备。例如,第一用户设备在第一用户设备和特定的第二用户设备两者都参与相同的电话或视频会议时或在第一用户设备和特定的第二用户设备两者都是参与相同的电话或视频会议的靠近的设备时,可确定所述特定的第二用户设备与第一用户设备协同定位。所述设备可以位于相同的物理房间中或位于每个房间都包括有单独的视频会议设备的不同的房间中。第一设备或服务器可利用用于相应用户的日历条目来确定设备是协同定位的,例如,当用于两个用户的日历条目是相同的并且指示所有的用户在参加活动时。

所述过程针对第二用户设备中的每一个的第二用户获得用于相应的第二用户的第二发言人模型或指示话语是由相应的第二用户说出的相应的可能性的第二分数(310)。例如,第二用户设备上的其他发言人验证模块例如利用相应的第二发言人模型和编码相同话语或相同话语的一部分的其他音频信号来生成针对第二用户设备的用户中的每一个的相应的第二分数。第一用户设备从第二用户设备接收第二分数中的每一个并且可在单个消息或多个消息中从单个第二用户设备接收多个第二分数(当该单个第二用户设备具有多个用户时)。

在一些示例中,服务器可生成第二分数中的一些并且将这些第二分数提供给第一用户设备。服务器可为第一用户设备的用户生成一个第一分数或多个第一分数并且将第一分数提供给第一用户设备。服务器可对所有的分数进行比较并且向具有最大分数的设备发送消息。服务器可将消息发送到不与最大分数对应的其他设备或可不将消息发送到不与最大的分数对应的其他设备。

所述过程确定所述话语是由第一用户说出的(312)。例如,发言人验证模块将对于第一用户设备的最大分数与对于存储在用户设备上的冒名顶替者发言人模型的分数或从第二用户设备接收的第二分数或这两者进行比较。例如当发言人验证模块确定其他分数中的一个大于或等于对于第一用户设备的最大分数时,发言人验证模块可停止将对于第一用户设备的最大分数与其他分数进行比较,并且可停止执行过程300。

所述过程响应于对所述话语是由第一用户说出的确定执行动作(314)。例如,语音识别模块分析音频信号并且确定编码在音频信号中的话语的文本表示。第一用户设备利用所述文本表示来确定在话语中由第一用户提供的命令并且响应于该命令执行动作。

在上述过程300中的步骤的顺序仅是示意性的,并且可以以不同的顺序来执行确定话语是否是由第一用户说出的。例如,用户设备可在接收音频信号(例如,执行步骤302)之前确定位于该用户设备的物理位置附近的物理区域中的第二用户设备,例如,执行步骤308。

在一些实现方式中,过程300可包括额外的步骤、更少的步骤,或者步骤中的一些可分成多个步骤。例如,第一用户设备可确定第二用户设备,确定用于第二用户的任何发言人模型是否存储在存储器中(例如,作为冒名顶替者发言人模型),并且仅从相应的第二用户设备请求未存储在所述存储器中的第二发言人模型。在这些示例中,第一用户设备可从存储器移除例如针对其相应的其他用户设备不再处于第一用户设备的物理位置附近的物理区域中的其他用户的、且当前未包括在第二用户设备中的任何冒名顶替者发言人模型。

当针对不再处于在第一用户设备的物理位置附近的物理区域中的用户设备从存储器移除冒名顶替者发言人模型时,第一用户设备可保留用于被标记为不进行移除的其他用户的任何冒名顶替者发言人模型。例如,冒名顶替者发言人模型中的一个可用于第一用户的经常处于第一用户设备的物理位置附近的物理区域中的朋友。第一用户设备可为该朋友保留冒名顶替者发言人模型中的这一个,即便是在第一用户设备未检测到由该朋友操作的另一用户设备的时候也如此。

在本说明书中描述的主题和功能性操作的实施例可以以数字电子电路、有形地体现的计算机软件或固件、计算机软件(包括在本说明书中公开的结构以及其结构等价物)或这些中的一个或多个的组合来实现。在本说明书中描述的主题的实施例可以实现为一个或多个计算机程序,即用于由数据处理装置执行或者控制数据处理装置的操作的编码在有形的非暂态程序载体上的计算机程序指令的一个或多个模块。替代地或另外地,程序指令可以编码在人工生成的传播信号上,例如,机器生成的电、光或电磁信号,所述信号被生成来对信息编码以传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可为机器可读存储设备、机器可读存储基片、随机或串行存取的存储器设备或它们中的一个或多个的组合。

术语“数据处理装置”指数据处理硬件并且涵盖用于处理数据的所有种类的装置、设备和机器,举例来说包括可编程处理器、计算机或者多个处理器或计算机。所述装置可为或可进一步包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,所述装置还可以可选地包括创建用于计算机程序的执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。

还可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本或代码的计算机程序可以以任何形式的编程语言来编写,包括汇编型或解释型语言或者声明式语言或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程或适于用于计算环境中的其他单元。计算机程序可以(但不一定)与文件系统中的文件对应。程序可以存储在保持其他程序或数据的文件的一部分中(例如存储在标记语言文档中的一个或多个脚本)、在专用于所讨论的程序的单个文件中或在多个协调的文件中,例如存储一个或多个模块、子程序或代码的部分的文件。计算机程序可以部署为在一个计算机上或在多个计算机上执行,所述多个计算机位于一个地点或者分布在多个地点上并且通过通信网络互连。

在本说明书中描述的过程和逻辑流可以由执行一个或多个计算机程序的一个或多个可编程计算机来执行,以通过对输入数据进行操作并生成输出来执行功能。还可以由专用逻辑电路执行所述过程和逻辑流,并且装置也可实现为专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。

适于执行计算机程序的计算机举例来说包括通用微处理器或专用微处理器或者这两者或任何其他种类的中央处理单元。一般而言,中央处理单元将从只读存储器或随机存取存储器或者这两者接收指令和数据。计算机的基本元件是用于执行或运行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。一般而言,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或光盘),或者,计算机还将操作性地耦合为从所述大容量存储设备接收数据或传输数据到所述大容量存储设备,或者这两种情况。然而,计算机无需具有这样的设备。另外,计算机可以嵌入在另一设备中,所述另一设备仅列举几个:移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器。

适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,举例来说包括半导体存储器设备,例如,eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可拆卸盘;磁光盘;以及cd-rom和dvd-rom盘。处理器和存储器可以通过专用逻辑电路补充,或者结合在专用逻辑电路中。

为了支持与用户的交互,在本说明书中描述的主题的实施例可以实现在具有用于向用户显示信息的显示设备(例如,crt(阴极射线管)或lcd(液晶显示)监视器)以及键盘和指向设备(例如,鼠标或轨迹球,通过其用户可向计算机提供输入)的计算机上。也可以利用其它种类的设备支持与用户的交互;例如,提供给用户的反馈可以是任何形式的知觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且来自用户的输入可以以任何形式进行接收,包括声音、语音或触觉输入。另外,计算机可以通过将文档发送到用户使用的设备并且从该设备接收文档来与用户交互;例如,通过响应于从网页浏览器接收的请求将网页发送到用户的设备上的网页浏览器。

在本说明书中描述的主题的实施例可以实现在计算系统中,该计算系统包括后端组件,例如作为数据服务器的后端组件,或包括中间件组件,例如应用服务器,或包括前端组件,例如具有图形用户界面或网页浏览器的客户端计算机(用户可通过该客户端计算机与在本说明书中描述的主题的实现方式进行交互),或者包括一个或多个这样的后端、中间件或前端组件的任意组合。系统的组件可以通过任何形式的数字数据通信(例如通信网络)或数字数据通信的介质而互连。通信网络的示例包括局域网(lan)和广域网(wan),例如互联网。

计算系统可包括客户端和服务器。客户端和服务器一般彼此远离并且典型地通过通信网络来交互。客户端与服务器的关系由于运行在相应的计算机上并相互具有客户端-服务器关系的计算机程序而产生。在一些实施例中,服务器将数据(例如,html网页)传输给用户设备,例如用于将数据显示给与用户设备交互的用户并且从该用户接收用户输入,所述用户设备充当客户端。在用户设备处生成的数据(例如,用户交互的结果)可以在服务器处从用户设备接收到。

图4是可用于实现在该文档中描述的系统和方法的计算设备400、450的框图,计算设备400、450作为客户端或者一个服务器或多个服务器。计算设备400意在表示各种形式的数字计算机,例如膝上型计算机、桌面计算机、工作站、个人数字助理、服务器、刀片式服务器、主机(mainframe)和其他适当的计算机。计算设备450意在表示各种形式的移动设备,例如个人数字助理、蜂窝电话、智能电话、智能手表、头戴设备和其他类似的计算设备。本文示出的组件、其连接和关系以及其功能意图仅为示例性的,而非意图为限制在该文档中描述和/或请求保护的发明的实现方式。

计算设备400包括处理器402、存储器404、存储设备406、连接到存储器404和高速扩展端口410的高速接口408以及连接到低速总线414和存储设备406的低速接口412。组件402、404、406、408、410和412中的每一个利用各种总线来互连,并且可以安装在常见的主板上或在适当的时候以其他方式进行安装。处理器402可处理用于在计算设备400内执行的指令,包括存储在存储器404中或存储设备406上以为外部输入/输出设备(例如,耦合到高速接口408的显示器416)上的gui显示图形信息的指令。在其他实现方式中,在适当的时候,可以与多个存储器和多种类型的存储器一起使用多个处理器和/或多个总线。另外,可以将多个计算设备400与提供必要操作部分的每个设备连接(例如,作为服务器阵列、一群刀片式服务器或多处理器系统)。

存储器404存储计算设备400内的信息。在一个实现方式中,存储器404为计算机可读介质。在一个实现方式中,存储器404为一个或多个易失性存储器单元。在另一实现方式中,存储器404为一个或多个非易失性存储器单元。

存储设备406能够为计算设备400提供大容量存储。在一个实现方式中,存储设备406为计算机可读介质。在各种不同实现方式中,存储设备406可为软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储器设备或设备的阵列,包括存储区域网络或其他配置中的设备。在一个实现方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,所述指令在被执行时执行如上面所述的一种或多种方法。所述信息载体为计算机或机器可读介质,例如存储器404、存储设备406或处理器402上的存储器。

高速控制器408管理计算设备400的带宽密集的操作,而低速管理器412管理带宽密集性较低的操作。任务的这种分配仅是示例性的。在一个实现方式中,高速控制器408耦合到存储器404、显示器416(例如,通过图形处理器或加速器)并且耦合到高速扩展端口410,高速扩展端口410可接受各种扩展卡(未示出)。在该实现方式中,低速控制器412耦合到存储设备406和低速扩展端口414。可包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的该低速扩展端口可耦合到一个或多个输入/输出设备,例如键盘、指向设备、扫描仪或例如通过网络适配器耦合到联网设备(例如交换机或路由器)。

计算设备400可以以多种不同形式来实现,如图中所示。例如,其可实现为标准服务器420或这样的服务器的群组的几倍。其还可实现为机架型服务器系统424的一部分。另外,其可实现在个人计算机(例如膝上型计算机422)中。替代地,来自计算设备400的组件可以与移动设备(例如设备450)中的其他组件(未示出)组合。每个这样的设备可包括计算设备400、450中的一个或多个,并且整个系统可以由彼此通信的多个计算设备400、450组成。

在其他组件当中,计算设备450尤其包括处理器452、存储器464、输入/输出设备(例如显示器454)、通信接口466和收发器468。设备450还可以提供有存储设备,例如微驱动器或其他设备,以提供额外存储。组件450、452、464、454、466和468中的每一个利用各种总线互连,并且所述组件中的若干个可以安装在公共的主板上或在适当的时候以其他方式进行安装。

处理器452可处理用于在计算设备150内执行的指令,包括存储在存储器464中的指令。所述处理器还可包括单独的模拟和数字处理器。所述处理器可提供例如用于设备450的其他组件的协调(例如,对用户接口的控制)、设备450运行的应用和设备150的无线通信。

处理器可通过控制接口458与用户通信并且可与耦合到显示器454的显示接口456通信。显示器454可为例如tftlcd显示器或oled显示器或者其他适当的显示器技术。显示接口456可包括用于驱动显示器454以将图形和其他信息呈现给用户的适当电路。控制接口458可从用户接收命令并且将其转换用于提交给处理器452。另外,外部接口462可被设为与处理器452通信,以便使能设备450与其他设备的近区域通信。外部接口462可提供例如用于有线通信(例如,经由坞接(docking)过程)或用于无线通信(例如,经由蓝牙或其他这样的技术)。

存储器464存储计算设备450内的信息。在一个实现方式中,存储器464为计算机可读介质。在一个实现方式中,存储器464为一个或多个易失性存储器单元。在另一实现方式中,存储器464为一个或多个非易失性存储器单元。扩展存储器474还可以通过扩展接口472被提供并且连接到设备450,扩展接口472可包括例如simm卡接口。这样的扩展存储器474可为设备450提供额外的存储空间,或还可为设备450存储应用或其他信息。具体地,扩展存储器474可包括实现或补充上述过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器474可以被提供为用于设备450的安全模块,并且可以编程有许可对设备450的安全使用的指令。另外,可以经由simm卡提供安全应用以及额外信息,例如以不可破解的方式将识别信息放置在simm卡上。

如上面所论述的,存储器可包括例如闪存和/或mram存储器。在一个实现方式中,计算机程序产品有形地体现为信息载体。计算机程序产品包含指令,所述指令在被执行时执行诸如上面所述的一种或多种方法。所述信息载体为计算机或机器可读介质,例如存储器464、扩展存储器474或处理器452上的存储器。

设备450可通过通信接口466进行无线通信,通信接口466在需要的情况下可包括数字信号处理电路。通信接口466可支持在各种模式或协议下的通信,各种模式或协议例如gsm话音呼叫、sms、ems或mms消息、cdma、tdma、pdc、wcdma、cdma2000或gprs等等。这样的通信可例如通过射频收发器468而发生。另外,短程通信可例如利用蓝牙、wifi或其他这样的收发器(未示出)而发生。另外,gps接收器模块470可将额外的无线数据提供给设备450,所述额外的无线数据可由设备450上运行的应用在适当的时候使用。

设备450还可以利用音频编解码器460可听地进行通信,音频编解码器460可从用户接收说出的信息并且将其转换成可利用的数字信息。音频编解码器460可同样地为用户生成可听声音,例如通过(例如设备450中听筒的)扬声器。这样的声音可包括来自话音电话呼叫的声音,可包括被记录的声音(例如,话音消息、音乐文件等)并且还可以包括由操作在设备450上的应用生成的声音。

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

尽管本说明书包含了许多具体实现方式的细节,但是这些不应当被解读为对被请求保护的范围的限制,而是应当被解读为可特定于具体实施例的特征的描述。在本说明书中在分开的实施例的上下文中描述的某些特征也可以在单个实施例中组合地实现。相反,在单个实施例的上下文中描述的各种特征也可以分开地或以任何合适的子组合在多个实施例中实现。另外,尽管特征可以在上面描述为以某些组合起作用并且即便起初也是这样请求保护的,但是来自请求保护的组合的一个或多个特征在一些情况下可以从该组合摘除,并且请求保护的组合可针对子组合或子组合的变型。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应理解为,为了实现合意的结果要求这样的操作以示出的特定顺序或以相继的顺序来执行,或者所有示意的操作都被执行。在某些情形下,多任务和并行处理会有利。此外,在上述实施例中各种系统模块和组件的分离不应当理解为在所有实施例中都要求这样的分离,并且应当要理解所描述的程序组件和系统一般而言可集成在一起成为单个软件产品或封装到多个软件产品中。

在其中本文讨论的系统收集关于用户的信息或可利用个人信息的情形中,可以给用户提供控制程序或特征是否收集用户信息(例如,发言人模型、用户的偏好或用户的当前位置)或控制是否和/或如何从内容服务器接收内容的机会。另外,某些数据可以在将其存储或使用之前以一个或多个方式进行处理,以使得移除个人可识别的信息。例如,可以处理用户的身份以使得不能够确定对于该用户的个人可识别的信息,或者用户的地理位置可以被笼统化获得位置信息的地方,例如,笼统化到市、邮编代码或州级,以使得不能够确定用户的具体位置。因此,用户可具有对如何收集关于该用户的信息或如何由内容服务器使用信息的控制。

已经描述了主题的特定实施例。其他实施例在随附的权利要求的范围内。例如,在权利要求中记载的动作可以以不同的顺序执行但是仍然实现合意的结果。作为一个示例,为了实现合意的结果,在附图中描绘的过程未必要求示出的特定顺序或相继的顺序。在一些情况下,多任务和并行处理会有利。例如,执行相似性分数计算的模块(例如,发言人验证模块的一部分)可以以硬件实现,例如直接在数字信号处理(dsp)单元上实现。

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