一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于支持语音的计算机系统的声学特征的制作方法

2021-06-22 17:08:00 来源:中国专利 TAG:
用于支持语音的计算机系统的声学特征的制作方法



背景技术:

本公开大体上涉及支持语音的计算机系统中的基于语音的身份验证,且具体地,涉及用于支持语音的计算机系统的声学特征(acousticsignature)。

支持语音的计算机系统越来越受欢迎。实例包括具有“智能”助手、智能扬声器的智能手机,以及可以对语音输入作出响应的其它装置。支持语音的计算机系统通常使用麦克风来检测用户话语,并使用扬声器通过使用合成语音来播放可听响应。一些支持语音的计算机系统可以在本地处理检测到的话语以确定来自用户的特定请求(或命令),然后视需要与其它装置或计算机系统(通常称为服务器)通信以处理请求并确定响应(其可以是采取的动作或话语响应或两者)。其它支持语音的计算机系统可以将记录的音频转发到“后端”服务器,所述“后端”服务器处理话语并确定请求。另外,其它支持语音的计算机系统使用本地(基于客户端)和后端(基于服务器)处理的组合来对用户输入作出响应。

支持语音的计算机系统可以支持涉及不同程度安全风险的一系列用户交互。一些交互,例如天气预报的请求或播放音乐的请求,无论由谁提出请求都几乎没有安全风险。其它交互,例如解锁门的请求或访问银行账户的请求,如果由未经授权人提出请求则可能带来重大安全风险。因此,一些支持语音的装置可以使用基于语音的身份验证技术来确认是由被授权人提出请求,之后再对请求作出响应。基于语音的身份验证可以包括将记录的请求的音频特性与被授权人的语音的已知音频特性进行比较。例如,用户可以说出口令短语,所述口令短语可以与记录的版本进行比较,以评估频率特性、讲话速率、词语发音和/或其它特性。

基于语音的身份验证可能容易受到“重放”攻击,其中未经授权人获得被授权人的语音录音,并稍后播放录音以试图伪造支持语音的计算机系统。如果录音质量足够高,则基于语音的身份验证过程可能无法将录音与被授权人的实时话语区分开来。因此,可能期望防止或检测重放攻击。



技术实现要素:

本文公开的实施例涉及可与支持语音的计算机系统结合使用的声学特征。在一些实施例中,声学特征可以是在用户讲话时播放并且在声学通道中与所述用户的话语混合的特定噪声模式(或其它声音)。所述支持语音的计算机系统的麦克风可以捕获所述声学特征和所述用户的语音的混合作为记录的音频。所述支持语音的计算机系统可以分析所述记录的音频(在本地或后端服务器处),以验证是否存在预期的声学特征和/或是否不存在先前声学特征。

本发明的实施例涉及一种由支持语音的计算机系统执行的方法。一种方法可包括获得当前随机数,并操作所述支持语音的计算机系统的扬声器以基于所述当前随机数产生当前声学特征。所述方法可进一步包括:在产生所述当前声学特征的同时操作所述支持语音的计算机系统的麦克风,以记录包括所述当前声学特征和话语输入的音频;以及至少部分地基于所述当前声学特征来验证记录的音频。在所述记录的音频通过验证的情况下,所述方法还可包括:处理所述记录的音频以提取所述话语输入;处理所述话语输入以确定要执行的动作;以及执行所述动作。

本发明的一些实施例涉及一种服务器计算机,其包括处理器、存储器和耦合到所述处理器的计算机可读介质。所述计算机可读介质可具有存储在其中的代码,所述代码可由所述处理器执行以实施方法,所述方法包括:生成随机数;将所述随机数提供给支持语音的客户端,所述支持语音的客户端具有扬声器和麦克风并且能够基于所述随机数生成声学特征;从所述支持语音的客户端接收音频录音;至少部分地基于在所述音频录音中检测到所述声学特征而验证所述音频录音;以及只有当所述音频录音通过验证时才处理所述音频录音中的用户话语。

本发明的一些实施例涉及一种支持语音的计算机系统,其包括处理器、存储器、可由所述处理器操作的扬声器、可由所述处理器操作的麦克风,以及耦合到所述处理器的计算机可读介质。所述计算机可读介质可具有存储在其中的代码,所述代码可由所述处理器执行以实施方法,所述方法包括:获得随机数;操作所述扬声器以基于所述随机数产生声学特征;以及在产生所述声学特征的同时,操作所述麦克风以记录包括所述声学特征和话语输入的音频录音。

以下详细描述与附图一起将提供对本发明实施例的更好理解。

附图说明

图1示出根据一些实施例的支持语音的计算机系统的简化框图。

图2示出在一些实施例中可以使用的生成和验证声学特征的过程的流程图。

图3示出在一些实施例中可以使用的振幅调制的实例。

图4示出在一些实施例中可以使用的频率调制的实例。

图5示出在一些实施例中可以使用的数字调制的实例。

图6示出在一些实施例中可以使用的对随机数解码的过程的流程图。

图7示出根据一些实施例的对随机数解码的简化实例。

图8示出可以根据一些实施例产生的声学特征的简化表示。

图9是根据一些实施例的验证过程的流程图。

图10示出根据一些实施例的客户端/服务器交互的通信图。

术语

