HI,欢迎来到起点商标网!
24小时服务QQ:2880605093

一种基于孪生卷积神经网络进行欺骗性语音检测的方法与流程

2021-01-28 12:01:15|288|起点商标网
一种基于孪生卷积神经网络进行欺骗性语音检测的方法与流程

[0001]
本发明属于语音检测技术领域,更具体的说是涉及一种基于孪生卷积神经网络进行欺骗性语音检测的方法。


背景技术:

[0002]
自动说话人确认(asv)旨在通过给定语音段自动确认说话者的身份。语音技术的最新进展通过各种欺骗攻击对asv系统构成了巨大威胁。有四种众所周知的攻击对asv系统构成了严重威胁,即模仿,文本语音转换(tts),语音转换(vc)和重播。针对于真实语音和欺骗性语音的两类高斯混合模型分类器通常用作asvspoof挑战的基线系统,该分类器旨在开发通用的有可能检测各种和无法预料的欺骗性攻击的对策。在经典高斯混合模型(gmm)中,分数是在所有特征帧上独立累积的,而且每个高斯分量的贡献信息都将被丢弃,并且在时间轴方向上也忽略了相邻帧之间的关系。这将直接影响着欺骗性语音检测的准确性。
[0003]
因此,如何提供一种基于孪生卷积神经网络进行欺骗性语音检测的方法是本领域技术人员亟需解决的问题。


技术实现要素:

[0004]
有鉴于此,本发明提供了一种基于孪生卷积神经网络进行欺骗性语音检测的方法,采用孪生卷积神经网络,能够大大提高欺骗性语音检测的准确性。
[0005]
为了实现上述目的,本发明采用如下技术方案:
[0006]
一种基于孪生卷积神经网络进行欺骗性语音检测的方法,包括如下步骤:
[0007]
(1)提取语音的高斯概率特征:
[0008]
(a)对所有原始语音进行预处理;
[0009]
(b)对预处理后的语音进行cqcc特征提取;
[0010]
(c)对cqcc特征训练得到两个高斯混合模型;
[0011]
(d)通过两个高斯混合模型提取语音的高斯概率特征;
[0012]
(2)对语音进行欺骗性检测:
[0013]
语音经过两个高斯混合模型提取特征后,得到二维矩阵,将二维矩阵输入到神经网络模型中进行语音欺骗性检测。
[0014]
优选的,对所有原始语音进行预处理,包括预加重、分帧和加窗:
[0015]
(1)预加重:语音信号的第n个采样点位x[n],预加重公式如下:
[0016]
x'[n]=x[n]-0.97*x[n-1]
[0017]
(2)分帧:将预加重后的语音分成短时语音帧,每帧帧长位20ms,为确保声学特征参数的平滑性,采用重叠取帧的方式,相邻帧重叠部分为10ms;
[0018]
(3)加窗:对每帧信号进行加窗处理,采用汉明窗函数,得到短时加窗的语音信号:
[0019]
x
l
[n]=w[n]*x[n+ll],0≤n≤n-1
[0020]
其中,w[n]=0.54-0.46cos(2πn/n-1)
[0021]
其中,w[n]是窗函数,n是窗长,l是帧索引,l是帧移。
[0022]
优选的,对预处理后的语音进行cqcc特征提取的方法包括:
[0023]
(1)常数q变换:
[0024]
将预处理后的语音时序信号x(n)进行常数q变换,即得到频域信号x
cqt
(k);常数q变换表示为:
[0025][0026]
其中,k是频带数,n
k
为可变窗函数,是a
k
(n)的共轭复数;a
k
(n)可表示为:
[0027][0028]
其中,f
k
是频率仓的中心频率,f
s
是采样率,φ
k
是相位相移,其中c是尺度函数,定义如下:
[0029][0030]
(2)获取能量谱:
[0031]
首先将经过常数q变换得到的频域信号x
cqt
(k)表示为:
[0032]
x
cqt
(k)=acosθ
k
k+jasinθ
k
k=a
k
+jb
k
[0033]
然后两边取平方得到能量谱:
[0034]
(3)信号转换
[0035]
对能量谱取对数将乘性信号转换为加性信号,得到log|x
cqt
(k)|2;
[0036]
(4)均匀采样:
[0037]
首先确定一个线性重采样周期t
l
,其中是递增的距离函数;
[0038][0039]
通过将第一个音程分成周期为t
l
的d等份,因为高音程是低音程分辨率的两倍,则可得到在第二个音程为2d等份;如此类推,第j个音程为2
j-1
d等份,自然就能确定线性重采样周期了;通过求解k
l
得到线性分辨率:
[0040][0041]
得到线性分布下的新采样频率f
l

