技术领域
本发明涉及网络通信安全技术领域,尤其涉及了基于声纹识别和语音信道传输的端到端身份认证方法。
背景技术
近年来,由于VoIP技术的普及和发展,全球各种电信诈骗事件频发。目前国内的大多数电信诈骗案件中,嫌疑人主要通过技术手段修改、伪造呼叫号码,声称自己为相关行政人员和银行人员,或者冒充被呼叫者的亲朋好友等,亦或受害者手机丢失被他人捡到后,直接通过手机通讯录拨号,实施诈骗行为。
现有的电信运营商对此类诈骗行为缺乏认证机制。电信运营商对诈骗电话传统处理方式为:对来电者的号码进行分析,对其前缀、码长、规范性结合投诉数据,综合得到诈骗号码,将其输出到黑名单库,从而进行拦截。不过由于VoIP技术对主叫号码可以进行随意的修改,甚至可以伪造为正常使用用户的号码,所以采用这种方式防治效果十分有限,更无法防范手机丢失后被他人捡到实施诈骗的行为。还有采用短信验证的方式,但是这种无法适用于座机等无短信服务功能的终端。此外,国内运营商还会对境外来电开启通话后短信提醒功能,提醒用户防范电信诈骗,但是这种方式仅仅是针对境外来电,而且后知后觉式的补救对于电信诈骗的防范来说收效甚微。
在无需修改电信基础协议设施的条件下,终端用户对于端到端的VoIP身份验证机制有两类,一类是诸如SSL/TLS之类的机制可以保护数据完整性并提供身份验证,但是这类机制对于现代电话设施却不对身份做任何验证,特别是对于其他电话网络接入的信息。如第三代(3G)和第四代(4G)蜂窝网络实现了用户与电信供应商之间的相互认证。但是这类机制的设计主要是为了方便运营商能够清楚的区分用户所用电信供应类别,从而对用户通话进行精准计费,对于用户识别来电的其他用户的身份基本没有帮助,无法提供用户之间的身份认证。第二类是一种基于短消息服务来检测呼叫者ID的欺骗的情况,即通过短消息发送一个质询给来电者ID,由来电者端进行检测,并自动回复给被呼叫者,以此来证明呼叫者ID的真实性。但该检测机制无法适用于没有SMS服务的座机等终端的情况。因此缺少一个通用的、无需网络支持的,能够识别多种冒充行为的端对端认证方法。
发明内容
本发明提供了基于声纹识别和语音信道传输的端到端身份认证方法,能够使被呼叫者在通话过程中,仅通过语音信道,对呼叫者通过身份号码和声纹信息进行双重认证,防范伪造号码或者盗用号码的电信诈骗。
为达到上述目的,本发明采用如下技术方案:
基于声纹识别和语音信道传输的端到端身份认证方法,包括:
S1、在PC上进行背景模型训练,将训练好的背景模型导入被呼叫端,被呼叫端对呼叫者的输入语音进行特征提取,利用特征建立模型,再对模型进行目标用户模型训练;
S2、呼叫端采集呼叫者的输入语音,对输入语音的声纹信息提取梅尔倒谱特征参数,用梅尔倒谱特征参数训练呼叫者的高斯混合模型,得到高斯模糊声纹模型;
S3、呼叫端将高斯模糊声纹模型及呼叫端上存储的身份号码信息序列转化为认证条件添加至证书中,并通过语音信道将证书传输至被呼叫端;
S4、被呼叫端接收到证书后对证书进行解密和信息提取,通过核对提取的身份号码信息序列来验证呼叫者的身份;
S5、被呼叫端将从证书中提取的高斯模糊声纹模型与背景模型和目标用户模型进行似然度比较,将似然比的对数标记为评分,将评分和设定阈值比较,判断呼叫者是否真实。
进一步的,在S1中,背景模型训练为:在PC端将背景模型训练模块编译为二进制文件,通过脚本调用二进制文件,根据配制参数对二进制文件进行训练;
目标用户模型训练为:加载训练好的背景模型,创建新的说话人,并输入对应说话人的声音文件,对声音文件进行特征抽取并存储在特性向量数组中,在背景模型的基础上对特性向量数组进行遍历和自适应调整,最终得到说话人模型,即为目标用户模型。
进一步的,在S2中,梅尔倒谱特征参数的提取方法包括:
将输入语音通过高通滤波器,再进行分帧加窗;
对划分后的各个帧进行快速傅里叶变换,从时域信息得到频谱系数及各帧的频谱;
对频域上的能量谱采用Mel滤波器组进行滤波和包络提取,得到Mel滤波器输出的对数能量值;
对对数能量进行离散余弦变换,得到每一帧的梅尔倒谱特征参数。
进一步的,在S4中,验证呼叫者身份的方法为:
S41、被呼叫端存储有证书的公钥,利用所公钥采集呼叫者的高斯模糊声纹模型,提取高斯模糊声纹模型的均指向量,将均值向量分段,分段的标准为:梅尔倒谱特征参数以稳定的概率出现在各分段中,然后将高斯模糊声纹模型的均值向量映射为相应的比特,再从映射的比特中生成相应比特长度的密钥,用密钥对证书解密,得到证书中的校验码;
S42、采用SHA256算法对证书进行校验码计算,得到计算校验码;
S43、比对S41得到的证书中的校验码和S42得到的计算校验码是否相同,相同则表示证书无篡改;
S44、取出证书中包含的号码信息,如果取出的号码信息和接收端显示的来电号码信息相同则表示呼叫者的号码无篡改。
本发明的有益效果是:
本发明在语音信道签名认证的作为第一重认证的基础上,补充了对于说话人的声纹识别作为第二重认证,能够更准确地保证说话人身份的真实性;
本发明在语音信道签名证书中同时添加了号码信息和声纹信息作为认证条件,同时从用户声纹特征参数中提取密钥对证书进行加密,进一步提高了证书的安全性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明实施例方法的架构图;
图2是本发明实施例语音信道传输证书的生成及解析流程图。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合具体实施方式对本发明作进一步详细描述。
本发明实施例提供了基于声纹识别和语音信道传输的端到端身份认证方法,如图1所示,该方法可分为4个阶段:模型训练、特征提取、签名认证、声纹识别。
1.模型训练
(1.1)首先是实现背景模型(UBM Universal Background Model)的训练。实现背景模型训练模块,首先在PC端将背景模型训练模块编译成对应的二进制文件,通过脚本文件调用二进制文件,根据配置参数进行训练即可。
UBM的主要功能是采用较多语音样本进行背景模型的训练,得到与目标说话人无关的通用特征,然后让目标说话人的语音在其上训练,解决目标说话人语音数据不够从而无法建立较为准确模型的问题。通过UBM的预训练可以减少用户模型的训练时间。
(1.2)其次就是用户模型的训练。用户模型的训练在移动端,将训练好的UBM模型导入,加载背景模型,创建新的说话人并输入对应用户的声音文件,通过预处理,特征抽取后存储在特性向量数组中,在UBM的基础上对特征向量数组进行遍历,自适应调整,生成说话人模型。如果需要调整,再添加录音数据形成更加完善的模型。
2.特征提取
在声纹识别领域,梅尔倒谱系数(MFCC Mel-scale Frequency CepstralCoefficients)是一个非常常用的特征参数,常被用于语音处理和识别等应用。MFCC特征参数的提取包括以下步骤:
(2.1)预加重。为了让信号的频率保持低频更加平坦,提升品质,先让语音信号通过一个高通滤波器,公式如下:
H(x)=1-μx
μ为预加重系数,μ的取值范围为[0.9,1],本实施例中μ取值0.96,x为为信号通过高通滤波器时所对应的时刻。
(2.2)分帧加窗。语音在很短的时间内信号是平稳的,为了方便处理,将片段按帧划分,同时为了避免分帧截断导致的相邻帧之间的变换过大,还需要在相邻帧两端加上一段重叠部分,这两个参数即为帧长和帧移。分帧之后,需要逐帧乘上一个窗函数,保证连续性,这个过程叫做加窗,常用的窗函数为汉明窗(Hamming Window)。假设分帧后的语音信号为S(n),n=0,1,2…,N-1,其中N为帧的大小,则乘上汉明窗后的语音信号为S′(n)=S(n)×W(n)。其中汉明窗W(n)的形式如下,n为相应的帧数。
其中,a表示加窗系数,不同大小的a值会产生不同的汉明窗,此处取a=0.46。
(2.3)快速傅立叶变换。逐帧进行快速傅立叶变换,从时域信息得到频谱系数。
(2.4)Mel滤波器组进行滤波和包络提取。通常采用的是三角滤波器组,滤波器组数定义为M,这里取M=24。
(2.5)对每个滤波器组输出的能量值取对数,得到对数能量为:
其中S(m)为得到的对数能量,N为帧的大小,k为对应的频率,X
(2.6)对上述对数能量进行离散余弦变换,也就是逆变换,得到每一帧的MFCC系数序列{c
公式中S
3.签名认证
在语音信道传输数据并进行签名认证。通过Hermes算法设计,呼叫方用户数据首先先被转码模块进行转码,然后产生二进制数据流,该数据流被调制模块转换为声音,通过电话通话信道传输到被呼叫方,在接收端执行相反的过程恢复数据。设计的方法使用场景包含三类参与者,呼叫者(证明者,Prover)和被呼叫者(验证者,Verier)以及证书颁发机构(Certificate Authority,CA)。具体步骤如下:
(3.1)注册。根据用户的身份信息及声纹信息生成相应的加密证书,具体步骤如下:
(3.1.1)用MFCC参数训练说话者的GMM(Gaussian Mixture Model高斯混合模型),得到得到某用户专属的GMM声纹模型。从专属的GMM声纹模型中提取高斯模型的均值向量。然后将均值向量的值域分段,分段原则是用户声纹特征参数以稳定的概率出现在各分段中。将均值向量映射为相应的比特,并生成相应比特长度的密钥。
(3.1.2)在每个用户注册申请某手机号码时,需要提供个人信息证明身份,如号码,姓名,身份证号等等。由CA验证确认信息无误后,使用CA的私钥对申请文件进行签名生成证书C,证书中包括号码信息,签名信息。此外,将呼叫者的GMM声纹模型的特征参数序列化为二进制数据,添加到证书之中作为一个额外的认证条件。
(3.1.3)用(3.1.1)从用户语音的声纹特征参数提取到的密钥,作为证书的加密密钥,然后选用对称加密算法,用声纹密钥对证书加密,得到加密过后的证书,进一步提高了签名认证的安全性。
(3.2)传输。语音信道传输证书需要进行实时处理和低延时的播放,因此参数设置为单声道,采样率44100Hz,采样位数设置为16bit。为了方便数据的传送,将数据8bit划分,分成byte数组,然后进行转码,数据长度增加一倍,然后调制为频率数组,循环遍历数组调用的相应函数播放对应频率正弦波。
呼叫者P拨打被呼叫者V电话,电话接通以后,呼叫者P使用Hermes算法将转码调制的证书信息通过声音信息通过通话信道传输给被呼叫者V,被呼叫者V端将传输的声音信号通过解调译码转换为原始数据,还原为证书信息C。
(3.3)验证。被呼叫者V接收到呼叫者P证书信息C后,使用CA证书中的公钥(V事先存有CA的公钥),采集呼叫者声纹模型,并从中生成密钥对证书C解密;然后取出证书中的校验码,对证书进行校验码计算,比对结果是否相同,相同则表示证书无篡改。然后取出证书中包含的号码信息以及GMM声纹模型的特征参数,如果号码信息相同则表示呼叫者P的号码无篡改。通过呼叫者GMM声纹模型的特征参数对其声纹模型进行重构并对比结果,并以此确定呼叫者身份为真实可信的。
4.声纹识别
读取呼叫者的声音数据,经过前端的预处理,提取特征。用测试数据分别与呼叫者模型和通用背景模型进行似然度比较,对似然比进行取对数,得到打分,打分会根据设定的阈值来进行判断该语音片段是否属于该说话人,从而验证说话人的真实身份,流程如图2所示。
本发明的效果可以通过以下实验数据进一步验证。该实验在Android手机平台上实现,同时对传输效率和说话人识别都进行了测试和评估,其中语音信道传输签名证书的误码率在3.247%左右,误码率较低,能够较为稳健的传输数据,证书签名验证机制可行。声纹识别的准确率在72%,能够作为身份认证的参考。
本发明的有益效果是:
本发明在语音信道签名认证的作为第一重认证的基础上,补充了对于说话人的声纹识别作为第二重认证,能够更准确地保证说话人身份的真实性;
本发明在语音信道签名证书中同时添加了号码信息和声纹信息作为认证条件,同时从用户声纹特征参数中提取密钥对证书进行加密,进一步提高了证书的安全性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
机译: 语音段检测系统,语音起始端检测设备,语音终止端检测设备,语音段检测方法,语音起始端检测方法,语音终止端检测方法和程序
机译: 用于通过语音信道传输语音数据的客户端设备,具有语音识别部分,用于检测用户提供的验证码的语音输入,以判断语音信道的终止
机译: 基于客户端的显示状况的从服务器到客户端的多媒体数据传输控制方法,基于客户端的显示状况的从客户端到多媒体数据自适应解码的方法和模块,基于服务器的多媒体数据从客户端到客户端的传输到客户端的控制方法和客户端服务器系统