一种语音数据的处理方法与流程

文档序号:15463896发布日期:2018-09-18 18:50阅读:241来源:国知局

本发明涉及语音识别,特别涉及一种语音数据的处理方法。



背景技术:

目前销售终端的网络安全特别是智能POS机的安全性令人瞩目,通过智能POS机进行信息传递的安全问题日益受到人们的重视。在当前的智能POS机应用中,都是采用用户名、口令的用户认证,并且对智能POS机用户下发数字证书,并利用硬件密码终端私钥不可导出性,加强用户的身份安全。但任何形态的硬件密码设备都需在智能POS机外接实体设备,更降低了方案的易用性,增加了用户的操作复杂度。对于现有技术的指纹识别,识别信息需要传输,安全性受到挑战。如果支付平台存储的特征库发生损失,则无法进行身份认证。



技术实现要素:

为解决上述现有技术所存在的问题,本发明提出了一种语音数据的处理方法,包括:

将智能POS机与支付平台通过安全信道建立连接;

智能POS机客户端对用户进行语音识别;

基于语音识别结果进行用户身份验证。

优选地,所述智能POS机客户端对用户进行语音识别,进一步包括:

智能POS机从支付平台获取预先启动的语音识别请求;

基于智能POS机当前支持的识别方式判断所述智能POS机是否支持所述语音识别。

优选地,若判断结果为支持语音识别,则智能POS机客户端利用用户语音的识别结果进行用户身份验证;

或者,

根据启动的认证请求及当前智能POS机支持的认证方式,筛选出当前智能POS机可用的认证展现给用户,供用户选择及验证。

优选地,采用启动语音识别时智能POS机的认证模块在安全环境中产生的RSA密钥对中的用户私钥对随机数进行加密,并将加密值返回支付平台;

支付平台利用启动语音识别后存储的用户公钥验证加密值的有效性;

智能POS机认证模块完成身份验证后,在下次使用智能POS机时,直接调用可信存储块中存放的RSA密钥对中的私钥对摘要进行加密,并将加密值传递到支付平台进行校验。

本发明相比现有技术,具有以下优点:

本发明提出了一种语音数据的处理方法,实现了智能POS机终端身份认证数据本地存储、比对和运算,不需要配置硬件密码设备,也无需上传至支付平台,更具安全性。

附图说明

图1是根据本发明实施例的一种语音数据的处理方法的流程图。

具体实施方式

下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。

本发明的一方面提供了一种语音数据的处理方法。图1是根据本发明实施例的一种语音数据的处理方法流程图。

本发明的智能POS机与支付平台通过安全信道连接。智能POS机从支付平台获取预先启动的语音识别请求。基于智能POS机当前支持的识别方式判断所述智能POS机是否支持所述语音识别。

若支持所述语音识别,智能POS机客户端利用用户语音的识别结果进行用户身份验证。

若验证通过,使用身份认证启动时产生的RSA密钥对中的私钥对随机数进行加密,得到第一加密值,并将所述第一加密值经过智能POS机客户端发送至所述支付平台,以供所述支付平台基于所述第一加密值及身份认证启动时获得的用户公钥进行身份认证。

用户身份认证过程中,智能POS机通过支付平台下载当前智能POS机启动的认证请求,并使用智能POS机客户端发现当前智能POS机支持的识别方式,根据启动的认证请求及当前智能POS机支持的认证方式筛选出当前智能POS机可用的认证展现给用户,供用户选择及验证。

用户验证后,采用启动语音识别时智能POS机的认证模块在安全环境中产生的RSA密钥对中的用户私钥对随机数进行加密,并将加密值返回支付平台。支付平台利用启动语音识别后存储的用户公钥验证加密值的有效性。

在得到加密值之后,根据加密值是否有效判断身份认证是否成功,如果加密值有效,身份认证成功;如果加密值无效,则身份认证失败。

在启动认证前,需要利用智能POS机与支付平台协商识别方式,具体的认证启动过程包括:

智能POS机从所述支付平台获取协商的识别方式;枚举智能POS机当前支持的识别方式,判断所述智能POS机是否支持语音识别;

若支持,智能POS机客户端利用语音识别进行用户身份验证;若用户身份验证通过,认证模块在安全环境中产生RSA密钥对,并使用智能POS机中的认证模块私钥对所述RSA密钥对中的用户公钥进行加密,生成第二加密值;

