基于Tucker分解的音频分类方法的研究 *
2020-09-23杨立东辛文超胡江涛牛大伟张丹丹
杨立东,辛文超,胡江涛,牛大伟,张丹丹
(内蒙古科技大学,内蒙古 包头 014010)
随着海量数据、强大计算能力和先进模型的发展,人工智能领域经历了符号主义到连接主义,再到认知科学的演变[1].目前,人工智能不再局限于感知、认知、控制等功能,而是要像人一样对信息进行理解,其中场景理解(Scene Understanding)是AI下一步的研究热点之一.场景分类是场景理解的关键环节[2],在复杂的环境中能够准确识别声学场景并进行分类.声学场景分类(Acoustic Scene Classification,ASC)是人工智能领域重要的研究方向之一,环境动态的感知主要是通过周围声音的识别,其重要性是对于机器的下一步操作做出极其重要的指导.ASC是计算机听觉场景分析的特定任务,判断出测试声音的内容,对声音信号进行建模且分解,最后利用分类模型以特征为依据将音频场景准确高效的进行分类.
音频场景分类属于计算机听觉场景分类的研究领域,通过感知音频周围环境进行分类,将语义标签与每个音频场景相互关联在一起[3].音频场景分类应用于很多方面,例如:对自然界和动物的保护[4]、通过动物的声音了解其生存和繁衍的习惯[5]、通过鸟的叫声了解其迁徙的特性[6]等.
现阶段的场景分类的2大核心之处是特征的选取和分类器的选择.当前国内外的专家和学者就音频场景分类这一问题进行了深入地研究,在各种不同的特征和各种各样的分类器之间进行选择和优化.特征提取的目的是提取出可以代替原始信号的数据,传统方法提取的信号特征仅仅能表现出信号的一部分特征,局限于低维的特征,不能完整的表达信号的特性,进而会影响到分类的正确率,针对音频信号的特征建模,对传统的低维建模方式进行扩展,使用张量分析技术对音频信号进行高阶的特征建模,既能体现音频信号在不同属性子空间的物理意义,又能完整的表达音频信号的完整信息,而且通过张量分解可以挖掘音频信号潜在的、本质的、高维的、具有区分度的结构信息[7].音频信号经张量技术进行建模和分解获取特征集合,将这些特征库作为特征参数进行音频分类时准确率明显会提高.
1 特征提取
在音频分类中,特征参数是一种能够完整准确的表达信号本质属性的一种参数,并且具有一定的鲁棒性,音频数据首先通过预处理,形成具有短时平稳特性的帧结构,特征的提取从帧或音频片段中获得,为了使音频具有更强的鲁棒性,从有效音频数据的起始端,中间,末端3个不同的区域各提取相同帧数的特征参数,然后进行聚类.
1.1 MFCC提取
为了得到短时平稳的音频信号,需要对预处理后的音频信号进行分帧和加窗处理,窗函数对输入的信号进行振幅调制,减小截断边沿处信号突变产生的额外频谱,使每一帧信号幅度在2端趋近于零,保持信号的连续性.本文的窗函数选择Hamming窗,其可以表示为:
(1)
再对信号进行短时傅里叶变换:
(2)
然后取模平方得到信号的能量谱,经过一组三角滤波器、取对数以及离散余弦变化得到n阶MFCC特征.提取过程如图1所示.
1.2 特征张量的建模和Tucker分解
张量可以认为是多阶阵列或者多维矩阵,同奇异值分析(Singular Value Decomposition, SVD)[8],主成分分析(Principal Component Analysis, PCA)[9],独立成分分析等采用矩阵分解的方法相比,张量分解的优势是能够挖掘到信号更多有用的信息,尤其是不同特征之间的关联信息,而且可以挖掘出信号自身的高维本质信息,从而确保信息完整性,故而张量分解在各方面的优势都强于矩阵分解[10].张量建模是指通过高阶的形式建立一个高维的特征集合来表示信号的本质特征.进入21世纪后,张量技术被更多的应用在信号处理领域,在图像处理方面有实质性的进展,随后研究者将其拓展到了音频分类这一领域.张量分解有3种具体的形式,包括非负矩阵分解、CP分解和Tucker分解.
Tucker分解具有明确的物理意义,它是高阶PCA的一种形式,它可以体现原张量的大部分性质.因此本文的分解形式采用Tucker分解,具体如式(3)所示:
X≈δ×1A×2B×3C=
(3)
这里A∈RI×P,B∈RJ×Q,是正交的因子矩阵,并且是每一维上的主要成分.核张量是一个保留原始张量本质信息且稳定的小张量,一般而言,当核张量是对角化的且P=Q=R时,Tucker分解便转化成了CP分解.
实验中设建立的音频特征张量为,对特征张量进行Tucker分解,分解式如公式(4)所示:
X≈G×1U(1)×2U(2)×3U(3).
(4)
式中,G∈RI1×I2×I3为核张量,U(n)∈RIn×In为投影矩阵,Jn ASC性能的好坏与分类器的选取有直接的关系,分类器的目标就是通过对训练数据的学习,挖掘出隐藏在不同声学场景中声学信号内部的本质属性区别,进而完成分类任务.目前,研究者对于分类器的选取大部分热衷于统计模型的,例如隐马尔可夫模型(Hidden Markov Model, HMM)[12]、高斯混合模型(Gaussian Mixture Model, GMM)[13]、支持向量机(Support Vector Machine, SVM)[14]、人工神经网络(Artificial Neural Network, ANN)[15].其中SVM和GMM被广大研究人员持续改进,添加了一些新的定义和一定的约束条件,尤其是GMM结合深度学习[16]技术之后,在大数据的处理及图像、音频等领域深受研究者的喜爱.此外,分类器的进一步改进出现了基于粒子算法的,例如基于粒子群优化算法[17]、利用解决凸优化问题的低秩矩阵填充(Matrix completion)[18]思想完成分类,采用独立注意机制对声学场景中音频事件重要性进行标注从而完成分类. 支持向量机是一个适用于任何数据的分类器,它利用了结构风险最小原则的思想,即使样本小也同样能够分类的问题,并且还能解决高维数、非线性、局部极小等实际问题.因其上述优点本文采用支持向量机作为分类模型.提取到的特征分为2组,一组用来测试,另一组用来训练,为了便于计算,将2组数据分别做归一化处理,加速优化过程.将处理后的数据用SVM进行分类.在音频事件分类中,需要对各组音频数据进行分类,而支持向量机主要解决的是二分类的问题,且线性问题解决只需要寻找一个简单的一次函数,非线性解决的思路是将其转化为线性问题,在线性可分时用对偶理论求解二次凸优化问题,公式如(5)所示. (5) 式中:w表示线性可分时超平面的法向量;b为截距.约束条件:yi(ωTxi+b)≥1;i=1,…,n. 经计算可得出w和b*的计算公式,如公式(6). (6) 式中:b*为代表满足KKT(Karush-Kuhn-Tucker)条件的最小点. 在非线性分类时,关键步骤是将非线性问题转化成线性问题,然后利用线性可分方法完成分类. 对音频分类发生判定中的音频数据进行分类选用一对一法(One-Versus-One).其内涵是假如共有m个音频数据的类别,现在要将其进行完整的分类,需要的二分类器的个数为m(m-1)/2,在这m个数据中,每一个都要进行分类,那么每一个数据都需要经过这些二分类器,之后完成预测,最终是以投票的方式判别这m个音频的所属类别.非线性问题转化为线性问题时,要使用一个核函数进行高维映射,一般采用的是径向基函数(Radial Basis Function, RBF)对数据进行高维映射,此核函数有惩罚系数c和Gamma 2个参数,c的数值能反应实验中对于误差这一非认为因素的包容程度,容忍性越高就越能说明对实验中误差的容忍性越低.一般认为这个c的数值越高越好,高了就能证明实验的精确率能有所提升.虽然认为c越高越好,但是过于高之后就会引发一个新的关于学习状态的问题.Gamma(g值)是该核函数本身所有的一个参数,数据高维分布的具体状态就是取决于这个本身的参数,当c和g值组合出现最优分类的情况时,数值最小的那一组一般是我们最终要选取的. 多分类解决的思想是基于二分类问题的,多分类的数据都是非线性的且都是高维度的,要想解决问题必须找到的是一个分类的超平面,这样在这个分类面上就无法看到分类线,此时在分类结果图中用不同纵坐标的点集来表示实际测试分类和预测测试分类[19]. 采用公开的城市音频数据集UrbanSound8k进行训练和验证,该数据集分为10个场景,包含了空调(Air-condition)、汽车喇叭(Car-horn)、儿童游戏(Children-playing)、狗叫(Dog-bark)、钻孔(Drilling)、发动机空转(Engine-idling)、枪击(Gun-shot)、手提钻(Jackhammer)、警笛(Siren)和街头音乐(Street-music).这些数据共8 732个,将他们随机平均储存在10个文件中,每个音频信号的采样率为44.1 kHz,存储为wav格式. 先前的实验表明75%的样本分类的准确率最高,故选取的文件中每种类型的75%样本作为训练样本集.每个音频信号经过预处理得到音频帧,其中预加重系数为0.97,采用Hamming窗进行分帧,帧长为20 ms,帧移为10 ms,片段长度为1 s,把这些音频数据利用其帧结构、特征参数、分解尺度来构建一个三阶张量.特征参数提取13个梅尔倒谱系数以及它们对应的一阶差分系数和二阶差分系数,然后利用帧结构、4层dB3小波分解、39维特征参数构建一个三阶张量,之后对其进行Tucker分解,分解之后就能得到这10类音频对应的核张量和因子矩阵. 将剩余的数据作为测试样本,即各类音频共2 183个,这些特征在常规声学特征库中就是以三阶张量的形式而存在.让待测试的音频类型的因子矩阵进行的张量的矩阵乘,之后得到张量的映射,之后利用Frobenius范数作为分类判别依据,其定义如式(7)所示,最终将测试音频数据归类为最小的那一类[16]. (7) 每次实验的数据采取随机选择的方法生成,将实验重复10次,除了数据之外,其他都相同.为了说明张量方法所得特征与传统提取13阶MFCC、及其一阶差分和二阶差分系数构造的特征的性能比较,本文采用相同的数据集和分类器作了一个对比实验,其连续10次分类的正确率如表1所示. 表1 连续10次测试的准确率 从表1中可以发现利用张量分析技术分类准确率的平均值为91.3%,实验结果中有3次测试的准确率低于平均值,这可能是音频场景的噪音较多,提取的音频特征集无法准确的表达出音频场景的有效信息. 从表1中可以得知,利用传统低阶建模方式提取MFCC进行分类的平均正确率为86%,而且有4次实验地正确率明显低于平均值,说明不仅在平均正确率低于张量分解的方法,在单个实验的进行中正确率也较低.不同的提取方法,正确率会有明显的差别,这就说明张量分析技术在提取特征方面明显优于传统的机器学习的方法. 选取每类音频场景进行单项测试得到分类准确率结果如图2所示. 从图2中我们可以看出汽车喇叭分类准确率相对较低,这是由于我们实验中选取的喇叭音频数据集太少,模型没有提取到有效的音频特征导致分类准确率低,钻孔和手提钻的分类准确率不是很高,大多数把钻孔识别成手提钻的声音,钻孔的频谱特性和手提钻存在相似性,警笛准确率也很低,在于警笛持续时间短,音调高,分类时容易识别错误. 音频分类中特征参数的选择和分类器的好坏直接影响分类正确率.提出了一种基于张量技术对音频信号进行建模并分解的方法,提取到的特征能有效的表达信号的本质属性,最终利用SVM进行分类,最终在对10种不同种类音频进行分类测试的过程中,获得较高的分类准确率.2 分类方法
3 实验与结果分析
3.1 语料库
3.2 实验
4 结论