分享

声纹识别可靠评测

 深蓝学院 2023-01-06 发布于北京

分享嘉宾 | 李蓝天

文稿整理 | William


1 Introduction

声纹识别的发展,非常迅猛,在一些基准上取得了不错的效果,但如果将其部署到一个实际的应用系统里面, 从应用方的反馈来看,纹识别在很多场景里的鲁棒性并不理想。针对这样的问题,发现原因在于多种多样,比如基于深度学习的方法会带来很多的不可解释性,还有现在的评测可能也存在一些问题。

看一下近两年比较有代表性的声纹识别的评测活动,第一个是NIST SER,2021年的,它是用电话信道的对话语音和,从视频里面提取音频,进行最后的评测。那第二个是FFSVC,2022年的,它是面向真实场景的评测。还有一个是VoxSRC,同是2022年,它是依附于walk celebrate数据集,这几年衍生出来的一系列的评测活动。

对于声纹识别评测来说,基本上有三个主要的成分,第一个部分是data,即需要准备一些数据,第二部分是评测列表,即声纹识别的对象匹配,让系统判定是不是来自同一个人。第三个是metric,即对测评列表进行打分,判定系统的好坏。

回到之前讲主流的半mark评测和实际应用的部署之间存在性能上的鸿沟,来具体看看哪些原因。首先是看data,对于主流Benchmark的数据采集,其实在很多情况下很受限。比如A和B两人对话,都知道要采集数据,所以他们说话的时候肯定不会很自然。还有采的数据是在录音室里面,只考虑远近的关系。此外是采访的对话数据,很容易使得模型存在一些偏差。 总的说,数据的采集设计缺乏了真实世界的复杂性。第二看测试列表的设计,比较常用的方案就是全交叉的方式,可能会产生分布偏差的问题,导致最后得到的结果过于优越。第三个是metric,去评价一个系统的时候,只用了一组训练数据,而测试数据是固定的,似乎并不能很好的去衡量一个系统在面向各种各样场景的性能表现。

如何解决这两者之间的性能差异,第一个是构建一个能够尽可能描述或满足真实世界复杂性的数据集。第二是测试列表的设计,应该尽可能的找出真正有价值的trial。第三个是metric,希望去塑造一个新的工具,得到比较全面的系统描述。基于这三个方向,提出了Reliable Speaker Recognition Evaluation,即可靠的声纹识别评测。

2 Data Theme — CN-Celeb

目前声纹识别均在追寻更加真实性的数据,去进入实际应用中。面对众多的变化性,可以考虑采用Deep-Learning的方式去解决一些问题,也存在对应的数据集。接下来面临的挑战是采用什么样的技术去构造更好的data,即识别说话人在真实的世界里各种条件下的复杂变动性。

复杂变动性通常包括两类,一是内在的变动性,即人本身说话的状态。二是外在的,即背景噪声、录音设备质量等外在因素。

对于如何得到描述复杂变动性的数据,这里假设是多题材和多场景才最接近于复杂变动性,不过多场景才是当前说话识别挑战的问题。第一个方案是拿一个自动的工具,去试图把它做的更智能化,来得到一个初筛的结果,然后第二步是进行人工检查,整体收集流程如图1所示。

图1 收集流程

首先,得到一个中文的明星列表,查找每一位明星图片及视频。这里借用了人脸识别的技术对目标人进行检测,然后进行人脸追踪,找出对应人脸的帧。可能视频里存在旁白,这里采用synchronization,即口唇一致性检测,如果是目标人真的在说话,进行抓取出来。由于场景复杂,口唇一致性检测会把整个视频片段切的很零碎,这里做了一个speak diarization,即将把说话人进行分割聚类,之后将这些数据让人工进行检查约两轮质检,保证正确率在90%以上。 

数据集会采集来自于11种不同的题材场景,且来自于不同的媒体源。基于此数据集,进行测试,如表1所示。可以看到错误率自有5%左右,但是CNC-E数据集上比较糟糕,达到了17%。

表1 性能对比

总的来看,数据集的出发点是当前的评测数据在很多程度上并不能描述真实世界的复杂性,所以希望去构造一个能够描述复杂性的数据集。基于这个数据集,做了一些basic test,发现性能并不理想,均大于10%。