本文中可以使用以下术语。

“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群或作为一个单元运作的一组服务器。在一个实例中,服务器计算机可以是耦合到网络服务器的数据库服务器。服务器计算机可包括一个或多个计算装置,并且可使用各种计算结构、布置和编译中的任一种来服务来自一个或多个客户端计算机的请求。

“客户端”或“客户端计算机”可以包括与服务器计算机通信以对服务器计算机发出请求并接收响应的计算机系统或其它电子装置。例如,客户端可以是膝上型计算机或台式计算机、移动电话、平板电脑、智能扬声器、智能家居管理装置或任何其它用户可操作的电子装置。

“存储器”可包括可存储电子数据的合适的一个或多个装置。合适的存储器可包括非瞬态计算机可读介质,其存储可由处理器执行以实施所要方法的指令。存储器的实例可包括一个或多个存储器芯片、磁盘驱动器,等等。此类存储器可使用任何合适的电气、光学和/或磁性操作模式来操作。

“处理器”可包括任何合适的一个或多个数据计算装置。处理器可包括一起工作以实现所要功能的一个或多个微处理器。处理器可以包括cpu,所述cpu包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序组件。所述cpu可以是微处理器,例如amd的速龙(athlon)、钻龙(duron)和/或皓龙(opteron);ibm和/或摩托罗拉(motorola)的powerpc;ibm和索尼(sony)的cell处理器;英特尔(intel)的赛扬(celeron)、安腾(itanium)、奔腾(pentium)、至强(xeon)和/或xscale;和/或类似处理器。

“通信装置”可包括可以提供通信能力的任何电子装置,包括通过移动电话(无线)网络、无线数据网络(例如3g、4g或类似网络)、wi-fi、wi-max或可提供对例如互联网或专用网络等网络的访问的任何其它通信介质。通信装置的实例包括移动电话(例如,蜂窝电话)、pda、平板计算机、上网本、膝上型计算机、个人音乐播放器、手持式专用阅读器、可穿戴装置(例如手表)、车辆(例如,汽车)等。通信装置可包括用于执行此类功能的任何合适的硬件和软件,并且还可包括多个装置或组件(例如,当装置通过系固到另一装置(即,使用另一装置作为中继器)而远程访问网络时,合在一起的两个装置可以被视为单个通信装置)。通信装置可以存储和捕获用户的语音录音,并且可以本地存储录音和/或将录音转发到另一装置(例如,服务器计算机)进行处理。移动装置可以将录音存储在安全存储器元件上。

“用户”可以包括通过对支持语音的计算机系统讲话来操作支持语音的计算机系统的个人。在一些实施例中,用户可以与一个或多个个人账户和/或装置相关联。

“随机数”可以包括对于单个交易生成且有效的任何数字或位串等。可以使用随机或伪随机过程生成随机数,其许多实例在例如密码学的领域中是已知的。

具体实施方式

出于说明和描述的目的呈现对本发明的示例性实施例的以下描述。其不旨在是详尽的,或将本发明局限为所描述的精确形式,并且本领域的普通技术人员将了解,可能有许多修改和变化。选择和描述实施例是为了最好地解释本发明的原理及其实际应用,从而使本领域其它技术人员能够最好地利用本发明以及具有各种修改的各种实施例,以适合于预期的特定用途。

本文描述的某些实施例涉及与支持语音的计算机系统结合的声学特征。声学特征可以是例如动态生成的噪声模式(或其它声音),所述噪声模式在用户讲话时由支持语音的计算机系统的扬声器播放并且在声学通道中与用户的话语混合。所述支持语音的计算机系统的麦克风可以捕获所述声学特征和所述用户的语音的混合作为记录的音频。支持语音的计算机系统可以分析记录的音频(在本地或后端服务器处),以验证是否存在预期的声学特征和/或是否不存在先前声学特征,并且如果验证分析失败,则可以拒绝请求。在一些实施例中,在基于语音的身份验证过程中使用声学特征可以例如通过提供保护以防止重放攻击来提高可靠性。

图1示出根据一些实施例的支持语音的计算机系统100的简化框图。系统100包括经由网络106(例如,互联网)通信耦合的支持语音的客户端102和服务器104。

支持语音的客户端102可以是能够接收和响应口语命令的任何电子装置。实例包括智能手机、智能扬声器、智能家居控制器或实施语音响应特征的其它装置。在一些情况下,支持语音的客户端102可以是与特定用户相关联的个人装置(例如智能手机);在其它情况下,支持语音的客户端102可以是多个用户日常所使用的共享装置(例如智能家居控制器)。支持语音的客户端102可以包括各种组件,例如扬声器110、麦克风112、网络接口114和处理器116。扬声器110可以包括能够将输入信号(例如,经由有线或无线接口接收的数字或模拟电子信号)转换成声音(即,例如空气等可压缩介质中的压力波)的任何装置或组件。麦克风112可以包括能够将声音转换成输出信号(例如,可被记录和/或分析的数字或模拟电子信号)的任何装置或组件。网络接口114可以包括支持经由网络104的通信的硬件和软件组件。例如,网络接口114可以支持符合例如wi-fi、lte、5g等标准的无线通信协议和/或例如以太网协议等有线通信协议。扬声器、麦克风和网络接口的许多实施方案是本领域已知的,其详细描述被省略。