[0042][0043]
(5)离散余弦变换:
[0044]
使用dct对频谱压缩后的得到cqcc特征;其中l是重采样后的频带数,p=0,1,...,l-1;
[0045][0046]
优选的,对cqcc特征训练得到两个高斯混合模型的方法为:
[0047]
训练集中包含多个真实语音和欺骗语音,分别将这两类语音的cqcc特征放在一起,采用em方法分别训练得到2个m阶高斯混合模型;对于d维向量x,概率密度计算公式为:
[0048][0049]
高斯混合分布的权重系数w
i
满足
[0050][0051]
概率密度是由m个正态高斯密度函数p
i
(x)组成:
[0052][0053]
其中,d为特征向量维度大小,μ
i
和σ
i
分别是高斯密度函数的均值和协方差矩阵。
[0054]
优选的,通过两个高斯混合模型提取语音的高斯概率特征的方法为:
[0055]
1)对于每条语音的cqcc特征序列x={x1,x2,...,x
n
},提取高斯概率分布特征:对于特征x
i
,对应的高斯概率特征f
i
,由其在高斯混合模型分量的概率值计算得到。对于f
i
中的每个分量f
ij
,计算公式为:
[0056]
f
ij
=log(w
j
·
p
j
(x
i
))
[0057]
其中,w
j
为高斯混合模型的第j个分量权重,p
j
为特征在高斯混合模型第j个分量上的概率密度值;
[0058]
2)对所有特征进行全局的均值方差归一化,计算所有语音的高斯概率特征的均值和方差,进行归一化
[0059][0060]
其中,μ
f
和σ
f
是训练集中所有语音的高斯概率特征的均值与方差。
[0061]
优选的,神经网络模型结构为:
[0062]
1)卷积层:包括多个一维卷积滤波器函数,窗口大小分别是2,3,4,5,6,7;
[0063]
卷积层的输入是经前面步骤后得到的语音特征,设语音帧数为t,语音转换成大小为512*t的二维向量x,输入到一维卷积层,卷积公式是:
[0064][0065]
其中,w
i,j
是滤波器的权重系数,b是偏移量,w
l
是滤波器的窗口大小;二维特征矩阵经过一个滤波器后,得到一维矩阵y,长度为t;系统中滤波器数量为512,得到512个一维向量,直接拼接组成一个大小为512*t的二维向量;系统中窗口大小设置6个不同的值,这样得到6个二维向量,直接拼接组成大小为3072*t的二维向量;
[0066]
2)池化层:对卷积层的输出的二维向量,用一维最大池化层获得固定大小为3072的一维向量z,每个元素的值z
l
的计算公式是:
[0067]
z
i
=max({y
i,j
})
[0068]
池化层对卷积层的输出二维矩阵y,沿着帧数方向取最大值,获得一维向量;由于前面特征提取的时候,根据两个高斯混合模型得到两组高斯概率特征,经过卷积层和池化层,得到两个大小为3072的一维向量,将这两个向量简单串接起来得到大小为6144的一维向量;
[0069]
3)全连接层:全连接层包含512个神经元节点,输出是大小为512的一维向量,其中每个节点的输出p
i
计算公式是:
[0070][0071]
其中,w
i,j
是滤波器的权重系数,b是偏移量,f是relu激活函数:
[0072]
f(x)=max(0,x)
[0073]
4)输出层:输出层包含2个神经元节点,分别表示分类的结果是真实语音q0还是欺骗语音q1;
[0074][0075][0076]
其中w
i,j
是滤波器的权重系数,b是偏移量,h是sigmoid激活函数:
[0077][0078]
最后根据o的两个元素值大小判断语音是正常语音还是欺骗语音。
[0079]
优选的,采用交叉熵损失函数训练神经网络,表示如下:
[0080][0081][0082]
其中,k是神经网络输出的节点数,i是输出层节点索引,是真实的标签,z
i
是输出层第i个节点的原始输出,y
i
是其激活输出。
[0083]
本发明的有益效果在于:
[0084]
传统的gmm会在所有帧上独立累积分数,并且不会考虑每个高斯分量对最终分数的贡献,相邻帧之间的关系也被忽略。本发明采用孪生卷积神经网络,基于真实语音和欺骗语音两种高斯混合模型训练,来进行欺骗语音检测,对于话语,高斯概率特征包括每个gmm组件上的分数分布,提出一维cnn模型,该模型不仅考虑gmm上的帧得分,还考虑帧之间的局部关系,还提出了一种用于欺骗语音检测的孪生卷积神经网络,它基于分别训练为真实语音和欺骗语音的两个高斯混合模型,能够大大提高欺骗性语音检测的准确性。
附图说明
[0085]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0086]
图1附图为本发明的方法流程图。
[0087]
图2附图为本发明高斯混合模型的流程图。
具体实施方式
[0088]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0089]
请参阅附图1,本发明提供了一种基于孪生卷积神经网络进行欺骗性语音检测的方法,包括如下步骤:
[0090]
(1)在传统的语音cqcc特征的基础上,进一步提取高斯概率分布特征:
[0091]
(a)对所有原始语音进行预处理;
[0092]
(b)对预处理后的语音进行cqcc特征提取;
[0093]
(c)对cqcc特征训练得到两个高斯混合模型;
[0094]
(d)通过两个高斯混合模型提取语音的高斯概率特征;
[0095]
(2)对语音进行欺骗性检测:
[0096]
语音经过两个高斯混合模型(分别在真实语音和欺骗语音集上训练得到)提取特征后,得到二维矩阵,将二维矩阵输入到神经网络模型中进行语音欺骗性检测。
[0097]
本实施例中,对所有原始语音进行预处理,包括预加重、分帧和加窗:
[0098]
(1)预加重:语音信号的第n个采样点位x[n],预加重公式如下:
[0099]
x'[n]=x[n]-0.97*x[n-1]
[0100]
(2)分帧:一般认为语音信号具有短时平稳特性,将预加重后的语音分成短时语音帧,每帧帧长位20ms,为确保声学特征参数的平滑性,采用重叠取帧的方式,相邻帧重叠部分为10ms;
[0101]
(3)加窗:对每帧信号进行加窗处理,采用汉明窗函数,得到短时加窗的语音信号:
[0102]
x
l
[n]=w[n]*x[n+ll],0≤n≤n-1
[0103]
其中,w[n]=0.54-0.46cos(2πn/n-1)
[0104]
其中,w[n]是窗函数,n是窗长,l是帧索引,l是帧移。
[0105]
本实施例中,对预处理后的语音进行cqcc特征提取的方法包括:
[0106]
(1)常数q变换:
[0107]
将预处理后的语音时序信号x(n)进行常数q变换,即得到频域信号x
cqt
(k);常数q变换表示为:
[0108][0109]
其中,k是频带数,n
k
为可变窗函数,是a
k
(n)的共轭复数;a
k
(n)可表示为:
[0110][0111]
其中,f
k
是频率仓的中心频率,f
s
是采样率,φ
k
是相位相移,其中c是尺度函数,定义如下:
[0112][0113]
(2)获取能量谱:
[0114]
首先将经过常数q变换得到的频域信号x
cqt
(k)表示为:
[0115]
x
cqt
(k)=acosθ
k
k+jasinθ
k
k=a
k
+jb
k
[0116]
然后两边取平方得到能量谱:
[0117]
(3)信号转换
[0118]
对能量谱取对数将乘性信号转换为加性信号,得到log|x
cqt
(k)|2;
[0119]
(4)均匀采样:
[0120]
首先确定一个线性重采样周期t
l
,其中是递增的距离函数;
[0121][0122]
通过将第一个音程分成周期为t
l
的d等份,因为高音程是低音程分辨率的两倍,则可得到在第二个音程为2d等份;如此类推,第j个音程为2
j-1
d等份,自然就能确定线性重采样周期了;通过求解k
l
得到线性分辨率:
[0123][0124]
得到线性分布下的新采样频率f
l

