(零基础入门语音识别task3)音频数据特征提取

本文介绍了音频数据处理中的关键特征提取方法,包括过零率、频谱质心等,并详细解析了MFCC特征的提取过程及其在卷积神经网络(CNN)中的应用。

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

结合上次对音频数据转化的基本了解,本次补充说明特征提取的原理以及在CNN中的实际运用。

#一些需要使用的库
import numpy as np
import sklearn
import librosa
import librosa.display
import matplotlib.pyplot as plt#此库是专门用于绘制python的2D图像的matplotlib

1.一些基本特征

过零率 :一个信号符号变化的比率,大意是在每帧中语音信号从正变为负或从负变为正的次数

#调用
x, sr = librosa.load('./train_sample/aloe/24EJ22XBZ5.wav')
#绘制声波信号
plt.figure(figsize=(14, 5))
librosa.display.waveplot(x, sr=sr)
# 放大
n0 = 9000
n1 = 9100
plt.figure(figsize=(14, 5))
plt.plot(x[n0:n1])
plt.grid()

# 计算过零率
zero_crossings = librosa.zero_crossings(x[n0:n1], pad=False)
print(sum(zero_crossings))

频谱质心:是频率成分的重心,是在一定频率范围内通过能量加权平均的频率。

spectral_centroids = librosa.feature.spectral_centroid(x, sr=sr)[0]
print(spectral_centroids.shape)
# (2647,)
# 计算时间变量 
frames = range(len(spectral_centroids))
t = librosa.frames_to_time(frames)
# 归一化频谱质心
def normalize(x, axis=0):
    return sklearn.preprocessing.minmax_scale(x, axis=axis)
#沿波形绘制频谱质心 
librosa.display.waveplot(x, sr=sr, alpha=0.4)
plt.plot(t, normalize(spectral_centroids), color='r')

声谱衰减 :是对声音信号形状(波形图)的一种衡量,表示低于总频谱能量的指定百分比的频率。

spectral_rolloff = librosa.feature.spectral_rolloff(x+0.01, sr=sr)[0]
librosa.display.waveplot(x, sr=sr, alpha=0.4)
plt.plot(t, normalize(spectral_rolloff), color='b')

色度频率:是音乐音频有趣且强大的表示,其中整个频谱被投影到12个区间,代表音乐八度音的12个不同的半音(或色度)

大概就是这样

2.特征提取法MFCC

如图:
在这里插入图片描述
简要说明一下对MFCC的个人见解:分帧取得不同周期的信号功率谱(短时傅里叶分析),随后变换处理功率谱并得到重要的特征系数(梅尔频谱)。

短时傅里叶变换,即把一段长信号分帧、加窗,再对每一帧做快速傅里叶变换(FFT),最后把每一帧的结果沿另一个维度堆叠起来,得到类似于一幅图的二维信号形式,也就是我们task2中得到的声谱图。
在这里插入图片描述

在讲梅尔频谱之前先说说梅尔尺度。

梅尔尺度是建立从人类的听觉感知的频率——Pitch到声音实际频率直接的映射。人耳能听到的频率范围是20-20000Hz,但人耳对Hz这种标度单位并不是线性感知关系,例如,若把音调频率从1000Hz提高到2000Hz,我们的耳朵只能觉察到频率似乎提高了一些而不是一倍。但是通过把频率转换成美尔尺度,我们的特征就能够更好的匹配人类的听觉感知效果。

所以人们用梅尔滤波器来模拟人耳对声音的感知,并得到梅尔频谱。
在这里插入图片描述

声谱图往往是很大的一张图,且依旧包含了大量无用的信息,所以我们需要通过梅尔标度滤波器组(mel-scale filter banks)将其变为梅尔频谱,再经由倒谱分析(取对数log,做离散余弦变换(DCT)变换)得到梅尔倒谱,再对其上的倒谱系数进行初步选择即可得到该音频的MFCC特征。

在之后的优化中可以从其他特征的角度来进行优化。

本文大部分观点来自:
fork from Task3 食物声音识别-音频数据特征提取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值