处理器116可以包括一个或多个可编程逻辑电路,例如微处理器或微控制器、asic、fpga等。通过执行合适的程序代码,处理器116可以被配置成执行各种操作,包括本文描述的操作。在一些实施例中,处理器116可具有相关联的存储器或存储子系统(图1中未示出),其存储要执行的程序代码和可在执行程序代码的过程中产生或消耗的数据。在一些实施例中,程序代码可以包括实施特征生成器模块120和语音处理模块122的代码。特征生成器模块120可生成将由扬声器110播放的声学特征;下文描述实例。语音处理模块122可以从麦克风112接收输出信号,并对所述信号执行各种处理操作。此类操作的实例包括降噪、话语解析(例如,根据音频信号标识词语)等等。在一些实施例中,语音处理模块122还可以产生语音响应信号以由扬声器110播放。语音处理模块122的操作可例如使用常规技术来实施。

服务器104可以是任何服务器计算机、服务器场、基于云的计算系统等。服务器104可以包括网络接口132、处理器134和用户记录136。类似于网络接口114,网络接口132可以包括支持经由网络104的通信的硬件和软件组件。处理器134可以包括一个或多个可编程逻辑电路,例如微处理器或微控制器、asic、fpga等。通过执行合适的程序代码,处理器134可以被配置成执行各种操作,包括本文描述的操作。在一些实施例中,处理器134可具有相关联的存储器或存储子系统(图1中未示出),其存储要执行的程序代码和可在执行程序代码的过程中产生或消耗的数据。在一些实施例中,程序代码可以包括实施话语解释器140、命令执行模块142、随机数生成器146和特征验证器148的代码。话语解释器140可以解释从支持语音的客户端102提供的音频录音,以标识用户请求并确定响应于所述请求要执行的一个或多个操作。命令执行模块142可以响应于话语解释器140执行操作,并将操作的结果发送给支持语音的客户端102。话语解释器140和命令执行模块142的操作可例如使用常规技术来实施。可使用随机数生成器146生成随机数(例如,数字或位串),所述随机数将由支持语音的客户端102的特征生成器120在生成声学特征时使用;下文描述实例。特征验证器148可以分析从支持语音的客户端102接收到的音频录音以检测是否存在声学特征;下文描述实例。用户记录136可以包括与支持语音的客户端102的用户有关的信息。例如,特定用户的用户记录136可以包括声纹150,所述声纹可以包括可用于基于语音的身份验证的用户语音的独特特性的任何记录;以及随机数列表152,所述随机数列表可以存储先前已用于生成声学特征且不再被视为有效的一个或多个随机数。与服务器104提供的特定服务相关的其它用户特定信息(例如,银行账户信息或其它账户信息)也可存储在用户记录136中。

在操作中,支持语音的客户端102(由服务器104支持)可以提供语音响应接口,以支持与支持语音的客户端102和/或支持语音的客户端102可以(例如,经由网络106)连接到的其它装置的用户交互。因此,例如,用户可以说出请求,例如“今天的天气预报如何?”或“我的银行余额有多少?”麦克风112可拾取声音并将对应的电子信号提供给语音处理模块122。语音处理模块122可以执行信号处理,例如,以确定请求应当由服务器106处理。因此,可以将记录的电子信号发送给服务器106。

服务器106可以使用话语解释器142处理记录的电子信号以提取请求,并且可以调用命令执行模块144来执行响应操作(例如,检取天气预测或银行余额)。命令执行模块144可以将响应返回到支持语音的客户端102,例如,作为要使用扬声器110播放的音频文件,或作为要由语音处理模块122转换成音频并使用扬声器110播放的数据。

在一些(或所有)实例中,服务器104(或支持语音的客户端102)可以使用基于语音的身份验证技术来验证用户的身份。例如,服务器104可以存储声纹150。当需要基于语音的身份检验时,支持语音的客户端102可以提示用户提供输入以进行验证。例如,可以提示用户说出口令短语,所述口令短语被发送给服务器104。服务器104可以将口令短语与存储的声纹150进行比较,并基于比较的结果确认用户的身份。

根据本文描述的一些实施例,基于语音的身份验证或支持语音的计算机系统100的其它操作可以包括使用声学特征。如本文所使用,“声学特征”可包括有意地播放到用户正在讲话的环境中使得拾取用户语音的麦克风也可以拾取声学特征的声音模式。声学特征可以是动态的,这是指对于不同录音事件生成不同声学特征。在一些实施例中,声学特征可以设计成使得对于不了解特定声音模式的一方来说很难或不可能从包括用户话语和声学特征的混合的录音中过滤掉声学特征,同时使用户的话语对于基于语音的身份验证不可用,从而很难或不可能在重放攻击中使用此类录音。例如,声学特征可以包括人类语音频率范围内的频率,并且声学特征可以以不可预测的方式随时间变化(频率和/或音量)。在一些实施例中,具有定义在特定录音事件期间播放的声学特征的信息的装置,例如服务器104(或客户端102),可使用声学特征确认用户存在。另外或替代地,例如服务器104(或客户端102)的装置还可以通过在用户的话语录音中检测“旧的”声学特征来检测重放攻击。下文描述生成和验证声学特征的具体实例。

