当前位置:   article > 正文

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

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的使用

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

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

  1. # -- Mel spectrogram and MFCCs -- #
  2. def mfcc(y=None, sr=22050, S=None, n_mfcc=20, **kwargs):
  3. if S is None:
  4. S = logamplitude(melspectrogram(y=y, sr=sr, **kwargs))
  5. 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

 

 

 

 

 

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/325021
推荐阅读
相关标签
  

闽ICP备14008679号