论文地址:ECAPA-TDNN:在基于TDNN的说话人验证中强调通道注意、传播和聚集

论文代码:https://github.com/TaoRuijie/ECAPA-TDNN

引用格式:Desplanques B, Thienpondt J, Demuynck K. Ecapa-tdnn: Emphasized channel attention, propagation and aggregation in tdnn based speaker verification[J]. arXiv preprint arXiv:2005.07143, 2020.

摘要

  目前的说话人验证技术依赖于神经网络来提取说话人的表征。成功的x-vector架构是一个时间延迟神经网络(Time Delay Neural Network,TDNN),它应用统计池将变长语音投射到定长说话人特征embedding中。在本文中,我们基于人脸验证和计算机视觉相关领域的最新趋势,对该体系结构提出了多种增强。首先,将初始帧层重构为具有有效跳跃连接的1维Res2Net模块。与SE-ResNet类似,我们在这些模块中引入了Squeeze and Excitation blocks,以显式地建模通道相互依赖性。SE-block通过根据录音的全局属性重新缩放通道来扩展帧层的时间上下文。其次,众所周知,神经网络可以学习分层特征,每一层都在不同的复杂程度上运行。为了利用这些互补的信息,我们聚合和传播不同层次的特征。最后,利用通道相关的帧注意力对统计池模块进行了改进。这使得网络在每个通道的统计估计期间专注于不同的帧子集。提出的ECAPA-TDNN架构在VoxCeleb测试集和2019年VoxCeleb说话人识别挑战赛上的表现明显优于最先进的基于TDNN的系统。

指标术语:说话人识别、说话人验证、深度神经网络、x-vector、通道注意力

1  引用

  近年来,x-vector[1]及其后续改进[2,3,4]一直在说话人验证任务上提供了最先进的结果。对原始时延神经网络(TDNN)架构的改进是一个活跃的研究领域。通常,神经网络是在说话人识别任务上训练的。收敛后,可以从输出层之前的瓶颈层提取低维的说话人embedding来表征输入录音中的说话人。说话人验证可以通过比较 登记和测试录音相对应的两个embedding来完成,以接受或拒绝两个录音包含同一说话人的假设。一个简单的余弦距离测量可以用于这种比较。此外,可以训练更复杂的评分后端,如概率线性判别分析(PLDA)[5]。

  x-vector系统的日益流行导致了显著的架构改进和优化的训练过程。系统的拓扑结构通过加入流行的ResNet[7]架构的元素而得到改进。在帧级层之间添加残余连接已被证明可以增强embedding[3,4]。此外,残差连接使反向传播算法收敛更快,并有助于避免梯度消失问题[7]。

  x-vector系统中的统计池层通过收集隐藏节点激活的简单统计信息,将变长输入投影到固定长度表示中。作者在[8,9]中向这个池化层引入了一个时间自注意系统,它允许网络只关注它认为重要的帧。它也可以解释为语音活动检测(VAD)的预处理步骤,以检测不相关的非语音帧。

  在这项工作中,我们对TDNN架构和统计池层提出了进一步的架构增强。我们引入了额外的跳跃连接来在整个系统中传播和聚合通道。使用全局上下文的通道注意力被合并到框架层和统计池层中,以进一步改善结果。

  本文组织如下:第2节将描述当前最先进的说话人识别系统,这将被用作基线。第3节将解释我们所提议的体系结构的新组件。第4节将解释我们的实验设置,以测试我们的架构中各个组件对VoxCeleb数据集的影响[10,11,12]。我们将在第5节讨论这些实验的结果。此外,还将提供流行的最新基准系统之间的比较。第6节将简要概述我们的研究结果。

2  DNN说话人识别系统

  两种基于DNN的说话人识别架构将作为强有力的基准来衡量我们提出的架构的影响:x-vector和基于ResNet的系统,它们目前都在VoxSRC[12]等说话人验证任务上提供了最先进的性能。

