刘忠雨作者

一种能对原始波形数据进行有效建模的卷积操作 | 论文分享

本周我们来介绍一篇直接使用 Raw Waveforms 来对语音数据进行深度学习的方法。我们知道,即使在 CNN 等深度模型在语音识别领域大放异彩的当下,直接使用原始音频数据进行建模依然不是最主流的方法,如何让网络对于原始数据能更加有效地学习,是语音建模的一个前沿探索方向。本文就是在这样背景下面的一次尝试,并且创造性提出的 SincNet 结构,是能在保证学习效果的同时也大大降低了模型需要学习的参数量。

相关工作


语音识别的建模方式亿次经历过以下几个阶段:

1.手工特征+Gaussian Mixture Model-Universal Background Models (GMMUBMs);

2.手工特征 + DNN,这两个阶段所用到的典型特征如 FBANK、MFCC系数等;

3.频域特征 + CNN,这里的频域特征相比前面的手工特征,更加简单,手工痕迹更轻,一个典型的特征抽取方式:通过FFT来提取语音数据的 spectrum bin 信息

可以看到两个趋势:

1、模型结构越来越现代化,这得意于以 ResNet 为首的网络结构设计的热潮,特别是CNN对于时序数据的适应性改造工作,使得 CNN 在语音识别领域的适应性更加全面。

2、对原始数据的特征加工越来越少,当然最少的方式就是直接使用 Raw data 进行建模

为什么以前很难对Raw data进行建模?

笔者认为这其中的难点就在于音频数据的维度太高,一般音频的采样频率很高,这导致即使 1s 的语音数据都很长,如果直接套用CNN,卷积的kernel size设为3,那么网络对于信息的聚合速度太慢,除非堆很多层,或者用很大的kernel size 如200,但是这两种方式都使得模型的参数量太大,很难优化。

频域特征+CNN为什么有效,就是因为通过滑窗内的FFT操作,可以快速聚合该窗口内的全局信息,这样后面的CNN就可以设置很小的kernel size,学习负担少了很多,自然学起来就更加有效。

顺着这样的思路,我们发现,要想直接对Raw data 进行建模,第一层操作算子所承担的作用至为关键。

SincNet


我们来看看,本文是怎么针对这个关键因素进行设计的:

标准的卷积操作:

是一个数据片段,是一个卷积核,长度为L。我们说语音里面需要很大的L来对数据进行快速处理,这导致卷积核的参数量太大。作者的一个基本想法,就是改进变为,只需要很少的参数就可以决定这个卷积核。

具体 g 怎么设计呢?借用信号处理的一些先验知识,标准的信号处理时常在频域用到一个矩阵带宽的滤波器,式子表达如下:

分布是低频和高频阈值,是一个矩形函数。将上式通过逆傅里叶变换反解到时域,g 变为:

其中

如此,这个g 就仅有两个参数需要拟合。

一个理想的矩形带宽滤波器的处理对象是无限长的时域信号,若为有限长,会产生频谱泄露的问题,一个常见的处理方法,就是加上一个窗口函数

本文选择了一种最常见的窗口函数,Hamming window:

对于窗口函数的深层次作用,可以去查一下 window function,笔者理解的也不是很透彻。

如此,整个操作就完成了,而需要学习的参数仅有两个阈值,与的长度无关。这充分借鉴了信号处理的一些基本思路。

有了这个操作之后,只需要将标准CNN网络的第一层换成这个SincNet Filter就行了,示意图如下:

SincNet 的优势如下:

1、收敛快:SincNet 强制将卷积的Filter 学习成一个频域上的矩阵窗形状,当然同时也保留了参数的自适应性。这种先验知识的引入,大大简化了网络的学习任务,收敛自然更快。

2、参数量少:SincNet 显著减少了模型的参数量,假设标准卷积核有 F 个filters,长度为L,那么其参数量就为 FL,而SincNet仅为2F。我们前面说了,一般在第一层L需要设置的很大,如100,那么SincNet的参数量减少的就很可观了。

3、计算更加高效:我们观察到 g 函数是轴对称的,实际上只需要计算一半,就可以同时得到另一半的结果。

4、可解释性更强:SincNet 第一层学习到的filters 性质比较简单,物理意义比较明显,可解释性很强,当然,这是该算子的设计初衷所导致的。

实验

作者在 Librispeech 和TIMIT 两个数据集上对SincNet 做了Speaker Identification 和  Speaker Verification 的实验验证。首先对比了标准CNN 和SincNet 的差异,下图就比较了两者在第一层学习到的 filters 形状:

可以明显的看到,SincNet 学习出来的 filter 更加干净,可解释性也更强,符合最初设计的目的。

其次,作者分析了两者 filters 的 Cumulative frequency response,可以看到SincNet 出现了两个更明显的波峰,这是声学上的一种共振峰,反映了系统对于声纹特征的捕捉能力,当然这方面的背景知识,文章并没有详细指出,大家可以去查阅资料补充。

最后作者对比了SincNet相比其他方法在两个任务上的表现,SincNet 表现优异。

总结

SincNet 的卷积算子,具有很强的设计感,带有先验的知识在里面。其实标准的CNN算子又何尝不是这样的呢?好的算子要契合数据的内在结构去进行计算,只有这样,才能真正抓住数据的内在模式。

原文链接:https://arxiv.org/pdf/1808.00158.pdf

极验
极验

极验是全球顶尖的交互安全技术服务商,于2012年在武汉成立。全球首创 “行为式验证技术” ,利用生物特征与人工智能技术解决交互安全问题,为企业抵御恶意攻击防止资产损失提供一站式解决方案。

理论DNNCNN深度学习建模数据语音识别
4
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

傅里叶变换技术

傅里叶变换(法语:Transformation de Fourier、英语:Fourier transform)是一种线性积分变换,用于信号在时域(或空域)和频域之间的变换,在物理学和工程学中有许多应用。因其基本思想首先由法国学者约瑟夫·傅里叶系统地提出,所以以其名字来命名以示纪念。实际上傅里叶变换就像化学分析,确定物质的基本成分;信号来自自然界,也可对其进行分析,确定其基本成分。

先验知识技术

先验(apriori ;也译作 先天)在拉丁文中指“来自先前的东西”,或稍稍引申指“在经验之前”。近代西方传统中,认为先验指无需经验或先于经验获得的知识。先验知识不依赖于经验,比如,数学式子2+2=4;恒真命题“所有的单身汉一定没有结婚”;以及来自纯粹理性的推断“本体论证明”

特征抽取技术

语音识别技术

自动语音识别是一种将口头语音转换为实时可读文本的技术。自动语音识别也称为语音识别(Speech Recognition)或计算机语音识别(Computer Speech Recognition)。自动语音识别是一个多学科交叉的领域,它与声学、语音学、语言学、数字信号处理理论、信息论、计算机科学等众多学科紧密相连。由于语音信号的多样性和复杂性,目前的语音识别系统只能在一定的限制条件下获得满意的性能,或者说只能应用于某些特定的场合。自动语音识别在人工智能领域占据着极其重要的位置。

信号处理技术

信号处理涉及到信号的分析、合成和修改。信号被宽泛地定义为传递“关于某种现象的行为或属性的信息(如声音、图像和生物测量)”的函数。例如,信号处理技术用于提高信号传输的保真度、存储效率和主观质量,并在测量信号中强调或检测感兴趣的组件。我们熟悉的语音、图像都可以看做是一种信号形式。因此,对于语音、图像的增强、降噪、识别等等操作本质上都是信号处理。

推荐文章
暂无评论
暂无评论~