1 #利用knn算法分类音乐,将音乐进行情绪分类2 #将音乐分为兴奋的(excited), 愤怒的(angry),悲伤的(sorrowful),轻松的(relaxed)3
4 #可分离因素5 # mfcc6
7 import numpy asnp8 from matplotlib import pyplot asplt9 from scipy import io asspio10 fromsklearn.decomposition import pca11 fromsklearn.preprocessing import StandardScaler12 import librosa13 import librosa.display14 frommutagen.mp3 import MP315 import numpy asnp16 import os17
18 def getFeature(path):19 y, sr =librosa.load(path)20
21 mfccs = librosa.feature.mfcc(y=y, sr=sr, n_mfcc=40)22 mfccNew = np.ravel(mfccs[:, :1000])23 returnmfccNew24
25 def loadDataSet():26 #歌曲的数量27 dataSet = np.zeros((40, 40000))28 labels =[]29
30 excited = r‘./musicF/excited‘
31 angry = r‘./musicF/angry‘
32 sorrowful = r‘./musicF/sorrowful‘
33 relaxed = r‘./musicF/relaxed‘
34
35 filenames =os.list