50首流行音乐的收集处理
实验目的
为后续的大规模音乐数据集建立工作试水,希望能在这个过程中发现之前没有注意到的问题,并提出相应解决方案。
音乐收集和预处理
从英国UK榜第19周榜单下载流行乐37首,分发给13位同学裁剪并打分。(每人3首左右,这里音乐不重复打分,但在正式实验中每首歌需要10个左右受试者打分)最后回收到:
- 34首音乐片段(裁剪高潮部分,30秒左右,正式实验中需要45秒左右)
- 音乐曲名、作者、排行等元信息
- 愉悦度和唤醒度打分(取值区间[-5,5])
特征提取
使用openSMILE
批量提取歌曲特征,得到IS13features.arff
特征文件,包含了34首歌曲,每首6373维特征向量(使用2013 ComParE Feature Set音乐情感特征集)。
处理打分数据,得到情感标签
根据打分给每首歌打三个标签情感正负
(即愉悦度的正负值),情感强弱
(即唤醒度的正负值),四种基本情感
(即VA二维平面的四个象限:高兴、惊恐、厌烦、轻松)。
将歌曲的特征向量和情感标签写入文件IS13features_withlabels.arff
。
简单过一下分类流程
使用Weka
中的libsvm
对音乐情感进行简单分类。(注意这里只是简单过一下分类流程,以后真实应用中是不会这样做的,如在VA模型的2维空间中做回归分析)
10-fold交叉验证结果:
情感正负(V)
情感强弱(A)
四种基本情感(VA)
发现问题和拟解决方案
- 在音乐打分前没有规范音乐文件名(没有给每首音乐相应的ID),给音乐文件与打分数据的联结处理带来麻烦 –> 可以使用批处理给音乐规范ID并将其原文件名中包含的信息(歌曲名字、作者)写到专门的
metadata
文件中。 metadata
文件中还应该包含歌曲的排名和风格等元素 –> 这些需要爬虫支持(人工搜集还是不友好的。。)ffmpeg
MP3转WAV的时候报Warning,发现这次使用的音乐裁剪工具没有修改MP3的文件信息,可能会对以后的应用埋下隐患。(感觉是暴力裁剪的,文件头里的duration字段,frame字段等和裁剪后的文件真实信息不匹配)–> 换一个裁剪工具(可以试试也用ffmpeg)- 受试者裁剪肯定是不行的 –> 机器裁剪还是我们人工裁剪?