我是一名學生,幾個月前剛開始接受信號處理。我爲我的項目選擇了「語音識別的一種新型模糊方法」(您可以通過谷歌下載該版本)。MATLAB - 將訓練數據轉換爲頻譜圖的難題
我有點卡在將訓練數據轉換成已通過mel濾波器的譜圖。
我使用this爲我的mel-filterbank,當然有一些修改。
然後我寫了這個簡單的代碼,使我的訓練數據的頻譜圖:
p =25;
fl =0.0;
fh =0.5;
w ='hty';
[a,fs]=wavread('a.wav'); %you can simply record a sound and name it a.wav, other param will follows
n=length(a)+1;
fa=rfft(a);
xa=melbank_me(p,n,fs); %the mel-filterbank function
za=log(xa*abs(fa).^2);
ca=dct(za);
spectrogram(ca(:,1))
我的一切就像是這裏面是不是像紙說::
請讓我知道,我的代碼或我有的光譜圖是正確的。如果是這樣,我需要做些什麼來使我的光譜圖像紙張一樣?如果沒有,請告訴我哪裏有錯誤
另一個問題,是否有FFT的長度很多? 因爲當我試圖降低它時,我的代碼會給出錯誤。
你爲什麼要拍攝mfcc coeffs的光譜圖?計算mffc的最後一步是採用dct。你想用光譜圖功能實現什麼? –
實際上,我並不是說要把mfcc代碼當成譜圖,我想要做的就是在通過mel-filterbank之後拍攝我的聲音樣本的譜圖,是我的代碼錯誤嗎? 我已經知道了。 我試圖讓我的示例語音作爲模板,所以我可以基於模板I – cuprum
實現模糊化規則,我並不是說要將mfcc代碼作爲譜圖,我想要做的是在通過mel-filterbank之後獲取我的聲音樣本的聲譜圖,是我的代碼錯誤嗎? 我已經知道了。 我試圖讓我的示例語音作爲模板,所以我可以根據我製作的模板制定模糊規則。就像紙。就這樣。 – cuprum