应了解,支持语音的计算机系统100是说明性的,且可能有许多变化和修改。例如,支持语音的客户端102可具有图1中未示出的其它组件,例如显示器、触摸屏、小键盘或其它视觉或触觉(或其它)用户接口组件。还可使用多个离散装置实施支持语音的客户端102。例如,可以在(使用有线或无线连接)连接到例如智能手机的较大装置的耳塞、耳机或头戴式耳机中提供扬声器110和/或麦克风112。应注意,位于耳塞、耳机或头戴式耳机中的扬声器可能不是生成声学特征的最佳选择,因为来自此类扬声器的声音可能不会被麦克风拾取。在这种情况下,可以替代地使用耳塞、耳机或头戴式耳机所连接到的较大装置内的扬声器。还可以修改支持语音的客户端102与服务器104之间的操作划分。例如,一些支持语音的客户端可以简单地向服务器提供记录的话语以供解释,而其它支持语音的客户端可以在本地处理记录的话语以确定用户请求,然后根据需要将请求中继到适当的服务器。在某些情况下,支持语音的客户端可能能够在不涉及服务器的情况下在本地解释并响应某些请求。因此,在各种实施例中,基于语音的身份验证可以在本地于支持语音的客户端上执行,或者在服务器处远程执行(或两者)。应理解,本文描述的声学特征可在正执行基于语音的身份验证的任何情况下由执行基于语音的身份验证的任何装置(包括服务器和/或客户端)使用。如下文所描述,声学特征可由验证声学特征的同一服务器或客户端指定。

图2示出在一些实施例中可以使用的生成和验证声学特征的过程200的流程图。过程200可以在图1的支持语音的计算机系统100中或在任何其它支持语音的计算机系统中实施。过程200可以在支持语音的系统确定声学特征是有用的任何点开始,例如当提示用户说出口令短语或提供可用于验证用户身份的其它语音输入时开始。

在框202处,支持语音的计算机系统(例如,支持语音的客户端102)中的支持语音的装置可以获得当前随机数。在一些实施例中,可以从服务器104的随机数生成器146获得随机数。根据实施方案,客户端102可以从服务器104请求随机数,或者服务器104可以例如基于来自客户端102的特定请求确定应使用声学特征,并且可以将随机数提供给客户端102。在其它实施例中,随机数可以由支持语音的客户端在本地生成;这可为有用的,例如,其中支持语音的客户端在本地执行基于语音的身份验证。随机数可以是例如随机生成的数字,或可用于确定要生成的声音序列的其它令牌或数据。具体实例描述如下。

在框204处,支持语音的装置可以操作扬声器(例如,扬声器110)以基于当前随机数产生声学特征(例如,声音序列)。同时,在框206处,支持语音的装置可以操作麦克风(例如,麦克风112)以记录音频。声学特征和来自用户的话语输入可以在时间上重叠,并且可以记录为包括声学特征和来自用户的话语输入的混合的单个音频录音。框206处记录音频可以包括将音频信号的数字或模拟表示存储在包括例如高速缓存或缓冲器的短期存储装置的任何存储介质中,持续足够长的时间段以支持验证以及与支持语音的计算机系统相关联的其它音频处理操作。

在框208处,可以至少部分地基于存在声学特征而验证记录的音频。在一些实施例中,验证可以包括分析记录的音频以确定在框204处产生的声学特征是否存在于记录的音频中。验证还可包括其它操作,例如分析记录的音频以确定是否存在来自过程200的先前迭代的不同声学特征。检测来自过程200的先前迭代的声学特征可以指示使用在先前迭代期间由入侵者记录的音频的重放攻击,并且可以是使记录的音频无效的基础。下文描述了验证过程的具体实例。取决于实施方案,验证可以由响应请求的服务器执行,或在框206处记录音频的支持语音的客户端上在本地执行。在一些实施例中,框208处的验证还可包括其它操作,例如从记录的音频中提取用户的语音,并将提取的语音与用户的存储的声纹进行比较。

在框210处,过程200可以基于框208处的验证结果来确定记录的音频是有效还是无效。如果记录的音频有效,则过程200可以继续对话语输入进行操作。例如,在框212处,过程200可以处理记录的音频以提取话语输入;在框214处,过程200可以处理话语输入以确定要执行的动作;在框216处,过程200可以执行动作。如果在框210处,记录的音频无效,则在框218处,过程200可以忽略记录的音频。在一些实施例中,忽略记录的音频可以包括通知用户输入被拒绝。必要时,可以提示用户重试,或者可以限制用户的进一步活动(例如,如果怀疑重放攻击)。

应了解,过程200是说明性的,且可能有变化或修改。例如,可以在不同时间执行参考单个框描述的操作,可以将参考不同框描述的操作组合成单个操作,可以改变操作顺序,并且可以完全省略一些操作。只要播放声学特征在时间上与用户话语的录音重叠,就可以在如本文描述的验证操作期间使用声学特征。在一些实施例中,每当用户提供语音输入到支持语音的计算机系统时,可以使用过程200。例如,一些支持语音的计算机系统通过监听特定激活短语(例如,“你好助手(heyassistant)”)来操作,并响应于检测到激活短语而开始处理其它基于语音的输入。因此,具有激活短语的支持语音的计算机系统可以获得随机数,并响应于检测到激活短语而开始播放声学特征。在其它实施例中,过程200的使用可以更具选择性。例如,用户可以在没有声学特征的情况下与支持语音的计算机系统交互,直到用户请求涉及敏感信息的动作,此时可以调用过程200。下文描述了过程200的选择性调用的实例。

