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

这一节继续Hm(k)的计算,还是看代码:新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第1张图片

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次:新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第2张图片

以下是开音有效帧fft和降维后mel短时功率谱的的对比,轻松一下,上是fft,下是功率谱,以便观摩:新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第3张图片

新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第4张图片

新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第5张图片

新知mfcc语音识别esp8266继电器开关灯(成为一个DIYer,七)_第6张图片

以上均是方便清楚观察而有同比例放大。从对比观察看,上下图基本一致,取对数振幅变换没那么剧烈了(削弱),而且Hm(k)使得高频能看见了(拔高),128维也到了26维(简并,是否想到图像处理的直方图均衡化呢?),平滑性和周期性凸显(频谱的包络是主要是低频成分,已经显现,而频谱的细节部分主要是高频,也已简并)。

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

你可能感兴趣的:(人工智能)