这篇文章介绍一下百度的声纹识别论文:Deep speaker: an End-to-End Neural Speaker Embedding System
其基本架构如图1所示
图1 Deep speaker基本架构
一段语音经过前端处理,做VAD,提取64维的fbank系数作为声学特征;然后将该特征作为深度神经网络的输入,这里的深度神经网络可以是基于ResNet的CNN,也可以是循环神经网络GRU;接着对深度神经网络的输出在时间方向上做平均,再接一个完全连接层得到512维的向量,做均值为1,方差为1的正规化之后,用该向量来表示该说话者。
训练的时候,使用Triplet loss作为损失函数。通过随机梯度下降,使得来自同一个人的向量相似度尽可能大,不是同一个说话者的向量相似度尽可能小。
以下将较为详细地介绍网络架构和Triplet loss
ResCNN
ResCNN的网络架构是基于ResNet的CNN,而且是完全卷积的,因此在时间方向上是可变的(当然,同一个batch中时间方向上必须一样)。使用CNN,其实是把声纹识别当成图像识别来处理了。这个可以看图1中的第二幅图,语音变换到频域之后就是一张图。其中,图的纵轴表示fbank的频点,这里是64;横轴表示时间,在这里是可变的