在一些实施例中,声学特征可以产生为人类语音频率范围内的调制音调。图3-5示出了在一些实施例中可以使用的基础(或载波)频率调制的实例。

图3示出振幅调制的实例。根据输入波304以振幅调制给定频率fc的载波302,从而产生调制波306。当由扬声器播放时,调制波306可以产生响度(振幅)随时间变化的恒定音高(频率)的声音。

图4示出频率调制的实例。根据输入波404以频率调制给定频率fc的载波402,从而产生调制波406。在此实例中,与载波频率的偏差是输入波404的振幅的函数。当由扬声器播放时,调制波406可以产生恒定响度(振幅)但可变音高(频率)的声音。

图5示出数字调制的实例。根据输入二进制信号504以数字方式调制给定频率fc的载波502,从而产生调制波506。在此实例中,当二进制信号处于“1”状态时,频率增大到高于载波频率,而当二进制信号处于“0”状态时,频率减小到低于载波频率。当由扬声器播放时,调制波506可以产生恒定响度(振幅)但可变音高(频率)的声音。

图3、4和5的调制方案是说明性的,并且可以使用其它调制方案。在一些实施例中,调制方案的选择可以是声学特征的一个元素,并且可以组合多个调制方案。可以设想,声学特征可以由用户听见,并且可以听起来像噪声一样。

在一些实施例中,使用随机数来定义过程200的特定情况的声学特征。随机数可以是使用过程生成的任意长度的位串(或数字),使得先前随机数的知识不能用于预测未来随机数。可以使用随机过程、伪随机过程或具有足够程度的不可预测性的任何其它过程。随机数的生成可以由将验证声学特征的服务器(或客户端)执行。(例如,随机数的生成可以由系统100中的服务器104的随机数生成器146执行。)

为了生成声学特征,可以对随机数“解码”以定义对应声波。随机数的解码可以由生成声学特征码的装置(例如,由系统100中的支持语音的客户端102的特征生成器120)执行。解码方案可以变化,只要使用相同的解码方案用于生成声学特征并且用于后续验证声学特征即可。

在一些实施例中,解码方案可以是具有可变调制的跳频方案。图6示出在一些实施例中可以使用的对随机数解码的过程600的流程图。过程600可以例如在图1的支持语音的客户端102的特征生成器120中或在任何其它支持语音的装置中实施。

在框602处,过程600可以例如从服务器104或另一随机数生成器接收随机数(r)。在框604处,过程600可以将随机数分成两个分量(r1和r2)。例如,如果随机数是某一整数n的n位字符串,则第一分量r1可以定义为前n/2个位,而第二分量r2定义为后n/2个位。可使用其它分离技术,且两个分量的长度无需相等。在框606处,过程600可以使用第一分量r1来定义跳频序列。跳频序列可以是在连续时间间隔期间使用的载波频率序列。在框608处,过程600可以使用第二分量r2来定义在每个时间间隔期间要施加到载波频率的调制输入。在一些实施例中,可以定义不同时间间隔的不同调制输入。在框610处,过程600可以生成用于扬声器的对应驱动信号。例如,可以通过使用第一时间间隔的调制输入(根据第二分量r2确定)来调制第一时间间隔的载波频率(根据第一分量r1确定)等来生成用于第一时间间隔的驱动信号。

图7示出根据过程600的实施例的对随机数解码的简化实例。在此实例中,假设跳频序列包括四个时间间隔。在每个时间间隔,基于接收到的随机数r(700)分配载波频率集合中的一个和调制模式集合中的一个。随机数r可以被解释为八个数字的集合(为方便起见显示为十进制数字)。通过将前四个数字分配给第一分量r1(702)并将后四个数字分配给第二分量r2(704),可以将随机数r分成分量r1和r2。可以使用其它方案,例如为备用分量分配备用数字。

表706中示出根据一些实施例的分量r1和r2的解释。出于此实例的目的,假设已经定义了至少五个不同载波频率的集合,并且还已经定义了至少五个不同调制模式的集合。将每个载波频率映射到索引(f1、f2等),并且将每个调制模式映射到索引(m1、m2等)。对于每个时间间隔,通过将由r2的对应元素标识的调制模式应用于由r1的对应元素处的数字标识的载波频率来确定声学特征。如表706所示,在第一时间间隔期间,载波频率为f1(因为r1的第一元素为1),并且调制模式为m5(因为r2的第一元素为5)。因此,在第一时间间隔期间,声学特征对应于根据调制模式m5调制的载波频率f1。在第二时间间隔期间,载波频率为f2(因为r1的第二元素为2),并且调制模式为m4(因为r2的第二元素为4)。因此,在第二时间间隔期间,声学特征对应于根据调制模式m4调制的载波频率f2。类似地,在第三时间间隔期间,声学特征对应于根据调制模式m1调制的载波频率f5,并且在第四时间间隔期间,声学特征对应于根据调制模式m1调制的载波频率f3。

