需要修改的地方
十個文件夾,每個文件夾下都有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)