不得不说,这个librosa函数包真好用,已经包装的这么便捷了,但是如果想要修改一下参数,还是需要了解一下它的函数定义的。
VOICE_LEN=32000
#获得N_FFT的长度
print("sr:" , sr)
N_FFT=getNearestLen(0.25,sr)
print("N_FFT:" , N_FFT)
#统一声音范围为前两秒
y=normalizeVoiceLen(y,VOICE_LEN)
print("y.shape:" , y.shape)
#提取mfcc特征
mfcc_data=librosa.feature.mfcc(y=y, sr=sr,S=None, n_mfcc=20, dct_type=2, norm='ortho',n_fft=N_FFT,hop_length=int(N_FFT/4))
librosa.feature.mfcc参数介绍
其中
y:语音数据
sr:y的采样率
n_mfcc:要返回的MFCC数量
n_fft:返回的mfcc数据维数,默认为13维
hop_length:帧移
S:np.ndarray,对数功能梅尔谱图
dct_type:None, or {1, 2, 3} 离散余弦变换(DCT)类型。默认情况下,使用DCT类型2。
norm: None or ‘ortho’ 规范。如果dct_type为2或3,则设置norm =’ortho’使用正交DCT基础。 标准化不支持dct_type = 1。
返回: M:np.ndarray [shape=(n_mfcc, t)]
一个介绍的很详细的语音处理函数以及其参数的博客
https://www.cnblogs.com/LXP-Never/p/11561355.html
它里面的参数没有很强的耦合性,可以灵活设置,自动补齐机制很强。
很多神经元都采用textcnn来处理语音信号。
更多参考
https://blog.csdn.net/qq_45239614/article/details/105990776
https://www.zhihu.com/question/342790663
https://www.jb51.net/article/154288.htm
http://librosa.org/doc/latest/generated/librosa.feature.mfcc.html
https://wenku.baidu.com/view/f652dfb6d9ef5ef7ba0d4a7302768e9951e76e97.html