Matlab实现MFCC特征提取:24维倒谱与一阶差分

5星 · 超过95%的资源 需积分: 43 39 下载量 118 浏览量 更新于2024-09-07 2 收藏 1KB TXT 举报
在MATLAB中,提取音频信号的MFCC(Mel频率倒谱系数)特征是一种常见的信号处理技术,用于语音识别、音频分析等场景。MFCC是一种从时域信号中提取出对人类听觉最敏感的频带特征的方法,它将音频信号转换成一组具有代表性的数值,以反映声音的纹理和语义信息。 首先,从给定的代码片段中,我们看到以下关键步骤: 1. 读取音频数据: 使用`wavread`函数读取名为'5_1.wav'的WAV文件,获取其波形数据`x`和采样率`fs`。 2. 预处理音频信号: - 将立体声转换为单声道(如果需要) - 应用低通滤波,使用一个1st-order Butterworth滤波器,以去除高频噪声和增强信号的稳定性。 - 对信号进行窗函数(这里使用汉明窗)加窗,这有助于减少频谱泄漏并提高频谱估计的准确性。 - 将信号划分为帧,每个帧大小为256样本,移位步长为80,以便进行短时傅立叶变换(STFT)。 3. 计算MFCC: - 对每个帧应用STFT,得到其幅度谱`t`。 - 应用Mel频率滤波器银行(Mel filterbank),这是一个线性空间,模拟人耳对不同频率的敏感度,将频谱转化为梅尔频率域。 - 计算梅尔频率谱的对数,然后进行离散余弦变换(DCT),得到12维的梅尔频率倒谱系数(MFCC)矩阵`c1`。 - 进行一阶差分,以捕捉信号的动态变化,这通常体现在第13到24维,称为Delta系数。 - 除了原始MFCC系数,还计算了Delta-Delta(DDT或delta2)系数,这是通过对原始差分系数进行同样的处理得到的。 4. 结果存储: 最后,将处理后的MFCC系数矩阵(不包括首尾部分)以及可能的Delta和DDT系数存储在变量`ccc`中,并将其命名为`getmfcc`,供后续处理或模型训练使用。 通过这个过程,我们得到了一个矩阵,其中包含了每帧音频的24维MFCC特征,加上12维的一阶差分和12维的二阶差分,总共48维,这些特征可以作为输入到机器学习模型中,用于声音识别、说话人识别或音乐分析等任务。