Python中使用librosa包进行mfcc特征参数提取

Python中使用librosa包进行mfcc特征参数提取Python中有很多现成的包可以直接拿来使用,本篇博客主要介绍一下librosa包中mfcc特征函数的使用。1、电脑环境电脑环境:Windows10教育版Python:python3.62、需要了解的知识librosa包的介绍与安装见博主另一篇博客:https://blog.csdn.net/qq_39516859/article/details/80333431梅…

Python中有很多现成的包可以直接拿来使用,本篇博客主要介绍一下librosa包中mfcc特征函数的使用。

1、电脑环境

电脑环境:Windows 10 教育版

Python:python3.6

2、需要了解的知识

librosa包的介绍与安装见博主另一篇博客:
https://blog.csdn.net/qq_39516859/article/details/80333431
梅尔倒谱系数(mfcc)的介绍见博主另一篇博客:
https://blog.csdn.net/qq_39516859/article/details/80505981

3、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序列

4、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的梅尔倒谱系数。

librosa.feature.mfcc函数介绍GitHub:
http://librosa.github.io/librosa/generated/librosa.feature.mfcc.html#librosa.feature.mfcc
源码:http://librosa.github.io/librosa/_modules/librosa/feature/spectral.html#mfcc

今天的文章Python中使用librosa包进行mfcc特征参数提取分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/11247.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注