2.1  扩展的TDNN x-vector

  第一个基线系统是Extended TDNN x-vector架构[2,3,4],并在[1]中引入的原始x-vector系统的基础上进行改进。初始框架层由1维扩张卷积层与密集层交错组成。每个过滤器都可以访问前一层或输入层的所有特征。扩张卷积层的任务是逐步建立时间上下文。在所有帧级层中引入Residual connections。帧层之后是一个专注的统计池层,该层计算最终帧级特征的平均值和标准差。注意系统[8]允许模型选择它认为相关的帧。在统计池化后,引入两个全连接层,其中第一个层作为瓶颈层,生成低维说话人特征embedding。

2.2  基于ResNet的r-vector

  第二个基线系统是[4]中提出的r-vector系统。它是基于ResNet架构[7]的ResNet18和ResNet34实现。该网络的卷积帧层将特征处理为二维信号,然后在池化层中收集均值和标准差统计信息。关于拓扑的详细信息请参见[4]。

3  提议的ECAPA-TDNN架构

  在本节中,我们将研究x-vector体系结构的一些局限性,并在ECAPA-TDNN体系结构中纳入潜在的解决方案。下面的子节将重点介绍框架级和池级增强。图2给出了完整体系结构的概述。BN代表批归一化[13],除非另有说明,非线性是整流线性单元(ReLU)。

图2:ECAPA-TDNN的网络拓扑

我们表示$k$为内核大小,$d$为Conv1D层或SE-Res2Blocks的dilation间距

C和T分别对应中间特征图的通道维度和时间维度。S是训练说话人的人数

3.1  依赖于通道和上下文的统计信息池

  在最近的x-vector结构中,软自注意力被用于计算时间池化层[8]的加权统计量。多头注意力的成功表明,某些说话人的属性可以在不同的帧集上提取[9]。基于这些结果,我们认为将这种时间注意力机制进一步扩展到通道维度可能是有益的。这使得网络能够更多地关注在相同或相似的时间实例上不被激活的说话者特征,例如元音的特定说话者属性和辅音的特定说话者属性。

  我们实现了[8]中描述的注意力机制,并使其依赖于通道:

$$公式1:e_{t,c}=v_c^Tf(Wh_t+b)+k_c$$

其中$h_t$是时间步$t$时最后一帧层的激活。参数$W \in R^{R*C}$和$b \in R^{R*1}$将自我注意力的信息投射到一个更小的R维表示中,该表示在所有C通道中共享,以减少参数计数和过拟合的风险。在非线性$f(·)$之后,该信息通过权重为$v_c \in R^{R*1}$和偏差为$k_c$的线性层转换为通道相关的自我注意力得分。然后通过跨时间应用softmax函数在所有帧上对这个scalar score $e_{t,c}$进行标准化

$$公式2:\alpha_{t,c}=\frac{exp(e_{t,c})}{\sum_\tau^Texp(e_{\tau,c})}$$

自注意力得分$\alpha_{t,c}$表示给定通道的每一帧的重要性,用于计算通道$c$的加权统计量。对于每个语音,加权平均向量$\tilde{\mu}$的通道分量$\tilde{\mu} _c$估计为

$$公式3:\tilde{\mu} =\sum_t^T\alpha_{t,c}h_{t,c}$$

加权标准差向量$\tilde{\sigma }$的通道分量$\tilde{\sigma }_c$构造如下

$$公式4:\tilde{\sigma } _c=\sqrt{\sum_t^T\alpha_{t,c}h^2_{t,c}-\tilde{\mu}_c^2 }$$

将加权均值$\tilde{\mu} $和加权标准差$\tilde{\sigma } $的向量拼接,得到池化层的最终输出。

  此外,通过允许自注意力查看语音的全局属性,我们扩展了池化层的时间上下文。我们将(1)中的局部输入$h_t$与整个时域内$h_t$的全局非加权平均值和标准差连接起来。这个上下文向量应该允许注意机制适应话语的全局属性,如噪声或recording条件。

