我的工程实践题目是《多人对话场景中音频分离》,题目要求的任务即说话人区分(Speaker Diarization)任务。说话人区分是声纹识别领域中的一个任务,具体是指根据说话者身份将输入的音频划分为同类片段的过程。说话人区分是说话人细分和说话人聚类的组合,第一个目标是找到音频中的说话人更改点, 第二个目标是根据说话者的特征将语音片段分组在一起。说话人区分常常作为语音识别功能的预处理,它将音频中说话人的身份信息提供给语音识别系统,从而改善语音识别的准确率。
下面将介绍一些带有说话人区分功能的软件。说话人区分一般不能作为用户直接使用的功能,所以带有此类功能的软件常常是面向开发者的。
ALIZé是一个用于说话人识别的开源平台。 该项目提供了一组框架,使任何人都可以开发应用程序,用来处理说话人识别领域中的各种任务:包括验证/识别,分段等。
在2005年,ALIZé由LIA(法国阿维尼翁实验室信息研究所)领导发展,最终在法国研究部的资助下与多家学术和工业合作伙伴合作完成。该项目主要使用了GMM/UBM、I-vector、JFA等传统声纹识别技术。目前,深度学习进入了声纹识别领域,取得了良好的效果,使用传统技术的ALIZé在如今已经稍显落伍了。
Pyannote -audio是一个基于Pytorch的开源神经网络构建工具包,从2016年开始开发,该工具提供如下功能:
pyAudioAnalysis是一个2014年开始开发的Python库,提供了大量与音频相关的功能,重点在于特征提取,说话人分类,语音分段和可视化问题。该库提供的功能包括但不限于以下内容:
提取音频特征和表示形式
执行无监督的说话人区分
ALIZé、Pyannote-audio、pyAudioAnalysis为开发者提供了说话人识别的功能,我第一次了解三款软件均是网友推荐而来,高质量的软件自然会得到用户的口口相传。
ALIZé、Pyannote-audio、pyAudioAnalysis都是开源软件,分别使用了LGPL、MIT、Apache-2.0协议,它们都不是以盈利为目的而开发的软件,而是为了其他用户使用方便而开发的,其背后的精神事实上就是“我开发了一款软件,大家来用吧”,这种开源精神所催生出来的软件正是如今计算机世界的基石。
ALIZé、Pyannote-audio、pyAudioAnalysis的代码均托管在Github上,只要下载下来即可使用。
任何软件都有bug,这三款软件在多年的开发中也有很多Bug。三款软件托管在Github网站上,均采用滚动更新机制。
说话人区分其实是一个比较小的功能,往往作为某款大型语音工具包的一个子功能出现。专门的说话人区分工具出现较晚,像ALIZé就是比较早的成熟的说话人区分软件,从2005年开始开发,直到2017年仍在维护。
专门的说话人区分软件常常是开源软件,其竞争关系较弱,主要的竞争方式着重于功能的完善和使用的便捷。因为这类软件常常面向开发者,除了其本身的功能,源码易修改也是用户们非常关心的一种特性。
随着深度学习技术的发展和硬件的进步,像ALIZé这样使用传统方法的软件即将没落,效果更好的基于神经网络的Pyannote-audio、pyAudioAnalysis受到大家的青睐,这也是此类软件今后发展的方向。
上述软件都是面向开发者的工具包,依赖的库很多,经常发生安装不成功的情况。
说话者区分是一个信息处理任务,在本质上还是需要软件来完成的,即使是硬件也是依托软件的存在而设计的。这说明软件的本质特征之一是信息处理。
我第一次使用此类软件就是在最近了解工程实践的过程中,日常生活中我并没有说话人区分的需求。这些软件都是下载得到的。
说话人区分软件主要是面向开发者的,学习难度比面向普通用户的软件要高。此类软件好处在于满足我的需求,坏处也如前面所言,学习曲线比较陡峭,需要阅读一定的文档才能掌握使用方法。
最近一段时间我刚刚开始使用此类软件。
只要大家还有语音识别的需求,作为语音识别的子任务,说话人区分这种需求是不会消失的。但是专门的说话人区分软件在未来是否存在尚未可知,现在深度学习发展的趋势之一是神经网络功能越来越丰富,或许在未来说话人区分的功能深度嵌入在语音识别网络中,专门的说话人区分软件也没有存在的必要了。
原文:https://www.cnblogs.com/litosty/p/11628679.html