首页 > 其他分享 >声纹识别SR学习

声纹识别SR学习

时间:2023-02-23 16:56:42浏览次数:34  
标签:说话 SR 学习 CNN speaker Softmax 语音 声纹识别

声纹模型基础

训练、推理的流程框架

image-20230210110730187

ASV简介

image-20230210111112269

关联任务

  • 说话人日志(Speaker diarisation)通过声纹识别把说话人身份表示出来,采访、庭审
  • 特定说话人分离 (Target speaker separation)机器在嘈杂场景能听到想听的人的声音
  • 特定说话人合成/变声 (Target speaker synthesis/voice conversion)地图导航、私人语音助手
  • 目标说话人语音识别 (Target speaker ASR)
  • 语音分类任务(Speech Classification)

发展历史

image-20230210115139078

传统的说话人识别系统对比端到端的说话人识别系统

image-20230210131547760

编码层:将不定长的语音得到定长的向量,一般用到pooling层,全局的pooling,全局平均、全局池化

声纹识别数据及工具包

image-20230210213544354

端到端说话人识别

1.模型框架

image-20230213202846260

2.特征提取

image-20230213203033247

预加重:补偿高频分量损失

分帧:语音信号非平稳,FFT的输入要求是平稳信号,25ms=0.025s ×16000=400个采样点

加窗:频谱泄露

FFT:通常采样点512 变成频域信号

取模:得到Spectrogram 频谱图

image-20230213203630612

Mel滤波:Spectrogram线性图,而人耳信号是非线性的,将线性谱映射到非线性谱 得到FBank,常用于说话人识别

取对数:得到对数FBank

DCT:离散余弦变换,得到输出特征向量MFCC,常用于ASR

3.前端建模

3.1 D-Vector

image-20230215205833037

D-Vector:只考虑当前帧的一个信息,每一帧都过全连接层,最后做average,得到embedding

3.2 X-VECTORS(TDNN)

image-20230215210311098

模型框架分为两部分,frame-level帧级别建模,segment-level段级别建模

frame1:包含5帧的信息,既有当前帧,也有前后几帧。输入经过全连接层得到512维向量,再滑动平移

image-20230215210512732

TDNN时延神经网络=1维的卷积神经网络1D CNN:考虑上下语音的信息

一维卷积(单通道):时间轴上滑动

image-20230215210652747

image-20230215210710604

一维卷积(多通道)

24个channel进行卷积,求和

image-20230215211047453

image-20230215211107662

image-20230215211341452

image-20230215211430403

image-20230215211452093

image-20230215211518479

frame2:当前帧5帧,前2帧,后2帧,共9帧

frame3:当前帧9帧,前3帧,后3帧,共15帧.此时layer3

image-20230215211833475

frame4 5:不考虑别的信息了,等价于DNN全连接层

image-20230215212045018

3.3 ResNet(2D CNN)

总结

1D CNN 输出是一张图的高维特征

2D CNN 输出是多通道的特征图(多张图)

image-20230215212254842

4.编码层

把不定长的语音向量,变成定长的语音向量。

image-20230215212622320

4.1 GAP(Global Average Pooling) GSP(Global Statistics Pooling)

全局平均GAP

image-20230219102547930

统计池化GSP

image-20230219102639397

image-20230219102821447

C:channel层

F:频域,通常不变。维度和特征不变

T:时域,随着语音信号长度改变

image-20230219103052834

image-20230219103126156

沿着不随时间变化的维度做池化

image-20230219103414218

layer5中 一帧就是1500的向量,时间轴是T,沿着频域轴做SP

过两个segment全连接层,再softmax。

segment6的输出作为speaker embedding

4.2 ASP (Attentive Statistics Pooling)

基于注意力机制的统计池化层

image-20230219104503969

给每一帧的特征过一个全连接层,过一个激活函数得到时间轴上这一帧的权重et,再给所有的权重做softmax。得到带权重的均值和方差。

用Transformer代替Attention

image-20230219104905298

5.损失函数

5.1 Softmax

image-20230219105805254

5.2 AAM-Softmax(ArcFace:Additive Angular Margin Loss for Deep Face Recognition)

image-20230219110014085

5.3 CosFace=AM-Softmax

image-20230219110535546

更推荐使用AM-Softmax

6.模型评估

image-20230219110915690

现在打分常用余弦相似度Cosine Similarity

我们需要用大量的注册语音和测试语音来验证模型性能

Trial file

image-20230219113107973

image-20230219113307155

eg:当阈值为0.6 FAR=1/3 FRR=1/3

实战 模型实现

1.前端建模的实现

2.编码层的实现

3.分类器的实现

4.总结

标签:说话,SR,学习,CNN,speaker,Softmax,语音,声纹识别
From: https://www.cnblogs.com/WangH1016/p/17148673.html

相关文章

  • python学习笔记
    1.变量名称区分大小写(age、Age和AGE是三个不同的变量)2.在函数内部创建一个与全局变量同名的变量:x="awesome"defmyfunc():x="fantastic"print("Pythonis"......
  • 学习笔记——Nginx在linux中的命令
    2023-02-231、Nginx命令(1)开启Nginx安装Nginx之后,在“/usr/local/nginx/sbin”目录中sudo./nginx(2)关闭Nginx,在“/usr/local/nginx/sbin”目录中sudo./nginx-s......
  • 深度学习-LSTM
    目录前言神经网络的历史和背景循环神经网络的出现及其作用LSTM在处理序列数据中的应用LSTM的基本原理LSTM的结构和原理遗忘门、输入门、输出门的作用LSTM的训练方法代码LST......
  • 集群调度LSF-学习笔记
    集群-------多台设备HPC集群----多台用于计算的设备集群调度-LSF:LSF是一种强大的工作负载管理平台,提供基于各种策略的智能调度功能,利用分布式的基础架构资源来提高整体的......
  • 我有一壶酒 Android学习之Service(1)--->BinderService方式
      本文只讨论扩展Binder类   创建一个Binder.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.and......
  • Android学习之Service(1)--->Started方式
     界面退出后进程程序还在运行,不会被杀死,如音乐播发器、后台下载等  注:本文只讨论Started方式    main.xml代码分析<?xmlversion="1.......
  • python+playwright 学习-12.Mock 接口返回,模拟各种异常场景
    前言web自动化主要测前端UI的功能,有很多异常的场景,我们很难造真实的场景去触发,比如服务器异常时候,前端的提示语。这时候就可以使用mock功能,模拟接口的返回,测试前端的......
  • MXNet学习——初识AlexNet
     相关理论&故事背景书上都有,不打算复述一遍,这里仅作代码记录&分享此处非直接可用代码,由于学习过程中多次使用相同函数,故而将一些常用函数整理成了工具包,​​MxNet学习——......
  • SpringBoot基础篇学习讲义
    SpringBoot文档更新日志版本更新日期操作描述v1.02021/11/14A基础篇前言​ 很荣幸有机会能以这样的形式和互联网上的各位小伙伴一起学......
  • c++学习笔记——模板和IO(二)
    C++异常前言:异常处理就是处理程序中的错误。所谓错误是指在程序运行的过程中发生的一些异常事件(如:除0溢出,数组下标越界,所要读取的文件不存在,空指针,内存不足等等)在对C语......