3 Trial Theme — Hard Trials

希望从一堆的Trial里面把对评测有价值的trial抓取出来,然后用这些trial去做最后的评价。首先想一下测试列表会存在自测,称为Target trial;还有是人与人交叉的测试,称为Nontarget trial。这种方案的特点是Nontarget trial个数肯定远多于Target trial,第二是Nontarget trial里面存在大量简单的列表。第三个是Target trial的时候,如果来自于同一个场景,则对系统来说是太容易了,意义不大。总之,Target trial和Nontarget trial中都有大量的简单列表,会使得最后EER结果是过于理想。

所以这里做了一个simulation study,看一下是不是加入简单的trials对系统性能会产生很大的影响。构造了两个系统,如图2所示。系统一的target是蓝色的高斯分布线,对应橘色线是Nontarget的高斯分布。系统二的target还是蓝色,对应绿色线是Nontarget的高斯分布。可以看出系统二的性能要比系统一好,因为中间重叠的部分更小。与此同时,构造了两个easy trials ,Target的紫色线在右边,与左边没有一点交叠。另外一部分是红色的nontarget部分,其实是分数非常低的这部分。

图2 simulation study

接下来看一下两个系统的等错误率以及两个系统之间相对等错率的变动,如图3所示。在不断往里面添加简单试验时,两个系统的性能表现会越来越低。而且还会影响相对EER值,这就意味着在不同系统上测试的辨别力可能存在许多简单试验。

图3 等错误率及相对等错误率变化关系

所以大量的Easy trials其实影响到了系统的比较,那所以,目标是希望关注在hard trials,这样使得不会有偏差,能够真正的描述系统的性能。但现在存在两个问题,如何拿到hard trials,第二是在这以后,现在的模型效果如何。

拿到hard trials的思路比较简单,这里采用了margin的方案,即只存在negative和positive两类样本,然后找最大的margin,如图4右边所示。对于红色点来说,它的hard trials是margin面上的点,即一些混调度比较高的点,称为hard trials。

图4 SVM的margin理论

如何得到hard trials,采用了ensemble+SVM的方式,即首先去构造八个基线系统,不需要特别高的成本就可拿到。然后用八个基线系统对不同的trials打分,用这个向量作为feature,然后去训练SVM模型,那训练完成后,得到模型里面的support vectos认为是hard trials。然后进行了一些测试,结果如表2所示。

表2 测试结果对比

基于得到的hard trials去做了一些测试,对比如表3所示。原始数据集在Vox1-O上可以达到1.5%左右,但它对应hard trials的性能就比较糟糕,错误率在11%左右,说明了这里面存在大量的简单情况,使得最后得到的结果过于的良好。SITW-E.C结果同理。

表3 full trial与shard trials性能对比

 

4 Metric Theme — C-P Map

如何比较或评价一个系统更加全面的性能,提出来了C-P Map。评价基于trials set系统的性能,往往是DT曲线。但是没法描述一个系统在不同条件下的性能表现,所以这里首先给一个定义,如图5所示。

图5 Concept of Trial config

U代表全集,A表示所有的trials,B表示其中的一个子集。要想对描述一个声纹识别系统的性能,测试在不同B下的性能,然后计算等错误率。那这样,可以得到一个系统相对比较全面的性能评价。具体去呈现,以X轴为方向,目标测试的分数从左往右分数逐渐递增,Y轴是nontargets的分数从下到上逐渐递减。这样的一个二维图,它每一个坐标的位置XY就代表了target和nontargets分数的组合,如图6所示。红绿星星之间的性能差距解释了基准部署的差距。

图6 C-P Map的ASV系统

5 总结

由模型结果与实际评测结果存在较大的差距出发,提出了Reliable speak recognition概念,希望设计一个可靠的评测方案,能够去解释这个现象。最后落在了三个主题上面,首先是data,构造更具有复杂性的描述真实世界变动性的data。第二个是trial,希望更关注于hard trials。第三个是metric,希望能够更好的、更系统性的去描述系统的性能,然后比较系统的性能,所以,延伸出来C-P map。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多