我是一名学生,几个月前刚接触信号处理。我为我的项目选择了“语音识别的一种新颖的模糊方法”(你可以在谷歌上搜索下载版本)。
我在将训练数据转换为通过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长度可以吗?因为当我试图降低它时,我的代码会给出错误。
发布于 2011-09-20 01:34:57
你不应该对整个文件进行快速傅立叶变换--这会包含太多随时间变化的信息--你应该选择一个声音相对稳定的窗口大小,例如10ms@ 44.1 kHz = 441个样本,所以N= 512可能是一个很好的起点。然后,如果需要,您可以在连续窗口中生成频谱图,以便显示随时间变化的频率内容。
https://stackoverflow.com/questions/7474759
复制相似问题