曲风(比如民乐、摇滚、电音、流行)可以作为音乐的一个特征区分用户的喜好,人工标志的曲风有可能不准,因为cnn可以识别不同的图片局部特征,根据音乐频谱图,可以输入cnn网络,去识别出不同的分类。 目前使用了一种cqt图。
一般摇滚乐的cqt图:
民乐二泉映月cqt:
流行歌曲cqt图:
具体过程先把图片尺寸压缩到100100。尝试过用原图499687,训练太慢,精度也没有大幅提高,感觉没必要。
网络构建主要使用二维卷积,经过若干次卷积池化,感觉这个过程可以根据效果调整。
各分类需要一定的样本量。人工标注的样本中有一定的错误样本,会影响分类精度,每次训练后根据对样本的回测手动验证后删除了部分错误样本,自动删除可能会误伤一些样本,也有过拟合的风险,错误样本不去除的话对模型精度影响太大。
目前分了流行、电音、民乐、摇滚几类,对一种类别从播放top中召回精度约为80%左右。网上还搜到一种用mfcc然后一维卷积的方法(https://blog.csdn.net/zdy0_2004/article/details/43896015),感觉以后有时间可以尝试一下。后面我们又尝试了根据中文歌词使用cnn模型召回摇滚类别歌曲的方式,召回数量整体和音频召回差不多(比音频略少10%,可能是因为歌词限制为中文的缘故),精度两者类似,希望后续能找到更优化的方法。