3.2  一维 Squeeze-Excitation Res2Blocks

  原始x-vector系统中帧层的时间上下文被限制为15帧。由于网络显然受益于更广泛的时间上下文[2,4,3],我们认为,在给定recording的全局属性的情况下,重新缩放帧级特征可能是有益的,类似于上面描述的注意力模块中的全局上下文。为此,我们引入了1维Squeeze-Excitation (SE)块,因为这种用于建模全局通道相互依赖性的计算机视觉方法已被证明是成功的[14,15]。

  SE-block的第一个组件是squeeze operation,它为每个通道生成一个描述符。squeeze operation 简单地包括计算跨时域的帧级特征的平均向量$z$。

$$公式5:z=\frac{1}{T}\sum_t^Th_t$$

然后在excitation operation中使用$z$中的描述符来计算每个通道的权重。我们定义随后的excitation operation为

$$公式6:s=\sigma (W_2f(W_1z+b_1)+b_2)$$

$\sigma (·)$表示sigmoid函数,$f(·)$表示非线性,$W_1 \in R^{R*C}$和$W_2 \in R^{C*R}$。此操作作为瓶颈层,$C$和$R$分别表示输入通道数和降维数。得到的向量$s$包含0到1之间的权重$s_c$,这些权重通过通道乘应用于原始输入

$$公式7:\tilde{h_c}=s_ch_c $$

  一维SE-block可以以各种方式集成到x-vector体系结构中,在每次扩张卷积后使用它们是最直接的方法。但是,我们希望将它们与residual connections[7]的好处结合起来。同时,与基线系统相比,我们不想过多地增加参数的总量。图1中显示的SE-Res2Block包含了上面提到的需求。我们包含了具有前一帧和后一帧上下文的密集层的扩张卷积。第一个密集层可用于降低特征维数,而第二个密集层则将特征数量恢复到原始维数。接下来是一个SE-block,用于扩展每个通道。整个网络由skip connection覆盖。

图1:ECAPA-TDNN架构的SE-Res2Block

标准Conv1D层的内核大小为1

缩放维数s = 8的中央Res2Net [16] Conv1D通过内核大小k和膨胀间距d扩展时间上下文

  使用这些传统的ResBlocks可以很容易地结合这种流行的计算机视觉架构的进步。例如,最近的Res2Net模块[16]增强了中央卷积层,使其可以通过构建分层的类残差连接来处理多尺度特征。该模块的集成提高了性能,同时显著减少了模型参数的数量。

3.3  多层特征聚合和求和

  原始的x-vector系统只使用最后一帧层的特征映射来计算汇总的统计信息。考虑到TDNN的分层性质,这些更深层次的特征是最复杂的,应该与说话者身份密切相关。然而,由于[17,18]中的证据,我们认为更浅的特征图也有助于更健壮的说话人embedding。对于每一帧,我们提出的系统连接所有SE-Res2Block的输出特征映射。在这个多层特征聚合(MFA)之后,一个密集层处理连接的信息,生成注意力统计池的特征。

  另一种利用多层信息的互补方法是使用所有前面的SE-Res2Blocks和初始卷积层的输出作为每个帧层块的输入[17,19]。我们通过将每个SE-Res2Block中的residual connections定义为所有先前块输出的和来实现这一点。我们选择特征映射的总和,而不是拼接,以限制模型参数的计数。没有求和residual connections的最终体系结构如图2所示。

4  实验步骤