图8示出在一些实施例中可以根据表702产生的声学特征的简化图形表示。在水平轴上显示时间,并且在竖直轴上表示不同的载波频率。对于每个时间间隔(t1到t4),根据r1的对应元素选择载波频率。时间间隔可以是短持续时间,例如1-10ms、10-50ms等。载波频率f1到f5是不同的频率,并且信号可以从一个频率跳到下一个频率。此外,在每个时间间隔期间,根据r2的对应元素施加调制模式(m5、m4、m1、m1)。每个调制模式可以包括振幅调制、频率调制、数字调制或任何其它调制模式。

应理解,图6-8说明可用于基于随机数生成声学特征的过程和调制方案。可以使用载波频率和/或调制模式的任何组合,以及任何数量的载波频率和/或调制模式。在一些实施例中,可能期望选择在“发声范围”内的载波频率,所述“发声范围”可以是与一般人类语音相关联或与特定用户的语音相关联的频率范围。使用在发声范围内的频率可以防止通过麦克风或相关联信号处理组件中的降噪而过滤掉声学特征。另外,如下文所描述,存在“旧的”声学特征可以是重放攻击的指示,并且使用发声范围内的频率可使入侵者更难以从用户语音的录音中过滤掉“旧的”声学特征。声学特征的音量可以根据需要改变,只要其足够响亮以由在特定情况下使用的麦克风拾取即可。在声学特征使用人类听力范围内的频率的情况下,所述特征可为可听的,并且可能期望低音量。

根据一些实施例,例如结合验证用户身份,可以使用声学特征验证声学通道的完整性。图9是根据一些实施例的可以例如在过程200的框208处使用的验证过程900的流程图。可以例如由系统100的服务器102的特征验证器148或由执行基于语音的身份验证的任何其它装置执行过程900。

过程900可以在框902处以接收音频信号开始,取决于实施方案,所述音频信号可以是数字或模拟信号。假设音频信号包括用户话语和声学特征的组合(或混合);例如,音频信号可对应于在过程200的框206处记录的音频。在框904处,过程900可以确定“当前”声学特征(即,在记录音频信号时可能播放的声学特征)。例如,特征验证器148(或执行过程900的任何其它装置)可以接收用于生成当前声学特征的随机数。在一些实施例中,特征验证器148可以从随机数生成器146接收随机数;也可以使用用于提供随机数的其它技术。基于随机数和用于根据随机数生成声学特征的适用解码方案(例如,如参考图6-8所述),过程900可以确定当前声学特征的预期频率和/或振幅模式。

在框906处,过程900可以确定接收到的音频信号中是否存在当前声学特征。可以使用常规信号分析技术或其它技术来确定接收到的音频信号是否包括对应于当前声学特征的分量。如果不存在当前声学特征,则在框910处,过程900可以将接收到的音频信号视为无效输入。在各种实施例中,将音频信号处理为无效的可以包括以下中的任一个或全部:忽略音频信号、提示用户重试(这可以包括为下一次尝试提供生成不同声学特征的不同随机数)、向用户生成无效访问尝试的通知,或根据需要的其它动作。

如果在框906处存在当前声学特征,则在框912处,过程900可以确定要检测的一个或多个“先前”声学特征。每个先前声学特征可以是将由支持语音的计算机系统响应于结合先前验证过程生成的随机数而生成的声学特征。在一些实施例中,服务器104(或执行过程900的其它装置)可以将先前已用于特定用户或支持语音的客户端的随机数存储在例如图1所示的随机数列表152中。每个存储的随机数可用于确定可能存在的先前声学特征。在一些实施例中,对存储的随机数的数量或使用期限可以存在上限;然而,不需要施加特定限制,并且在框912处,可以确定任何数量的先前声学特征。

在框914处,过程900可以确定接收到的音频信号中是否存在任何先前声学特征。例如,使用每个先前声学特征,可以在框914处应用在框906处应用的相同信号分析技术。在此实例中,先前声学特征的存在被视为指示在先前声学特征是当前声学特征且现在正在播放时最初记录了用户的语音。因此,如果框914的结果是确定存在先前声学特征,则在框910处,过程900可以将接收到的音频信号视为无效输入,这有助于防止重放攻击。在一些实施例中,过程900可以通知用户(例如,经由不同通道,例如电子邮件或文本消息传递)收到可疑语音输入,并且用户的安全可能受到损害;通知还可以根据需要提供补救措施的建议或其它信息。

如果在框914处不存在先前声学特征(并且如在框906处确定的存在当前声学特征),则在框918处,过程900可接受输入并对音频信号执行进一步处理。支持任何类型的处理操作。例如,如果预期用户输入包括口令短语,则在框918处的进一步处理可以包括例如检测口令短语、将接收到的语音模式与存储的声纹(例如,图1的声纹150)进行比较,以及基于结果确定是否验证用户的身份。其它处理操作可以包括:其它基于语音的身份验证操作;解析话语输入以确定要执行的命令或提取要在执行命令时使用的信息(例如,访问代码、交易金额等);使用话语输入执行命令;等等。在一些实施例中,在执行基于语音的身份验证或其它处理操作之前,过程900可以例如使用用于从混合音频信号移除已知信号分量的常规技术从音频信号中过滤掉当前声学特征,以获得无噪声的语音信号。如上所述,声学特征可以与用户的语音具有频率重叠,这可能导致匹配语音模式(例如,用户语音的频谱)和/或话语解释中的错误。过滤掉声学特征可以提供更干净的语音信号并减少这些类型的错误,这取决于要执行的特定处理;当然,并不需要过滤掉声学特征。