然后,认证模块将所述第二加密值及经认证模块私钥加密的用户公钥通过智能POS机客户端上传至支付平台,以使支付平台使用认证模块公钥验证所述第二加密值是否有效。

该过程中,使用智能POS机客户端发现当前智能POS机支持的识别方式,根据当前智能POS机支持的识别方式筛选出可用的认证展现给用户,用户验证后,智能POS机的认证模块产生RSA密钥,并将公钥及启动的认证请求返回认证管理平台存储。

在启动语音识别后,在智能POS机的可信存储块中产生RSA密钥对,并将RSA密钥对中的用户公钥导出,通过加密传输协议,将用户公钥传送到支付平台。在下次使用智能POS机时,认证模块完成身份验证后,直接调用可信存储块中存放的RSA密钥对中的私钥对摘要进行加密,并将加密值传递到支付平台进行校验。

其中通过该可信存储块的接口接收智能POS机客户端发送的语音识别请求,并根据接收到的身份识别请求,创建对应的识别进程,并通过执行该识别进程,管理该认证模块以及语音采集模块共同完成该识别进程。

具体的,首先当支付平台通过该可信存储块的接口接收智能POS机客户端发送的语音识别请求时,支付平台根据该语音识别请求,创建识别进程,并通过执行该识别进程,向该认证模块发送调用指令。

其次,该认证模块在接收到支付平台发送的调用指令后,根据该调用指令,确定向支付平台返回调用该语音采集模块的采集指令。以使得支付平台根据该采集指令,向该语音采集模块转发该采集指令。

之后,语音采集模块根据支付平台转发的采集指令,通过该可信存储块的接口调用智能POS机的语音输入设备采集该语音片段,并将采集到的语音片段通过支付平台返回该认证模块。

该认证模块接收支付平台转发的语音采集模块采集的语音片段。若支付平台发送的调用指令中携带有该待识别的身份信息,则该认证模块可创建该语音片段与该待识别的身份信息的关联关系,并将该语音片段以及该待识别的身份信息作为该待识别的语音信息返回支付平台。或者,该认证模块根据预设的算法,提取该语音片段对应的待识别的用户语音特征模板,再创建该待识别的用户语音特征模板与该待识别的身份信息的关联关系,并将该待识别的用户语音特征模板以及该待识别的身份信息作为该待识别的语音信息返回支付平台。

而在支付平台发送的调用指令中未携带该待识别的身份信息时,则该认证模块可直接将该语音片段返回支付平台,或者该认证模块可将提取出的待识别的用户语音特征模板返回支付平台。支付平台接收该待识别的语音片段或者该待识别的用户语音特征模板,当支付平台接收到该待识别的语音信息时,支付平台根据与支付平台预先预定的安全规则,对该待识别的语音信息进行加密后通过该可信存储块的接口返回智能POS机客户端,当支付平台接收到该语音片段或者该待识别的用户语音特征模板时,支付平台可以根据该调用业务,确定对应的待识别的身份信息,进而确定该待识别的语音信息,并在对该待识别的语音信息进行加密后通过该可信存储块的接口返回智能POS机客户端。

在本发明优选的实施例中,所述智能POS机客户端利用用户语音的识别结果进行用户身份验证还包括:对输入的语音进行验证,验证通过后为登录银行卡读取程序的用户ID生成一对公私钥,私钥安全存储在智能POS机的可信存储块;使用智能POS机的可信存储块内置的终端私钥对用户ID的公钥和所述用户ID以及登录用户ID的语音的特征序列进行加密;

其中,终端私钥是在智能POS机出厂时预置在设备的安全存储区域内的;每台POS机的公私钥对具有唯一性;

在对登录用户ID的语音进行加密时,是对该语音的特征序列进行加密,语音信息在智能POS机的可信存储块存储时产生特征序列,特征序列生成规则可以根据任意适合的音频数据库检索规则生成,特征序列对应的语音片段具有唯一性。

将包含被终端私钥加密的所述公钥、所述用户ID以及所述语音特征序列作为认证请求发送给支付平台,以使支付平台接收到所述认证请求后对所述公钥进行验证,并保存所述公钥、所述用户ID以及所述语音特征序列。

所述终端私钥是在智能POS机的可信存储块出厂时预置在设备的安全存储区域内的,则支付平台内的终端公钥可以由智能POS机终端预先发送至支付平台存储或者支付平台中直接存储,一对终端公钥和终端私钥之间通过设备唯一标识符进行识别;

