zoukankan      html  css  js  c++  java
  • 声纹识别算法阅读之GE2E

    论文:
      GENERALIZED END-TO-END LOSS FOR SPEAKER VERIFICATION
    思想:
      本文是在Google上一篇论文attention-based model(TE2E[1])的基础上,针对损失函数做的改进,提出了GE2E loss;GE2E loss包含softmax和contrast两种具体形式,每种形式的目标不仅仅是增大样本与所属说话人中心的cosine得分,同时减小样本与非所属说话人中心cosine得分;此外,在GE2E计算consine得分时,采用相似矩阵计算形式,一次性计算所有consine得分,相比TE2T,可显著加速计算;再者,论文还提出了多数据源同时训练的正则话策略,也在一定程度上对效果有所提升。
    值得一提的时,该网络结构即可以用于文本相关说话人确认任务,也可以用于文本无关说话人辨别任务;不同任务时,输入序列位置、输入序列长度以及test时的输入样本特征表达的计算形式有所区别。
    模型:
      网络采用多层LSTMP形式,提取输入样本的说话人表达;然后计算验证样本和所有说话人中心的cosine得分;最后通过softmax或contrast进行基于相似度得分的损失统计,反向传播更新参数。
    • LSTMP:每层LSTM后接一层线性映射层,以达到减少参数的目的;LSTM结构具有较好的时序建模特性。
    • 相似度得分:带权重的cosine得分;与TE2E不同的是,这里计算的不是两个样本间的得分;而是验证样本与说话人中心之间的consine得分;这里,说话人中心的计算为先对特征表达进行L2归一化,然后再计算属于该说话人的所有特征表达的均值
    需要说明的是,训练过程中计算验证样本与所属说话人的相似度得分时,计算去掉该样本的说话人中心使得训练更稳定
     
    其中,M表示说话人样本个数
    • 损失函数:GE2E的目标函数,使得在训练过程中,验证样本与所属说话人中心的得分逐渐趋紧于1,同时使得与其它说话人中心的得分趋近于0
    1. softmax
    1. contrast
     
       其中,j、k 代表说话人,1=<j、k<=N,1=<i<=M, σ(x) = 1/(1 + e-x),即sigmoid函数,最终整体的损失为
     

    训练:

    • 数据集
    1. 文本相关

        “OK Google” ~630k speakers ~150M utts

        “OK/Hey Google” ~1.2M utts ~ 18k speakers

    1. 文本无关:30M utts 18K speakers
    • MutilReader:本文中提出了一种multiReader训练策略,该策略将多个不同数据源数据进行融合训练,不同数据源之间相互起到正则化作用,使得模型更加鲁棒;此外,multiReader策略通过调节对应的目标函数权重因子,还能较好的处理数据源之间的不平衡
    其中,K为第K个数据源,αk为第K个数据源的权重因子
    • 输入特征:40维log-fbanks
    • 输入序列:
    1. 文本相关:通过关键词检测得到的800ms的分割片段
    2. 文本无关:随机获取的[140,180]帧范围内的分割片段
    • 模型结构:
    1. 文本相关:3*LSTMP(128,64)
    2. 文本无关:3*LSTMP(768,256)
    • 训练细节参数:
    1. batch: N=64speakers 每个speakers包含M=10utts
    2. 优化算法:SGD
    3. 学习率:0.01,每隔30M steps学习率降为之前的1/2
    4. clip_grad:3
    5. cosine权重:(w,b)=(10,-5)
    • 测试:
    1. 文本相关:输入序列仍然是通过关键词检测获取的800ms分割片段,然后输入到网络中提取特征表达
    2. 文本无关:对输入样本采用滑窗的形式,窗口大小为160帧,每个窗口分割片段输入到网络中提取特征表达并进行L2归一化;最后将各个窗口的表达取均值作为该样本的特征表达
    实验:
    • 本文提出的MultiReader策略相对于直接进行数据混合,能够较好的处理数据源之间的不平衡问题,使得模型更加鲁棒,相应的效果也更好
    • 在文本相关说话人确认任务中,GE2E损失训练的模型相比于TE2E,EER更低,效果更好;此外,MultiReader策略能够进一步提升效果
    • 在文本无关说话人辨别任务中,GE2E损失训练的模型相比于TE2E、CE交叉熵,EER也更低;表明在文本相关和文本无关说话人识别中,GE2E要比TE2E更好
    • 无论是文本相关,还是在文本无关说话人识别任务,GE2E相比于TE2E,识别效果都更好,同时训练速度也更快;文本相关任务中,GE2E训练时间不到TE2E的60%,文本无关任务中,GE2E训练速度约为TE2E的3倍;原因在于,GE2E采用相似度矩阵的形式,将验证样本与说话人中心的consine得分进行一次矩阵运算,相比于TE2E的逐个cosine得分计算,速度具有明显优势;
    公式中,GE2E的一次更新,相当于TE2E的至少2(N-1)次迭代,M为说话人句子个数,P为抽取的句子个数,P=M意味着抽取说话人所有样本
    结论:
      论文从损失函数层面进行优化和改进,提出了softmax和contrast两种损失;这两种损失的目的都是使得验证样本与所属说话人中心之间的得分趋近于1,同时与其它说话人中心的得分趋近于0;从实验效果看,GE2E相比于attentioned-based 的TE2E确实效果更好;论文还提出了一种MultiReader的多数据源融合训练策略,相比于直接将不同的数据源进行混合训练,将不同数据源按照权重因子进行加和,实验结果证明该策略能够较好的处理数据不平衡的问题;此外,论文在计算相似度得分的时候,采用矩阵相乘的形式运算,可以极大的提升训练速度。
    Reference:
  • 相关阅读:
    java对象的四种引用
    linux安装python3
    ORACLE配置重做日志文件
    oracle添加控制文件,ORA-00214: 错误
    oracle new 和old 关键字
    with open
    json库
    requests
    urllib模块
    python读取txt天气数据并使用matplotlib模块绘图
  • 原文地址:https://www.cnblogs.com/zy230530/p/13657678.html
Copyright © 2011-2022 走看看