MATLAB声纹识别开源工具 ASV-Subtools

文章介绍了MATLAB声纹识别工具ASV-Subtools,重点阐述了其工程化过程,如何将PyTorch模型转化为C++调用,以及在工业环境中的部署。工具集成了深度学习模型,如x-vector,并展示了在公开评测集上的优秀性能。
摘要由CSDN通过智能技术生成

MATLAB声纹识别开源工具 ASV-Subtools

今天我分享的主要有5个部分的内容,分别是背景介绍、工具介绍、实验结果、Subtools工程化、总结与展望。其中Subtools工程化是我这次报告的一个重点,近期我们开源了Subtools工程化的,该模块可以快速的将PyTorch训练的模型进行C++的调用,快速的部署在工业环境中。

背景介绍

我先简要介绍一下声纹识别的基本内容。声纹是指人的语音中所蕴含的能够表证说话人身份的一种生物特征,与指纹、人脸、虹膜等相比,声纹具有非接触获取、采集成本低、便于远程认证的优点。而声纹识别也就是一种利用说话人的声音去判定说话人身份的技术。

随着技术的发展,声纹识别也从最初的一个特征工程转向概率统计模型去表征说话人的身份,14年谷歌团队提出d-vector,他的核心思想是在训练时用说话人的身份,作为训练语音每一帧的标签对神经网络进行训练,将声纹识别从传统的方法——参数估计方法转为一个分类问题。这种完全基于神经网络的框架,标志着声纹识别进入了深度表征学习的阶段,但d-vector对帧级别信息进行建模。2017年Dan Povey等人对其做出了一个重大的改进,提出在神经网络中通过池化层将帧级别特征融合成段级别特征再对其进行分类,即x-vector框架。x-vector的框架可以从不等长的整句语音中提取出固定维度的Embedding。在大数据的情况下,更能利用神经网络强大的表征能力来提升模型的性能。因此成为了当下最为流行的声纹识别框架。

声纹识别的系统框架如图所示:

对于注册语音和测试语音来说,首先需要的就是声纹特征的提取,这里常用的特征一般为FBank和MFCC,我们将特征送入声纹模型就可以得到相应的说话人表征,然后进行相似度打分,这里我们可以采用Cosine打分,也可以用PLDA得到相似度的分数,分数越高就代表两个说话人越有可能是同一个人。在实际应用时我们可以设定一个阈值,只要两条语音的分数超过这个阈值就可以判断为两段语音来自同一个人。

随着声纹技术的发展工业界的应用也在不断的增多,例如语音交互中的用户身份判定、公安行政领域的声纹检索以及客服行业的用户身份判定等。

而在声纹识别的发展过程中,其实也涌现出了很多的开源工具,例如在传统的算法开源阶段有微软开源的MSR Identify Toolkit,它是一个Matlab工具箱,包括了GMM-UBM以及i-vector的一个demo。简单应用也有 C++版本的Allize和matlab版本的Sidekit,它们都只包含了传统算法GMM-UBM、i-vector等方法。

而我们熟知的Kaldi也包含了i-vector、x-vector等模型。Kaldi整体的代码质量高,易于产品化也有丰富的文档,但它的代码耦合度相对来说较高,想要实现一个新的算法改动起来会比较麻烦。

matlab版本呢,比如说PaddleSpeech、SpeechBrain等都是语音处理的功能包,包含了语音信号处理、语音识别、声纹识别、语音合成等语音任务,声纹识别只是他们开源框架的一个小点,而最新开源的WeSpeaker是专门做声纹识别的,在结构、代码上都很简洁,性能也很优异,这也是值得我们Subtools去学习的一个点。

  • 16
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值