音乐怎么导入mp3_用keras打造一个音乐分类模型

最近有一个新的任务,音乐分类——给到一首MP3,把它分到正确的类别。

在github上找啊找,找到3个有可能实现的方法。

1.MSD dataset (Million Song Dataset)

参考1:https://github.com/mlachmish/MusicGenreClassification

参考2:http://millionsongdataset.com/pages/code/

第一个方法是这个,我跑了MusicGenreClassification-master,它是9个类别分类的,分别是blues,classical,country,disco,hiphop,jazz,metal,pop,reggae,rock。并且下载了1.8G的MillionSongSubset(全部的MSD大约是290G,这里是MSD网站给出的较小的数据集),里面都是h5格式的文件,但是我还没有搞清楚文件目录是什么意思,目录如图1

68482c7daad7e24186931ea5c41b6b97.png

图1:MillionSongSubset目录

代码中实现分类效果的方式有两种,一种是分析mfcc,另一种是分析mel-spec。

梅尔频率倒谱系数(MFCC):

MFCCs(Mel Frequency Cepstral Coefficents)是一种在自动语音和说话人识别中广泛使用的特征。

Mel频谱分析(Mel-Spec) :

mel-scaled power (energy-squared) spectrogram

最后我跑的时候,代码需要MP3文件,我不知道怎么搞到MP3文件,不知道怎么把这些h5文件变成MP3,这个代码没有跑成功

2.FMA: A Dataset For Music Analysis

参考https://github.com/mdeff/fma

感觉这个写的很清楚,也很容易做出来。数据集也有,下载了22G的中等数据集fma_medium.zip: 25,000 tracks of 30s, 16 unbalanced genres (22 GiB)和fma_metadata.zip,各种的操作代码在jupyter notebook也都有,但是它使用的track.csv文件好像有一些问题,我连最前面的数据集操作也没有跑完,这个也以失败告终。

3.音乐推荐系统

参考https://github.com/mattmurray/music_recommender

https://zhuanlan.zhihu.com/p/44188154

这个是可以跑成功的!!!

这个代码,作者是给模型的,可以直接进行测试。

9类:

0:'Breakbeat',#霹雳1:'Dancehall/Ragga',#雷鬼音乐2:'Downtempo',#慢摇3:'Drum and Bass',#鼓打贝司4:'Funky House',#经典电音5:'Hip Hop/R&B',#嘻哈6:'Minimal House',#极简音乐7:'Rock/Indie',#摇滚8:'Trance'#迷幻音乐

python moel_classify_genre.py(把MP3文件导入进去就可以),结果如图2

d0ca70a3d3108924b081b38ac4a1987d.png

图2

我的任务类别和这些不同,我有33个类别,我需要重新整理数据集进行模型训练,之后再进行测试。

1.下载对应的MP3文件,一个MP3文件30s就行

2.把MP3转化成频谱图,1个30s的MP3估计有5-6张频谱图,我的每一类大约都有10000张图像。把这些图片分成train,val,holdout三个文件夹,比例是6:3:1。每个大文件夹有33个小文件,分别是这些类。

3.修改model_train.py,之后进行训练。

4.训练完成,得到model.h5,可以进行测试。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值