深度聚类改进损失函数![](https://i-blog.csdnimg.cn/blog_migrate/7ae43374ff6735ed5f91a67b910d8738.png)
Pseudo-Phoneme Label Loss(伪音素标签损失)
伪音素标签损失函数是一种用于文本无关说话人验证(TI-SV)任务的损失函数。它通过将内容聚类损失和说话人识别损失整合到一个统一的网络中,通过多任务学习来计算损失函数,从而引入语音内容信息,而无需额外的数据要求和高计算资源消耗。
伪音素标签是一种通过聚类方法生成的用于表示语音特征的标签。在伪音素标签的生成过程中,将语音信号的帧级特征输入到深度神经网络中,利用网络的隐藏层表示学习数据的特征表示。然后,通过对隐藏层表示进行聚类算法(如k-means)来将帧级特征分组成不同的类别,并将每个帧特征所属的类别视为伪音素标签。伪音素标签的生成过程不需要额外的标注数据,只需要使用简单的聚类方法即可。通过引入伪音素标签,可以将语音信号的内容信息引入到说话人特征的学习中,从而提高说话人识别的性能。
PPL损失函数的计算包含两个部分:聚类损失和说话人损失。
首先,通过深度聚类方法生成伪音素标签,将池化层之前的帧级特征进行聚类,得到类别中心,并将每个帧特征所属的类别视为伪音素标签。
然后,将帧级特征与类别中心计算相似度矩阵,并将该矩阵与伪音素标签进行比较,得到聚类损失。
接下来,将段级特征映射到说话人类别数量,并使用真实的说话人标签计算交叉熵损失。
最后,将聚类损失和说话人损失相加,作为模型的总损失。
通过引入伪音素标签损失函数,可以指导网络训练以改进帧级特征,并获得包含语音信息的说话人特征。该方法不需要对ASR模型进行额外的训练,只需要使用简单的聚类伪标签来计算帧级信息损失,从而将音素信息引入说话人表示,大大简化了网络计算和模型复杂性。网络的整体架构如图1所示,损失计算过程如图2所示。
图 1. 用于说话人识别的 x 向量架构。使用联合学习,将TDNN层的帧级信息与PPL层中的中心向量进行比较,计算PPL损失,然后将其与CE损失相加,得到总损失。
图 2. PPL 损失的计算过程。原始表示 TDNN 层输出的 D × L 维特征向量,PPL 层表示可学习字典编码 (LDE) 层维护的 D × C 维中心向量。相似度矩阵 M 由 TDNN 层的特征和 LDE 层的转置特征计算,得到 L × C 矩阵的结果。在矩阵 M 中,每一行表示 PPL 层中输入和 C 个中心向量的每一帧特征之间的相似度,每个颜色表示一个类。之后,根据聚类结果,每一帧特征的对应类是伪音素标签Lpseudo。最后,在 M 和 Lpseudo 之间计算 CE 损失以获得 PPL 损失。。