支付平台接收到认证请求后,认证请求中的包含的信息被智能POS机终端的终端私钥加密,因而支付平台通过该加密信息检索到与该终端私钥对应的终端公钥,完成验证;验证通过后将认证请求中的所述公钥和用户ID以及语音特征序列进行存储;支付平台反馈识别结果至智能POS机的可信存储块。

注册完成后,用注册过的上述用户ID再次登录银行卡读取程序时,输入语音进行验证操作;通过存储在智能POS机的可信存储块内的用户ID私钥对用户ID和该语音的特征序列进行加密。

将包含用户ID和语音特征序列的认证请求发送给支付平台,以使支付平台接收认证请求后进行验证,并检查认证请求中的语音特征序列是否与注册时用户ID对应的语音特征序列保持一致以得到认证结果。

如果认证不通过,智能POS机的可信存储块发起重新认证请求,支付平台可将没有通过认证的语音特征序列添加到认证记录中,认证为该与注册时不一致的语音特征序列具备使用银行卡读取程序服务的权限。

对于与认证请求中的语音特征序列不一致的语音特征序列,如果在发起的重新认证请求中提供了可以执行银行卡读取程序服务的执行验证码,则将认证请求中的语音特征序列保存在认证记录中,完成身份认证。

在对语音进行匹配识别前,需要进行预加重、滤波、加窗分帧、端点检测。用短时功率和ZCR作特征区分静音和语音。检测前先为短时功率和ZCR确定门限,然后连续计算短时功率及ZCR,调整门限,进行状态分析,判断静音段是否结束。

在端点检测中,将频带划分成4段,按照下式计算子带的功率比率SE:

其中:Ui和Li分别表示子带i的上限频率和下限频率,i=1,2,3,4;X(ω)表示信号在频率ω处的幅值。

如果某帧信号的功率ZCR低于门限,且4段子带的SE近似相等,则判断是静音段。

优选地,采用神经网络结合粒子群算法来实现语音信号端点的检测:

1:设一维神经网络隐层节点包含K×L个θ和K个λ,输出层节点所包含的K×N个θ和N个λ,其中K为隐节点个数,L为输入节点的个数,N为输出层节点个数,θ和λ分别为相位转动系数及相位控制因数;对粒子群和一维神经网络相关参数作初始化;

2:随机选择一段含语音段和噪声的信号,将短时功率、循环平均幅度差函数、频带方差作为一维神经网络输入,标示出每帧信号起止作为一维神经网络的输出,完成一维神经网络训练样本构建;

3:将训练样本输入一维神经网络进行训练,通过粒子群对一维神经网络优化,使一维神经网络输出与理想输出值达到预先设计要求,进而完成一维神经网络训练;一维神经网络参数具体优化步骤如下:

1)对等待优化和学习的参数进行初始化;将优化用粒子的运动位置及速度向量设计成矩阵,其中,行表示各个待学习参数,列表示优化用运动粒子;

2)来计算整个一维神经网络的输出|Y>n,定义适应度函数如下:

|O>n表示第n个输出神经元目标输出的表示式,|Y>n为第n个输出神经元实际输出的表示式;

3)通过粒子群的速度与位置公式来更新每一个粒子当前的速度和位置;粒子i当前速度更新简化如下:

vt+1i=vti+c1r2-c2xti

粒子i当前位置更新简化如下:

xt+1i=xti+vt+1i

r1和r2为介于[0,1]之间的独立随机数,c1和c2表示加速度限定因数,其中c1用于调节粒子向各自最优位置行进的步长,c2用于调节个体向全局粒子最优位置行进的步长。

4)计算和评价每一个粒子的适应度,从而更新个体的极值和全局的极值;

5)当满足结束条件时,即得到一维神经网络的隐层和输出层的参数θ、λ的最优值;然后,再将该参数进行存储,优化过程即结束;否则转至3)继续搜寻;

神经网络训练结束后,用训练好的一维神经网络对原来训练样本进行计算,并输出检测结果,若输出结果大于门限值,则认为当前帧为语音帧,否则为非语音帧,然后将实际输出结果与标示好的信号语音帧进行对比,若一维神经网络训练效果不佳,则需重新对其进行训练;

进行语音端点检测;取一段语音信号,提取其特征量,接着采用训练好的一维神经网络对其进行检测,最终输出语音端点检测结果。

在完成端点检测后,将语音信号分割为R个等长非重叠帧,记为fk={fk(n)|n=1,2,…,L/R;k=1,2,…,R},其中:L为语音信号长度;R为总帧数;fk(n)为第k帧的第n个采样值。

