我最近在做关于 MFCC 的作业,我无法弄清楚使用这些库之间的一些区别。
我使用的 3 个库是:
samplerate = 16000
NFFT = 512
NCEPT = 13
Run Code Online (Sandbox Code Playgroud)
第 1 部分:梅尔滤波器组
temp1_fb = pyspeech.get_filterbanks(nfilt=NFILT, nfft=NFFT, samplerate=sample1)
# speechpy do not divide 2 and add 1 when initializing
temp2_fb = speechpy.feature.filterbanks(num_filter=NFILT, fftpoints=NFFT, sampling_freq=sample1)
temp3_fb = librosa.filters.mel(sr=sample1, n_fft=NFFT, n_mels=NFILT)
# fix librosa normalized version
temp3_fb /= np.max(temp3_fb, axis=-1)[:, None]
Run Code Online (Sandbox Code Playgroud)
只有speechpy中的形状会得到(, 512),其他的都是(, 257)。librosa的形象有点变形。
第二部分:MFCC
# pyspeech without lifter. Using hamming
temp1_mfcc = pyspeech.mfcc(speaker1, samplerate=sample1, winlen=0.025, winstep=0.01, numcep=NCEPT, nfilt=NFILT, nfft=NFFT,
preemph=0.97, ceplifter=0, winfunc=np.hamming, …Run Code Online (Sandbox Code Playgroud)