4.1  训练说话人embedding提取器

  我们应用固定条件的VoxSRC 2019训练限制[12],只使用VoxCeleb2数据集[11]的开发部分,其中有5994人作为训练数据。保留约2%的数据子集作为超参数优化的验证集。众所周知,神经网络受益于产生额外训练样本的数据增强。我们为每个话语生成总共6个额外的样本。第一组增强遵循Kaldi配方[2],结合公开可用的MUSAN数据集(babble, noise)[20]和[21]中提供的RIR数据集(reverb)。其余三种增强是使用开源SoX(加快速度,减慢速度)和FFmpeg(交替opus或aac压缩)库生成的。

  输入特征是来自25毫秒窗口的80维mfc,帧移为10毫秒。采用倒谱平均减法对MFCCs特征向量进行二次随机归一化,不进行语音活动检测。作为最后的增强步骤,我们将SpecAugment[22]应用于样品的logmel谱图。该算法在时域随机屏蔽0 ~ 5帧帧,在频域随机屏蔽0 ~ 10个通道。

  所有模型都使用[23]中描述的tritriar2策略与Adam优化器[24]结合,以1e-8和1e-3之间的循环学习率进行训练。一个周期的持续时间设置为130k次迭代。所有系统都使用AAM-softmax[6,25]进行训练,其裕度为0.2,softmax预缩放为30,共4个周期。为了防止过拟合,我们对2e-5模型中的所有权重应用了权重衰减,除了使用2e-4的AAM-softmax权重。培训的迷你批量大小为128。

  我们研究了提出的ECAPA-TDNN架构的两种设置,在卷积帧层中使用512或1024通道。SE-Block和注意力模块中的瓶颈尺寸设置为128。Res2Block[16]的缩放维度s设置为8。最终全连接层的节点数为192。本系统的性能将与第2节中描述的基准进行比较。

4.2  说话人验证

  说话人embedding从所有系统的最终全连接层中提取。试验分数是使用embedding之间的余弦距离产生的。随后,采用自适应s范数对所有分数进行归一化[26,27]。冒名顶替者队列由所有训练话语的长度标准化embedding的说话者平均组成。对于VoxCeleb测试集,冒名顶替者队列的规模设置为1000,对于跨数据集VoxSRC 2019评估,则设置为更可靠的50。

4.3  评价方案

  该系统采用流行的VoxCeleb1测试集[10]和VoxSRC 2019评估集[12]进行评估。性能将通过提供相等错误率(EER)和最小归一化检测成本MinDCF, Ptarget = 10-2和CF A = CM iss = 1来衡量。一个简明的烧蚀研究被用来获得一个更深入的理解如何每个提出的改进影响性能。

5  结果

表1:标准VoxCeleb1和VoxSRC 2019测试集上所有系统的EER和MinDCF性能

  表1给出了第2节中描述的基线系统和我们提出的ECAPA-TDNN系统的性能概述,以及embedding提取器中模型参数的数量。我们实现了两种设置,卷积层中的过滤器C的数量设置为512或1024。我们提出的体系结构在使用更少的模型参数时显著优于所有基线。更大的ECAPA-TDNN系统在每个测试集的最佳评分基线上,EER和MinDCF的平均相对改善分别为18.7%和12.5%。我们注意到,基线的性能在大多数情况下超过了[3,4]中报道的数字。我们继续对第3节中介绍的各个成分进行消融研究。表2给出了这些结果的概述。

表2:ECAPA-TDNN结构消融研究

  为了衡量我们提出的注意力模块的影响,我们运行了一个实验A.1,使用来自[8]的注意力模块。我们还进行了一个单独的实验a .2,该实验不为所提议的注意提供上下文向量。依赖于通道和上下文的统计池系统将EER和MinDCF度量分别提高了9.8%和3.2%。这证实了对每个通道应用不同时间注意力的好处。添加上下文向量的结果是非常小的性能提升,系统相对提高了大约1.9%的EER和1.1%的MinDCF。尽管如此,这加强了我们的信念,即基于tdnn的架构应该尝试利用全局上下文信息。

  实验B.1证实了这种直觉,实验B.1清楚地显示了3.2节中描述的SE-block的重要性。在Res2Blocks中加入se模块后,EER和MinDCF指标分别提高了20.5%和11.9%。这表明,框架级特征的有限时间上下文是不够的,应该与基于全局的话语信息相补充。在实验B.2中,我们用ResNet对应物的标准中心扩张1D卷积替换了Res2Blocks的多尺度特征。多尺度Res2Net方法除了显著降低了30%的模型参数外,还使EER和MinDCF分别提高了5.6%和3.2%。

  在实验C.1中,我们只使用最终SERes2Block的输出,而不是聚合所有SERes2Block的信息。输出的汇总导致EER和MinDCF值的相对改善分别为8.2%和2.8%。去除所有残留连接(实验C.2)显示出类似的降解速率。将SE-Res2Blocks中的标准ResNet跳跃连接替换为之前所有SE-Res2Blocks的输出之和,EER提高了6.5%,而在实验C.3中,MinDCF分数略有下降。然而,在最近举行的短时间说话人验证(SdSV)挑战2020[28]期间的实验说服我们将求和残差纳入最终的ECAPA-TDNN架构中。这个挑战的强大结果表明该体系结构可以很好地推广到其他领域[29]。

6  结论

  本文提出了一种新的基于tdnn的说话人embedding提取器ECAPA-TDNN。我们进一步构建了原始的x-vector架构,并更加强调通道注意力、传播和聚合。压缩激励块、多尺度Res2Net特征、额外的跳跃连接和通道依赖的注意统计池的结合,导致在VoxCeleb和VoxSRC 2019评估集上,与强基线系统相比,EER平均显著提高了19%。

7  参考文献

[1] D. Snyder, D. Garcia-Romero, G. Sell, D. Povey, and S. Khudanpur, "X-vectors: Robust DNN embeddings for speaker recognition," in Proc. ICASSP, 2018, pp. 5329 5333.

[2] D. Snyder, D. Garcia-Romero, G. Sell, A. McCree, D. Povey, and S. Khudanpur, "Speaker recognition for multi-speaker conversations using x-vectors," in Proc. ICASSP, 2019, pp. 5796 5800.

[3] D. Garcia-Romero, A. McCree, D. Snyder, and G. Sell, "JHUHLTCOE system for the VoxSRC speaker recognition challenge," in Proc. ICASSP, 2020, pp. 7559 7563.

[4] H. Zeinali, S. Wang, A. Silnova, P. Matjka, and O. Plchot, "BUT system description to VoxCeleb speaker recognition challenge 2019," 2019.

[5] S. Ioffe, "Probabilistic linear discriminant analysis," in ECCV, 2006, pp. 531 542.

[6] J. Deng, J. Guo, N. Xue, and S. Zafeiriou, "ArcFace: Additive angular margin loss for deep face recognition," in 2019 IEEE/CVF CVPR, 2019, pp. 4685 4694.

[7] K. He, X. Zhang, S. Ren, and J. Sun, "Deep residual learning for image recognition," in IEEE/CVF CVPR, 2016, pp. 770 778.

[8] K. Okabe, T. Koshinaka, and K. Shinoda, "Attentive statistics pooling for deep speaker embedding," in Proc. Interspeech, 2018, pp. 2252 2256.

[9] Y. Zhu, T. Ko, D. Snyder, B. K.-W. Mak, and D. Povey, "Selfattentive speaker embeddings for text-independent speaker verification," in Proc. Interspeech, 2018, pp. 3573 3577.

[10] A. Nagrani, J. S. Chung, and A. Zisserman, "VoxCeleb: A largescale speaker identification dataset," in Proc. Interspeech, 2017, pp. 2616 2620.

[11] J. S. Chung, A. Nagrani, and A. Zisserman, "VoxCeleb2: Deep speaker recognition," in Proc. Interspeech, 2018, pp. 1086 1090.

[12] J. S. Chung, A. Nagrani, E. Coto, W. Xie, M. McLaren, D. A. Reynolds, and A. Zisserman, "VoxSRC 2019: The first VoxCeleb speaker recognition challenge," 2019.

[13] S. Ioffe and C. Szegedy, "Batch normalization: Accelerating deep network training by reducing internal covariate shift," in Proc. ICML, 2015, pp. 448 456.

[14] J. Hu, L. Shen, and G. Sun, "Squeeze-and-Excitation networks," in Proc. IEEE/CVF CVPR, 2018, pp. 7132 7141.

[15] J. Zhou, T. Jiang, Z. Li, L. Li, and Q. Hong, "Deep speaker embedding extraction with channel-wise feature responses and additive supervision softmax loss function," in Proc. Interspeech, 2019, pp. 2883 2887.

[16] S. Gao, M.-M. Cheng, K. Zhao, X. Zhang, M.-H. Yang, and P. H. S. Torr, "Res2Net: A new multi-scale backbone architecture," IEEE TPAMI, 2019.