预处理之后对每帧信号进行短时傅里叶变换,按照下式划分出子带:

Bi=exp[(lgFmin+i(lgFmax-lgFmin)/M)]

其中:i表示子带编号,取值为1,2,3,…,M;M表示子带数量;Fmin、Fmax为听觉带宽的下限和上限,子带i的带宽范围为[Bi-1,Bi]。在每个子带上计算子带功率Bi,得到M个子带功率。

通过相邻帧及其相邻子带之间的功率差值计算音频功率的动态变化:

E(k)n=e(k)n+1-e(k)n,

dE(k)n=E(k+1)n-E(k)n,

若dE(k)n≤0,F(k)n=0,

若dE(k)n>0,F(k)n=1,

其中:n=0,1,2,…,M-1,表示子带编号;k表示帧号。

即首先对相邻子带作功率差分E(k)n,再对相邻帧的差分功率求差值dE(k)n,进行阈值判断,从而得到特征F(k)n。

将频率范围[0,fs/2]分为N个子带,计算第m个子带的重心:

其中:lm、hm为子带的下限频率和上限频率;P(f)为f处的频带功率;

然后再正则化子带重心,使其取值不受子带选择的影响,如下所示:

NCm=[Cm-(hm+lm)]/2(hm-lm)。

其中,NCm为正则化子带重心。

使用参数化哈希索引表,将原表项映射到哈希索引表上,给定指纹F(k)n得哈希索引值:

H(F(k)n)=F(k)nMaxlen

其中:Maxlen为哈希索引表大小;H(F(k)n)为哈希索引值,数值在0~Maxlen-1;

计算第k帧语音信号fk(n)的短时ZCR计算得到每帧的功率比率:

Ck=Bk/(Rk+b),

式中b为防溢出常量,Rk为第k帧的短时ZCR;

得到功率比率的矢量H={H(F(k)n)Ck|k=1,2,…,R}。

接下来对哈希序列H采用乱序加密。首先生成与哈希序列长度相等的伪随机序列S=[s1,s2,…,sR],然后哈希序列根据伪随机数列的值进行位置重排,加密后的序列为h*(si)=h(i),

其中:仅当H(i)>H(i-1)时,h(i)为1,否则h(i)为0。

在语音认证过程中,采用blackman距离度量语音信号的相似性,对于两个音频片段θ1和θ2,h1记为语音信号θ1的哈希索引值,h2记为语音信号θ2的哈希索引值。D记为h1和h2的正则化blackman距离D,即哈希索引值错误位数与总位数的比值,计算公式为:

若两个音频片段θ1和θ2的特征相同,则若两个音频片段θ1和θ2的特征不相同,则其中为识别认证阈值。若距离则认为两个音频段θ1和θ2的特征相同,认证通过;否则认证不通过。

在另一优选的实施例中,未注册用户还可以通过随机语音字符串进行支付平台的注册。具体地,支付平台生成随机字符串发送给智能POS机用户;用户将收到的随机字符串录制成语音,将语音发送给支付平台;当支付平台收到用户的语音后,提取语音的MFCC特征;

根据语音的MFCC特征,将语音转换为字符串文本,若得到的字符串文本与预先生成的随机字符串内容相同,则将该段语音标记为有效注册语音;否则标记为无效语音;

相应地,在验证阶段:当智能POS机用户发出身份认证请求时,支付平台首先生成随机字符串发送给用户,用户将收到的随机字符串按照支付平台指定的顺序后进行录制,得到认证语音,所生成的认证语音发送给支付平台;若用户在一定持续时间内未能录入语音,则当前随机字符串失效,用户验证失败;

支付平台收到认证语音后,提取认证语音的MFCC特征;验证该认证语音的用户特征是否属于当前用户且内容与正确字符串文本是否相符,分别得到语音匹配值S1和文本匹配值S2;

将语音匹配值S1与文本匹配值S2加权求和后得到最终分值,与设定阈值比较并进行判定:当最终分值超过设定阈值时,则认为认证语音来自智能POS机的已注册用户并且语音的文本内容正确,验证通过;否则验证失败;

最终分值的计算如下:

S=wS1+(1-w)S2

式中,S为最终分值,w为权重,0<w<1

其中,上述验证该认证语音的用户特征是否属于当前用户且内容与正确字符串文本是否相符,进一步包括:

依照正确字符串文本的顺序构建第一HMM;

