用c语言提取一个44100hz的40个mfcc系数 当定义128个mel滤波器以及1024个汉明窗时 过程参数如何变化
时间: 2024-02-29 14:56:22 浏览: 200
数字滤波器的C语言实现
4星 · 用户满意度95%
在提取一个44100hz的40个mfcc系数时,如果定义128个mel滤波器以及1024个汉明窗,过程参数会如下变化:
1. 对音频信号进行预加重处理,以增强高频信号的能量;
2. 将信号分帧,每帧的长度为1024个采样点,且相邻两帧之间重叠部分为512个采样点;
3. 对每一帧信号进行汉明窗处理,以减少频域泄漏的影响;
4. 对每一帧信号进行快速傅里叶变换(FFT),得到每一帧的频谱信息;
5. 计算每一帧的梅尔频率倒谱系数(MFCC):
(1) 对每一帧的频谱信息进行梅尔滤波器处理,得到每个滤波器的能量;
(2) 对每个滤波器的能量进行离散余弦变换(DCT),得到每一帧的MFCC系数;
(3) 选取前40个MFCC系数作为该帧的MFCC特征向量;
6. 将每一帧得到的40个MFCC系数按时间顺序串联起来,得到完整的MFCC特征序列。
因此,当定义128个mel滤波器以及1024个汉明窗时,频谱信息的分辨率会更高,MFCC特征向量也会更精确。但同时也需要更多的计算资源。
阅读全文