首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MFCC - 13系数

MFCC - 13系数
EN

Stack Overflow用户
提问于 2012-12-11 07:08:26
回答 3查看 10.6K关注 0票数 1

我正在尝试根据我找到的这篇论文(http://arxiv.org/pdf/1003.4083.pdf)来计算MFCC算法,所以到目前为止我所做的是:

步骤1)预强调

第2步)成帧

步骤3)汉明加窗

步骤4)快速傅立叶变换

步骤5) Mel滤波器组处理

步骤6):离散余弦变换

基本上,我使用Mel组滤波器并将它们与实际的原始信号相乘。然后,我对这些结果执行了FFT,如下所示:

帧1上的FFT:

然后我计算了FFT的DCT,结果如下所示:

第1帧上的DCT:

到目前为止,这看起来正确吗?有没有办法让我检查一下,这样我就知道我走的方向是对的?

此外,我需要获得13个系数,但我不知道如何确定这些系数中的哪一个。我得到了256个值,那么我要取前13个值吗?或者,我得到的是总能量?

我希望有人能帮助我。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-11 14:28:31

不,你错了。

你需要计算快速傅立叶变换后的mel滤波器组能量的对数,然后才能应用离散余弦变换。滤波器组的能量数应该是20或40,经过DCT后,你应该得到20或40个数字,并取前13个数字。

你对FFT所做的一切都是错误的。

你可能想要阅读一些MFCC代码,而不是从头开始做一些事情,有很多实现,例如在sphinxbase中:

http://cmusphinx.sourceforge.net

票数 2
EN

Stack Overflow用户

发布于 2013-03-13 20:12:59

经过几天的类似搜索,我偶然发现了一个非常有用的关于如何获得MFC Coeficients的教程:Mel Frequency Cepstral Coefficient (MFCC) tutorial

(虽然这个帖子很老,但我希望答案能对未来的读者有所帮助)

票数 9
EN

Stack Overflow用户

发布于 2013-12-27 23:52:24

我对你刚刚写的东西感到困惑。我唯一需要知道的是我已经将信号分割成帧,n= 100,m= 256 (我相信),这产生了大约390个块,那么,每个块有13个系数,还是整个声音fle只有13个系数?

答案是每个块有13个系数,而不是整个声音文件。

并且你计算mfcc系数的方法是错误的,你应该遵循你提到的1-6个步骤。

步骤1)对整个声音文件进行预加重。

步骤2)对整个声音文件进行分帧,得到多个分块

步骤3)对每个块进行汉明加窗

步骤4)每个块的快速傅立叶变换

步骤5)每个块的Mel滤波器组处理

步骤6):每个块的离散余弦变换

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

https://stackoverflow.com/questions/13810873

复制
相关文章

相似问题

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