根据认证语音的MFCC特征以及第一HMM,采用Viterbi算法得到认证语音的MFCC特征与第一HMM状态之间的映射,使得:

Φ*t=argmaxΦp(Xt|H,Φt)

式中,Xt为认证语音的MFCC特征集合{xt(1),xt(2),...,xt(Nt)},Nt为认证语音特征总数量,下标t代表认证语音段,H为第一HMM,Φt为认证语音MFCC特征与HMM状态的映射,p(Xt|H,Φt)表示认证语音MFCC特征集合Xt在第一HMM以及状态对应方式Φt下的整体似然概率,Φ*t为Viterbi算法找到的认证语音MFCC特征与第一HMM状态之间的最优映射;

根据认证语音的MFCC特征与第一HMM状态之间的映射,进而得到认证语音MFCC特征与各个字符的映射,计算认证语音在特定用户语音GMM模型以及通用GMM模型的对数似然比,作为语音匹配值S1;语音匹配值S1的计算表达式如下:

式中,xt(n)为认证语音的第n帧MFCC特征,Nt1表示认证语音中所有字符文本对应的MFCC特征数量,d(n)为正确字符串文本条件下认证语音第n帧MFCC特征对应的字符,Λ0d(n)和Λd(n)分别为字符d(n)对应的特定用户GMM模型和通用GMM模型,p(xt(n)|Λ0d(n)和p(xt(n)|Λd(n))分别为xt(n)在两种GMM模型的整体似然概率;

识别认证语音的字符串内容,将验证得到的字符串内容作为最优字符串;依照最优字符串,使用通用GMM模型构建第二HMM;

采用Viterbi算法得到认证语音的MFCC特征与第二HMM状态之间的映射,进而得到认证语音MFCC特征与各个字符的映射;

根据分别得到的在正确字符串文本以及最优字符串下认证语音MFCC特征与各个字符的映射,计算认证语音特定用户语音GMM模型与通用GMM模型上的对数似然比,作为文本匹配值S2;文本匹配值S2的计算表达式如下:

式中,表示认证语音中最优字符文本对应的MFCC特征数量,d2(n)为最优字符串条件下认证语音第n帧MFCC特征对应的字符,为d2(n)对应的通用GMM模型,为xt(n)在d2(n)的通用GMM模型上的整体似然概率。

为消除信道不匹配的影响,在估计用户识别模型时,在用户识别空间和信道空间基于因数分析同时建模。即将一段语音通过一个复合向量来表示,即语音空间可由用户和信道的复合向量组成。

该复合向量M用以下公式表示:

M=s+c

s=m+Vy+Dz

c=Ux

其中s为用户特征空间向量,c为信道空间向量,m为通用GMM向量,V、D和U是空间矩阵。向量x的分量作为信道因数,y的分量作为用户识别因数,z的分量称为残差因数。通过估计空间的矩阵、建立用户识别模型和测试完成因数分析过程。

在空间矩阵估计过程中,给定一个语音输出用户和语音特征向量{x1,x2,…,xT}可得:

其中mc代表信道c的均值子向量,xt,γt(c)是每个GMM函数的状态概率,Nc(s),Fc(s),Sc(s)分别为用户s在第c个GMM上的零阶、一阶、二阶的统计量。

之后,对上述统计量进行拼接:Nc(s)拼接成CF×CF的对角矩阵N(s),Fc(s)拼接成CF×1,列向量F(s),Sc(s)拼接成CF×CF对角矩阵S(s),CF为通用GMM向量的维数。

再计算每个用户的中间变量:

L(s)=VTΨ-1N(s)V,

其中Ψ是通用GMM的协方差矩阵;

利用L(s)计算用户识别因数y(s)的一阶和二阶期望值:

E[y(s)]=L-1(s)VTΨ-1F(s),

E[y(s)y-1(s)]=E[y(s)]E[yT(s)]+L-1(s)

N(s),F(s),S(s)分别为用户s特征空间向量的零阶、一阶、二阶的统计量;

更新用户识别空间矩阵V和协方差矩阵Ψs

V=ΨsF(s)E[yT(s)]/(∑sN(s)E[y(s)yT(s)]),

Ψnew=[ΨsN(s)]-1{ΨsS(s)-diag{ΨsF(s)E[yT(s)]VT}}。

综上所述,本发明提出了一种语音数据的处理方法,实现了智能POS机终端身份认证数据本地存储、比对和运算,不需要配置硬件密码设备,也无需上传至支付平台,更具安全性。

显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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