应注意,过程900可以可靠地过滤掉当前声学特征(如果需要的话),因为执行过程900的装置具有定义当前声学特征的信息,这使得简单明了地从音频信号中标识并过滤掉当前声学特征。然而,缺乏定义声学特征的信息的装置或实体将无法在不使信号的语音分量失真的情况下将声学特征从混合音频信号中过滤掉。因此,如果在播放本文描述的类型的声学特征时入侵者记录用户,则入侵者将不可能能够过滤掉声学特征同时仍保留能够满足基于语音的身份验证的录音。(应注意,在没有声学特征的情况下进行录音并且稍后重放可能不会被过程900检测为重放攻击。)

在各种实施例中,可以在用户话语被支持语音的装置捕获的任何情况下生成声学特征。然而,声学特征很可能是可听见的,并且可能需要选择性地使用声学特征。因此,在一些实施例中,声学特征可以选择性地与验证用户的身份结合使用。在一个实例中,支持语音的装置的用户可请求敏感信息(例如银行余额或健康记录)或授权交易(例如支付账单或向第三方发送健康数据)。在满足请求之前,满足请求的支持语音的装置或服务器可以要求用户执行身份验证,例如,通过说出口令短语或提供用于基于语音的身份验证的某种其它发声输入。可以在用户说出口令短语时播放声学特征。如果使用口令短语验证用户身份的支持语音的装置或服务器也具有声学特征,则可以使用声学特征的验证来防止发生入侵者使用说出口令短语的用户的录音。

图10示出根据一些实施例的并入有声学特征的选择性使用的客户端/服务器交互的通信图。客户端1002可以是支持语音的客户端,例如图1的支持语音的客户端102。服务器1004可以是接收并响应语音请求的任何服务器,例如图1的服务器104。客户端1002与服务器1004之间的通信可以使用安全通道进行,例如虚拟专用网络(vpn)、安全http会话(例如,使用https或ssl协议),或足以保护可在客户端1002与服务器1004之间交换的任何敏感信息以防止第三方窃听的任何其它通道。假设服务器1004有权访问仅应提供给授权用户的敏感信息。还假设服务器1004使用基于语音的身份验证来确定特定授权用户是否做出请求。

在框1010处,客户端1002向服务器1004发送涉及敏感信息的请求。在一些实施例中,客户端1002可以确定请求涉及敏感信息,并且警告服务器1004对此事实有影响;在其它实施例中,服务器1004可以作出确定。例如,请求可以是检查银行账户余额的请求。

在框1012处,响应于涉及敏感信息的请求,服务器1004可以生成随机数以用于声学特征生成(例如,如上所述)。在框1014处,服务器1004可以将随机数发送给客户端1002。在一些实施例中,服务器1004可以发送随机数以及客户端1002提示用户输入口令短语或用于基于语音的身份验证过程的其它输入的请求。

在框1016处,客户端1002可以接收随机数。在框1018处,例如根据上述过程600,客户端1002可以基于随机数生成声学特征。在框1020处,客户端1002可以在(例如,使用麦克风112)记录来自环境的声音时将声学特征播放到环境中(例如,使用扬声器110)。在框1022处,客户端102可以将录音发送给服务器1004。录音预期包括声学特征和用户语音的混合,所述混合发生在音频通道中。应理解,客户端1002可以在将录音发送给服务器1004之前对录音执行一些处理操作,例如验证话语分量是否存在。

在框1024处,服务器1004可以对接收到的录音执行验证操作。验证操作可以包括验证声学特征(例如,使用图9的过程900)以及在验证声学特征之后执行基于语音的身份验证。如果验证操作成功,则在框1026处,服务器1004可以处理用户的请求。在一些实施例中,在框1010处接收到被处理的请求;用于身份验证的录音不需要包括任何特定请求。在框1028处,服务器1004可以将对请求的响应发送给客户端1002。如果框1024处的验证不成功,则响应可以是错误响应或指示请求被拒绝的其它响应。

在框1030处,客户端1002可以从服务器接收响应,并且在框1032处,客户端1002可以为用户播放可听响应。

应理解,过程1000可以重复执行。在接收到涉及敏感信息的请求的每一种情况下,服务器1004可以生成新的随机数(例如,使用随机过程),使得不同交易使用不同声学特征。可以存储先前随机数,例如如上所述,并且在框1024处的验证操作可以包括基于先前随机数(例如,如上文参考过程900所述)检测声学特征的存在,所述声学特征可以指示重放攻击。

还应理解,图10中所示的客户端与服务器之间的活动划分是说明性的且可修改。例如,语音处理活动可以部分地由客户端执行且部分地由服务器执行。执行声学特征的验证的系统组件可以是生成定义声学特征的随机数的同一组件(或与所述组件处于共同控制下),使得执行声学特征的验证的系统组件不必依赖于独立装置来准确地报告使用了什么声学特征。

