2 q( W- ^7 a2 Y; W1 U2 J, D3 u经过at ht的激活函数结果是平均值u6 q3 s+ i. P: H4 B7 c1 Z) I: L' t
7 J) e* ^. b' |5 q由此得到加权后的平均值和标准差 ; C Y7 i0 M* l% H- w5 H/ D3 O' j, f( p! O
6 G% C/ m1 H! S. H1 \- x6 O
$ _* `" \, H% L, H! l
Evaluation+ `6 L& y8 B2 a: S
8 m7 R; z( u3 N1 V& W- }9 b
下面采用了5种embedding的方法,测试NIST SRE2012 通用场景2; NIST SRE2012 说话时长; VoxCeleb共三种情况。 8 {) Y% H4 F" y/ w比较神奇的是i-vector经常作为一种baseline方案,居然有如此低的EER,文中给出的解释是NIST 2012数据集中的数据语音本身就比较长。/ z% B: {& d- E* H
; `( ?6 E7 B+ t/ ~8 C4 v" X) S
; S5 L$ |/ T4 E/ |# W7 s4 t9 K1 t" y7 L6 z
2 u6 X9 m2 r& d( W/ V/ N! L4 a0 U: [* g2 I
Conclusion 4 [! a) B Z$ M" T; o* F+ R( T# ^& l. s( z0 B, {' T9 A
我们已经提出了注意力统计池化方式来提取deep speaker embedding,**池化层计算的是经过注意力机制作用的加权特征平均值、加权特征标准差。**这使得说话人其纳入能够focus重要的帧。不仅如此,长时间的偏差能够被说话人统计在标准差中。比如结合了注意力机制和标准差提供了协同效应。 7 I% w' t) o, Q0 q: a& H6 H& |$ ]9 D
Paper2:Self-Attentive Speaker Embeddings for Text-Independent Speaker Verification* G/ N5 A$ R4 r. z% A+ M
{9 D7 u7 q7 C' J
Abstract7 v% A8 _, w8 w+ ~
- U/ f! X0 }8 H! e, [* b/ U, y6 {' u
这篇文章提出了一种文本无关场景说话人场景用DNN提取特征。通常,说话人嵌入是分类DNN平均了说话人帧上的隐藏向量;所有帧产生的隐藏向量被认为是同等重要的。我们反驳了这一假设,将说话人嵌入作为帧级隐藏向量的加权平均值进行计算。其权重是由自相关机制自动确定的。多个注意头对说话人输入语音不同方面的影响,最后,用PLDA分类器比较嵌入对。在NIST SRE 2016上,将提出的自相关说话人嵌入系统和强大的DNN嵌入baseline进行比较。我们发现,self-attentive的embedding具有卓越的性能,其改进对于长时、短时的语音都有不错的效果。3 t/ q g% n9 F8 Q& T
0 J/ m( \8 A$ k" t4 C- @ |' ]Introduction, h) ^1 m$ ^( f% U, k; S: i
" [, g2 M D# [: S说话人识别(声纹识别)的目的是从几句人说的话来确认一个人的身份。有两种系统:一种是文本相关、一种文本无关。 # T1 m9 x( `0 N) `$ i/ w' P5 _近些年对于文本无关的声纹识别方案主要是:结合i-vectors和使用PLDA(概率线性判别分析) " o" a) r3 h" l; J" d& M* Q% y另外,将训练好的DNN用于ASR或者其他方案。不仅如此,这个方案的成功率已经主要地独立于英语数据集 9 A* C8 A6 O" }$ h2 SICASSP 2016【End-to-end text-dependent speaker verification】 提出了一种端到端系统,用于文本相关的说话人识别任务,联合的训练来匹配说话人嵌入的帧级特征,并且学习一些相似度比较尺度来匹配embedding pairs。3 N H _" B! N+ E
Interspeech 2017【Deep neural network embeddings for text-independent speaker verification】 将端到端系统分为两个部分:a. 产生说话人嵌入的DNN; b. 比较嵌入对的单独训练的PLDA分类器。与端到端方法相比,该方法需要的有效数据更少,并且有利于重用多年来开发的用于处理和比较i-vector的方法的附加好处。 ( s- ^ u. Y& _1 ^& B! p- k大多数基于DNN的声纹识别系统使用池化机制来匹配可变长度的语音->定长的embeddings。在一个前馈架构【啥是前馈结构??】里,这通常被池化层使能,并且能够在全语音输入部分平均一些帧级DNN的特征。早期的系统中,如d-vector,DNN是在帧级别上训练的,并且通过对输入话语的所有帧上的最后一个隐藏层. z- F: m$ v1 }8 e3 }( v
这篇文章提出了一种x-vector的架构。为了更好地在输入语音中使用说话人信息,我们提出用结构化的自注意力机制帧级权重,用自注意机制和加权的统计池化层。不同于STL 2016 【End-to-end attention based text-dependent speaker verification】, 这篇文章的工作是文本无关并且是训练、测试数据不同的。因此语音信息可能没有帮助甚至无法使用。 9 t- a+ J8 \5 }然而在最先进的工作中,这些池化机制分配同等权重和帧级特征。张等人提出了一种注意力模型来对于文本相关的说话人识别应用,结合帧级特征。 # |. g8 V* {" F$ M" l& H# ?Speaker verification system. B7 Y) b1 C$ K4 j! R2 ~3 `
2 e, A7 Y: I$ o: L$ d2 O# [2 p4 m
作者把自己的方案和两个x-vector的baseline方案进行了对比。: j! c! q- i6 c$ u
9 i# X1 l5 Y( C" F
其中图一这个网络结构:L1~ L5使用了时延神经网络,tdnn可以很大程度上保留上下文信息,起到取代rnn的作用,而且tdnn是卷积网络,可以并行计算,rnn不行,tdnn比rnn快,kaldi里面也是强推tdnn,具体L1~ L5的操作如下图所示:/ _/ o9 x# o7 Q7 V
xv每次卷积计算的时候第一层只取输入的5帧,第二层取第一层的3帧,但是这三帧是隔一帧取一帧,第三层取第二层的三帧,隔两帧取一帧。 6 Z' F' p1 E- o* T I+ P) g* y3 @7 ?然后统计池化层聚合了所有帧级输出向量,计算他们的平均值和标准差。池化的作用使DNN可以从变化长度的语音中产生定长的表征向量。平均和标准偏差合并在一起,然后向前传送到L6和L7,最后输出到softmax层。+ \+ j* O% b$ J7 y4 e
# s2 z L% @, A4 {比如一段说话时长为T的语音,其输出向量为H = {h1, h2, …, hT},ht是输入帧xt的隐藏表征(通过了L1 ~ L5的TDNN时延神经网络的隐含表示)。我们认为ht的维度是dh。那么,整个H语音隐含向量是dhT。自注意力机制将整个隐含表达H向量作为input,并且输出矩阵A:2 d+ G% i2 ?! G
" G1 F: Y4 D6 |' k( Q" J& ~# w
H维度dhT;W1维度dhda;W2维度dadr,另外dr是一个超参数,表达注意力机制的多头个数。g(·)是ReLU,softmax是column-wise (按照列分类的)。所以最后得,softmax(T*dr维) => dr维的行向量结果。' B6 @! V% S5 ]7 x! B
; s7 j; ^1 @; P; }2 j
因为由(1)知道,A是自注意后得到的权重矩阵,每一个A矩阵的列向量是符号向量,表示了不同ht的权重。当注意力头数是1时,就是一个简单从H中计算得来的加权平均向量。 ! e0 a l& u" d1 H% k; N6 T; K8 @3 ^* o, _+ a5 l; L+ i" |3 m
很明显的是,不同说话人特征不同的原因有多个方面,特别是当语音片段很长的时候。通过增加dr,我们能够轻松的获得多注意力头来学习一个说话人语音的不同方面。为了增加向量的多样性,因此每个注意力透能够从相同的语音片段中获得不同的信息。一个惩罚函数表示如下:! y. C/ H- E0 e. P) I& Q
, a. O9 ]& P7 I( l+ _
P和L2范式非常接近,所以它是想让这个A的权重平方越来越小。) J9 }/ F) V0 U& F
% _1 F8 d: k2 X
Experiment! n. j4 P( i* a/ c& ]
) q. m; x$ i2 b$ ]6 i% L/ u2 h 0 z! O' l( }4 y6 u. W+ y对于baseline的i-vector方案来说(最后一行)广东话的错误率8.3%,DCF16最小检测代价指标0.549;对于菲律宾语迁移能力差一些,pool是指将两者测试集混合起来。6 E2 {+ I, S. K" a
+ i8 H- r5 n( _, x9 s& a+ }* E补充知识/ ^4 v1 G4 d) g, r, U& ]+ w
% U" V4 U$ c1 V7 L& I: [. L+ R8 R
什么是x-vector的baseline系统?The x-vector baseline system & ~9 g) E7 s3 n# N4 O( _5 b& Z4 m2 i
可以认为x-vector baseline system就是训练了一个专门的DNN模型,能够把输入的语音转化为输出的speaker embedding向量,把这个向量称为x-vector,然后经过PLDA模型是用来进行比较这些speaker embedding,最终转化为结果的。 - {3 g$ W5 i( i3 F% u* f6 @; C2 I/ x
最小检测代价(Minimum Detection Cost Function, minDCF):+ K+ w: B. z- S8 ~) |+ Y( U! s. b
# N4 ^" P- S: N: _7 V
【转载自https://blog.csdn.net/qq_33811075/article/details/85101874】: `' D+ ?5 [# g& [
DCF 是 NIST SRE 中定义且常用的一种性能评定方法。其定义为:9 m* C6 J1 A; n. p$ c
f$ I$ y# o. i% a: U. |3 I5 }
其中 CFR和 CFA 分别代表错误拒绝和错误接受的惩罚代价,Ptarget和1 − Ptarget 分别为真实说话测试和冒认测试的先验概率。可以根据不同的应用环境来设定它们的值。比如在军事门禁系统中,我们希望严格控制出入人员,即希望错误接受的概率比较小,那么可以增大 CFA 的值;在监控犯罪人员的语音时,我们希望不漏掉可能的目标语音,则可以增大CFR 的值。当 CFR、CFA 、Ptarget 和 1 − Ptarget取定后,EFR 与 EFA 的某一组取值使得 DCF 最小,此时的 DCF 成为 minDCF 。 , w. o8 B# F9 O2 S5 y5 _$ ]! S在日常使用 DCF 时,通常以 NIST SRE 2008 设定的CFR = 10,CFA = 1,Ptarget= 0.01 为准。minDCF 不仅考虑了两类错误的不同代价,还考虑了两种测试情况的先验概率,比 EER 更合理。 ' M ], w2 D1 E; j0 N * o0 t) `5 R' I2 bEvaluation D z4 A6 o1 D9 p
/ ?: C G2 w: F' D, l4 U' x- B: R9 @5 m下图代表的是只做平均处理的系统,当SRE16数据集中的粤语+菲律宾语混合做为测试集时。两者会融合起来,DET曲线的横纵轴将FAR和FER转为对数度量,这时候曲线越靠近原点,说明系统的EER错误识别率越小,性能越好。 & v Z3 c$ R( c1 ]: t) |5 u$ K; P/ h1 W7 H9 O
下图代表的是使用平均化且拼接标准差的系统,当SRE16数据集中的粤语+菲律宾语混合做为测试集时。两者会融合起来,DET曲线的横纵轴将FAR和FER转为对数度量,这时候曲线越靠近原点,说明系统的EER错误识别率越小,性能越好。! s5 L7 `: p4 P; a [5 a+ h
0 M" F6 e: i; g& i! @除了在模型上的评估。文章还对语音的长度影响做了评判:得到了3个意料之内的结果: : M9 z, ~4 C) S+ Q; F% x: I& \& m# S6 T1 l. d
自注意机制嵌入能够带来性能提高,不论是什么语音长度。1 Y5 Q# X0 r. V0 P' Y
持续时间长的语音识别效果更好,因为说的话越多,speaker的信息就越充分。' j% w* ?" s) O" i) F
自注意机制如果有比较多的注意头会性能更优秀。 : A. L2 e- G+ ?0 [1 G; P8 w( ^+ a2 ~0 W% r
Conclusion D( z" r7 X" d; F
4 d# |2 f, L8 j- \! R* o2 k
我们提出了一种提取说话人embedding的方法,对于文本无关的说话人验证,通过把self-attention机制加入到DNN embedding中。这种新的speaker embedding方法成功地在SRE 16上面进行评测,这个数据集的难点在于训练数据是说英语的,但是测试数据是用广东话或者菲律宾语的。结果当然是这个文中提出的方法好于基于传统i-vector和DNN embedding的方案啦…通过增加attention heads数,效果更好了。 ' Y/ l( r( |; s" j- V: f. a+ M# G) \
future works: 我们打算通过调整训练策略,比如使用更大的数据集。另外,调研不同的多头注意力惩罚机制。 3 j$ k, m. D. H5 j3 o5 _# X+ p4 ]6 k+ O2 u6 U: \( n1 O) z* {3 M" n
Reference - E! J0 r8 x# o, c; ~' m+ n1 T! {. Y/ }
[1]: Attentive Statistics Pooling for Deep Speaker Embedding + K, s3 l$ z( p6 r5 Z% u[2]: Self-Attentive Speaker Embeddings for Text-Independent Speaker Verification . h$ g7 u1 U2 G, u8 z" [———————————————— ; y5 C' T7 O( z: Z6 u* d版权声明:本文为CSDN博主「letterli」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 , N+ J* U2 v3 E8 B$ B: V原文链接:https://blog.csdn.net/qq_37221583/article/details/105677379 1 Z8 v% W n: Z X" B' |9 g' c % W+ ]2 [5 X; ~ " L( Y+ V, n/ X$ u- j. r