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交叉验证结果:

  1. 情感正负(V)

  2. 情感强弱(A)

  3. 四种基本情感(VA)

发现问题和拟解决方案

  1. 在音乐打分前没有规范音乐文件名(没有给每首音乐相应的ID),给音乐文件与打分数据的联结处理带来麻烦 –> 可以使用批处理给音乐规范ID并将其原文件名中包含的信息(歌曲名字、作者)写到专门的metadata文件中。
  2. metadata文件中还应该包含歌曲的排名和风格等元素 –> 这些需要爬虫支持(人工搜集还是不友好的。。)
  3. ffmpegMP3转WAV的时候报Warning,发现这次使用的音乐裁剪工具没有修改MP3的文件信息,可能会对以后的应用埋下隐患。(感觉是暴力裁剪的,文件头里的duration字段,frame字段等和裁剪后的文件真实信息不匹配)–> 换一个裁剪工具(可以试试也用ffmpeg)
  4. 受试者裁剪肯定是不行的 –> 机器裁剪还是我们人工裁剪?