尽管前述描述参考了具体实施例,但所属领域的技术人员将了解,所述描述并非详尽所有实施例。可能有许多变化和修改。例如,声学特征可以包括任何数量的频率分量和调制方案。可以根据人类语音的一般特性或根据特定用户语音的特性来选择频率分量。例如,在声学特征与基于语音的身份验证结合使用的情况下,授权用户的语音的频谱可以是已知的,并且声学特征可以包括在授权用户的语音的频谱内的频率分量,这可使入侵者更难以从录音中过滤掉声学特征。

还可以改变基于随机数确定声学特征的过程。如在上面的实例中,随机数可用于确定声学特征的频率和/或调制模式。声学特征的总持续时间可以根据需要而长或短。在一些实施例中,声学特征足够长以至于它可以覆盖整个预期话语输入。在其它实施例中,声学特征可以比预期的话语输入短,并且可以在用户讲话时以循环或以一个或多个突发方式播放。

如上所述,可以基于特定用户请求选择性地触发声学特征的使用。触发声学特征的使用的请求集可取决于给定支持语音的客户端的特定能力和/或处理基于语音的请求的服务器的要求。一些支持语音的计算机系统可以在交易模型上操作,其中用户发起请求,并且在执行请求时,可能会发生与支持语音的装置的多个来回交换。声学特征可用于交易中的任何或全部来回交换,这取决于所需的安全水平。在一些实施例中,可以在用户说出口令短语时播放声学特征。替代地,可以在不播放声学特征的情况下记录口令短语,并且可以在交易期间的一个或多个其它交换期间应用声学特征。

本文所提及的任何计算机系统都可以使用任何合适数量的子系统。在一些实施例中,计算机系统包括单个计算机装置,其中子系统可以是计算机装置的组件。在其它实施例中,计算机系统可以包括多个计算机装置,每个计算机装置都是具有内部组件的子系统。

计算机系统可包括例如由外部接口或由内部接口连接在一起的多个组件或子系统。在一些实施例中,计算机系统、子系统或装置可以通过网络进行通信。在此类情况下,一个计算机可视为客户端,且另一计算机可视为服务器,其中每台计算机可以是同一计算机系统的一部分。客户端和服务器可以各自包括多个系统、子系统或组件。

应理解,本发明的任何实施例都可以使用硬件(例如,专用集成电路或现场可编程门阵列)和/或使用计算机软件以控制逻辑的形式实现,其中通用可编程处理器是模块化的或集成的。如本文所用,处理器包括单核处理器、在同一集成芯片上的多核处理器,或在单个电路板上或网络化的多个处理单元。基于本公开和本文中所提供的教示,本领域的普通技术人员将知道并且了解使用硬件和硬件与软件的组合来实施本发明的实施例的其它方式和/或方法。

本申请中描述的任何软件组件或功能可实施为使用例如java、c、c 、c#、objective-c、swift的任何合适的计算机语言或例如perl或python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。软件代码可作为一系列指令或命令存储在计算机可读介质上以供存储和/或传递,合适的介质包括随机存取存储器(ram)、只读存储器(rom)、例如硬盘驱动器或软盘的磁性介质,或例如光盘(cd)或数字通用盘(dvd)的光学介质、闪存存储器等等。计算机可读介质可以是此类存储或传输装置的任何组合。

此类程序还可以使用适应于经由包括互联网的符合多种协议的有线、光学和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的实施例的计算机可读介质可以使用以此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可以驻留于单个计算机产品(例如,硬盘驱动器、cd或整个计算机系统)上或内,且可存在于系统或网络内的不同计算机产品上或内。计算机系统可包括用于将本文中所提及的任何结果提供给用户的监视器、打印机或其它合适的显示器。

本文所述的任何方法可以完全地或部分地用包括可被配置成执行这些步骤的一个或多个处理器的计算机系统执行。因此,实施例可涉及被配置成执行本文描述的任何方法的步骤、可能具有执行相应步骤或相应步骤群组的不同组件的计算机系统。尽管以编号的步骤呈现,但是本文中的方法步骤也可以同时执行或以不同的次序执行。另外,这些步骤的部分可以与来自其它方法的其它步骤的部分一起使用。同样,一个步骤的全部或部分可以是可选的。另外,任何方法的任何步骤可以用模块、电路或用于执行这些步骤的其它手段来执行。

在不偏离本发明的实施例的精神和范围的情况下,具体实施例的特定细节可以任何合适方式组合。然而,本发明的其它实施例可涉及与每个单独的方面相关的特定实施例,或者这些单独的方面的特定组合。

除非明确指示有相反的意思,否则叙述“一个/种”或“该/所述”旨在表示“一个/种或多个/种”。除非明确指示为相反情况,否则“或”的使用旨在表示“包括性的或”,而不是“排除性的或”。

本文中提及的所有专利、专利申请、公开和描述出于所有目的以引用方式全部并入本文。并非承认它们是现有技术。

以上描述是说明性的且不是限制性的。在所属领域的技术人员阅读了本公开后,本发明的许多变化将变得显而易见。因此,专利保护的范围不应参考以上描述来确定,而是应参考所附权利要求书以及其完整范围或等效物来确定。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文章

  • 日榜
  • 周榜
  • 月榜