背景
短语音不足以收集到足够的帧来学习音素信息,不同说话人的相同语句的相似度,可能大于同一个人不同语句的相似度。
实现流程
acoustic stem的输入为40维Fbank,phonetic stem的输入为100维ASR bottleneck features。
两个stem由中间的couple stem连接,第一层的couple stem的输入为Fbank与ASR bottleneck features的连接,之后每层的输入为acoustic stem、couple stem、phonetic stem的输出的连接。
PacNet对帧级别的特征进行操作,且三个Stem的channel、stride等保持相等。
网络的每个Stem都专注于学习不同的信息。acoustic的目的是直接从fbank中提取说话人的embedding。phonetic stem,找出ASR bottleneck features的transformation。coupled stem在知道frame的phonetic transformation时,提取更加speaker-related的说话人信息。
为何使用triplet loss:
softmax不存在两段utterance的比较,分类时不需要学习其他sample的acoustic and phonetic information,无法知道phonetic content是否影响了打分。
而triplet loss可以惩罚“不同说话人说同一句话,导致离得很近”的sample。
实验
dataset:
NIST SRE 04-10作为训练集,SRE10 Evaluation作为测试集,并全部剪成10秒。另外,用Fisher cor-
pus训练了ASR bottleneck features。
同时还使用了VoxCeleb进行evaluation。
Baseline:
与i-vector、x-vector进行了比较。其中x-vector为512维,用LDA将其降维到150,用PLDA进行打分。
Triplet Loss Framework:
训练了一个TDNN-based triplet loss network,提取了1000维的embedding,每个epoch都使用semi-hard random negative selection strategy,选择新的triplet training set,且都来自同一种性别。用欧氏距离度量。
PacNet:
用欧氏距离度量
本文的模型在NIST SRE10上取得了较好的结果,但在voxceleb上的结果一般。
end-to-end triplet system与x-vector相比,结果有退步。考虑到voxceleb的复杂性,以及triplet loss难以训练,这并不奇怪。
在voxceleb1上,PacNet虽然取得了最好的结果,但并不像NIST上那么突出。
VoxCeleb数据集是在不受约束的条件下从开源媒体收集的,它提供了一个更接近真实世界问题的数据集。然而,由于收集过程不受控制,说话人information与channel information交织。例如,dataset包括了各种不同的语言,但没有任何语言标签。无法知道模型是真的在试别说话人的声音,还是部分地试图识别其他与channel相关的信息,如录音设备、语言、背景噪音。