新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)

这一节继续Hm(k)的计算,还是看代码:

k=4,应该不难理解吧!上一节有解释。这是Hm(k)的程序验证

我们用Xa(k)=实部+j*虚部,代表第a帧快速傅里叶变换结果

|Xa(k)|=math.sqrt(实部^2+虚部^2),

|Xa(k)|^2=实部^2+虚部^2,

mel短时(256字节)功率谱怎么表达呢?

s(m)=ln∑Hm(k)*|Xa(k)|^2;m就是26组,所以这就是第a帧26组mel短时(256字节)功率谱,那么∑的上下限是多少呢?每一组的上下限显然不同,上限=程序中frequency_boundary[2];下限=程序中frequency_boundary[0];这是要注意的,很多mfcc的公式介绍,这里是错误的。有26组s(m),就有26组上下限

上面程序中注释掉的power[k]=|Xa(k)|^2/256 ; 如下图,第a帧要计算128次:

以下是开音有效帧fft和降维后mel短时功率谱的的对比,轻松一下,上是fft,下是功率谱,以便观摩:

以上均是方便清楚观察而有同比例放大。从观察看,上下图基本一致,128维也到了26维。

这一节到此,如果你对mfcc有兴趣,我会继续展开他。。。。。。

发布了66 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/ganggangwawa/article/details/104357393