干货:NIST评测(SRE19)获胜团队声纹识别技术分析 | CSDN博文精选
作者 | xjdier
来源 | CSDN博文精选
(*点击阅读原文,查看作者更多精彩文章)
近日,NIST说话人识别技术评测 (Speaker Recognition Evaluation,SRE)正式公布榜单,芯片初创公司清微智能和清华大学等机构组成的联队,在Conversational Telephone Speech (CTS)和Multimedia两个任务上均取得全球前十,亚洲地区第一的好成绩。
NIST SRE是由美国国家标准与技术研究院主办的国际上最权威、规模最大的声纹识别技术评测和多媒体评测,为全球的研究机构提供了一个统一的测试平台。竞赛包含两个任务,分别考验电话信道语料(CTS)和音视频语料(Audio-visual)上声纹识别的性能,目的在于通过比这样的形式探索说话人识别的新技术、新方法,提升说话人识别系统的性能。从1996年举办至今,参加NIST SRE评测的研究机构逐年增加,今年有包括MIT,JHU,NEC等各国顶尖学术科研机构和公司参加。
从1995年开始,混合高斯模型的统计模式识别技术被引入说话人识别,2000年Reynolds提出的GMM-UBM模型成为声纹识别领域最重要的基石。2008年kenny提出联合因子分析(JFA)将GMM均值超矢量空间划分为本征空间,信道空间,残差空间,分别对说话人和信道空间建模。由于JFA进行信道补偿时不可避免的包含说话人信息,并且存在空间掩盖和空间重叠的问题,因此不能对说话人和信道进行准确建模和区分,于是在2010年Najim Dehak等人提出使用全局差异空间代替本征空间和信道空间,即I-vector对说话人进行建模。随着数据和计算资源的丰富,基于深度学习的声纹识别带来了性能的进一步提升。2018年X-vector在D-vector的基础进行改进,通过在帧级特征上池化映射获得可以表示说话人特性的段级向量,成为state-of -the -art的框架。基于X-vector说话人建模的声纹识别系统主要包括语音特征提取,说话人建模和后端分类器进行信道补偿及似然度打分三个部分。
团队对现有说话人建模和后端分类器技术进行改进,基于目前State-of-the-art的框架X-vector,在主流的TDNN上做了两个改进,分别是FTDNN和EFTDNN,核心是在后端解决领域失配的问题。除了传统的LDA,PLDA进行信道补偿并给出似然比分数,团队在中心化、白化、自适应策略上也进行启发式搜索。本文将团队在此次声纹识别竞赛中的关键技术点整理如下。
关键技术一:FTDNN & EFTDNN
在这次评测中,团队基于目前State-of-the-art的框架X-vector, 在主流的TDNN上做了两个改进,分别是FTDNN和EFTDNN。 FTDNN的灵感来源于SVD。SVD本身是降低模型参数的常用做法,将训练好的参数进行SVD分解成两个小参数,再进行fine-tune.但如果没有训练好的参数,直接使用SVD的结构随机初始化训练,网络训练就很不稳定。
为了解决训练不稳定的问题,FTDNN将每一层TDNN拆成两个低秩矩阵的乘积,通过半正交化第一个低秩矩阵,保证信息从高维到低维没有流失。半正交之后特征值的分布会比较均匀,这样的参数矩阵相当于一个映射矩阵,总能够从上一层学到更重要的信息。使得网络熟练的更稳定。对于矩阵M,半正交化就意味着M乘M的转置是恒等矩阵,也就是M乘M的转置减恒等矩阵趋近于0,可以通过梯度下降的方式迭代实现M的半正交化。
FTDNN则是把TDNN 10241024的层拆成两层:1024256,2561024,网络从随机初始化开始训练,在参数更新的过程中,后一层每4个step半正交化一次。例如,传统的节点数为1024的TDNN层,被分解为两个卷积核为21,节点数为256的卷积层,其中第二个卷积层在训练的过程中是限制半正交的。这样的FTDNN结构虽然层数加深,但是参数量反而变小,这样使得在同等参数量的情况下,FTDNN的性能更好。
此外, 鉴于ETDNN在声纹识别任务上的突出性能,团队对FTDNN也进行扩展。在FTDNN每层之间按照ETDNN的方式插入DNN,并且加宽加深卷积层,这样的网络结构可以看到局部更多语音帧的信息。EFTDNN采用3-stage splicing的策略,传统的节点数为1024的TDNN层,被拆成三个卷积层,其中前两个卷积层在训练的过程中限制半正交。除此之外,团队引入AM-Softmax (Additional margin softmax)让深度模型获得更稳定的和更快的收敛,进一步提升了声纹识别的性能。对于这样大规模的网络,AM softmax 比Angular softmax收敛的更快更稳定,因为后者开始的时候类间距比较大,再乘以一个参数m不利于模型训练。同时,通过使用海量的数据集建立更深、更大的深度声纹模型EFTDNN(extended factorized TDNN),在单系统上获得了不错的性能。这样的FTDNN结构虽然层数加深,但是参数量相差不大。
关键技术一:FTDNN & EFTDNN
在这次评测中,团队基于目前State-of-the-art的框架X-vector, 在主流的TDNN上做了两个改进,分别是FTDNN和EFTDNN。FTDNN的灵感来源于SVD。SVD本身是降低模型参数的常用做法,将训练好的参数进行SVD分解成两个小参数,再进行fine-tune.但如果没有训练好的参数,直接使用SVD的结构随机初始化训练,网络训练就很不稳定。
为了解决训练不稳定的问题,FTDNN将每一层TDNN拆成两个低秩矩阵的乘积,通过半正交化第一个低秩矩阵,保证信息从高维到低维没有流失。半正交之后特征值的分布会比较均匀,这样的参数矩阵相当于一个映射矩阵,总能够从上一层学到更重要的信息。使得网络熟练的更稳定。对于矩阵M,半正交化就意味着M乘M的转置是恒等矩阵,也就是M乘M的转置减恒等矩阵趋近于0,可以通过梯度下降的方式迭代实现M的半正交化。
FTDNN则是把TDNN 10241024的层拆成两层:1024256,2561024,网络从随机初始化开始训练,在参数更新的过程中,后一层每4个step半正交化一次。例如,传统的节点数为1024的TDNN层,被分解为两个卷积核为21,节点数为256的卷积层,其中第二个卷积层在训练的过程中是限制半正交的。这样的FTDNN结构虽然层数加深,但是参数量反而变小,这样使得在同等参数量的情况下,FTDNN的性能更好。
此外, 鉴于ETDNN在声纹识别任务上的突出性能,团队对FTDNN也进行扩展。在FTDNN每层之间按照ETDNN的方式插入DNN,并且加宽加深卷积层,这样的网络结构可以看到局部更多语音帧的信息。EFTDNN采用3-stage splicing的策略,传统的节点数为1024的TDNN层,被拆成三个卷积层,其中前两个卷积层在训练的过程中限制半正交。除此之外,团队引入AM-Softmax (Additional margin softmax)让深度模型获得更稳定的和更快的收敛,进一步提升了声纹识别的性能。对于这样大规模的网络,AM softmax 比Angular softmax收敛的更快更稳定,因为后者开始的时候类间距比较大,再乘以一个参数m不利于模型训练。同时,通过使用海量的数据集建立更深、更大的深度声纹模型EFTDNN(extended factorized TDNN),在单系统上获得了不错的性能。这样的FTDNN结构虽然层数加深,但是参数量相差不大。
关键技术二:多任务学习机制融合语音文本上下文信息
团队使用多任务学习机制,将语音信息导给给基于X矢量架构进行声纹嵌入提取。将声纹识别和语音识别任务联合学习,借助音素信息和语音文本上下文信息对声纹更有效的建模。其中,语音帧级别的语音识别模型和语音段级别的声纹识别模型共享了7层TDNN的参数,在训练的过程中,输入数据对应的声纹标签用于更新声纹模型,对应的文本标签用于更新语音识别模型。由于同时含有声纹标签和文本标签的数据集很有限,为了产生其他声纹语料的文本标签,引入了一个额外的GMM-HMM模型用来对齐语音帧和文本标签。将语音向量与X-vector网络共同优化,并提供辅助信息以适应声纹特征,可以同时在帧和片段级别上得到有效结果。共享层提取信息特征,使网络更稳健,避免出现过拟合的情况。
关键技术三:融合语音适应与多任务学习机制
在语音适应方法中,语音内容被认为会对声纹验证任务产生负面影响。相反,混合多任务学习利用有用的语音信息来改善模型的概括性。于是,在多任务学习框架的基础上又做了改进,生成了C-vector,从预训练好的声学模型中提取音素向量,拼接在Multi-task声纹识别模型的池化层前。它融合了Multi-task和phonetic adaptation,进一步挖掘语音文本信息对声纹识别任务的有用信息。在C-vector架构中,使用了两个独立的语音分支。为什么要采用这种形式?因为这两个子网是通过不同的目标功能进行优化的,但是还需要限制模型大小。团队注意到,在多任务学习中,区分语音的网络也提供逐帧的语音信息。因此简化的模型可以删除预训练的声学模型,然后将BN层合并到语音区分网络中,并从该层中提取语音矢量。
关键技术四:启发式后端对X-vector进行信道补偿和分类
在X-vector特征中,即包括了声纹信息又包括了信道信息,因为团队将重点放在了声纹信息上,所以在X-Vector中存在信道信息的干扰,这会降低系统的性能表现。于是,团队还需要通过信道补偿算法来减少这种影响。除了数据级和模型级的改进,针对域不匹配的问题,后端团队采用启发式算法,遍历不同的后端策略,线性鉴别分析(Linear Discriminant Analysis,LDA)和概率线性判别分析(Probabilistic Linear Discriminant Analysis,PLDA),LP-LDA,以及MotPLDA,尽量减少训练、测试数据不匹配带来的影响。
2019年声纹识别领域在数据,模型,后端方面均涌现出新的技术。包括在说话人和带宽上做数据扩展,采用Gating CNN block,Dense block等网络结构,通过特征域自适应方法解决领域失配问题。除此之外,在图像和语音识别任务上有效的SE-Net、LSTMP也在声纹识别任务上验证有效。
据悉,今年获得全球第一的是来自美国的一家公司,制胜原因在于其采集了更多集内数据。大家也猜测,为了体现该比赛是一个技术导向性赛制,未来也许将会改为闭集训练数据赛制。随着赛制的完善和更多经验的积累,相信中国的团队会开发出更好的声纹识别系统。
技术的道路一个人走着极为艰难?
一身的本领得不施展?
优质的文章得不到曝光?
别担心,
即刻起,CSDN 将为你带来创新创造创变展现的大舞台,
扫描下方二维码,欢迎加入 CSDN 「原力计划」!
(*本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
点击阅读原文,或扫描文首贴片二维码
所有CSDN 用户都可参与投票和抽奖活动
加入福利群,每周还有精选学习资料、技术图书等福利发送
推荐阅读
想知道与你最般配的伴侣长什么样?这个“夫妻相”生成器要火
代替Mask R-CNN,BlendMask欲做实例预测任务的新基准?
300多局点,数据接入量超过2TB/S,华为用AI优化数据中台 | BDTC 2019
达摩院 2020 预测:感知智能的“天花板”和认知智能的“野望”
十大新兴前端框架大盘点
门限签名技术火了,它的硬核之处绝不仅仅是秘密共享……
2020 年,陆奇 59 岁:我给 20、30、40 岁年轻人的建议
你点的每个“在看”,我都认真当成了AI
相关文章:

网络系统传输负载测试
网络系统传输负载测试 随着企业各种信息系统相继投入使用,生产、管理信息逐步增加,企业网络规模迅速扩大,信息城域网承受着空前的压力,网络带宽严重不足,网络系统传输丢包、设备死机情况频频发生。我们需要对网络状况做…

android圆形旋转菜单,而对于移动转换功能支持
LZ该公司最近接手一个项目,需要写一个圆形旋转菜单,和菜单之间的移动换位支持,我本来以为这样的demo如若互联网是非常。想想你妈妈也帮不了我,空旋转,但它不能改变位置,所以LZ我们只能靠自己摸索。 最后LZ参…
微信9年:张小龙指明方向,微信AI全面开放NLP能力
作者 | 夕颜责编 | 王金许出品 | AI科技大本营(ID:rgznai100)一年一度的微信公开课 Pro 在广州保利世贸博览馆如期举行。一大早,同在博览馆举办的广州年货促展会参会者,夹杂着参加腾讯公开课的与会者,让这里变得人流攒…
实现HTTP协议Get、Post和文件上传功能——使用WinHttp接口实现
在《使用WinHttp接口实现HTTP协议Get、Post和文件上传功能》一文中,我已经比较详细地讲解了如何使用WinHttp接口实现各种协议。在最近的代码梳理中,我觉得Post和文件上传模块可以得到简化,于是几乎重写了这两个功能的代码。因为Get、Post和文…

第一篇文章,做个纪念
第一篇文章,做个纪念,这个blog好吗?拭目以待!转载于:https://blog.51cto.com/197536/88241

Maven工程引入jar包(转)
Maven项目引入jar包的方法,希望能帮助有需要的朋友们 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—>点击Add External Jars—>选中已事先下好的Jar包导入即可。 法二.通过pom.xml文件的Dependencies标…

实现HTTP协议Get、Post和文件上传功能——使用libcurl接口实现
之前我们已经详细介绍了WinHttp接口如何实现Http的相关功能。本文我将主要讲解如何使用libcurl库去实现相关功能。(转载请指明出于breaksoftware的csdn博客) libcurl在http://curl.haxx.se/libcurl/有详细的介绍,有兴趣的朋友可以去读下。本文…
32岁程序员,补偿N+2:“谢谢裁我,让我翻倍!” 网友:榜样!
2019年的冬天,“冷”的有些频繁。12月19日,《马蜂窝被曝裁员40% UGC模式变现难?》爆火,据悉马蜂窝将裁员40%,交易中心成了“重灾区”,赔偿N2,留下的除搜索推荐、内容中心等核心部门外࿰…

山有木兮木有枝,心悦君兮君不知
《越人歌》今夕何夕兮,搴舟中流。 今日何日兮,得与王子同舟 蒙羞被好兮,不訾诟耻 心几烦而不绝兮,得知王子 山有木兮木有枝,心悦君兮君不知。本是《夜宴》中的,"山有木兮木有枝,心悦君兮君…

浅析电商、社区、游戏常用的 MySQL 架构
一般、或者必须是这样、MySQL 架构一定要结合业务来分析、设计、优化 所以不管是那种架构、根据业务要求组合成符合需求的即是最好的、不能泛泛而谈 同时、也必须注意数据的安全(如ipsec,ssh,vpn传输) 常见的架构都是进行业务切…
基于Co-Attention和Co-Excitation的少样本目标检测 | NeurIPS 2019
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | VincentLee来源 | 晓飞的算法工程笔记(ID: gh_084c810bc839)导读:论文提出CoAE少样本目标检测算法,该算法使用non-local block来提取目标图片与查询…
服务器架设笔记——搭建用户注册和验证功能
之前介绍的Apache Httpd相关内容,都是些零散的知识点。而实际运用中,我们要根据不同的业务,将这些知识点连接起来以形成各种组合,来满足我们的需求。(转载请指明出于breaksoftware的csdn博客) 本文我将以用…

项目管理过程中应注意的问题
软件项目从角色分工方面可以划分为研发、开发和实施三类,每个类型的项目有各自的管理过程。下面笔者就公司实施类项目的经历,从项目经理的角度谈一谈实施类项目管理过程中应该注意的一些问题,希望大家共勉。确定项目概况俗话说:“…
原创jQuery移动设备弹出框插件——msgalert.js
最近开发经常会用到顶部弹出框,虽然有现成的(bootstrap等),但是都很臃肿,对于有些时候移动端活动页面有点大材小用。所以今晚花了20分钟写了一个通用的插件,我将其命名为msgalert.js。因为定位是jQuery插件,…
AbutionGraph:构建以知识图谱为核心的下一代数据中台
「免费学习 60 节公开课:投票页面,点击讲师头像」作者 | 图特摩斯科技创始人闭雨哲出品 | AI科技大本营(ID:rgznai100)前言图特摩斯科技(Thutmose)基于自研的图形数据库AbutionGraph(实时多维数…

服务器架设笔记——多模块和全局数据
随着项目工程的发展,多模块设计和性能优化是在所难免的。本文我将基于一些现实中可能遇到的需求,讲解如何在Apache的Httpd插件体系中实现这些功能。(转载请指明出于breaksoftware的csdn博客) 之前我碰到两个需求: 需要…

JSP学习笔记(七):使用JavaBean
bean.java publicclassB1 { publicString getString() { return"content"; } }page.jsp <%B1 b1 newB1(); out.print(b1.getString());%>

折返(Reentrancy)VS线程安全(Thread safety)
在Wiki上,折返例如,下面的定义(接) In computing, a computer program or subroutine is called reentrant if it can be interrupted in the middle of its execution and then safely called again ("re-entered") be…
服务器架设笔记——httpd插件支持mysql字符集选择
mysql数据库默认的字符集是latin1。默认情况下,我们编译的httpd插件是可以正常读取该类型的数据库,并且不会出现乱码。但是,如果我们的数据库变成其他格式,比如UTF8,那么默认读取出来的数据就是乱码,且无论…
只需3行代码自动生成高性能模型,支持4项任务,亚马逊发布开源库AutoGluon
作者 | KYLE WIGGERS编译 | AI科技大本营(ID:rgznai100)构建涉及图像、文本和表格数据集的机器学习应用并不容易。它需要特征工程或使用数据领域知识来创建使AI算法起作用的特征,还需要进行大量数据预处理,以确保训练模型时不会出…

在客户端(IE中)无法登录Citrix MetaFrame server的原因
当在IE中登录服务器时如果出现这面的错误提示: ERROR: The Citrix MetaFrame servers cannot process your request at this time. The Citrix XML Service object was not found. [404 Not Found] 我的原因是IE使用了8080端口,而我的Citrix XML servic…

虚拟化--015 配置VMware View Event database失败:
015 配置VMware View Event database失败:参考链接http://url.cn/VTq4zN 转载于:https://blog.51cto.com/williamliuwen/1686536
以金山界面库(openkui)为例思考和分析界面库的设计和实现——代码结构(完)
三年前,准备将金山界面库做一个全面的剖析。后来由于种种原因,这个系列被中断而一直没有更新。时过境迁,现在在windows上从事开发的人员越来越少,关注这块的技术的朋友也很少了。本以为这系列也随着技术的没落而不再被人所关注&am…
一包烟钱买到电动剃须刀,小米有品告诉你什么叫性价比
男人身上长得最快的是什么?答案是胡须。一名健康男性的胡须每天都要生长超过 0.4mm,比咱们头发的生长速度还快,这也是男人隔三差五就要剃须的原因之一。男人的一生是与胡子战斗一生,也是被剃须刀拖累的一生。出差办事儿࿰…

Label控件属性AssociatedControlID
可以使用Label控件来标注一个HTML表单字段。Label控件拥有属性AssociatedControlID,可以设置此属性来指向表示表单字段的ASP.NET控件。 例如,代码清单2-3中的页面含有一个简单的表单,表单包含两个字段用于输入名和姓。Label控件用于标注这两个TextBox控件。 Code<% Page Lan…

2015_8_21作业——有自翻译有复制他人的英语太差
date作用:打印或设置系统日期和时间格式:date [OPTION]...[FORMAT]date [u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]|是或 多选一的选项 ...代表同类内容可多次选项:注意短选项后不可加号-d,--dateSTRING显示时间字符串但不是立即:如date…
WMI技术介绍和应用——接收事件
时隔两三年,再次更新WMI系列博文。好在功能在三年前就已经实现了,现在只要补充些实例即可。 之前介绍的基本都是查询静态数据,而本文将要介绍非常有意思的事件接收功能。(转载请指明出于breaksoftware的csdn博客) 监控…

WML标签速查手册
WML标签速查手册 结构相关标签语法及属性<wml><wml xml:lang"lang" > content</wml> WML元素的共有属性主要有3个,即id、class和xml:lang属性。WML的所有元素都有两个核心属性,即标识(id)和类(class)属性。它们主要用…
Python 三十大实践、建议和技巧
所有参与投票的 CSDN 用户都参加抽奖活动群内公布奖项,还有更多福利赠送作者 | Erik-Jan van Baaren译者 | 凯隐编辑 | Jane出品 | AI科技大本营(ID:rgznai100)【导读】2020年,你又立了什么新的 Flag?新一年…

点击通知栏后打开Activity,并传参
为什么80%的码农都做不了架构师?>>> Reciver中intent new Intent(context, MessageDetailsaActivity_.class);intent.putExtra("freshMessageId", String.valueOf(push.getObid()));intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Inten…