热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

声纹识别模型解析之GE2E

论文:GENERALIZEDEND-TO-ENDLOSSFORSPEAKERVERIFICATION思想:本文是在Google上一篇论文attention-basedmodel(T

论文:

  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


    • softmax




技术分享图片




    • contrast




 

技术分享图片

   其中,j、k 代表说话人,1=技术分享图片

 

技术分享图片

 

训练:





  • 数据集


    • 文本相关


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

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


    • 文本无关:30M utts 18K speakers


  • MutilReader:本文中提出了一种multiReader训练策略,该策略将多个不同数据源数据进行融合训练,不同数据源之间相互起到正则化作用,使得模型更加鲁棒;此外,multiReader策略通过调节对应的目标函数权重因子,还能较好的处理数据源之间的不平衡



技术分享图片

其中,K为第K个数据源,αk为第K个数据源的权重因子;



  • 输入特征:40维log-fbanks

  • 输入序列:


    • 文本相关:通过关键词检测得到的800ms的分割片段

    • 文本无关:随机获取的[140,180]帧范围内的分割片段




技术分享图片



  • 模型结构:


    • 文本相关:3*LSTMP(128,64)

    • 文本无关:3*LSTMP(768,256)


  • 训练细节参数:


    • batch: N=64speakers 每个speakers包含M=10utts

    • 优化算法:SGD

    • 学习率:0.01,每隔30M steps学习率降为之前的1/2

    • clip_grad:3

    • cosine权重:(w,b)=(10,-5)


  • 测试:


    • 文本相关:输入序列仍然是通过关键词检测获取的800ms分割片段,然后输入到网络中提取特征表达

    • 文本无关:对输入样本采用滑窗的形式,窗口大小为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:

[1]https://wangquan.me/files/research/attention_ICASSP_2018.pdf(TE2E)

[2]https://arxiv.org/abs/1710.10467(本文)


推荐阅读
  • 深入解析Unity3D游戏开发中的音频播放技术
    在游戏开发中,音频播放是提升玩家沉浸感的关键因素之一。本文将探讨如何在Unity3D中高效地管理和播放不同类型的游戏音频,包括背景音乐和效果音效,并介绍实现这些功能的具体步骤。 ... [详细]
  • 本报告记录了嵌入式软件设计课程中的第二次实验,主要探讨了使用KEIL V5开发环境和ST固件库进行GPIO控制及按键响应编程的方法。通过实际操作,加深了对嵌入式系统硬件接口编程的理解。 ... [详细]
  • LeetCode 102 - 二叉树层次遍历详解
    本文详细解析了LeetCode第102题——二叉树的层次遍历问题,提供了C++语言的实现代码,并对算法的核心思想和具体步骤进行了深入讲解。 ... [详细]
  • JavaScript 中引号的多层嵌套使用技巧
    本文详细介绍了在 JavaScript 编程中如何处理引号的多级嵌套问题,包括双引号、单引号以及转义字符的正确使用方法。 ... [详细]
  • Awk是一款功能强大的文本分析与处理工具,尤其在数据解析和报告生成方面表现突出。它通过读取由换行符分隔的记录,并按照指定的字段分隔符来划分和处理这些记录,从而实现复杂的数据操作。 ... [详细]
  • 本文探讨了互联网服务提供商(ISP)如何可能篡改或插入用户请求的数据流,并提供了有效的技术手段来防止此类劫持行为,确保网络环境的安全与纯净。 ... [详细]
  • 本文详细介绍如何安装和配置DedeCMS的移动端站点,包括新版本安装、老版本升级、模板适配以及必要的代码修改,以确保移动站点的正常运行。 ... [详细]
  • Python3爬虫入门:pyspider的基本使用[python爬虫入门]
    Python学习网有大量免费的Python入门教程,欢迎大家来学习。本文主要通过爬取去哪儿网的旅游攻略来给大家介绍pyspid ... [详细]
  • 探讨了在HTML表单中使用元素代替进行表单提交的方法。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 解决UIScrollView自动偏移问题的方法
    本文介绍了一种有效的方法来解决在使用UIScrollView时出现的自动向下偏移的问题,通过调整特定的属性设置,可以确保滚动视图正常显示。 ... [详细]
  • 本文详细介绍了 Node.js 中 OS 模块的 arch 方法,包括其功能、语法、参数以及返回值,并提供了具体的使用示例。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 本文探讨了一种常见的C++面试题目——实现自己的String类。通过此过程,不仅能够检验开发者对C++基础知识的掌握程度,还能加深对其高级特性的理解。文章详细介绍了如何实现基本的功能,如构造函数、析构函数、拷贝构造函数及赋值运算符重载等。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
author-avatar
菜123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有