Python librosa.feature.mfcc提取音频特征

librosa.feature.mfcc参数介绍

librosa.feature.mfcc(y=None, sr=22050, S=None, n_mfcc=20, dct_type=2, norm='ortho', **kwargs)

y:np.ndarray [shape=(n,)] 或 None 
音频时间序列

sr:number > 0 [scalar] 
y的采样率

S:np.ndarray [shape=(d, t)] or None 
对数功能梅尔谱图

n_mfcc: int > 0 [scalar] 
要返回的MFCC数量

dct_type:None, or {1, 2, 3} 
离散余弦变换(DCT)类型。默认情况下,使用DCT类型2。

norm:None or ‘ortho’ 
规范。如果dct_type为2或3,则设置norm =’ortho’使用正交DCT基础。 
标准化不支持dct_type = 1。

kwargs:额外的关键参数 
参数melspectrogram,如果按时间序列输入操作

返回: M:np.ndarray [shape=(n_mfcc, t)] 
MFCC序列

librosa.feature.mfcc的使用

import librosa
y, sr = librosa.load('i1.wav',sr=None)
mfccs = librosa.feature.mfcc(y=y, sr=sr,n_mfcc=24)

librosa.feature.mfcc这个函数内部是这样的:

# -- Mel spectrogram and MFCCs -- #
def mfcc(y=None, sr=22050, S=None, n_mfcc=20, **kwargs):
    if S is None:
        S = logamplitude(melspectrogram(y=y, sr=sr, **kwargs))

    return np.dot(filters.dct(n_mfcc, S.shape[0]), S)

可以看出,如果只给定原始的时域信号(即S参数为None),librosa会先通过melspectrogram()函数先提取时域信号y的梅尔频谱,存放到S中,再通过filters.dct()函数做dct变换得到y的梅尔倒谱系数。

 

参考

Python中使用librosa包进行mfcc特征参数提取 https://blog.csdn.net/qq_39516859/article/details/80679718

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是代码和绘图: ```python import librosa import librosa.display import matplotlib.pyplot as plt # 读取音频文件 y, sr = librosa.load('audio.wav') # 提取MFCC系数 mfccs = librosa.feature.mfcc(y=y, sr=sr) # 绘制MFCC系数图像 plt.figure(figsize=(10, 4)) librosa.display.specshow(mfccs, x_axis='time') plt.colorbar() plt.title('MFCC') plt.tight_layout() plt.show() ``` 绘图结果如下: ![MFCC](https://i.imgur.com/6fJ6wK.png) ### 回答2: import librosa import librosa.display import matplotlib.pyplot as plt # 加载音频文件 file_path = 'audio.wav' y, sr = librosa.load(file_path) # 提取MFCC特征 mfccs = librosa.feature.mfcc(y=y, sr=sr) # 绘制MFCC特征图 plt.figure(figsize=(10, 4)) librosa.display.specshow(mfccs, x_axis='time') plt.colorbar(format='%+2.0f dB') plt.title('MFCC') plt.show() ### 回答3: 下面是一个利用librosa.feature.mfcc函数提取MFCC系数并绘图的示例代码: ```python import librosa import librosa.display import matplotlib.pyplot as plt # 读取音频文件 audio_path = 'audio.wav' y, sr = librosa.load(audio_path) # 提取MFCC系数 mfccs = librosa.feature.mfcc(y=y, sr=sr) # 绘制MFCC系数图像 plt.figure(figsize=(10, 4)) librosa.display.specshow(mfccs, x_axis='time') plt.colorbar(format='%+2.0f dB') plt.title('MFCC') plt.tight_layout() plt.show() ``` 上述代码首先使用librosa.load函数读取音频文件,将音频数据`y`和采样率`sr`作为参数传递给librosa.feature.mfcc函数,以提取MFCC系数。 然后,使用matplotlib.pyplot库绘制MFCC系数图像。通过调整figure大小、设置颜色栏格式、添加标题以及调整图像布局等参数,最后显示绘制的图像。 注意:在运行代码之前,确保已经安装了librosa、matplotlib和numpy等必要的Python库,并将audio.wav替换为实际的音频文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值