ECAPA-TDNN

2023-11-04 05:20
文章标签 tdnn ecapa

本文主要是介绍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如图
在这里插入图片描述

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

第一种实现如图所示:
在这里插入图片描述

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

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

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

标准差计算为
在这里插入图片描述

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

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

这篇关于ECAPA-TDNN的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/343529

相关文章

Time-Delay Neural Network(TDNN)-下

前言 本篇博客对TDNN网络结构的特性进行梳理,使读者了解设计所考虑的问题,关于其结构请参考博客Time-Delay Neural Network(TDNN)-上。博客基于对论文 Phoneme Recognition Using Time-Delay Neural Network 的阅读和理解,如有谬误,还望指出,不胜感激。 正文 语音识别的小伙伴都知道,语音识别通常要把一段不等场的语音切

Time-Delay Neural Network(TDNN)-上

前言 本篇博客仅对TDNN的网络结构进行简单梳理,使读者对TDNN的网络结构有一个清晰直观的印象。博客基于对论文 Phoneme Recognition Using Time-Delay Neural Network 的阅读和理解,如有谬误,还望指出,不胜感激。 正文 TDNN与1989年就已提出(在我出生之前), 用于音素识别。以下部分将以论文中的结构做简单说明,网络结构如下图: 这是一

【wespeaker】模型ECAPA_TDNN介绍

本次主要介绍开源项目wespeaker模型介绍 1. 模型超参数 model_args: feat_dim: 80 embed_dim: 192 pooling_func: “ASTP” projection_args: project_type: “softmax” # add_margin, arc_margin, sphere, softmax scale: 32.0 easy_marg

kaldi训练aishell模型时遇到run.pl:job failed, log is in exp/nnet3/tdnn_sp/log/train.13.2.log

一、错误显示 kaldi训练aishell模型时遇到run.pl:job failed, log is in exp/nnet3/tdnn_sp/log/train.13.2.log,如下图所示: 打开日志文件exp/nnet3/tdnn_sp/log/train.13.2.log,如下图: 即: Failed to write matrix to stream error clos