MEL Frequency Bands
Frequency min = 1000Hz
Frequency max = 8000Hz
Number of MEL bands = 6
MEL spectrogram of "sarigmapa" song
Conversion Mel and Hz
function mel = freq2mel(freq)
mel = 2595*log10(1+(freq/700));
end
function freq = mel2freq(mel)
freq = 700*(10^(mel/2595)-1);
end
NOTE
MEL spectrogram is better suited to represent the human perception of the sound and can be useful in speech recognition and speech processing tasks.
Spectrogram is more widely used in signal processing and audio analysis.
Activity 4.1
Create Mel Filter Banks
f_min = 1000;
f_max = 8000;
n_bands = 6;
mel_min = round(freq2mel(f_min))
mel_max = round(freq2mel(f_max))
bound_range = linspace(mel_min,mel_max,n_bands+1)
center_mel_freqs = zeros(1,n_bands)
for i=1:length(bound_range)-1
center_mel_freqs(i) = round((bound_range(i)+bound_range(i+1))/2);
end
disp(center_mel_freqs)
i = 2
x = [bound_range(i),center_mel_freqs(i),bound_range(i+1)]
y = [0,1,0]
plot(x,y)
axis([bound_range(1) bound_range(end) 0 1])
figure()
for i=1:n_bands
x = [bound_range(i),center_mel_freqs(i),bound_range(i+1)]
y = [0,1,0]
plot(x,y,'LineWidth',3)
hold on
axis([bound_range(1) bound_range(end) 0 1])
xticks(round(bound_range))
end
xlabel('Mel Frequencies')
title('Mel Filter Bands')
Reference
https://www.youtube.com/watch?v=4_SH2nfbQZ8&ab_channel=ValerioVelardo-TheSoundofAI