ECAPA-TDNN

实现流程
ECAPA-TDNN由三部分组成:

1-Dimensional Squeeze-Excitation Res2Blocks
传统的x-vector的frame-layers只考虑了15帧的信息,而我们想要其考虑全局的信息,因此使用了 Squeeze-Excitation (SE) blocks首先是squeeze操作:
将每一帧 frame-level features按时间取平均,输入特征为[N, C, L], 其中N为batch size,L为特征帧数, C为channel数,则通过求平均值,将特征压缩成[N,C,1]:
在这里插入图片描述

之后是excitation操作:
在这里插入图片描述
最后再将其与输入点乘相当于每个通道分别乘上一个权值。
在这里插入图片描述
整个Res2Blocks如图
ECAPA-TDNN_第1张图片

Multi-layer feature aggregation and summation
有两种实现方式:
1. 将每一个Res2Blocks的输出连接起来,再与全连接层连接。
2. 将每一个Res2Blocks的输出求和,而不是连接,从而减小参数量

第一种实现如图所示:
ECAPA-TDNN_第2张图片

Channel-and context-dependent statistics pooling
通过注意力机制,赋予每一帧不同的权重
在这里插入图片描述

其中ht代表t时刻的帧,得到权重后,将其归一化
在这里插入图片描述

平均值计算为
在这里插入图片描述

标准差计算为
ECAPA-TDNN_第3张图片

输出将平均值与标准差连接起来即可

实验
使用Voxceleb2数据集,AAM-softmax用来对输出进行分类,分类的个数是说话人的数量(输入之前应先通过一个线形层)。
提取最后的全连接层作为说话人的embedding,使用余弦相似度进行打分。
ECAPA-TDNN_第4张图片

你可能感兴趣的:(声纹识别)