[0125][0126]
(5)离散余弦变换:
[0127]
使用dct对频谱压缩后的得到cqcc特征;其中l是重采样后的频带数,p=0,1,

,l-1;
[0128][0129]
本实施例中,对cqcc特征训练得到两个高斯混合模型的方法为:
[0130]
训练集中包含多个真实语音和欺骗语音,分别将这两类语音的cqcc特征放在一起,采用em(expectation maximization,期望最大)方法分别训练得到2个m阶高斯混合模
型(如512阶);对于d维向量x,概率密度计算公式为:
[0131][0132]
高斯混合分布的权重系数w
i
满足
[0133][0134]
概率密度是由m个正态高斯密度函数p
i
(x)组成:
[0135][0136]
其中,d为特征向量维度大小,μ
i
和σ
i
分别是高斯密度函数的均值和协方差矩阵。
[0137]
本模型采用em算法来获得这些参数,算法描述如下:
[0138]
a)首先设定高斯混合模型的阶数m,设定初始状态各高斯分布的权重系数w
i
=1/m,各个高斯分布的协方差矩阵σ
i
为单位矩阵,均值向量其中为训练样本的均值向量,δμ
i
为较小的随机向量。
[0139]
b)设训练语音的特征为{x
t
t=1,2,

,t},按照下面公式对高斯混合模型参数进行估计:
[0140][0141][0142][0143]
c)重复b步骤50次。
[0144]
本实施例中,通过两个高斯混合模型提取语音的高斯概率特征的方法为:
[0145]
1)对于每条语音的cqcc特征序列x={x1,x2,

,x
n
},提取高斯概率分布特征:对于特征x
i
,对应的高斯概率特征f
i
,由其在高斯混合模型分量的概率值计算得到。对于f
i
中的每个分量f
ij
,计算公式为:
[0146]
f
ij
=log(w
j
·
p
j
(x
i
))
[0147]
其中,w
j
为高斯混合模型的第j个分量权重,p
j
为特征在高斯混合模型第j个分量上的概率密度值;
[0148]
2)对所有特征进行全局的均值方差归一化,计算所有语音的高斯概率特征的均值和方差,进行归一化:
[0149][0150]
其中,μ
f
和σ
f
是训练集中所有语音的高斯概率特征的均值与方差。
[0151]
本实施例中,神经网络模型结构为:
[0152]
1)卷积层:包括多个一维卷积滤波器函数,窗口大小分别是2,3,4,5,6,7;
[0153]
卷积层的输入是经前面步骤后得到的语音特征,设语音帧数为t,语音转换成大小为512*t的二维向量x,输入到一维卷积层,卷积公式是:
[0154][0155]
其中,w
i,j
是滤波器的权重系数,b是偏移量,w
l
是滤波器的窗口大小;二维特征矩阵经过一个滤波器后,得到一维矩阵y,长度为t;系统中滤波器数量为512,得到512个一维向量,直接拼接组成一个大小为512*t的二维向量;系统中窗口大小设置6个不同的值,这样得到6个二维向量,直接拼接组成大小为3072*t的二维向量;
[0156]
2)池化层:对卷积层的输出的二维向量,用一维最大池化层获得固定大小为3072的一维向量z,每个元素的值z
l
的计算公式是:
[0157]
z
i
=max({y
i,j
})
[0158]
池化层对卷积层的输出二维矩阵y,沿着帧数方向取最大值,获得一维向量;由于前面特征提取的时候,根据两个高斯混合模型得到两组高斯概率特征,经过卷积层和池化层,得到两个大小为3072的一维向量,将这两个向量简单串接起来得到大小为6144的一维向量;
[0159]
3)全连接层:全连接层包含512个神经元节点,输出是大小为512的一维向量,其中每个节点的输出p
i
计算公式是:
[0160][0161]
其中,w
i,j
是滤波器的权重系数,b是偏移量,f是relu激活函数:
[0162]
f(x)=max(0,x)
[0163]
4)输出层:输出层包含2个神经元节点,分别表示分类的结果是真实语音q0还是欺骗语音q1;
[0164][0165][0166]
其中w
i,j
是滤波器的权重系数,b是偏移量,h是sigmoid激活函数:
[0167][0168]
最后根据o的两个元素值大小判断语音是正常语音还是欺骗语音。
[0169]
本实施例中,采用交叉熵损失函数训练神经网络,表示如下:
[0170][0171]
[0172]
其中,k是神经网络输出的节点数,i是输出层节点索引,是真实的标签,z
i
是输出层第i个节点的原始输出,y
i
是其激活输出。
[0173]
传统的gmm会在所有帧上独立累积分数,并且不会考虑每个高斯分量对最终分数的贡献,相邻帧之间的关系也被忽略。本发明采用孪生卷积神经网络,基于真实语音和欺骗语音两种高斯混合模型训练,来进行欺骗语音检测,对于一段语音,高斯概率特征包括每个gmm组件上的分数分布,提出一维cnn模型,该模型不仅考虑gmm上的帧得分,还考虑帧之间的相邻关系,还提出了一种用于欺骗语音检测的孪生卷积神经网络,它基于分别训练为真实语音和欺骗语音的两个高斯混合模型,能够大大提高欺骗性语音检测的准确性。
[0174]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0175]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。

此文章来源于网络,如有侵权,请联系删除

tips