首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB -将训练数据转换为语谱图的麻烦

MATLAB -将训练数据转换为语谱图的麻烦
EN

Stack Overflow用户
提问于 2011-09-20 01:18:58
回答 1查看 1.3K关注 0票数 0

我是一名学生,几个月前刚接触信号处理。我为我的项目选择了“语音识别的一种新颖的模糊方法”(你可以在谷歌上搜索下载版本)。

我在将训练数据转换为通过mel过滤器传递的频谱图时遇到了一些困难。

我使用this作为我的mel-filterbank,当然有一些小的修改。

然后我写了这个简单的代码来制作我的训练数据的谱图:

代码语言:javascript
复制
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长度可以吗?因为当我试图降低它时,我的代码会给出错误。

EN

回答 1

Stack Overflow用户

发布于 2011-09-20 01:34:57

你不应该对整个文件进行快速傅立叶变换--这会包含太多随时间变化的信息--你应该选择一个声音相对稳定的窗口大小,例如10ms@ 44.1 kHz = 441个样本,所以N= 512可能是一个很好的起点。然后,如果需要,您可以在连续窗口中生成频谱图,以便显示随时间变化的频率内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7474759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档