本文涉及但不限于生物安全动态认证技术领域,尤指一种身份认证的方法和装置。
背景技术:
随着互联网信息技术的不断发展,网上业务、电子商务等日益繁荣,人们与计算机网络的联系越来越紧密,各种网络安全威胁也随之而来,保护用户个人信息成为人们急需解决的问题。动态声纹密码识别技术结合了说话人识别和语音识别两重身份认证技术,从而可以有效地防止了录音攻击,极大地增强了系统的安全性。通常,在接收到用户含有密码的语音后,系统首先对声纹和动态密码分别计算得分,然后分别比较两种得分与阈值大小,或者将两种得分融合后判断其与综合阈值的大小,若大于事先设定的阈值,则请求人进入被保护系统,否则,拒绝其进入。但在实际应用时,受环境的影响,说话人声纹匹配分数分布和文本匹配分数分布往往各不相同,而仅仅利用预先设定的阈值来判断则有失准确性。
技术实现要素:
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供一种身份认证的方法,包括:
获取输入语音的语音特征,将所述语音特征与预存的目标声纹模型进行匹配,得到声纹匹配分数;
根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元以及初始语音切分单元的个数,如所述初始语音切分单元的个数小于第一阈值,则判定所述输入语音为非法语音;如所述初始语音切分单元的个数大于或等于第一阈值,则对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同;
将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数;
根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的概率神经网络pnn分类器进行身份认证。
可选地,所述pnn分类器是通过以下方式进行训练的:
将目标语音与所述目标文本模型和目标声纹模型进行匹配分别得到第一文本打分和第一声纹打分,将所述第一文本打分和第一声纹打分组合成为所述判决分类器的接受特征信息;
将非目标语音与所述目标文本模型和目标声纹模型进行匹配分别得到第二文本打分和第二声纹打分,将所述第二文本打分和第二声纹打分组合成为所述判决分类器的拒绝特征信息;
根据所述接受特征信息和所述拒绝特征信息对所述pnn分类器进行训练。
可选地,在根据所述接受特征信息和所述拒绝特征信息对所述pnn分类器进行训练之前,还包括对所述目标语音和所述非目标语音的声纹打分和文本打分进行得分规整,包括:
依次选取所述目标文本模型,取非目标文本的语音特征与对应的所述目标文本模型匹配,得到冒认文本打分,获取所述目标文本模型对应的冒认文本打分的均值及标准差;
将所述第一文本打分和所述第二文本打分分别减去对应的所述冒认文本打分的均值且除以所述标准差,分别得到规整后的文本打分;
合并规整后的第一文本打分和所述第一声纹打分,获取每一目标文本对 应的最大值和最小值;利用该最大值和最小值将规整后的第一文本打分和所述第一声纹打分进行归一化,作为所述pnn分类器的接受特征信息;
合并规整后的第二文本打分和所述第二声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第二文本打分和所述第二声纹打分进行归一化,作为所述pnn分类器的拒绝特征信息。
可选地,所述根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元,包括:
根据目标密码中的目标文本序列,将对应的目标文本隐马尔可夫模型hmm组合成第一复合hmm;
将所述语音特征作为所述第一复合hmm的输入进行维特比解码,得到第一状态输出序列,将所述第一状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为初始切分点;
依次选取所述相邻两个初始切分点作为区间起止点,在所述区间内,以指定帧为单位计算平均能量,寻找平均能量连续指定次增大的点,并将开始增大的点作为新的初始切分点,由所述初始切分点分割成的所述初始切分单元。
可选地,将对应的目标文本hmm组合成第一复合hmm,包括:
所述第一复合hmm的状态数为单个目标文本hmm的状态数总和;所述第一复合hmm的每个状态的高斯混合模型参数与所述单个目标文本hmm模型每个状态的高斯混合模型参数相同;
将所述单个目标文本hmm的状态转移矩阵中的最后一个状态自身转移概率设为0,转移到下一个状态的状态转移概率设为1;所述目标文本的最后一个单个目标文本hmm的状态转移概率矩阵不作改变;
将所述单个目标文本hmm的状态转移概率矩阵按照所述目标文本的单个目标文本排列顺序合并,得到所述复合hmm的状态转移概率矩阵。
可选地,所述对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:
选择特征段最长的所述初始切分单元进行强制切分,使得强制切分后的所有切分单元的总个数与预设的目标文本的个数相同。
可选地,所述对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:
按照所述初始切分单元的长度从大到小的顺序开始强制拆分,每次将一个所述初始切分单元平均切分成两个段,直至切分后的切分单元总个数等于所述目标文本的个数为止;
若强制切分的次数大于等于第二阈值,则强制切分结束;若强制切分的次数小于所述第二阈值,则将当前每个切分单元分别与每个目标文本隐马尔可夫模型hmm进行匹配打分,分别选定最高打分对应的所述目标文本hmm,将所选定的所述目标文本hmm组合成第二复合hmm;将所述语音特征作为所述第二复合hmm的输入进行维特比解码,得到第二状态输出序列,将所述第二状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为切分点,由该切分点对所述语音特征分割得到的不同单元为所述切分单元,若当前的所述切分单元个数小于第三阈值,则将当前切分后的切分单元作为所述初始切分单元继续进行强制切分,当前的所述切分单元个数大于或小于所述第三阈值,则强制切分结束。
可选地,所述将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数,包括:
将每个所述切分单元的语音特征作为每个目标文本隐马尔可夫模型hmm的输入,将根据维特比算法获得的输出概率作为对应的切分单元文本匹配分数。
可选地,所述根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的判决分类器进行身份认证,包括:
取每个所述切分单元对应的所述切分单元文本匹配分数中m个最高分数对应的文本作为待选文本,若所述待选文本中包含所述切分单元对应的目标文本,则所述切分单元认证通过,计算通过的切分单元的总数,若通过的 切分单元总数小于或等于第四阈值,则文本认证不通过,身份认证不通过;若通过的切分单元总数大于所述第四阈值,则所述输入语音的文本认证通过;
判断所述声纹匹配分数是否大于第五阈值,如是,则声纹认证通过,身份认证通过;如不是,则将每个所述切分单元与对应目标文本模型的文本打分以及所述声纹匹配分数进行得分规整,将规整后的打分作为所述判决分类器的输入进行身份认证。
本发明实施例还提供了一种身份认证的装置,包括概率神经网络pnn分类器,包括:
声纹匹配模块,设置为获取输入语音的语音特征,将所述语音特征与预存的目标声纹模型进行匹配,得到声纹匹配分数;
切分模块,设置为根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元以及初始语音切分单元的个数,如所述初始语音切分单元的个数小于阈值,则判定所述输入语音为非法语音;如所述初始语音切分单元的个数大于或等于第一阈值,则对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同;
文本匹配模块,设置为将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数;
认证模块,设置为根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的所述pnn分类器进行身份认证。
可选地,所述装置还包括处理模块,
所述声纹匹配模块,是设置为将目标语音与目标声纹模型进行匹配得到第一声纹打分,将非目标语音与所述目标声纹模型进行匹配得到第二声纹打分;
所述文本匹配模块,是设置为将所述目标语音与所述目标文本模型进行匹配得到第一文本打分,将所述非目标语音与所述目标文本模型进行匹配得到第二文本打分;
所述处理模块,设置为将所述第一文本打分和第一声纹打分组合成为所述pnn分类器的接受特征信息,将所述第二文本打分和第二声纹打分组合成为所述pnn分类器的拒绝特征信息;
所述pnn分类器,根据所述接受特征信息和所述拒绝特征信息进行训练。
可选地,所述处理模块,还设置为依次选取所述目标文本模型,取非目标文本的语音特征与对应的所述目标文本模型匹配,得到冒认文本打分,获取所述目标文本模型对应的冒认文本打分的均值及标准差;将所述第一文本打分和所述第二文本打分分别减去对应的所述冒认文本打分的均值且除以所述标准差,分别得到规整后的文本打分;合并规整后的第一文本打分和所述第一声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第一文本打分和所述第一声纹打分进行归一化,作为所述pnn分类器的接受特征信息;合并规整后的第二文本打分和所述第二声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第二文本打分和所述第二声纹打分进行归一化,作为所述pnn分类器的拒绝特征信息。
可选地,所述切分模块,根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元,包括:根据目标密码中的目标文本序列,将对应的目标文本隐马尔可夫模型hmm组合成第一复合hmm;将所述语音特征作为所述第一复合hmm的输入进行维特比解码,得到第一状态输出序列,将所述第一状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为初始切分点;依次选取所述相邻两个初始切分点作为区间起止点,在所述区间内,以指定帧为单位计算平均能量,寻找平均能量连续指定次增大的点,并将开始增大的点作为新的初始切分点,由所述初始切分点分割成的所述初始切分单元。
可选地,所述切分模块,将对应的目标文本hmm组合成第一复合hmm,包括:所述第一复合hmm的状态数为单个目标文本hmm的状态数总和;所述第一复合hmm的每个状态具有的高斯混合模型参数与所述单个目标文本hmm的每个状态具有的高斯混合模型参数相同;将所述单个目标文本 hmm的状态转移矩阵中的最后一个状态自身转移概率设为0,转移到下一个状态的状态转移概率设为1;所述目标文本的最后一个单个目标文本hmm的状态转移概率矩阵不作改变;将所述单个目标文本hmm的状态转移概率矩阵按照所述目标文本的单个目标文本排列顺序合并,得到所述复合hmm的状态转移概率矩阵。
可选地,所述切分模块,对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:选择特征段最长的所述初始切分单元进行强制切分,使得强制切分后的所有切分单元的总个数与预设的目标文本的个数相同。
可选地,所述切分模块,对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:按照所述初始切分单元的长度从大到小的顺序开始拆分,每次将一个所述初始切分单元平均切分成两个段,直至切分后的单元总个数等于所述目标文本的个数为止;若强制切分的次数大于等于第二阈值,则强制切分结束;若强制切分的次数小于所述第二阈值,则将当前每个切分的单元分别与每个目标文本隐马尔可夫模型hmm进行匹配打分,分别选定最高打分对应的所述目标文本hmm,将所选定的所述目标文本hmm组合成第二复合hmm;将所述语音特征作为所述第二复合hmm的输入进行维特比解码,得到第二状态输出序列,将所述第二状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为切分点,由该切分点对所述语音特征分割得到的不同单元为所述切分单元,若当前的所述切分单元个数小于第三阈值,则将当前切分后的切分单元作为所述初始切分单元继续进行强制切分,若当前的所述切分单元个数大于或等于第三阈值,则强制切分结束。
可选地,所述文本匹配模块,将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数,包括:将每个所述切分单元的语音特征作为每个目标文本隐马尔可夫模型hmm的输入,将根据维特比算法获得的输出概率作为对应的切分单元文本匹配分数。
可选地,所述认证模块,根据所述切分单元文本匹配分数、所述声纹匹 配分数和预先训练的判决分类器进行身份认证,包括:取每个所述切分单元对应的所述切分单元文本匹配分数中m个最高分数对应的文本作为待选文本,若所述待选文本中包含所述切分单元对应的目标文本,则所述切分单元认证通过,计算通过的切分单元的总数,若通过的切分单元总数小于或等于第四阈值,则文本认证不通过,身份认证不通过;若通过的切分单元总数大于所述第四阈值,则所述输入语音的文本认证通过;判断所述声纹匹配分数是否大于第五阈值,如是,则声纹认证通过,身份认证通过;如不是,则将每个所述切分单元与对应目标文本模型的文本打分以及所述声纹匹配分数进行得分规整,将规整后的打分作为所述pnn分类器的输入进行身份认证。
本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于上述的一种身份认证的方法。
综上,本发明实施例提供一种身份认证的方法及装置,将声纹与动态密码认证两者相结合,实现了对用户进行双重验证的目的,提高了系统的安全性、可靠性和准确性。
附图说明
图1是本发明实施例提供的一种身份认证的方法的流程图;
图2是本发明实施例的训练pnn分类器的方法的流程图;
图3是本发明实施例一的一种身份认证的方法的流程图;
图4是本发明实施例一的语音信号初始切分的方法的流程图;
图5是本发明实施例一的声纹与文本初步认证的方法的流程图;
图6是本发明实施例一的得分规整的方法的流程图;
图7是本发明实施例二的一种身份认证的方法的流程图;
图8是本发明实施例二的语音信号初始切分的方法的流程图;
图9为本发明实施例的一种身份认证的装置的示意图。
具体实施方式
下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
图1是本发明实施例提供的一种身份认证的方法的流程图,如图1所示,本实施例的方法包括以下步骤:
步骤11、获取输入语音的语音特征,将所述语音特征与预存的目标声纹模型进行匹配,得到声纹匹配分数;
步骤12、根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元以及初始语音切分单元的个数,如所述初始语音切分单元的个数小于阈值,则判定所述输入语音为非法语音,结束流程;如所述初始语音切分单元的个数大于或等于第一阈值,则对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同;
步骤13、将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数;
步骤14、根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的pnn(probabilisticneuralnetworks,概率神经网络)分类器进行身份认证。
本发明实施例提供的一种身份认证方法,将声纹与动态密码认证两者相结合,实现了对用户进行双重验证的目的,提高了系统的安全性、可靠性和准确性。
本实施例中,需要预先对pnn分类器进行训练,根据已有的语音获取目标文本模型和目标声纹模型;将已有语音与所述目标文本模型和目标声纹模型进行匹配得到文本打分和声纹打分,根据所述声纹打分和文本打分组合成接受特征信息和拒绝特征信息,将所述信息接受特征和所述拒绝特征信息作为综合pnn判决分类器的输入进行训练,得到最终的综合判决分类器;实现方式如下:
将目标语音与所述目标文本模型和目标声纹模型进行匹配分别得到第一文本打分和第一声纹打分,将所述第一文本打分和第一声纹打分组合成为所述判决分类器的接受特征信息;
将非目标语音与所述目标文本模型和目标声纹模型进行匹配分别得到第二文本打分和第二声纹打分,将所述第二文本打分和第二声纹打分组合成为所述判决分类器的拒绝特征信息;
根据所述接受特征信息和所述拒绝特征信息对所述pnn分类器进行训练。
所述目标语音为所述目标话者读取所述目标文本的语音,所述非目标语音为所述目标话者读取非目标文本的语音以及非目标话者的语音。
可选地,在训练所述综合分类器之前对所述声纹打分和文本打分进行得分规整,例如包括以下步骤:
a.依次选取目标文本模型,取非目标文本语音特征与该目标文本模型匹配,得到冒认文本打分;
b.求所述目标文本模型对应的所述冒认文本打分均值及标准差;
c.将所述第一文本打分和所述第二文本打分分别减去对应的所述冒认文本打分的均值且除以所述标准差,分别得到规整后的文本打分;
d.合并所述声纹打分和规整后的文本打分,求得每一目标文本对应的最大值和最小值,利用步骤d中的所述最大值和最小值将所述声纹打分和文本打分进行归一化;例如:
合并规整后的第一文本打分和所述第一声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第一文本打分和所述第一声纹打分进行归一化,作为所述pnn分类器的接受特征信息;
合并规整后的第二文本打分和所述第二声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第二文本打分和所述第二声纹打分进行归一化,作为所述pnn分类器的拒绝特征信息。
本实施例中为方便描述,做以下定义:
目标文本:事先选定作为备选密码的文本,如0~9数字;
目标话者:系统受信任的话者,在声纹认证时需要让其通过的话者;
冒认话者:系统非受信任话者,在声纹认证时需要拒绝其进入的话者;
目标密码:系统受信任的目标文本组合,在文本认证时需要让其通过;
冒认密码:系统不受信任的文本组合,在文本认证时需要拒绝其进入的文本。
系统进行认证之前,需要选择目标文本集,并针对目标文本集中的每个目标文本进行训练,得到目标文本模型集。以下实施例目标文本集选择为:0~9十个数字,目标模型集由0~9十个数字训练出来的模型组成,目标模型种类可以为hmm(hiddenmarkovmodel,隐马尔可夫模型)。为方便描述,动态密码均由0~9十个数字中的8个组成,即系统选择8个目标文本,作为目标密码。同时在系统进行认证之前,需要注册目标话者的声纹信息,通过训练生成声纹模型,并通过声纹模型和目标模型训练综合判决分类器,如图2所示包括如下步骤:
步骤001:训练目标文本模型:使用0~9的数字录音训练单个数字的hmm,每个数字的模型称为目标文本模型,训练方法可使用现有的训练方法;
hmm是一个双重随机过程,一个过程用来描述短时平稳信号的时变性,另一个过程用来描述hmm模型的状态数与特征序列之间的对应关系。两个过程相互作用,不仅能够描述语音信号的动态特性,而且可以解决短时平稳信号之间的过渡问题。
步骤002:注册目标话者声纹模型:系统在使用之前,事先注册目标话者声纹模型,目标话者即为系统受信任的话者,在认证时需要让其通过;
步骤003:求接受特征:使用目标话者的目标文本对应的语音与其对应的hmm进行匹配,得到目标文本接受打分;使用目标话者的目标文本对应的语音与目标话者声纹模型进行打分,得到目标话者声纹接受打分;一系列的目标话者声纹接受打分和目标文本接受打分组成综合分类器的接受特征, 对应综合分类器输出为1;
步骤004:求拒绝特征:使用目标文本对应的语音与非对应的hmm模型进行匹配,得到冒认文本的拒绝打分;使用冒认话者与目标声纹模型进行打分,得到冒认声纹拒绝打分,由一系列的冒认文本拒绝打分和冒认声纹拒绝打分组成综合分类器的拒绝特征,对应综合分类器输出为0;
步骤005:训练分类器:合并综合分类器的接受特征和拒绝特征,将合并后的特征进行得分规整(详见步骤109)后作为分类器的训练输入,根据现有训练算法(如梯度下降算法)可得到综合分类器。
实施例一:
如图3所示,包括以下步骤:
步骤101、预处理:根据短时能量和短时过零率,对用户输入的测试语音进行预处理,去掉语音中的非语音段;
步骤102、特征参数提取:对预处理后的测试语音进行特征参数提取,该系统可以采用12维梅尔频域倒谱系数(melfrequencycepstrumcoefficient,简称mfcc)和其一阶差分系数作为特征参数,共24维;
步骤103、计算声纹匹配分数:将测试语音特征与目标话者的声纹模型进行匹配,得到声纹匹配分数;
步骤104、对语音特征初始切分:通过对测试语音特征的初始切分,获得初始切分单元以及初始切分单元个数。
本实施例中,根据目标密码中的目标文本序列,将对应的目标文本hmm组合成复合hmm;
将所述语音特征作为所述复合hmm的输入进行viterbi(维特比)解码,得到第一状态输出序列,将所述第一状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为初始切分点;
依次选取所述相邻两个初始切分点作为区间起止点,在所述区间内,以指定帧为单位计算平均能量,寻找平均能量连续指定次增大的点,并将开始增大的点作为新的初始切分点,否则,不更新初始切分点,由所述初始切分 点分割成的所述初始切分单元。
其中,所述复合hmm的状态数为单个目标文本hmm的状态数总和;所述复合hmm的每个状态具有的高斯混合模型参数与所述单个目标文本hmm的每个状态具有的高斯混合模型参数相同,
将所述单个目标文本hmm的状态转移矩阵中的最后一个状态自身转移概率设为0,转移到下一个状态的状态转移概率设为1;所述目标文本的最后一个单个目标文本hmm的状态转移概率矩阵不作改变;
将所述单个目标文本hmm的状态转移概率矩阵按照所述目标文本的单个目标文本排列顺序合并,得到所述复合hmm的状态转移概率矩阵。
对语音特征初始切分的方法如图4所示,包括步骤如下:
步骤104a、复合hmm模型的组合:按照目标密码中目标文本序列,将对应的单个目标文本hmm组合为复合hmm模型。
假设每个数字的hmm模型有8个状态数,每个状态由3个高斯函数拟合,那么,复合hmm模型的状态数为单个目标文本hmm模型状态数之和,每个状态仍由3个高斯函数拟合,且其高斯混合模型参数与单个hmm模型每个状态的高斯混合模型参数相同,复合hmm的状态转移概率矩阵参数的变化以3个单个目标文本hmm模型连接成一个复合型hmm为例进行说明,该例中单个目标文本hmm模型状态数为3,如下式所示:
组合成复合hmm模型时,每个状态矩阵将改写成如下形式:
于是复合hmm模型的状态转移概率矩阵为:
步骤104b、viterbi(维特比)解码:利用viterbi解码将步骤102中得到的特征序列与步骤104a中得到的复合hmm模型匹配,得到一个最佳状态输出序列,使每一帧特征都有其对应的状态;
步骤104c、寻找初始切分点:由步骤104a可知单个数字hmm模型的状态数为8,在步骤104b中所得最佳状态输出序列中寻找对应状态为8的整数倍的位置作为初始切分点p(i);
步骤104d、更新初始切分点:依次选取步骤104c中相邻的两个初始切分点p(i-1)和p(i),并分别作为区间的起始点和终止点。在该区间内,每k帧组成一段,共l段,每段平均能量为e(n),n为段索引号,计算s(n-1)=e(n)-e(n-1)n=2…l,从s(n1)>0,n1=1…l-1的索引号开始向后搜索,若s(n1+1),s(n1+2),……,s(n1+q)均大于0,其中q是一个大于1的常数,则将n1段的起始点作为新的初始切分点代替p(i-1);若无该类索引号,则不 更新初始切分点。由初始切分点分割成的不同单元即初始切分单元,假设初始切分单元个数为m,由于最佳状态序列的最大状态为64,所以初始切分单元个数小于等于8个(该更新过程并未改变初始切分点个数);
步骤105、初始切分单元个数判决:步骤104将语音切分后得到若干个初始切分单元,对于目标密码语音,其初始切分单元个数一般近似等于目标密码中目标文本个数;对于冒认密码语音,其切分单元个数往往远小于目标密码中目标文本个数。由步骤104可知测试语音初始切分单元数为m,假设最少切分单元个数为t,当m<t时,系统直接拒绝该请求人,判决结束,否则,执行步骤106;
步骤106、强制切分:当8-m>0时,取初始切分单元中对应特征段最长的切分单元,并将该特征段平均切分为(8-m+1)份,强制切分后的切分单元总数变为8;
步骤107、计算文本匹配分数:将步骤106中得到的切分单元对应特征序列与0~9十个目标文本的目标模型hmm进行匹配,每个切分单元对应10个匹配打分,假设该打分为word_score(i,j),该变量表示动态密码中第i个切分单元与数字j的模型的文本匹配分数;
步骤108、声纹与文本初步认证:
取每个所述切分单元对应的所述切分单元文本匹配分数中m个最高分数对应的文本作为待选文本,若所述待选文本中包含所述切分单元对应的目标文本,则所述切分单元认证通过,计算通过的切分单元的总数,若通过的切分单元总数小于或等于第四阈值,则文本认证不通过,身份认证不通过,判决结束;若通过的切分单元总数大于所述第四阈值,则所述输入语音的文本认证通过;
判断所述声纹匹配分数是否大于第五阈值,如是,则声纹认证通过,身份认证通过,判决结束;如不是,则将每个所述切分单元与对应目标文本模型的文本打分以及所述声纹匹配分数进行得分规整,将规整后的打分作为所述判决分类器的输入进行身份认证。
如图5所示,其实施方法如下:
步骤108a、每个切分单元各取m个最高得分:由上述步骤106可知,每个切分单元对应有10个得分,各取m(一般为2或3)个最高打分,分别对应m个待匹配文本;
步骤108b、切分单元文本认证:对每个切分单元进行文本认证,若切分单元对应的m个待匹配文本中包含该切分单元对应的目标文本,则该切分单元的文本认证通过,反之,认证不通过;
步骤108c、计算切分单元文本认证通过的总个数w;
步骤108d、测试语音文本认证:假设测试语音切分单元文本认证通过的最小数为p,当w大于p时,则判定该语音文本认证通过,并转至步骤108e,否则,文本认证不通过,身份认证不通过,判决结束;
步骤108e、测试语音声纹认证:设置一个较大的声纹阈值,以保证系统的严格性,当声纹匹配分数大于阈值时,声纹认证通过,该测试语音身份认证通过,否则,转至步骤109;
步骤109、得分规整:首先求得大量冒认密码语音对应目标文本模型的打分均值与方差,在得到测试语音中每个切分单元对应的文本打分后减去冒认得分均值并除以标准差。如图6所示,其实施方法如下:
步骤109a、求大量冒认文本打分:依次取0~9的单个数字模型hmm,假设取数字l的模型hmml,根据viterbi算法,取大量非l的冒认语音特征作为模型hmml的输入,得到大量冒认文本打分;
步骤109b、求均值与标准差:计算每个文本对应的冒认文本打分均值与标准差;
步骤109c、零归整及归一化:在步骤107计算文本匹配分数的基础上,找出每个切分单元与其对应目标文本模型的打分,此时每个切分单元对应一个文本打分。根据零归整方法,将每个文本打分分别减去对应文本的冒认打分均值并除以标准差,得到规整后的文本匹配分数,将步骤103中得到的声纹匹配分数与规整后的8个文本匹配分数合并组成一个9维的特征向量score(得分)。由于该特征向量中的声纹匹配分数不论是目标话者还是冒认话者的声纹打分,其打分一般远大于文本匹配分数,因此,又对特征向量增加了 归一化处理,使得声纹匹配分数与文本匹配分数均在[0,1]之间。假设该特征向量的最大值和最小值分别为max_score和min_score,对特征向量作线性变换,得到一个新的特征向量new_score=(score-min_score)/(max_score-min_score);
步骤110综合判决:利用综合判决分类器对输入特征向量new_score进行判决,对于每一个输入,其输出为1或0,当输出为1时表示测试语音判决通过,输出为0时拒绝测试语音通过。
实施例二:
针对第一种实施方式中步骤104的对于语音特征初始切分、步骤105的切分单元个数判决,以及步骤106的强制切分,本实施例中采用以下方法进行切分和判决:
步骤201,语音信号初始切分;
本实施例中,按照所述初始切分单元的长度从大到小的顺序开始拆分,每次将一个所述初始切分单元平均切分成两个段,直至切分单元的总个数等于所述目标文本的个数为止;
若强制切分的次数大于等于第二阈值,则强制切分结束;若强制切分的次数小于所述第二阈值,则将当前每个切分的单元分别与每个目标文本hmm进行匹配打分,分别选定最高打分对应的所述目标文本hmm,将所选定的所述目标文本hmm组合成第二复合hmm;
将所述语音特征作为所述第二复合hmm的输入进行维特比解码,得到第二状态输出序列,将所述第二状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为切分点,由该切分点对所述语音特征分割得到的不同单元即为所述切分单元,若当前的切分单元个数小于第三阈值,则将当前切分后的切分单元作为所述初始切分单元继续进行强制切分,若当前的切分单元个数大于或等于第三阈值,则强制切分结束,并将上述强制切分后的切分单元作为最终切分单元。如图8所示,包括如下步骤:
步骤201a、初始分割:计算语音信号包络,选择8个极大包络处附近区域作为初始分割结果;
步骤201b、根据打分对初始分割段判决:将每个分割段对0~9十个数字模型进行打分,每个分割段取最高得分对应的数字,并作为该分割段的判决结果;
步骤201c、复合hmm模型的组合:根据上述步骤201b中的分割判决结果,选择相应的hmm模型,组合成复合hmm模型,该组合过程可参见第一种实施方式中的步骤104a;
步骤201d、根据viterbi解码作进一步分割:根据步骤201c输出的组合模型对输入信号进行viterbi解码,根据最佳状态序列对信号做进一步分割,该分割过程可参见第一种实施方式中的步骤104c。
步骤202、强制切分:将分割段长度大小排序,按大小顺序平均分割为两个,直至分割为8段为止。
步骤203、初始切分判决:若步骤201d的分割段个数小于x(相当于第三阈值,x<8)个,则转至步骤201b,将步骤202的输出结果作为步骤201b的输入,继续进行分割;若分割段个数大于或等于x,则分割结束。设定一个最大迭代次数d(相当于第二阈值),若该过程迭代次数等于d时,步骤201b的分割段数仍小于x个,则停止迭代,并拒绝该语音;若该过程迭代次数小于d或等于d时分割段数大于等于x,则继续进行判决,执行第一种实施方式中的步骤107及后续步骤。
图9为本发明实施例的一种身份认证的装置的示意图,本实施例的装置包括pnn分类器,如图9所示,本实施例的装置包括:
声纹匹配模块,设置为获取输入语音的语音特征,将所述语音特征与预存的目标声纹模型进行匹配,得到声纹匹配分数;
切分模块,设置为根据所述语音特征和预设的目标文本模型对所述输入语音进行切分,获取初始切分单元以及初始语音切分单元的个数,如所述初始语音切分单元的个数小于阈值,则判定所述输入语音为非法语音;如所述初始语音切分单元的个数大于或等于第一阈值,则对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同;
文本匹配模块,设置为将每个所述切分单元的语音特征与所有所述目标 文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数;
认证模块,设置为根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的所述pnn分类器进行身份认证。
在一可选实施例中,所述装置还包括处理模块,
所述声纹匹配模块,是设置为将目标语音与目标声纹模型进行匹配得到第一声纹打分,将非目标语音与所述目标声纹模型进行匹配得到第二声纹打分;
所述文本匹配模块,是设置为将所述目标语音与所述目标文本模型进行匹配得到第一文本打分,为将所述非目标语音与所述目标文本模型进行匹配得到第二文本打分;
所述处理模块,设置为将所述第一文本打分和第一声纹打分组合成为所述pnn分类器的接受特征信息,将所述第二文本打分和第二声纹打分组合成为所述pnn分类器的拒绝特征信息;
所述pnn分类器,根据所述接受特征信息和所述拒绝特征信息进行训练。
在一可选实施例中,所述处理模块,还设置为依次选取所述目标文本模型,取非目标文本的语音特征与对应的所述目标文本模型匹配,得到冒认文本打分,获取所述目标文本模型对应的冒认文本打分的均值及标准差;将所述第一文本打分和所述第二文本打分分别减去对应的所述冒认文本打分的均值且除以所述标准差,分别得到规整后的文本打分;合并规整后的第一文本打分和所述第一声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第一文本打分和所述第一声纹打分进行归一化,作为所述pnn分类器的接受特征信息;合并规整后的第二文本打分和所述第二声纹打分,获取每一目标文本对应的最大值和最小值;利用该最大值和最小值将规整后的第二文本打分和所述第二声纹打分进行归一化,作为所述pnn分类器的拒绝特征信息。
在一可选实施例中,所述切分模块,根据所述语音特征和预设的目标文 本模型对所述输入语音进行切分,获取初始切分单元,包括:根据目标密码中的目标文本序列,将对应的目标文本隐马尔可夫模型hmm组合成第一复合hmm;将所述语音特征作为所述第一复合hmm的输入进行维特比解码,得到第一状态输出序列,将所述第一状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为初始切分点;依次选取所述相邻两个初始切分点作为区间起止点,在所述区间内,以指定帧为单位计算平均能量,寻找平均能量连续指定次增大的点,并将开始增大的点作为新的初始切分点,由所述初始切分点分割成的所述初始切分单元。
在一可选实施例中,所述切分模块,将对应的目标文本hmm组合成第一复合hmm,包括:所述第一复合hmm的状态数为单个目标文本hmm的状态数总和;所述第一复合hmm的每个状态具有的高斯混合模型参数与所述单个目标文本hmm的每个状态具有的高斯混合模型参数相同;将所述单个目标文本hmm的状态转移矩阵中的最后一个状态自身转移概率设为0,转移到下一个状态的状态转移概率设为1;所述目标文本的最后一个单个目标文本hmm的状态转移概率矩阵不作改变;将所述单个目标文本hmm的状态转移概率矩阵按照所述目标文本的单个目标文本排列顺序合并,得到所述复合hmm的状态转移概率矩阵。
在一可选实施例中,所述切分模块,对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:选择特征段最长的所述初始切分单元进行强制切分,使得强制切分后的所有切分单元的总个数与预设的目标文本的个数相同。
在一可选实施例中,所述切分模块,对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同,包括:按照所述初始切分单元的长度从大到小的顺序开始拆分,每次将一个所述初始切分单元平均切分成两个段,直至切分单元的总个数等于所述目标文本的个数为止;若强制切分的次数大于等于第二阈值,则强制切分结束;若强制切分的次数小于所述第二阈值,则将当前每个切分的单元分别与每个目标文本hmm进行匹配打分,分别选定最高打分对应的所述目标文本hmm,将所选定的所述目标文本hmm组合成第二复合hmm;将所述语音特征作为所述第二复合 hmm的输入进行维特比解码,得到第二状态输出序列,将所述第二状态输出序列中为单个目标文本hmm的状态数的整数倍的状态对应的位置作为切分点,由该切分点对所述语音特征分割得到的不同单元即为切分单元,若当前的切分单元个数小于第三阈值,则将当前切分后的切分单元作为所述初始切分单元继续进行强制切分,若当前的切分单元个数大于或等于第三阈值,强制切分结束,并将上述强制切分后的切分单元作为最终切分单元。
在一可选实施例中,所述文本匹配模块,将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数,包括:将每个所述切分单元的语音特征作为每个目标文本隐马尔可夫模型hmm的输入,将根据维特比算法获得的输出概率作为对应的切分单元文本匹配分数。
在一可选实施例中,所述认证模块,根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的判决分类器进行身份认证,包括:取每个所述切分单元对应的所述切分单元文本匹配分数中m个最高分数对应的文本作为待选文本,若所述待选文本中包含所述切分单元对应的目标文本,则所述切分单元认证通过,计算通过的切分单元的总数,若通过的切分单元总数小于或等于第四阈值,则文本认证不通过,身份认证不通过,判决结束;若通过的切分单元总数大于所述第四阈值,则所述输入语音的文本认证通过;判断所述声纹匹配分数是否大于第五阈值,如是,则声纹认证通过,身份认证通过,判决结束;如不是,则将每个所述切分单元与对应目标文本模型的文本打分以及所述声纹匹配分数进行得分规整,将规整后的打分作为所述pnn分类器的输入进行身份认证。
本发明实施例还提供了一种计算机可读存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储由处理器执行的程序代码,程序代码的步骤如下:
s1、获取输入语音的语音特征,将所述语音特征与预存的目标声纹模型进行匹配,得到声纹匹配分数;
s2、根据所述语音特征和预设的目标文本模型对所述输入语音进行切 分,获取初始切分单元以及初始语音切分单元的个数,如所述初始语音切分单元的个数小于第一阈值,则判定所述输入语音为非法语音;如所述初始语音切分单元的个数大于或等于第一阈值,则对所述初始切分单元进行强制切分,使得切分单元的总个数与预设的目标文本的个数相同;
s3、将每个所述切分单元的语音特征与所有所述目标文本模型进行匹配,得到每个所述切分单元与每个所述目标文本模型的切分单元文本匹配分数;
s4、根据所述切分单元文本匹配分数、所述声纹匹配分数和预先训练的概率神经网络pnn分类器进行身份认证。
可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(read-onlymemory,简称为rom)、随机存取存储器(randomaccessmemory,简称为ram)、移动硬盘、磁碟或者光盘等每种可以存储程序代码的介质。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上仅为本发明的优选实施例,当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。