Matlab-批量將資料夾內的音樂檔案轉成Mel Spectrum並儲存成圖片可視化
由於研究關係需要把音樂檔案轉換成可視化的模式,可視化第一個念頭就是將音頻轉換成梅爾頻譜了,本次是使用MATLAB來轉換頻譜的,該程式碼可批次將一個資料夾內的檔案都轉換成圖片後進行儲存的動作。。。
下面展示 Matlab的程式部分
。
file_path = 'C:\Users\兔子\Desktop\PIC\Audio\hiphop\';% 資料夾路徑
img_path_list = dir(strcat(file_path,'*.au'));%讀取該資料夾中所有.au格式的音頻
img_num = length(img_path_list);%讀取音頻檔案總數量
if img_num > 0 %有滿足條件時
for j = 1:img_num %逐一讀取
image_name = img_path_list(j).name;% 檔案名
[audioIn,fs] = audioread(strcat(file_path,image_name));
fprintf('%d %d %s\n',i,j,strcat(file_path,image_name));% 顯示正在處理的檔案名
S = melSpectrogram(audioIn,fs);
[numBands,numFrames] = size(S);
fprintf("Number of bandpass filters in filterbank: %d\n",numBands)%列出濾波器數量
fprintf("Number of frames in spectrogram: