需要修改的地方
十个文件夹,每个文件夹下都有100首.au
格式的音乐,这里举个例子,那其中5个类别进行转换
genre_list = ["classical", "jazz", "country", "pop", "rock", "metal"]
根据文件路径定义列表,到时候就可以方便进行遍历
rad = "d:/genres/"+g+"/converted/"+g+"."+str(n).zfill(5)+".au.wav"
为要转变的wav文件的路径
sad = "d:/trainset/"+g+"."+str(n).zfill(5) + ".fft"
为转换为.fft需要保存的路径
完整代码如下:
import numpy as np
from sklearn import linear_model, datasets
import matplotlib.pyplot as plt
from scipy.stats import norm
from scipy import fft
from scipy.io import wavfiledef create_fft(g, n):rad = "d:/genres/"+g+"/converted/"+g+"."+str(n).zfill(5)+".au.wav"#音乐文件的路径,这里的音乐文件都是.wav格式sample_rate, X = wavfile.read(rad)#sample_rate采样率;X为音乐文件本身fft_features = abs(fft(X)[:1000])#对音乐文件本身进行fft快速傅里叶变化,取前1000赫兹数据,进行取绝对值,得到fft_features傅里叶变换的特征sad = "d:/trainset/"+g+"."+str(n).zfill(5) + ".fft"#将特征存储到这个路径下np.save(sad, fft_features)#存储特征,存储的是.fft格式,但是最终生成的是.fft.npy格式,这是numpy自动生成的genre_list = ["classical", "jazz", "country", "pop", "rock", "metal"]
for g in genre_list:for n in range(100):create_fft(g, n)