MFCC 计算函数的基本流程为:

  1. 预加重:对输入语音信号进行预加重处理,增加高频成分的能量,减少低频成分的能量。
  2. 分帧:将预加重后的语音信号分帧,每帧长度为 frameSize,帧之间的间隔为 inc。
  3. 加窗:对每一帧进行汉宁窗加窗,减少频谱泄漏。
  4. 傅里叶变换:对每一帧进行 FFT 变换,得到频域信号。
  5. Mel 滤波器组:将频域信号通过 Mel 滤波器组,将能量集中在人耳听觉灵敏度比较高的频率区间。
  6. 对数运算:对每个 Mel 滤波器输出进行取对数运算,增强低能量成分的特征,减少高能量成分的影响。
  7. DCT 变换:对每个 Mel 滤波器输出进行 DCT 变换,得到 MFCC 系数。

与 librosa.feature.mfcc 的差异在于实现细节和参数设置上。具体来说,librosa.feature.mfcc 函数中使用了更多的参数设置,包括 n_mfcc(MFCC 系数个数)、hop_length(帧移)、n_fft(FFT 点数)、fmin(最低频率)、fmax(最高频率)等;而 MFCC 计算函数中只使用了 Mel 滤波器的个数、采样频率、帧长和帧移这几个参数。另外,librosa.feature.mfcc 函数中还使用了一些特殊的技巧,比如对数谱平滑、提高谱峰分辨率等,使得计算出的 MFCC 系数表现更好。

根据 MFCC 系数计算流程编写 MFCC 计算函数并用来计算一段语音的 MFCC 系数。 函数定义如下: ccc=NmfccxfspframeSizeinc; 其中x 是输入语音序列Mel 滤波器的个数为 p采样频率为 fsframeSize 为帧长 和 FFT 点数inc 为帧移;ccc 为 MFCC 参数。 试分析与 librosafeaturemfcc 的差异。

原文地址: https://www.cveoy.top/t/topic/b980 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录