声纹识别SR学习

声纹模型基础

训练、推理的流程框架

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.总结

posted @   深度睡眠学习  阅读(171)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
点击右上角即可分享
微信分享提示