[0072] 第六步,选取标准值方阵EY的前N×D个分量组成矩阵T,1
[0073] 对T的每一个分量进行一次棋盘法运算、正整数转化。
[0074] 棋盘法运算,伪代码为:
[0075] 对T中的每一个元素记为Ti
[0076]
[0077] mod()为取模函数,maxdis标记棋盘法的格子大小,取奇数,具体值可由用户根据经验选定。
[0078] 正整数转化方法为,对Ti四舍五入取整,再取绝对值,得正整数。
[0079] 运算完成得结果矩阵T1。
[0080] 第七步,设定一个n阶的多项式函数,形如f(x)=a0+a1*x+a2*x2+a3*x3+…+an*xn,n为阶数,a0~an∈正整数,其值域范围为0~224,即每个系数有24bit;将矩阵T1的每一个分量代入f(x),计算后得结果矩阵T2,T2为正整数矩阵。在用户端存储T2及n值。
[0081] 声纹生物密钥训练完成。
[0082] 声纹生物密钥提取流程如图4所示,具体实施步骤为:
[0083] 第一步,用户录取自身语音,3秒左右。
[0084] 第二步,从录取语音中提取MFCC系数(Mel频率倒谱系数)。提取方法与声纹生物密钥训练时一致。
[0085] 依据声纹生物密钥训练时存储的λ,保持GMM高斯混合模型中pi的权值不变,训练用户GMM高斯混合模型,取混合数阶数与声纹生物密钥训练时一致,记为N。训练方法为语音信号处理领域通用方法。
[0086] 第三步,取每一个高斯分布的均值向量,组成N×20维的矩阵。
[0087] 第四步,将N×20维矩阵扩展为N×L维矩阵,记为EC,扩展方法与声纹生物密钥训练阶段扩展方法保持一致。
[0088] 第五步,将EC左乘PEX,得N×L维矩阵,取矩阵前N×D个分量组成矩阵;对矩阵的每一个分量进行一次棋盘法运算及正整数转化,方法与声纹生物密钥训练时一致,得矩阵ED。
[0089] 第六步,从矩阵ED中选取n+2个分量值,排序;从声纹生物密钥训练阶段存储的T2矩阵中选取n+2个分量值,排序;
[0090] 将两组排序结果依次配对,组成(z,f(z))的形式,z为ED中选取的值,f(z)为T2中选取的值;
[0091] 将n+2个(z,f(z))对,代入函数f(z)=a0+a1*z+a2*z2+a3*z3+…+an*zn,生成n+2个线性方程,其中,a0~an为n+1个未知数,a0~an∈正整数;
[0092] 如方程组有唯一解,则解得的(a0,a1,a2,a3,。。。,an)组成的数字序列即为提取的声纹生物密钥;如方程组没有唯一解,则从矩阵ED、T2中重新选取n+2个分量,组成(z,f(z))对,再次尝试解方程组;遍历ED、T2的所有n+2个分量的排列组合,解得声纹生物密钥。密钥序列长度为24×(n+1)bit。
[0093] 本技术领域中的普通技术人员应当认识到,以上实施例仅是用来说明本发明,而并非作为对本发明的限定,只要在本发明的实质范围内,对以上实施例的变化、变型都将落在本发明的保护范围。