声纹识别综述+⼀个简易的tensorflow 实现的模型
声纹识别定义
exact time声纹识别是通过对⼀种或多种语⾳信号的特征分析来达到对未知声⾳辨别的⽬的。声纹识别的理论基础是每⼀个声⾳都具有独特的特征,通过该特征能将不同⼈的声⾳进⾏有效的区分。这种独特的特征主要由两个因素决定
第⼀个是声腔的尺⼨,具体包括咽喉、⿐腔和⼝腔等,这些器官的形状、尺⼨和位置决定了声带张⼒的⼤⼩和声⾳频率的范围。因此不同的⼈虽然说同样的话,但是声⾳的频率分布是不同的,听起来有的低沉有的洪亮。每个⼈的发声腔都是不同的,就像指纹⼀样,每个⼈的声⾳也就有独特的特征。
第⼆个决定声⾳特征的因素是发声器官被操纵的⽅式,发声器官包括唇、齿、⾆、软腭及腭肌⾁等,他们之间相互作⽤就会产⽣清晰的语⾳。⽽他们之间的协作⽅式是⼈通过后天与周围⼈的交流中随机学习到的。⼈在学习说话的过程中,通过模拟周围不同⼈的说话⽅式,就会逐渐形成⾃⼰的声纹特征。
因此,理论上来说,声纹就像指纹⼀样,很少会有两个⼈具有相同的声纹特征。
语⾳具备了⼀个良好的性质,称为短时平稳,在⼀个20-50毫秒的范围内,语⾳近似可以看作是良好的周期信号,因此⼀般处理语⾳都是⽤20-50ms分帧处理。
声纹识别分类
⽂本⽆关识别,⽂本相关识别;说话⼈辨认,说话⼈确认;开集,闭集等。
预处理
VAD,去噪,解混响,speaker paration等。
声纹识别的评价指标
1.等错误概率EER:当FA和FR相等时的错误概率
2.最⼩检测代价:,和是代价因⼦。
3.DET曲线(detection error tradeoff):FA和FR的曲线
数据集
geologyNIST SRE
RSR2015 Text-Dependent
C =C P (1−FA FA P )+P C P (1−FR FR P )N C FA P FR
VAD
大学预科班什么意思短时能量:取20ms为⼀帧,然后⽤3⾼斯混合模型拟合,取作为分分界,来确定是否有声⾳。(为经验值,通常取1.5
到2,mid为中间⾼斯分量)
加权有限状态转移(WFST):⽤静⾳和⼀些说话声⾳训练⼀个HMM,然后进⾏VAD,缺点是需要标注数据。特征
MFCC梅尔倒频系数:原理⼈⽿对低频⽐⾼频敏感,流程signal-FFT-三⾓滤波器-DCT-MFCC
PLP感知线性预测:线性预测的系数(⾃相关)。
动态因⼦:MFCC和PLP都是对短时语⾳帧提取的特征,前后做差可以得到动态因⼦
against⾼斯混合模型
对于⼀个维特征向量,混合概率密度定义为
是个unimodal(单峰) Gaussian densities 之和, 每个⾼斯分布的参数有⼀个维的均值向量,和⼀个
维的协⽅差矩阵:
混合权重满⾜。模型记为, where .
这⾥我们把限定为对⾓阵,这是因为对⾓阵有3个好处:1.full covariance GMM可以被更⾼阶的diagonal covariance GMM等效表⽰;2.diagonal-matrix GMMs计算效率更⾼,因为公式中有⼤量的求逆,转置之类的;3.根据经验,我们观察到对⾓矩阵GMM优于全矩阵GMM。
给定训练特征向量集,可以使⽤EM算法估计最⼤似然模型参数。
通常假设特征向量,之间是独⽴的,那么给定参数下的似然概率为GMM-UBM
m −mid α
Σmid αD x p (x ∣λ)=w p (x ),
i =1∑M i i M p (x )i D ×1μi D ×D Σi p (x )=i exp [−(x −μ)(Σ)(x −(2π)∣Σ∣D /2i 1/21
21i ′i −1μ)]
i w i w =∑i =1M
i 1λ={w ,μ,Σ}i i i i =1,...,M Σi X ={x ,...,x }1T λlog p (X ∣λ)=log p (x ∣λ),
t =1∑T t
punkrock
UBM是指根据所有说话⼈(有标签+没标签)训练出的⾼斯混合模型,作为说话⼈识别的先验分布。
在GMM-UBM系统中,我们通过使⽤说话⼈的训练语⾳和贝叶斯⾃适应的⽅法调整UBM的参数来推导出说话⼈模型。⾃适应⽅法的基本思想是通过更新UBM中训练好的参数来推导说话者的模型。这提供了说话⼈模型和UBM之间更紧密的耦合,这不仅⽐解耦模型产⽣更好的性能,⽽且评分更快速。
给定UBM和对应某个speaker的训练向量,我们⾸先将每个向量与UBM中的⾼斯分布对应,也就是说对于UBM第个⾼斯分量,我们计算
然后⽤和计算权重,均值和⽅差的统计量:
这和普通的EM算法expectation step相同。然后⽤这些统计量更新UBM中的参数:
是保证和为1的缩放因⼦。参数是控制新旧变量的平衡,被定义为:
是固定的相关因⼦。更新公式可以看作是最⼤后验概率估计(MAP)。如果某个⾼斯分量的很低,那
么对应的也就很⼩,那么更新时会更强调旧的(训练好)的均值和⽅差。反之会更倾向⽤新的数据来更新模型。这样会使得对于训练数据受限的情况下的鲁棒性更强。本⽂中我们取所有的。当取时,GMM-UBM就退化成普通的EM算法了。
X =x ,...,x 1T i Pr (i ∣x )=t w p (x )wechat什么意思中文
∑j =1M j j t w p (x )i i t Pr (i ∣x )t x t n =i Pr (i ∣x )
t =1∑T t E (x )=i Pr (i ∣x )x n i 1t =1∑T
t t E (x )=i 2Pr (i ∣x )x n i 1t =1∑T
t t 2=w ^i [αn /T +i w i (1−α)w ]γi w
i =μ^i αE (x )+i m i (1−α)μi m i
=σi 2^αE (x )+i v i 2(1−α)(σ−i v i 2μ)−i 2μ^i
2γw ^i αα=i p n +r i p
nexuss
n i r n i αr =p 16r =p 0
Log-Likelihood Ratio Computation
测试序列的log-likelihood ratio为。由于是从中更新来的,许多分量并没有更新,所以log-likelihood ratio可以被the top C best scoring近似;⽽且GMM和UBM中的分量⼀⼀对应。可以利⽤上述的两个trick加快评分过程。Handt Score Normalization
对于不同信道的样本可以通过调整模型的均值和⽅差来提升准确率。
雨的英文
JFA and i-vector
因⼦分析是把声⾳向量分解为,是speaker- and ssion-independent supervector(UBM),V和D为说话⼈的⼦空间(分别是本征话⾳矩阵和对⾓残差),U是会话⼦空间(eigenchannel matrix)。向量是Normal distribution ,表⽰对应⼦空间的随机变量。i-vector是把声⾳,然后通过EM算法求解出各个分量。然后进⾏相当于提取特征+降维(200-400多维度)。然后⽤cosine距离或者PLDA进⾏分类。
Deep Speaker: an End-to-End Neural Speaker Embedding System - Baidu Inc.
将信号变到频域上,然后⽤ResNet或者GRU提取特征,⽤triplet loss做损失函数
名头
triplet loss
在FaceNet中,作者提出了基于度量学习的误差函数Triplet loss,其思想来源如下:
其中Anchor 为训练数据集中随机选取的⼀个样本,Positive 为和Anchor属于同⼀类的样本,⽽Negative 为和Anchor不同类的样本。
该不等式本质上定义了同类样本和异类样本之间的距离关系,即:所有同类样本之间的距离+阈值threshold,要⼩于异类样本之间的距离。当距离关系不满⾜上述不等式时,我们可通过求解误差函数,
四级作文万能句子
通过反向传播算法来调节整个⽹络:logp (X ∣λ)−hyp logp (X ∣λ)ubm λhyp λubm M =m +V y +Ux +Dz m y ,z ,x N (0,I )M =m +Ux ∣x −i a x ∣+i p 22threshold <∣x −i a x ∣i n 2
2
x i a x i p x i n L =max (∣x −i ∑i a x ∣+i p 22threshold −∣x −i a x ∣,0)i n 22
利⽤该公式可分别计算出、和的梯度⽅向,并根据反向传播算法调节前⾯的⽹络。center loss
Center loss是ECCV2016中⼀篇论⽂提出来的概念,主要思想就是在softmax loss基础上额外加⼊⼀个正则项,让⽹络中每⼀类样本的特征向量(softmax前的向量)都能够尽量聚在⼀起。
表⽰第个类别的中⼼,梯度为:
整体的loss为,控制center loss和交叉熵的⽐重,通过梯度更新权重,通过更新中⼼。
tuple-bad end-to-end (TE2E) model:
对于每个输⼊元组,我们计算LSTM的L2归⼀化响应:。这⾥每个是固定维度的嵌⼊向量,其由LSTM定义的序列向量映射产⽣。元组的质⼼为
$使⽤余弦相似度函数定义相似性:是learnable。TE2E loss定义为:
是sigmoid函数,当时,TE2E损失函数⿎励更⼤的值,⽽当时,⿎励更⼩的值。考虑正元组和负元组的更新-与FaceNet中triplet loss⾮常相似。
GENERALIZED END-TO-END LOSS FOR SPEAKER VERIFICATION - Google Inc.x i a x i p x i n
=x i a ∂L 2(x −i ∑i a x )−i p 2(x −i a x )=i n 2x −i ∑i n x i
p =x i p ∂L 2(x −i ∑i p x )
i a =x i a ∂L 2(x −i ∑i a x )
i n L =C ∣x −21i ∑i c ∣y i 2
2c y i i =x i ∂L C
x −i c y i
Δc =
j 1+δ(y =j )∑i i δ(y =j )⋅(c −x )
∑i i j i L =L +S λL C λΔc j {e ,(e ,...,e )}j k 1kM e c =k E [e ]=km e M 1∑i =1M
km
s =w ⋅cos (e ,c )+j k b
w ,b L (e ,c )=T j k δ(i ,k )σ(s )+(1−δ(i ,k ))(1−σ(s ))
σk =j s k =j s