MFCC原理及代码

MFCC是梅尔频率倒谱系数,模拟人耳听觉特性。它包括预加重、加窗、频域转换、梅尔刻度滤波器组过滤、离散余弦变换和差分等步骤。预加重是为了补偿语音信号的高频部分,加窗减少旁瓣和频谱泄露。梅尔滤波器组和DCT用于提取主要频率信息。差分则增强特征的时域连续性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MFCC是Mel-Frequency Cepstral Coefficients的缩写,包含两个关键步骤:转化到梅尔频率,然后进行倒谱分析。

梅尔刻度的滤波器组在低频部分的分辨率高,跟人耳的听觉特性是相符的。
做法是:首先对时域信号进行傅里叶变换转换到频域,然后再利用梅尔频率刻度的滤波器组对应频域信号进行切分,最后每个频率段对应一个数值。

倒谱分析

倒谱的含义是:对时域信号做傅里叶变换,然后取log,然后再进行反傅里叶变换。可以分为复倒谱、实倒谱和功率倒谱,我们用的是功率倒谱。
倒谱分析可用于将信号分解,两个信号的卷积转化为两个信号的相加。所以进行倒谱分析目的就是获得频谱的包络信息。包络部分对应的是频谱的低频信息,而细节部分对应的是频谱的高频信息。倒谱分析已经将两部分对应的时域信号的卷积关系转化为了线性加关系,所以只需要将倒谱通过一个低通滤波器即可获得包络部分对应的时域信号

基本流程

预加重

目的
为了消除发声过程中,声带和嘴唇造成的效应,来补偿语音信号受到发音系统所压抑的高频部分。并且能突显高频的共振峰。
简单理解就是在频域上面都乘以一个系数,这个系数跟频率成正相关,所以高频的幅值会有所提升。

加窗

目的
用于平滑信号,使用汉明窗加以平滑的话,相比于矩形窗函数,会减弱FFT以后旁瓣大小以及频谱泄露。

频域转换

目的
将时域信号转化到频域进行后续的频率分析

使用梅尔刻度滤波器组过滤

目的
因为频域信号有很多冗余,滤波器组可以对频域的幅值进行精简,每一个频段用一个值来表示。
实现
对于FFT得到的幅度谱,分别跟每一个滤波器进行频率相乘累加,得到的值即为该帧数据在在该滤波器对应频段的能量值。如果滤波器的个数为22,那么此时应该得到22个能量值
能量值取log

由于人耳对声音的感知并不是线性的,用log这种非线性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Z_shsf

来包瓜子嘛,谢谢客官~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值