ASV-Subtools简介
近年来,随着深度学习的快速发展,简单易用、性能稳定、开发高效的深度学习框架越来越被科研和工业界人员所需要。其中,TensorFlow和Pytorch则是目前深度学习的主流框架。为了方便进行声纹识别技术相关的研究,厦门大学智能语音实验室(XMUSPEECH)团队经过近两年的开发,基于Kaldi和PyTorch推出了一套高效、易于开发扩展的声纹识别开源工具—ASV-Subtools。ASV-Subtools的设计理念在于代码高度复用的同时保持模块分化和开发自由。因此,体现出以下四个特点:
高效性:集成Kaldi和PyTorch各自的优点,实现完整的深度声纹识别系统;
可读性:代码中包括了注释说明和教程文档,增加了代码可读性,方便用户轻松上手;
通用性:将核心模块分离出来,支持扩展到新的模型。最新架构,如SE-block、ECAPA-TDNN,可以使用Torch内部的标准组件轻松扩展到ASV-Subtools中;
灵活性:用户只需通过简单地编辑配置文件,就能探索不同的网络架构、池化层、损失函数以及其他组件,实现最优异的性能。
目前,该工具已在GitHub上发布。关于该工具的介绍论文(ASV-Subtools: Open Source Toolkit for Automatic Speaker Verification),已被语音顶会 ICASSP 2021 录用。
实战性能
ASV-Subtools充分结合了Kaldi 在语音信号和后端处理的高效性以及PyTorch 开发和训练神经网络的便捷灵活性。封装了很多实用、高效的脚本,其中包括数据集处理、数据扩增、特征提取、静音消除、Kaldi模型训练、x-vector加速提取、后端打分和指标计算等。此外,该工具还提供了大量高层框架和神经网络训练相关的脚本,这也是ASV-Subtools的核心内容。相比按序采样,ASV-Subtools还提供了说话人均衡采样来解决说话人不均衡问题。网络训练完之后,ASV-Subtools将提取出来的x-vector 写为ark格式文件,利用Kaldi进行后端处理并进行相似度判别打分。
ASV-Subtools整体框架结构如图所示。提供了大量模型组件(nnet),方便开发者进行网络配置,当然,用户也可直接选择使用PyTorch提供的原生组件进行构建。框架的底层为基于Python实现的各个基本对象,如对应到Kaldi映射目录的Kaldi_dataset,采样方法samples,模型基本组件components、activation和loss,训练有关的训练流程trainer,训练进度显示reporter,优化器以及学习率综合配置等。
后端优化
考虑到数据集的规模往往较为庞大,该工具对所有数据集处理脚本均进行了速度优化,如代码上的时间复杂度优化或使用多进程进行提速。此外,由于后端处理有很多可能的复杂组合,用于后端打分的训练集、注册集和测试集之间也有较多种处理方法,为了用户灵活配置,ASV-Subtools中实现了一个高效的打分脚本(scoreSet.sh):当给定数据处理顺序,该脚本通过图的深度遍历方法自动将整个打分过程连接起来。具体如图所示,这极大地方便了用户进行后端调试,无需每次重写代码。
基线结果
目前为止,ASV-Subtools已开发了众多声纹识别中常用的算法和网络架构,例如使用一维卷积等价实现的标准x-vector网络,还集成了多种PLDA自适应的技术,解决现实情况下域不匹配的问题,并提供了多种实验配置的运行示例。大量实验结果表明ASV-Subtools显示出稳定性和可靠性,并在OLR Challenge 2020~2021 连续两届“东方语种识别竞赛”中做为赛事基线系统,同时也做为声纹识别竞赛CNSRC 2022的基线系统之一。
ASV-Subtools 声纹识别实战
语音之家-AI工匠学堂推出《ASV-Subtools 声纹识别实战》课程,声纹识别受到越来越多的重视,应用于刑侦、人机交互声纹口令验证、银行声纹身份验证等领域,工业界岗位需求迫切。这门课程强调实战,结合开源工具,让学员在较短的时间内,快速掌握算法研究和产品开发的能力。
讲师力量
课程目录
课程收获
网盘资料