一种基于分层结构的音乐自动分类方法
2018-07-04孙建伟姚恺丰
杜 威,林 浒,孙建伟,于 波,姚恺丰
1(中国科学院 沈阳计算技术研究所,沈阳 110168)2(中国科学院大学,北京 110049)3(国家电网公司东北分部 国网东北电力调控分中心,沈阳 110180)
1 引 言
随着互联网和移动互联网技术的飞速发展,以音频、视频为代表的数字化媒体资源得到了广泛应用[1].以音乐媒体为例,数以百万计的音乐资源通过互联网的方式为用户所消费,这使得用户在随时、随地、使用任何可以接入网络的设备访问媒体资源成为了可能.但与此同时,一系列的问题也得以出现.例如,对于用户来说,如何能够高效地从海量的媒体资源中快速检索到自己感兴趣的媒体,甚至帮助自己发现自己潜在感兴趣的媒体;对于商家来说,如何能够结合重尾效应,为用户提供符合消费者品味的冷门的音乐媒体资源.因此,研究媒体资源具有重要的意义.
音乐流派自动分类在音乐信息检索中具有重要作用[2].通过将音乐分为不同的类别,一方面可以为音乐的存储提供方便,使得相同类型的音乐存放在一起;另一方面可以降低音乐检索的工作量,提升检索效率.与人工分类相比,自动分类方法能够显著地降低分类任务的工作量,同时保证了最终分类结果的准确率.音乐流派自动划分本质是通过抽取音乐的核心特征,结合机器学习的相关方法把不同流派的音乐分为不同的类型.
当前主流的音乐流派自动分类方法主要包括以下几个步骤:首先,从音乐数据中抽取特征参数;然后,使用数据处理方法完成数据的预处理,以便于进一步的分类操作;最后,使用基于监督学习或半监督学习的分类方法将数据进行分类[4].当前主流的特征参数包括以Mel频率倒频谱系数(MFCC)为核心的音色(Timbre)、音高(pitch)和旋律(Rhythm).主要的分类方法有支持向量机(Support Vector Machines,SVM),K最近邻居(K Nearest Neighbors,KNN),Gaussian混合模型(Gaussian Mixture Model,GMM)等,其中以SVM在音频分类中应用最为广泛[5].
本文在分析国内外主流研究成果的基础上,提出了基于分层结构的音乐流派自动分类方法.该方法首先使用K均值聚类方法分析不同类别之间的关系,并构建了基于类别关系的层次结构图,在此基础上,使用支持向量机完成对不同类别间的音乐分类.通过将该方法应用在GTZAN数据集上,对比单属性及平面结构的分类方法,实验结果表明该方法取得了较好的分类效果.
本文的结构如下:第二部分主要描述了模型本身,并详细介绍了包括特征抽取、数据处理、分类过程等细节;第三部分,通过开放数据集GTZAN结合本文所提出的分层结构结合支持向量机方法进行了相关的对比实验,实验结果表明该方法可以取得较好的分类效果;第四部分总结全文并提出了进一步的研究方向.
2 模 型
2.1 模型概要
以支持向量机、K最近邻居、高斯混合分布模型等为代表的传统分类方法在音频分类中得到广泛应用中,并取得了不错的效果,但随着计算能力的提高和计算技术的进步,包括音频、MIDI文件、上下文场景等在内的多种属性被应用于音乐流派自动分类,并试图提升分类的准确率[6].事实上,过多的属性导致分类的计算过程过于复杂,且有可能导致分类的准确率下降.此外,某些单一属性针对不同的音乐流派表现出不同的分类效果.例如,描述打击强度的属性可以很好地区分classical和pop音乐,但对于chamber音乐的子类别不能够很好地区分[7].因此,本文使用基于分层结构的分类方法来完成对不同流派的音乐进行自动分类.
分层结构分类方法与传统的平面型分类方法的区别在于其结构的层次关系.分层结构通过将特征部署到不同的层级内,在保证分类准确率的前提下,降低了计算的复杂度.与其他分类方法类似,分层分类方法也包括特征抽取、数据预处理、自动分类等若干步骤,但其不同在于需要提前基于现有数据结合其不同属性的不同分类效果,构造一个具有特定层次结构并保证分类效果的分层模型.
本文所提出的音乐流派自动分类方法基于包括MFCC在内的相关音乐特征,结合监督化分类方法,采用分层结构的分类模型,以完成对音乐流派的自动分类.该方法是在传统平面模型的基础上,结合不同流派音乐的统计学属性和单一属性的在不同数据子集的不同分类效果,构建的基于分层结构的模型.模型中所使用的分类特征来自于不同层级的考虑,第一层主要是基于音乐的核心特征并结合其统计学属性而展开,该统计学属性主要集中于均值、标准差、中位数,针对单值属性,使用该数值本身,而不需要再做任何处理;第二层及以下层级,则使用基于音乐流派的各种分类效果较好的属性完成对不同子数据集的分类.
使用该方法存在以下几个问题:第一,层次结构如何构建;第二,使用何种特征来完成针对不同层次和不同大小数据集的分类任务,即每个层次结构中其特征选择如何进行.这其中涉及到一个如何判断哪个属性分类效果最好的问题,因为不同的属性对于不同的数据集呈现不同的分类效果.如果简单地将所有属性堆叠在一起进行分类,一方面增加了分类的计算任务;另一方面,有可能不同属性之间的相关关系导致分类的准确率下降.
因此,本文使用了单一属性来分别验证单一属性的分类效果,在具体到每个层次所使用特征的效果,本文提出了特征分类效果判断指标.针对参数维度较大的情况,本文使用了主成份分析(PCA)和线性判别分析(LDA)的方法来降低维度,以实现降低运算复杂度的目标.在此基础上,使用支持向量机(SVM)和K最近邻居来完成对音乐流派的自动分类.
2.2 特征抽取
特征抽取的目标是从原始数据中抽取出最能够代表该流派特征的若干指标,以此来区别于其他类别[8].本文使用的基本特征包括:音色(timbre)、音高(pitch)、旋律(rhythm)及其他相关参数.其中,音色、音高和旋律是属于核心特征,其他特征包括短时过零率、短时能量、谱中心、低能量等.选择这些特征的依据是这些特征具有较高的区分度,且易于抽取和进行相关的计算.
由于本文使用的是分层结构,因此一个核心的问题就是判断哪些特征应该应用到哪个层次及哪个数据集?考虑到模型的目标是提高分类的准确率并降低计算量,此外如果上层的分类出现错误,则下层的处理会保留该错误(该子集即为类别的终点)或者进一步加大该错误(该数据子集进一步分类),因此需要每一步的分类准确率都得到保证.
当前音乐分类研究所涉及的主流特征主要包括过零率(zero-crossings),谱中心(Spectral centroid),滚降(rolloff),波动(flux),色度(chroma),MFCC,Beat、onsets、energy特征等[8].在此基础上进行合理的特征组合、统计属性抽取等操作,以实现抽取分辨率最高的特征.由于目前没有针对特征抽取的最优的解决方案,具体到本文的分层结构所使用的特征,主要从以下两个方面开展了研究:
针对第一层特征的选择,本文使用了音色、音高和旋律作为基本的判断指标,结合其统计学属性,一起构成了基本的分类特征.因为第一层是需要对全体数据集进行基本的分类操作,同时该层分类因为需要考虑到对下层分类的影响,需要使用尽可能获取高准确率的分类结果.因此,本文中使用了音色和音高作为第一层的核心分类属性,在此基础上使用了包括均值、方差、最大、最小、域值范围、中位数(Median)及偏度(skewness)和峰度(kurtosis)等.具体的分类特征包括:以MFCC为基础的均值、方差、最大、最小等共计156维度的MFCC、ΔMFCC和ΔΔMFCC的特征[11],Zerocross(1),flat(1),rolloff(1),flux(mean(1),var(1),median(1)),entropy(1),kurtosis(1),skewness(1),spread(1),key(1),mode(1),Chroma(12).
针对第二层及以下的层次结构,一个核心的功能是针对若干类别组合的数据集,如何能够分辨出具有最高分类准确率的属性.考虑到数据集的规模已经缩小了,因此需要结合该数据集中最能够达到最高分类效果的属性来完成数据的分类.本文的解决办法是使用高分类效果的属性,在对其参数与已选定的属性进行相关性分析后,再将不同的属性叠加使用.结合分层分类的特点,上层的特征通常情况下不再适用于下层的分类操作.但具体到本应用的特征有限和类别有限的特点,在第二层和第三层的分类中,首先使用若干单属性对若干子数据集进行分类,再从中选择出最优分类指标的特征,对其进行相关性分析,并对无关特征进行组合叠加,构成针对若干特征数据集的候选特征[12].
2.3 数据处理
数据处理的主要工作是将数据完成相应的操作,使得全体数据集合理地分布于一定的数据范围内.由于不同的属性具有不同的数据分布范围,而不同的数据值影响不同属性的表征特性,甚至对于最终分类结果将产生不可预见的影响[13].因此,数据处理能够消除不同属性对于最终分类结果的影响.本文使用Z-score标准化预处理所有数据,使所有数据经映射后符合标准正态分布.其处理办法如下
A=(A-mean(A))/std(A)
(1)
本文的实验结果表明,Z-score标准化数据预处理可以显著地提升特征数据分类的准确率.
针对数据集维度较多的情况,使用合理的降维方法以降低运算量,同时保证分类的准确率.当前主流方法是主成份分析(Principal Component Analysis,PCA)和线性判别分析(Linear Discriminant Analysis,LDA),本文实验结果表明主成份分析在音乐数据集上降维效果不如线性判别式分析效果明显.因此,在具体的实验过程中使用了LDA来完成针对数据集的降维操作.
2.3 自动分类
自动分类的工作是在数据集特征抽取的,结合机器学习方法来完成特征的自动分类,并保证分类的准确率.当前主流方法包括支持向量机、K最近邻居、决策树、Gaussian混合分布等[14],这些方法各有优缺点,如何能够结合本文的应用场景,使用合适的分类方法非常关键.
在参考了众多文献中所使用的分类方法后,结合本文的应用场景,本文使用了支持向量机(SVM)作为音乐类别分类方法[13].该方法能够使得在低纬度空间不容易分辨的特征,在保证核心参数不发生改变的情况下,通过增加维度进而提高分辨的准确率.本文使用了由libSVM库所实现的SVM方法,并使用了径向基核函数(Radial Basis Kernel Function)结合10折交叉验证来验证特征对分类效果的影响[9].
2.4 分层支持向量机
在汇总以上信息的基础上,本小节提出了分层支持向量机的实施流程.
本方法的整体框架如图1所示,具体包括三个层次.这三个层次的构造都是使用K-Means聚类针对不同的数据集而得到.第一层,主要是使用K-Means对全体数据集进行聚类而得到的四个基本类别,分为四个类是为了使得数据不太过于集中,同时又能够保证分类的准确率不至于太低.第二层是考虑当前的子数据集特征,而具体地分析分为几类合适.经过分析Hiphop、Pop、Reggae组可以合理地分为三类,但在Blues、Country、Metal、Disco和Rock组中如果分为五类,则分类准确率太低,尤其是Country和Rock,其正确分类的个数只占总数的41%和47%,因此,考虑将其分为四类,将Country和Rock作为一类由下一层次进行再次划分.第三层针对Country和Rock组进行分类,以提高分类的准确率.
在构造完层次结构以后,使用SVM对该层次所对应的数据集进行分类.由于高层次的分类结果对低层次分类结果产生不可纠正的影响,因此,在高层次尽可能使用足够的属性以提升分类的准确率.
图1 音乐类别层次结构图Fig.1 Genre hierarchical structure for music
3 实 验
该部分主要描述实验相关信息,具体包括实验数据、实验步骤和实验结果及分析等.
3.1 实验数据
本文中所用的数据集是音乐流派划分研究中主流的GTZAN数据集[3].该数据集包括10个类,每个类有100个长度为30秒的文件,共计1000首歌曲片段,每个片段的采样速率为22050Hz.这10个类别是:blues,classical,country,disco,hiphop,jazz,metal,pop,reggae和rock.在实验过程中使用了基于Matlab 语言的MIRtoolbox 1.6.1程序包[10],该程序包由丹麦的Olivier所开发,该程序包内嵌了Auditory toolbox等程序包,通过该程序包可以直接从后缀名为.au的音频文件中获取包括MFCC、Rolloff、fluctuation、low energy等属性在内的信息,也可以使用图形的形式将相关信息表达出来.
3.2 实验步骤
实验过程主要包括三个主要部分.第一,使用数据集验证包括统计特征在内的单一特征分类效果;第二,使用数据集验证组合特征分类效果;第三,使用K-Means聚类方法构建分层模型;第四步,使用分层结构进行音乐流派分类,即使用数据集验证分层架构的分类效果.其中,单一特征就是从音频文件中直接提取出来的相关数据信息,组合特征是将若干特征组合起来而构成的特征.通过使用不同的特征,进而区分不同特征间的分类能力.结合不同子数据集,使得分类能力最好的特征得以抽取出来.本实验过程中使用的KNN和SVM两种分类器,并对这两种分类器的分类效果进行了对比验证.
3.3 实验结果及分析
本文首先验证了单一属性的分类效果,对比其他几个属性,该数据显示MFCC具有较高的分类效果,其准确率达到42%.其中,MFCC使用的是1行13列的原始数据,Pitch信息是Pitch信息在Mono状态下获取的,Beat信息是通过计算自相关函数(An Autocorrelation Function)而得到.通过实验验证,MFCC分类的准确率为42%,Entropy分类的准确率为18%,Pitch分类的准确率为23%.
本文然后验证了组合属性分类效果,图2结果了包括MFCC及其统计学特征和其他特征在内的180维特征在全体数据集的分类效果.该组合属性结果表明Classical类型具有典型的特征而不同于其他属性,Country、Disco和Rock类别具有较为相似的特征.这也大体符合本文分层结构中对于不同类型音乐层次的划分.由于结果是基于多种属性特征经SVM分类而得到,且该分类效果准确率较高,该结果显示了在相同条件下,组合属性通常要优于单一属性.本文认为这是由于单一属性所获取的信息有限,多特征构成的组合属性,尤其是经过标准化以后的组合属性则能够更全面地获取多类型的音乐特征,因而取得更好的分类准确率.
图2 基于180维度特征分类效果Fig.2 Classification Results for 180 Features
然后本文使用了K-Means聚类方法分析了音乐的基于MFCC的156维特征进而构建音乐的层次结构,在聚类过程中.首先,对全体数据集以4组进行聚类分析,这四个组分别是Classical、Jazz、(Hiphop、Pop、Reggae)和(Country、Blues、Metal、Rock、Disco).这其中较为难以分辨的是Reggae和Rock,Reggae与Hiphop、Pop的特征较为接近,与由Country等类型所组成的组也较为接近,但考虑到Country等类型组已经包含了5个流派,而且从聚类结果看Reggae也更接近Hiphop等类型组多一些,因此将其分为了由Hiphop和Pop所构成的组.与组合特征类似,Rock由于其数据特征的原因,很难从其他类别中区分出来,尤其是将Rock从Country和Disco中区分出来.在此基础上,使用K-Means对两个分类未完全的组进行分类,以此进行,进而构建分层结构,最终结果如图1所示.在实际的聚类中,不同组由于分类的不同所需特征个数也不同.例如,使用LDA降为4个维度即可以对Hiphop、Pop和Reggae取得较好的分类效果.而对于Blues、Country、Disco、Metal和Rock分为四个组时,则需要使用LDA降低为40维度,则可以取得能够接受的结果.对于Country和Rock则只需要LDA降低到2个维度即可以完全区分清楚.以Blues等所在组进行4个簇的聚类分析其结果如下:
当使用分层结构时,首先根据上文提出的分层结构使用支持向量机对全体数据分为四个组,经过数据标准化以后,该步骤的分类准确率为90.2%,而与此对比KNN分类方法的准确率在未经标准化处理前为67.4%,经过标准化处理后其准确率为87.5%.该结果表明在音乐分类过程中,支持向量机要优于K最近邻居分类方法.然后,对其中的两个组进行再次分类.其中Hiphop、Pop和Reggae组结合上文的分析,使用较少特征就能够取得较好的分类效果,该组最终分类准确率为89%,KNN在未标准化预处理时分类准确率为59%,预处理后准确率为79.33%.而Blues、Country等分类结果准确率为85.6%,KNN未标准化预处理分类准确率为55%,预处理后准确率为76.2%.最后,对Country和Rock进行了SVM分类,其分类准确率为84%,而对比方法KNN在未标准化预处理时分类准确率为69%,经预处理以后为78.5%.经过以上分析可知,分层分类的准确率高于平面性分类的准确率.本文认为,分层分类准确率高的原因在于限制了数据的数量和分类的个数,在分类过程中只需要对数据子集内的类型进行分析,当某些特征区分能力强时,能够取得较好的分类效果;对于所添加的其他区分能力不强特征,则在标准化预处理过程中提升了其对结果产生的部分影响.
表1 针对Blues等子数据集的K-Means聚类结果Table 1 K-Means clustering results for blues etc subsets
综上所述,本文所提出的基于分层结构的分类方法能够获取比平面结构分类方法和KNN分类方法更好的分类效果,而且可以显式地描述不同流派之间的层次结构.因此,基于分层结构的分类方法是一种较好的分类方法.
4 结 论
音乐流派自动分类方法是当前音乐信息获取领域的一个研究热点,如何能够自动地判断出一首音乐的类别能够减少人力费用,同时保证了判断的准确率.尽管当前流行的K最近邻居、Gaussian混合模型、支持向量机模型能够取得可以接受的效果,但由于平面结构的分类方法并不能够充分显示不同流派之间的相对距离和层次关系.本文使用K-Means聚类方法,构建了基于音乐特征的分层结构,在此基础上使用支持向量机进行音乐流派自动分类,一方面,通过层次结构显示了不同流派之间的层次关系,另一方面,在保证分类准确率的同时,降低了分类的计算复杂度.通过使用开源的GTZAN数据集进行验证,本文所提出的基于分层结构的分类方法可以取得较好的分类效果.
:
[1] Lerch Alexander.An introduction to audio content analysis:applications in signal processing and music informatics[M].John Wiley & Sons,2012.
[2] Correa Debora C,Rodrigues Francisco Ap.A survey on symbolic data-based music genre classification[J].Expert Systems with Applications,2016,60(C):190-210.
[3] Tzanetakis George,Cook Perry.Musical genre classifi-cation of audio signals[J].IEEE Transactions on Speech and Audio Processing,2002,10(5):293-302.
[4] Eric D Scheirer.Tempo and beat analysis of acoustic musical signals[J].The Journal of the Acoustical Society of America,1998,103(1):588-601.
[5] Prockup Matthew,Ehmann Andreas F,Gouyon Fabien,et al.Modeling genre with the music genome project:comparing human-labeled attributes and audio features[C].16thInternational Society for Music Information Retrieval Conference(ISMIR 2015),2015:31-37.
[6] Loris Nanni,Yandre M G Costa,Alessandra Lumini,et al.Combining visual and acoustic features for music genre classification[J].Expert Systems with Applications,2016,45(C):108-117.
[7] Wu Ming-ju,Jang JYH-Shing R.Combing acoustic and multilevel visual features for music genre classification[J].ACM Transactions on Multimedia Computation Communication,2015,12(10):1-17.
[8] Lykartsis Athanasios,Lerch Alexander.Beat histogram features for rhythm-based musical genre classification using multiple novelty functions[C].Proceedings of the 16thInternational Conference on Digital Audio Effects(DAFx-15),2015:434-440.
[9] Chang Chih-chung,Lin Chih-jen.LibSVM:a library for support vector machines [J].ACM Transactions on Intelligent Systems and Technology,2011,2(27):1-27.
[10] Lartillot Olivier,Toiviainen Petri.A matlab toolbox for musical feature extraction from audio[C].Proceedings of the 10thInternational Conference on Digital Audio Effects(DAFx-07),2007:127-130.
[11] Sergio Oramas,Luis Espinosa-Anke,Aonghus Lawlor,et al.Exploring customer reviews for music genre classification and evolutionary studies[C].17thInternational Society for Music Information Retrieval Conference(ISMIR 2016),2016:150-156.
[12] Dong Ruihai,Schaal Markus,Mahony Michael P O,et al.Topic Extraction from online reviews for classification and recommendation[C].Proceedings of the Twenty-Third International Joint Conference on Artificial Intelligence(IJCAI′13),2013:1310-1316.
[13] Alastair Porter,Dmitry Bogdanov,Robert Kaye,et al.Acousticbrainz:a community platform for gathering music information obtained from audio [C].16thInternational Society for Music Information Retrieval Conference(ISMIR 2015),2015:786-792
[14] Vladimir Vapnik.The nature of statistical learning theory [M].Springer,2000.