[17] J. Lee and J. Nam, "Multi-level and multi-scale feature aggregation using sample-level deep convolutional neural networks for music classification," 2017.

[18] Z. Gao, Y. Song, I. McLoughlin, P. Li, Y. Jiang, and L.-R. Dai, "Improving Aggregation and Loss Function for Better Embedding Learning in End-to-End Speaker Verification System," in Proc. Interspeech, 2019, pp. 361 365.

[19] D. Povey, G. Cheng, Y. Wang, K. Li, H. Xu, M. Yarmohammadi, and S. Khudanpur, "Semi-orthogonal low-rank matrix factorization for deep neural networks," in Proc. Interspeech, 2018, pp. 3743 3747.

[20] D. Snyder, G. Chen, and D. Povey, "MUSAN: A music, speech, and noise corpus," 2015.

[21] T. Ko, V. Peddinti, D. Povey, M. L. Seltzer, and S. Khudanpur, "A study on data augmentation of reverberant speech for robust speech recognition," in Proc. ICASSP, 2017, pp. 5220 5224.

[22] D. S. Park, W. Chan, Y. Zhang, C.-C. Chiu, B. Zoph, E. D. Cubuk, and Q. V. Le, "SpecAugment: A simple data augmentation method for automatic speech recognition," in Proc. Interspeech, 2019.

[23] L. N. Smith, "Cyclical learning rates for training neural networks," in IEEE WACV, 2017, pp. 464 472.

[24] D. Kingma and J. Ba, "Adam: A method for stochastic optimization," Proc. ICLR, 2014.

[25] X. Xiang, S. Wang, H. Huang, Y. Qian, and K. Yu, "Margin matters: Towards more discriminative deep neural network embeddings for speaker recognition," 2019.

[26] Z. N. Karam, W. M. Campbell, and N. Dehak, "Towards reduced false-alarms using cohorts," in 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), 2011, pp. 4512 4515.

[27] S. Cumani, P. Batzu, D. Colibro, C. Vair, P. Laface, and V. Vasilakakis, "Comparison of speaker recognition approaches for real applications," in Proc. Interspeech, 2011, pp. 2365 2368.

[28] H. Zeinali, K. A. Lee, J. Alam, and L. Burget, "Short-duration speaker verification (SdSV) challenge 2020: the challenge evaluation plan," 2019.

[29] J. Thienpondt, B. Desplanques, and K. Demuynck, "Cross-lingual speaker verification with domain-balanced hard prototype mining and language-dependent score normalization," in Proc. Interspeech, 2020.

最新文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解
  2. Daily Scrum02 12.06
  3. Python in Unity
  4. Nginx 简介
  5. python mysql 更新和插入数据无效
  6. Pinterest 架构:两年内月 PV 从零到百亿【翻译】
  7. c函数习记
  8. 【android-cocos2d-X 环境配置】在Mac下搭建Cocos2d-X-android开发环境!
  9. C# 中的协变和逆变
  10. java面试核心基础(1)
  11. fedora 下安装 文泉驿正黑体
  12. PrintDocument组件打印
  13. IDEA使用有道翻译插件
  14. linux下的环境变量
  15. 2PC(Two Phase Commitment Protocol)原理
  16. Android 开发 View的API 转载
  17. Windows下Tomcat内存占用过高问题跟踪(ProcessExplorer+jstack)
  18. 挖坑:hive集成kerberos
  19. hdu4768二分答案
  20. POJ3070 Fibonacci(矩阵快速幂加速递推)【模板题】

热门文章

  1. webpack优化项目
  2. Appscan安全扫描问题-会话检测失败
  3. docker+nginx 安装部署修改资源目录配置文件和容器端口信息
  4. Git 实战代码分支管理 | Git Flow 策略
  5. C温故补缺(一):数据类型和基本类型占位
  6. MongoDB - 事务支持
  7. linux配置 python 开发环境sublime text及一些使用心得
  8. tostring、(string)和 String.valueOf()
  9. <五>function的实现原理
  10. vba 正则表达式用法