当前位置: 首页 > news >正文

【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_margin: False

2. 模型结构

2.1 Layer1: input层

x:(B,F,T) F=80
将原始80维fbank特征进行映射;
x->conv->relu->bn->(B,F’,T) F’=512

在这里插入图片描述
进入下面的layer2-4

2.2 Layer2-4:核心空洞卷积层

Layer2和Layer3、Layer4相似,只有两个超参数不同。下面介绍Layer2的结构。

整体结构

x: (B,F,T) F=512
x -> block1~4 -> new_x
return x + new_x

block1

x:(B,F,T) F=512
x->conv->relu->bn->(B,F,T)

block2

x: (B,F,T) F=512
x分为8块->(B,F’,T) F’=64

x1~x7执行:
conv-relu->bn->(B,F’,T)
x8不变

x1~x8合并->(B,F,T) F=512

block3

x:(B,F,T) F=512
x->conv->relu->bn->(B,F,T)

block4

SE block,对F维进行缩放
x:(B,F,T) F=512
x对最后一个维度求mean->(B,F)
(B,F) -> Linear1->Relu->Linear2->(B,F)->sigmoid->unsqueeze->(B,F,1) 得到scale

x * scale ->(B,F,T)

整体流程图
上图中标红的部分分别为layer2/3/4的参数,其他均相同

2.3 pool:池化层

2.3.1前处理

out2、out3、out4按照dim=1进行拼接->(B,3*F,T) (F=512)

按照下图的卷积参数进行卷积->(B,3F,T)
ReLU->(B,3
F,T)
在这里插入图片描述
然后进行下面的pool

2.3.2Attentive statistics pooling

x : (B,F,T) F=1536
对x在-1维度求mean,扩展为x维度;
对x在-1维度求std,扩展为x维度;
x拼接mean、std为(B,3*F,T) new_x

new_x->下图中的第一个卷积->tanh->下图中第二个卷积->(B,F,T) ->对最后一维度求softmax得到attention
attention * x ,最后一维度sum,得到mean;(B,F)
attention * x_2, 最后一维度sum - mean_2,得到std;(B,F)
拼接mean std->(B,2*F) 返回(B,3072)
在这里插入图片描述

2.3.3后处理(embed层)

x: (B,F) F=3072
x->bn-> (B,F) ->embed(下图的Linear)->(B,F’) F’=192

在这里插入图片描述

2.4 projection:映射层

根据具体的任务,将embed层映射为实际的分类;
x:(B,F) F=192
x->bn->relu->linear->(B,F’) F’=6

在这里插入图片描述

相关文章:

  • 【机器学习合集】泛化与正则化合集 ->(个人学习记录笔记)
  • Kafka入门05——基础知识
  • 二叉树的概念
  • uni-app——如何阻止事件冒泡
  • 97. 交错字符串
  • ES Nested解释
  • eslint识别不了别名解决方法
  • H5游戏源码分享-考眼力游戏猜猜金币在哪
  • 大模型在百度智能问答、搜索中的应用
  • selenium工作原理和反爬分析
  • ZKP7.1 Polynomial Commitments Based on Error-correcting Codes (Background)
  • 【前端性能】性能优化手段-高频面试题
  • JavaScript怎么把整数转换为字符串
  • 软考下午第一题 案列分析
  • C# Winform编程(10)Chart图表控件
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • create-react-app做的留言板
  • ES6--对象的扩展
  • JavaScript创建对象的四种方式
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • JS专题之继承
  • k个最大的数及变种小结
  • npx命令介绍
  • php的插入排序,通过双层for循环
  • PV统计优化设计
  • Python - 闭包Closure
  • vue 个人积累(使用工具,组件)
  • XForms - 更强大的Form
  • 服务器之间,相同帐号,实现免密钥登录
  • 构造函数(constructor)与原型链(prototype)关系
  • 看完九篇字体系列的文章,你还觉得我是在说字体?
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 什么是Javascript函数节流?
  • Nginx惊现漏洞 百万网站面临“拖库”风险
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (echarts)echarts使用时重新加载数据之前的数据存留在图上的问题
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (循环依赖问题)学习spring的第九天
  • (转)socket Aio demo
  • .net core 6 集成 elasticsearch 并 使用分词器
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 反射的使用
  • .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  • .NET 同步与异步 之 原子操作和自旋锁(Interlocked、SpinLock)(九)
  • .NET版Word处理控件Aspose.words功能演示:在ASP.NET MVC中创建MS Word编辑器
  • .net项目IIS、VS 附加进程调试
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Pointcut 使用
  • [ C++ ] 继承