本申请通常涉及说话者验证(speaker verification)。
背景技术:
声音认证为用户装置的用户提供了获得对用户装置的访问的容易的方式。声音认证允许用户解锁和访问用户的装置,而不需要记住或输入密码。然而,多种不同语言、方言、口音等的存在对声音认证领域提出一些挑战。
技术实现要素:
在一个实施方式中,说话者验证模型通过不管说话者的语言、方言或口音如何而促进说话者验证,从而改善常规系统。说话者验证模型可以基于神经网络。可以使用包括言辞和语言识别符的输入训练神经网络。一旦经训练,则通过神经网络的隐藏层输出的启用可被用作声纹,其可与用户装置上的参考展示进行比较。如果声纹和参考展示满足预定相似性临界值,则可认证说话者。
根据一个实施方式,本申请的主题可以实施为有助于语言无关性说话者验证的方法。方法可以包括的动作是:通过用户装置接收代表用户言辞的音频数据;确定与用户装置相关的语言识别符;将从音频数据和所确定的语言识别符获得的一组输入数据提供给存储在用户装置上的神经网络,该神经网络具有参数,使用代表不同语言和不同方言的话语的话语数据对所述参数进行训练。基于响应于接收所述一组输入数据而产生的神经网络的输出,产生表示用户声音特点的说话者展示;基于说话者展示和第二展示确定该言辞是所述用户的言辞;和基于确定该言辞是所述用户的言辞而为用户提供对用户装置的访问。
其他版本包括相应系统、设备和执行方法动作并在计算机存储装置上编码的计算机程序。
这些和其他版本可以可选地包括以下特征中的一个或多个。例如,在一些实施方式中,从音频数据和所确定的语言识别符获得的所述一组输入数据包括从音频数据获得的第一向量和从确定的语言识别符获得的第二向量。
在一些实施方式中,该方法可以包括通过将第一向量和第二向量结合为单个结合向量,将所产生的输入向量提供给神经网络,且基于响应于接收输入向量而产生的神经网络的输出产生表示用户声音特点的说话者展示。
在一些实施方式中,该方法可以包括通过将至少两个其他神经网络的输出结合而产生输入向量,所述至少两个其他神经网络分别基于(i)第一向量、(ii)第二向量、或(iii)第一向量和第二向量两者产生输出,而将所产生的输入向量提供给神经网络,且基于响应于接收输入向量而产生的神经网络的输出,产生表示用户声音特点的说话者展示。
在一些实施方式中,该方法可以包括基于第一向量和第二向量的加权之和而产生输入向量,将所产生的输入向量提供给神经网络,且基于响应于接收输入向量而产生的神经网络的输出,产生表示用户声音特点的说话者展示。
在一些实施方式中,响应于接收所述一组输入数据而产生的神经网络的输出包括通过神经网络的隐藏层产生的一组启用。
在一些实施方式中,基于说话者展示和第二展示确定该言辞是所述用户的言辞可以包括确定第一展示和第二展示之间的距离。
在一些实施方式中,该方法可以包括,基于确定言辞是用户的言辞为用户提供对用户装置的访问包括解锁用户装置。
本说明书所述的主题的其他实施方式包括用于语言无关性说话者验证的方法,包括通过实施了语言无关性说话者验证模型的移动装置接收(i)与用户的具体言辞对应的具体音频数据和(ii)表明通过用户说出的具体语言的数据,所述说话者验证模型配置为确定所接收的音频数据是否可能包括多个语言专用热词之一的言辞;和响应于接收(i)与用户的具体言辞对应的具体音频数据和(ii)表明用户说出的具体语言的数据,针对输出,提供指示,所述指示表明语言无关性说话者验证模型已经确定了所述具体音频数据可能包括针对用户说出的具体语言所指定的热词的言辞。
这些和其他版本可以可选地包括以下特征中的一个或多个。例如,在一个实施方式中,针对输出提供指示,所述指示可包括提供对移动装置资源的访问。替换地或额外地,针对输出提供指示,所述指示可包括解锁移动装置。替换地或额外地,针对输出提供指示,所述指示可包括从低电量状态唤醒移动装置。替换地或额外地,针对输出提供指示,所述指示包括提供语言无关性说话者验证模型已经确定具体音频数据包括与移动装置相关的具体用户的言辞的指示。
在一些实施方式中,语言无关性说话者验证模型可包括没有使用用户的言辞训练的神经网络。
本说明书的主题提供优于常规方法的多个优点。例如,本申请的主题提供可容易分布的说话者验证模型。因为说话者验证模型是独立于语言、方言和口音的,所以同一说话者验证模型可广泛地分布到用户装置。这与基于装置用户的语言针对不同装置提供不同说话者验证模型相比是非常高效的。替换地,可避免对同一装置配置多个说话者验证模型(用户可选择其中的一个)的需要。
通过本申请提供的说话者验证模型在使用同一模型执行独立于说话者语言、方言或口音的说话者验证时具有改善的准确性。例如,语言、方言或口音的差异会造成具体用户以与其他用户不同的方式对预定热词发音。这种发音差异会在常规系统中造成准确性问题。本发明的说话者验证模型对常规系统的缺点进行了改进。
通过本申请提供的说话者验证模型还提供了容易的更新。例如,新训练的模型可被容易地布置为对用户装置的操作系统的程序软件更新的一部分。这种更新的说话者验证模型可以被容易地训练以将新的语言、方言和/或口音(在其出现时)考虑在内。替换地,更新可以基于语言、方言和/或口音形成为说话者验证模型的现有版本。这种更新的说话者验证模型可被普遍布置,而不需要对特定地理区域的特定装置提供具体的说话者验证模型。
在随附附图和以下描述中描述本说明书所述的主题的一个或多个实施方式的细节。从描述、附图和权利要求可以理解主题的其他特征、方面和优点。
附图说明
图1显示用于使用语言无关性说话者验证模型执行说话者验证的系统的例子的情景图。
图2是用于训练语言无关性说话者验证模型的系统的例子。
图3是多个相应语言识别向量的原理展示的例子。
图4是执行语言无关性说话者验证的系统的例子。
图5是用于执行语言无关性说话者验证的过程的流程图。
具体实施方式
在一些实施方式中,系统为用户装置提供一种语言无关性说话者验证模型,且可以是基于神经网络的模型。语言无关性说话者验证模型在安装在用户装置上之前被基于训练数据训练,所述训练数据包括(i)从多个不同用户而来的言辞和(ii)显示与相应言辞向对应的语言或地方的向量。一旦安装在用户装置上,则语言无关性说话者验证模型可以用于验证用户装置的用户的身份,而不需要语言无关性说话者验证模型的随后训练。尽管用户装置可以获得和使用用户的言辞以登记用户,但是模型本身不需要基于用户装置的用户的任何言辞进行训练。
如在本文使用的,“语言无关性”说话者验证模型是指可用于准确地验证说话者的身份(其说出不同语言或方言)的单个模型。即,模型不取决于局限于在具体单个话语中的话语。结果,并非针对不同语言、方言或口音使用不同模型,而是可使用单个语言无关性模型。在一些实施方式中,文本依赖性模型被训练为基于具体词语或短语的言辞识别说话者,例如预定的热词或提醒词(attention word)。语言无关性模型可以被训练为基于单个热词或基于用于不同语言或地方的热词来区别不同语言的说话者。甚至在相同热词被用在不同语言或地方时,具有不同语言、方言、口音或地方的用户也会对热词进行不同发音。这些差异降低了现有技术模型的准确性,这通常是由于作为说话者的独特特征的地区语言或口音而不当地造成差异性。例如,在现有技术模型将地区口音的通常特征解译为特定说话者声音的主要独特元素时,在实际上该特征为具有非常相似口音的许多其他用户所共有时,会增加验证过程中的误报率。本申请获得与用户的语言或地方有关的信息并将该信息提供给模型,允许模型形成说话者代表特征,例如声纹,且能将用户与具有相同语言、方言、口音或地方的其他用户区分开。
图1显示用于使用语言无关性说话者验证模型执行身份验证的系统100的例子的情景图。系统100包括用户装置110、用户装置120、网络130、服务器140、神经网络150和说话者验证模型180。
系统100包括存储神经网络150的服务器140。神经网络150已经使用代表不同语言、不同方言或二者的话语样品的话语数据进行了训练。服务器140基于神经网络150产生说话者验证模型180。随后,服务器150将说话者验证模型180的副本通过网络130传递到第一用户装置110和第二用户装置120。说话者验证模型180的副本随后被存储在每一个相应用户装置110、120上。
用户(例如“Joe”)可以试图使用声音认证获得对用户装置110的访问。例如,Joe可以表达预定热词105a或短语,例如英语的“Ok Google”。对应于预定言辞的音频105b可以被用户装置110的麦克风111检测。用户装置110可以对存储的说话者验证模型180产生第一输入,所述第一输入是从通过麦克风111检测的音频105b获得的。此外,用户装置110可以基于Joe表达英语热词105a或短语的确定而获得对所存储的说话者验证模型180的第二输入。用户装置110可以通过获得装置的语言设定而确定Joe以英语表达热词105a或短语。存储在Joe的用户装置110上的说话者验证模型180可以随后基于对从音频105b获得的第一输入和从Joe对英语的使用而获得的第二输入进行处理而产生Joe的声纹。基于所产生声纹的分析,用户装置110可以确定Joe被授权以能访问装置110。响应于确定了Joe被授权以能访问用户装置110,用户装置110可开始解锁用户装置110的处理。在一些情况下,用户装置110可以将消息显示在图形用户界面112上,其例如展现“说话者身份验证”113。替换地,或额外地,在用户装置110被解锁时,用户装置110的说话者可以输出音频问候115,即展现“welcome Joe.”(“欢迎joe。”)。
在图1的例子,另一用户,例如“王”,具有用户装置120,其也存储相同说话者验证模型180的副本。王是流利的汉语说话者,其可以试图使用声音认证获得对用户装置120的访问。例如,王可以发出预定热词115a或短语,例如汉语的“你好安卓”(是英语的“Hello Android”的大致翻译)。对应于预定言辞的音频115b可以被用户装置120的麦克风121检测。此外,用户装置120可以基于王用汉语表达热词115a或短语的确定而获得对所存储的说话者验证模型180的第二输入。用户装置120可以通过获得装置的语言设定而确定Joe用汉语表达热词115a或短语。存储在王的用户装置120上的说话者验证模型180可以随后基于对从音频115b获得的第一输入和从王对汉语的使用而获得的第二输入来产生王的声纹。基于所产生声纹的分析,用户装置120可以确定王被授权以能访问装置120。响应于确定了王被授权以能访问用户装置120,用户装置120可开始解锁用户装置120的处理。在一些情况下,用户装置120可以在图形用户界面122上显示消息,其展现“说话者的身份验证”123(是英语的“Speaker Identity Verified”的大致翻译)。替换地或额外地,在用户装置120被解锁时,用户装置120的说话者可以输出音频问候125,展现“欢迎王”(英语的“Welcome Wang”的大致翻译)。
如图1的例子所示,单个文本依赖的说话者识别模型180可被配置为针对不同语言或地方使用不同预定热词。此外,或替换地,模型180可使用用于多种语言或地方的相同热词,但是模型180可针对热词发音的不同差异性(例如由于不同语言或地区口音造成的)而产生说话者代表特征。如下文所述的,可通过将用于语言或地方的识别符输入到模型180的神经网络以及音频信息来调整验证过程。
图2是用于训练语言无关性说话者验证模型280的系统200的例子。系统200包括用户装置210、网络230、服务器240和神经网络250。通常,在模型280分布到用户装置210且用于执行说话者识别之前,经由在服务器240上发生的处理而发生语言无关性说话者验证模型280的训练。这种训练不要求用户装置210连接到网络230。
在训练可以开始之前,服务器240获得一组训练言辞210a和210b。训练言辞可以包括一个或多个话语样品,其每一个分别通过多个不同的训练说话者表达、记录、并存储在服务器240可用的训练言辞资源库中。每一个训练言辞210a、210b可以包括在用户表达训练言辞时形成的音频信号的至少一部分。
为了有助于声音认证,神经网络250可以使用与预定热词对应的训练言辞进行训练,该预定热词可在声音认证期间通过用户装置210的用户表达。训练言辞可以包括来自多个不同用户(其每一个发出不同语言、不同方言、不同口音等的相同热词)的言辞。在一个实施方式中,多组训练数据可以用于用每一个训练数据组训练神经网络250,所述数据组对应于具体语言、方言、口音等的具体关键字言辞。例如,可以用来自多个不同用户(用美国英语表达“Ok Google”)的一组训练言辞和用来自多个不同用户(用英国英语表达“Ok Google”)的一组训练言辞来训练单个神经网络250。在一个实施方式中,可以类似地通过其他训练数据组训练单个神经网络250,所述其他训练数据组包括以不同语言、不同方言、不同口音等表达的“Ok Google”,直到神经网络250已经针对所有已知语言、方言、口音等进行了训练。替换地,单个神经网络250可以类似地通过其他训练数据组训练单个神经网络250,所述其他训练数据组包括以不同语言、不同方言、不同口音等表达的“Ok Google”,直到在将来战基于神经网络250的说话者验证模型的区域中已经针对所语言、方言、口音等训练了神经网络250。如在本文使用的,热词可以是单个词语或包括多个词语的短语。在一些实施方式中,用于每一种语言的热词在模型训练期间是固定的,使得在特定地方使用模型的每一个用户使用相同热词。
对应于表达训练短语的音频信号可以被捕捉和记录。虽然本文提供的对应于预定热词的训练言辞的例子包括“Ok Google”和“你好安卓”,但是本发明并不限于此。替代地,对应于任何语言或任何方言中的任何预定热词的训练言辞可用于训练神经网络250。此外,所构思的是,神经网络250可被容易地训练以适应所有已知的语言、方言、口音等。
在一些情况下,实施训练的说话者会被要求多次发出并记录同一训练短语,以便针对同一训练词语或短语产生多个不同训练言辞。以这种方式,可以使用用多种不同语言、多种不同方言等表达训练词语或短语的多个不同说话者获得训练言辞。一旦训练言辞210a、210b被获得,则系统200可以获得用于每一个训练言辞(其对应于相关训练言辞的声学特征)的相应特征向量212a、212ba。用于每一个训练言辞的相应特征向量例如可以包括N乘1(N-by-1)向量,其是从训练言辞获得的且对应于言辞的声学特征。N乘1向量原则上可以使用单列的N个值来模拟。在一个实施方式中,N乘1向量中的N个值每一个可以包括“0”或“1”的值。
系统200还可以获得多种不同语言ID 215a、215b。语言ID可以包括识别具体语言的数据。在一个实施方式中,语言ID可以包括独热码(one-hot)语言向量。这种独热码语言向量可以包括N乘1向量,其中启用了语言向量的仅一个特征。语言向量的具体特征例如可以通过将特征设定为“1”的值而启用。类似地,对于任何给定的独热码语言向量,独热码语言向量的所有特征将停用。语言向量例的特征如可以通过将特征设定为“0”而停用。
图3是多个独热码语言向量305、310、315、320的原理展示的例子。在每一个独热码语言向量305、310、315、310中,已经启用了仅一个特征,而所有其他特征停用。系统200可以将每一个独热码语言向量305、310、315、320与特定语言相关。例如,系统200可以确定具有所启用的语言向量的第一特征的独热码语言向量(如语言识别向量305的情况)可以与“英语”语言相关。类似地,系统200可以确定具有所启用的语言向量的第二特征的独热码向量310(如语言识别向量310的情况)可以与“汉语”语言相关。语言识别向量315和320以及其他语言之间可以做出相似语言的关联。
可以通过将多组训练数据提供给神经网络250而开始说话者验证模型280的训练。在一个实施方式中,可以使用逐对训练技术训练神经网络250。例如,第一组训练数据213a被输入到神经网络250中,其包括训练言辞向量214a和包括语言ID 215a的第二输入。语言ID 215a例如可以包括独热码语言向量,其识别实施训练的说话者使用的语言或方言,所述说话者提供用于获得训练言辞向量214a的训练言辞210a。神经网络250处理第一组训练数据213a并产生输出260a。随后,第二组训练数据213b被输入到神经网络250中。神经网络250处理第二组训练数据213b并产生输出260b。随后使用比较器270将输出260a、260b进行比较。比较器270分析输出260a、260b,以确定训练向量214a、214b是否是从通过同一说话者表达的训练言辞210a、210b获得的。在一个实施方式中,比较模块440可以通过计算输出260a、260b之间的距离而确定训练向量214a、214b是否是从通过同一说话者表达的训练言辞210a、210b获得的。这种距离例如可以使用余弦相似度来计算。
比较模块的输出272提供训练言辞210a、210b是否通过同一说话者表达的指示。例如在一个实施方式中,输出272可以是二进制值,其包括‘0’或‘1’。在这种实施方式中,‘0’可以指示言辞不是从同一说话者而来的。另一方面,‘1’可以指示言辞是从同一说话者而来的。替换地,输出272可以是映射到二进制值(例如‘0’或‘1’)的值。例如,输出272可以包括表明训练言辞210a、210b是否是通过同一说话者表达的可能性。可以随后基于比较模块270的输出272来调整神经网络250的参数。在一些实施方式中,可以基于输出272自动地调整神经网络250的参数。替换地,在一些实施方式中,可以基于输出272手动地调整神经网络的一个或多个参数。可以以这种方式处理多组训练数据直到两个输出260a、260b的比较一致地表明一对训练向量(例如214a、214b)是否是从通过同一说话者表达的言辞210a、210b获得的。
神经网络250可以包括用于输入多组训练数据的输入层252、用于处理该多组训练数据的多个隐藏层254a、254b、254c和用于提供输出的输出层256。每一个隐藏层254a、254b、254c可以包括一个或多个权重或其他参数。每一个相应隐藏层254a、254b、254c的权重或其他参数可以被调整,使得所训练的神经网络产生与每一组训练数据对应的期望目标向量。每一个隐藏层254a、254b、254c的输出可以产生M乘1启用向量。最后一个隐藏层(例如254c)的输出可以提供到输出层256,其执行所接收的启用向量的额外计算,以便产生神经网络输出。一旦神经网络250到达期望性能水平,则神经网络250可以被指定作为经训练的神经网络。例如,神经网络250可以被训练直到网络250能以小于最大误差率的水平在不同说话者的话语之间进行区分,并识别同一说话者话语之间的匹配。
例如213a这样的包括训练言辞向量214a和语言ID 215a的一组训练数据可以以各种不同方式在被作为训练输入提供神经网络250之前被预处理。例如,训练言辞向量214a和语言ID 215a(例如独热码语言向量)可以结合。在这种情况下,在训练期间,经结合的向量可以作为输入提供到神经网络250。替换地,系统200可以通过将至少两个其他神经网络(其基于每一个相应神经网络对训练言辞向量214a、独热码语言向量或训练言辞向量214a和独热码语言向量的处理而已经分别产生了输出)的输出结合而产生对神经网络250的输入。在这种情况下,两个或更多其他神经网络的经结合的输出可以用于训练神经网络250。替换地,系统200可以基于训练言辞向量214a和独热码语言向量的加权和来产生输入向量。可使用基于训练言辞向量214a和独热码语言向量产生一组训练数据的其他方法。
一旦神经网络250被指定为经训练的,且用于产生说话者验证模型280,则可以获得神经网络250的一部分258。神经网络250的所获得部分258可以包括神经网络250的输入层252和神经网络254a的一个或多个隐藏层。但是,在一些实施方式中,神经网络250的所获得部分不包括输出层256。一旦经训练,则神经网络250能产生启用向量作为获得部分258的最后隐藏层的输出,其可被用作说话者的声纹。声纹可以被用户装置使用,以验证将热词的言辞提供给用户装置的人的身份。
服务器240将说话者验证模型280的副本通过网络230传递到如用户装置210这样的一个或多个相应用户装置。说话者验证模型280的副本随后被存储在每一个相应用户装置110上,且可有助于语言无关性说话者身份验证。作为另一例子,说话者验证模型280可以预安装在用户装置210上,例如用户装置210的操作系统。
图4是执行语言无关性说话者身份验证的系统400的例子。系统400包括用户装置210、说话者验证模型280、比较模块440、和验证模块450。
在如图4所示的例子中,用户402试图使用声音验证来访问用户装置210。用户装置210已经在之前接收并存储了经由网络230通过服务器240提供的说话者验证模型280。为了使用声音验证来访问用户装置210,用户402表达预定热词410a或短语,例如“Ok Google。”。对应于预定热词410a或短语“Ok Google”的音频410b被用户装置210的麦克风211检测。用户装置410b可以从与音频410b的声学特征对应的音频410b获得413声学特征向量。
此外,系统400可以获得存储在用户装置210的语言ID存储区域中的语言ID 415。语言ID可以包括识别与用户相关的具体语言或方言的数据。在一个实施方式中,语言ID可以包括独热码(one-hot)语言向量。存储在任何具体用户装置210上的语言ID 415可以以任何多种不同方式从与已知语言和方言对应的多组不同语言ID设置为具体语言ID。例如,用户可以在购买用户装置210之后首次打开并配置用户装置210时选择具体的语言或方言。基于通过用户选择的具体语言或方言,相应语言ID可以被选择并存储在用户装置210中。
替换地或额外地,基于装置的位置,具体语言ID可以被选择且存储在用户装置210中。例如,用户装置210可以基于装置被首次启用的地方、装置的当前位置等建立用于语言ID的默认设定。替换地或额外地,用户装置210可以基于从用户获得的话语样品动态检测与用户相关的具体语言或方言。与用户相关的具体语言或方言的动态检测可以例如在说话者认证期间在用户表达预定热词时确定。在这种情况下,基于从用户的话语样品检测的语言或方言,相应语言ID可以被选择并存储在用户装置210上。替换地或额外地,用户可以修改与用户装置210相关的语言或方言设定,以便在任何时候选择具体语言或方言。在这种情况下,基于用户对用户装置210的语言或方言设定的修改,相应语言ID可以被选择并存储在用户装置210上。
声学特征向量414和语言ID 415可以作为输入提供到基于经训练神经网络250的至少一部分的话语验证模型280。例如,话语验证模型280可以包括一个或多个层经训练神经网络250,例如输入层252和一个或多个隐藏层254a、254b、254。但是,在一个实施方式中,话语验证模型280未利用神经网络250的输出层256。
声学特征向量414和语言ID 415可以以各种不同方式作为输入提供到话语验证模型280。例如,例如独热码语言向量这样的声学特征向量414和语言ID 415可以结合。在这种情况下,经结合的向量可以作为输入提供到话语验证模型。替换地,系统400可以将至少两个其他神经网络(其已经分别基于每一个相应神经网络对声学特征向量414、语言ID 415(例如独热码语言向量)或声学特征向量414和语言ID 415二者的处理而产生输出)的输出结合。在这种情况下,两个或更多其他神经网络的经结合的输出可以被提供到话语验证模型280。替换地,系统400可以基于声学特征向量414和被用作语言ID 415的独热码语言向量的加权之和而产生输入向量。可使用基于声学特征向量414和语言ID 415产生对话语验证模型280的输入数据的其他方法。
话语验证模型280基于声学特征向量414和语言ID 415对所提供输入数据的处理可以实现在话语验证模型280的神经网络的一个或多个隐藏层处产生一组启用。例如,话语验证模型280对所提供输入的处理可实现在第一隐藏层254a、第二隐藏层255b、第三隐藏层254c等处产生的一组启用。在一个实施方式中,系统400可以获得通过话语验证模型的280神经网络的最终隐藏层254c输出的启用。通过最终隐藏层254c输出的启用可以用于产生说话者向量420。该说话者向量420提供表示用户声音特点的表示。该说话者向量可以被称为声纹。声纹可用于基于用户的声音特点唯一地验证说话者的身份。
比较模块440可以配置为接收说话者向量420和参考向量430。参考向量430可以是已经从通过装置捕捉的之前的用户言辞(用户用该装置进行登记期间提供的言辞)获得的向量。例如,在用户402使用声音认证而使用系统400以解锁用户装置210之前的某一时间点,用户402可以一次多次地表达例如“Ok Google”这样的短语。用户装置210可被配置为使用麦克风211以捕捉对应于用户言辞的音频信号。用户装置210可随后从与在用户402使用声音认证而使用系统400以解锁用户装置210之前的某一时间点所表达短语中的至少一个对应的音频信号获得参考特征向量430。参考向量430可以提供用户402声音的特点的基线表示,所产生的声纹可与之比较。在一个实施方式中,参考向量430可以基于预定热词的用户402言辞产生,其可在声音授权期间被表达以解锁电话。
比较模块440可以说话者向量420和参考向量430之间的相似性。在一个实施方式中,比较模块440可计算说话者向量420和参考向量430之间的相似性度量。在一些情况下,比较模块440可确定说话者向量420和参考向量430之间的相似性度量是否超过预定临界值。在相似性度量超过预定临界值的情况下,比较模块440可以向验证模块450提供输出数据,其表明相似性度量超过预定临界值。替换地,比较模块440可以确定相似性度量未超过预定临界值。在这种情况下,比较模块440可以向验证模块450提供输出数据,其表明相似性度量未超过预定临界值。
在一些实施方式中,可以基于说话者向量420和参考向量430之间的距离计算说话者向量420和参考向量430的相似性度量。比较模块440可以配置为确定说话者向量420和参考向量430之间的距离。在一个实施方式中,可以例如使用余弦函数确定说话者向量420和参考向量430之间的距离。余弦函数可通过测量两个向量之间角度来确定说话者向量420和参考向量430之间的距离。
验证模块450接收并解译验证模块450从比较模块440接收的输出数据。基于从比较模块440接收的输出数据,验证模块可以确定表达出短语410a(从该短语获得说话者向量420)的用户402是否是之前表达出该短语(从该短语获得参考向量430)的同一用户。如果确定表达出短语410a(从该短语获得说话者向量420)的用户402是之前表达出该短语(从该短语获得参考向量430)的同一用户,则验证模块450可以指示在用户装置210上执行的应用程序提供用户402对装置420的访问。替换地或额外地,在确定表达出短语410a(从该短语获得说话者向量420)的用户402是之前表达出该短语(从该短语获得参考向量430)的同一用户时,验证模块450可以提供对装置上的具体资源的访问、解锁装置、从低电量状态唤醒装置等。
如果从比较模块440而来的输出数据表明相似性度量超过预定临界值,则验证模块450可以基于从比较模块440而来的输出数据确定表达出短语410a(从该短语获得说话者向量420)的用户402是否是之前表达出该短语(从该短语获得参考向量430)的同一用户。在这种情况下,验证模块可以确定用户被完全认证和授权以能使用用户装置210。替换地,验证模块450可以基于从比较模块440而来的输出数据确定验证模块450不能得到表达出短语410a的用户402与表达出参考向量430的用户是同一用户的结论。在这种情况下,用户402未被认证,且不允许访问装置。替代地,系统400、用户装置210、一个或多个其他应用或其组合可以提供用于访问用户装置210的替换方案。例如,用户装置210可以提示用户402输入密码。
在通过确定表达出短语410a的用户402与表达出短语(从该短语获得参考向量430)的用户是同一用户而认证了用户402时,用户装置210解锁且可以向用户输出消息460,表明“说话者的身份已验证。”。该消息可以是显示在用户装置210的图形用户界面上的文本消息、通过用户装置210的扬声器输出的音频消息、在用户装置210的图形用户界面上显示的视频消息、或上述类型消息中的一种或多种的组合。
图5是用于执行语言无关性说话者身份验证的过程500的流程图。为了方便,过程500将被描述为被一系统执行。例如,如上所述的系统400可执行过程500以认证试图访问用户装置210的用户。
过程500可以在用户装置210从装置接收用户执行声音认证的请求(510)时开始。在一些实施方式中,用户必须选择用户装置上的按钮、执行用户装置用户界面上的姿势、在用户装置相机的视野内执行姿势等,以便指示电话开始用户的声音认证。在这种情况下,在接收到开始声音认证的指示之后,用户可以以可用于验证用户身份的任何语言或方言表达预定热词。替换地或额外地,用户装置210可以使用麦克风以任何语言或方言(其可以用于开始用户的声音认证)被动地“听”,以用于检测预定表达热词。预定热词例如可以包括“Hello Phone”、“Ok Google”、“你好安卓”等。在一些实施方式中,针对说具体语言的所有用户或具体地方的所有用户存在单个固定热词。
在系统400获得通过用户装置210的用户输入的言辞时,过程可在520继续。言辞例如可以包括语言或方言(其可以用于开始用户的声音认证)中的预定热词。系统400可以从与所获得言辞对应的音频信号获得声学特征向量。
系统400可确定与用户装置210相关的语言识别符(530)。语言识别符可以包括识别与用户相关的具体语言或方言的数据。在一个实施方式中,语言识别符可以包括独热码语言向量。存储在任何具体用户装置210上的语言识别符可以以任何多种不同方式设置为从多个不同语言标识的池(其对应于已知语言和方言)而来的具体语言识别符,例如如上所述。然而,本说明书的主题并不限于目前已知的语言或方言。例如,说话者验证模型可被训练以适应新的语言、方言或口音。在说话者验证模型被再训练时,语言或地方和标识符之间的映射可被调整,例如增加新的地方或语言。
系统400可以基于声学特征向量和语言识别符将输入数据提供到说话者验证模型(540)。可以以各种不同方式将输入提供到说话者验证模型。例如,声学特征向量和语言识别符(例如独热码语言向量)可以结合。在这种情况下,经结合的向量可以作为输入提供到话语验证模型。替换地,系统400可以将至少两个其他神经网络(其已经分别基于每一个相应神经网络对声学特征向量、语言识别符(例如独热码语言向量)或声学特征向量414和语言识别符二者的处理而产生输出)的输出结合。在这种情况下,两个或更多其他神经网络的经结合的输出可以被提供到话语验证模型。替换地,系统400可以基于声学特征向量和被用作语言识别符的独热码语言向量的加权之和而产生输入向量。可以使用基于声学特征向量和语言识别符产生对话语验证模型280的输入数据的其他方法。
系统400可以基于在540提供的输入而产生说话者展示。例如,说话者验证模型可以包括神经网络,其处理在540提供的输入并在一个或多个隐藏层处产生一组启用。可以随后从获得自神经网络的至少一个隐藏层的特定一组启用说话者展示。在一个实施方式中,启用可以从神经网络的最后隐藏层获得。说话者展示可以包括特征向量,其表示用户声音的特点。
在560,系统400可以确定在步骤520获得的言辞的说话者是否可访问用户装置210。可以例如基于说话者展示与参考展示的比较做出这种确定。参考可以是一种特征向量,其是从用户要求使用声音认证访问用户装置之前的某一时间点输入到用户装置210中的用户言辞获得的。说话者展示与参考展示的比较可实现相似性度量的确定,其表明说话者展示和参考展示之间的相似性。相似性度量可以包括说话者展示和参考展示之间的距离。在一个实施方式中,可以使用余弦函数计算该距离。如果确定相似性度量超过预定临界值,则系统400可以确定为用户提供对用户装置210的访问(570)。
本说明书中所述的主题、功能操作和过程的实施例可在数字电子电路、确实实施的计算机软件或固件、计算机硬件、包括本说明书公开的结构和其等效结构,或其一个或多个组合中实施。本说明书所述的主题的实施例可实施为一个或多个计算机程序,即在实体永久程序载体上编码的计算机程序指令的一个或多个模块,其用于通过数据处理设备执行或用于控制数据处理设备的操作。替换地或额外地,程序指令可被编码在人工产生的传播信号上,例如机器产生的电、光或电磁信号,其被产生以对信息进行编码,用于传递到合适的接收设备,用于被数据处理设备执行。计算机存储介质可以是机器可读的存储装置、机器可读的存储基板、随机或串行访问存储装置或它们中的一个或多个的组合。
术语“数据处理设备”涵盖用于处理数据的所有类型的设备、装置和机器,例如包括可编程处理器、计算机或多个处理器或计算机。设备可包括特殊目的逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(现场可编程门阵列)。除了硬件,设备还可包括形成相关计算机程序的执行环境的代码,例如构成处理器固件的构成,协议堆栈,数据库管理系统,操作系统,或它们中的一个或多个的组合。
计算机程序(其还可以被称为或描述为程序、软件、软件应用、模块、软件模块、脚本、或代码)可以以任何形式的编程语言编写,包括编译或解译语言,或陈述句语言或程序语言,且其可以以任何形式开发,包括作为独立程序或作为模块,部件,子程序,或适用于计算环境的其他单元。计算机程序可以但不是必须对应于文件系统中的文件。程序可被存储在具有其他程序或数据的文件(例如存储在标记语言文件中的一个或多个脚本)的一部分中,存储在相关程序专用的单个文件中,或存储在多个协调文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被开发为在一个位置或通过通信网络互连且跨经多个位置分布的一个计算机上或多个计算机上执行。
本说明书中描述的过程和逻辑流程可被一个或多个可编程计算机执行,所述一个或多个可编程计算机执行一个或多个计算机程序,以通过在输入数据上运行并产生输出而执行功能。过程和逻辑流程还可通过特殊目的逻辑电路执行,且设备还可实施为特殊目的逻辑电路,例如例如FPGA(现场可编程门阵列)或ASIC(现场可编程门阵列)。
计算机适用于执行计算机程序,例如包括,可基于通常或特殊目的微处理器或两者,或基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机访问存储器或两者接收指令和数据。计算机的关键元件是中央处理单元,其用于执行指令和用于存储指令和数据的一个或多个存储器装置。通常,计算机还将包括用于存储数据的一个或多个大容量存储装置,或操作性地联接以从所述存储装置接收数据或向其传输数据或两种情况都有,其例如是磁盘、磁性光盘、或光盘。然而,计算机不是必须具有这种装置。而且,计算机可嵌入另一装置中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器、或便携存储装置(例如通用串行总线(USB)闪存驱动器),仅举几例。
适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的永久存储器、介质和存储器装置,例如包括半导体存储器装置,例如EPROM、EEPROM和闪速存储器装置;磁性盘,例如内部硬盘或可拆卸盘;磁性光盘;和CD ROM和DVD-ROM盘。处理器和存储器可以通过特殊目的逻辑电路补充或并入该电路。
为了提供与用户的互动,本说明书所述的主题的实施例可在计算机上实施,所述计算机具有用于为用户显示信息的显示装置(例如CRT(阴极射线管)或LCD(液晶显示器)监视器、键盘和点击装置(例如鼠标或追踪球),通过其用户可向计算机提供输入。其他类型的装置可也用于提供与用户的互动;例如,提供给用户的反馈可是任何形式的传感反馈(例如视觉反馈、听觉反馈或触觉反馈);和从用户而来的输入可以以任何形式接收,包括声音、语音或触觉输入。此外,计算机可通过将文档发送到被用户使用的装置和从该装置接收文档而与用户互动;例如,通过响应于从网络浏览器接收的请求而将网页发送到用户的用户装置上的网络浏览器。
本说明书所述的主题的实施例可实施在计算系统中,所述计算系统包括后端部件例如数据服务器),或包括中间件部件(例如应用服务器),或包括前端部件(例如客户计算机,其具有图形用户界面或网络浏览器,通过其用户可与本说明书所述的主题的实施方式互动),或包括这种后端、中间件或前端部件的任何组合。系统的部件可通过数字数据通信的任何形式或介质(例如通信网络)互连。通信网络的例子包括局部区域网络(“LAN”)、宽区域网络(“WAN”),例如因特网。
计算系统可包括客户端和服务器。客户端和服务器通常彼此远离且通常通过通信网络互动。客户端和服务器的关系通过运行在相应计算机上的计算机程序产生且彼此具有客户端-服务器关系。
尽管本说明书含有许多具体实施方式的细节,但是不应理解为是要求保护的范围的限制,而是应理解为是对具体实施例专有的特征的描述。在分开的实施例的情况下在本说明书中所述的一定特征还可在单个实施例中以组合方式实施。相反,在单个的情况下所述的各种特征也可在多个分开的实施例中或以任何合适的子组合进行实施。而且,虽然特征在上文被描述为具有一定的组合设置和最初也被如此限定,但是,所限定的组合的一个或多个特征可在一些情况下从组合去除,且所限定的组合可涉及子组合或子组合的变化。
类似地,尽管以具体顺序在附图中显示了操作步骤,但是不应理解是要求这种操作步骤以这种所示特定的顺序或相继的顺序执行,或必须执行所有所示操作步骤,才能实现期望效果。在某些情况下,多任务处理和并行处理可以是有利的。而且,如上所述实施例中各种系统部件的分离不应该理解为在所有实施例中都需要这种分离,且应理解所述程序部件和系统可通常在单个软件产品中整合在一起或封装到多个软件产品中。
已经描述了主题的具体实施例。其他实施例落入之后权利要求的范围中。例如,权利要求中所述的动作可以按不同顺序执行且仍然能实现期望的结果。作为一个例子,附随的附图中显示的过程不是必需按照所示的特定顺序或连续顺序才能实现期望结果。在某些实施方式中,多任务处理和并行处理可以是有利的。可以设置其他步骤,或可以从所述过程中取消一些步骤。因而,其他实施方式在权利要求的范围内。