第一步导包啊
import os
import pandas as pd
import numpy as np
import librosa
import pywt
from tqdm import tqdm
梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,简称MFCC)
梅尔频率倒谱系数(Mel-Frequency Cepstral Coefficients,简称MFCC)是一种在语音识别和音频处理中常用的特征提取方法。MFCC 特性在信号处理和识别中得到了广泛的应用。它们最早由 Davis 和 Mermelstein 在 1980 年代计算并用于语音分析。人类可以识别较低频率下声音信号音高的微小变化,并且对于范围为 <1 kHz 的频率,MFCC 标度是线性的。MFCC 的强大之处在于它们能够有效地表示信号信息。MFCC 特征几乎类似于对数滤波器组能量,并且包括梅尔标度,这使其成为人类理解的较小尺度的精确副本,
MFCC的原理基于人耳的听觉特性,通过模拟人耳对声音的感知过程,提取出能够代表语音特征的关键参数。以下是MFCC的详细原理和计算步骤:
1. 预处理
- 预加重:对信号进行预加重处理,提升高频部分的能量,以补偿语音信号在传输过程中高频部分的衰减。
- 分帧:将语音信号分成短时帧,通常每帧长度为20-30毫秒,帧移为10-15毫秒。这是基于短时平稳假设,即认为短时间内语音信号是平稳的。
- 加窗:对每帧信号进行加窗处理,通常使用汉明窗(Hamming Window)来减少帧边缘的频谱泄露。
2. 傅里叶变换
对每帧信号进行快速傅里叶变换(FFT),将时域信号转换为频域信号,得到每帧的功率谱。
3. 梅尔滤波器组
- 梅尔尺度:人耳对频率的感知是非线性的,梅尔尺度是一种模拟这种非线性感知的尺度。梅尔频率与实际频率的关系可以用以下公式表示:
M=2595log10(1+f700)M=2595log10(1+700f)
其中 MM 是梅尔频率,ff 是实际频率(以赫兹为单位)。 - 滤波器组:在梅尔尺度上均匀地放置一组滤波器,这些滤波器在频域上覆盖了整个频率范围。每个滤波器的响应曲线呈三角形,中心频率在梅尔尺度上等间隔。
4. 对数能量
对每个梅尔滤波器的输出取对数,得到对数能量。这一步模拟了人耳对声音强度的感知,也是为了进一步提取倒谱系数做准备。
5. 倒谱分析
对对数能量进行离散余弦变换