def get_mfccs_and_deltas(wav_pathname, n_mfcc=13, n_fft=2048, freq_min=100, freq_max=16000):
sample_array, sample_rate = librosa.load(wav_pathname, sr=44100)
if len(sample_array) == 0:
return []
else:
mfcc = librosa.feature.mfcc(sample_array, sample_rate, n_fft=n_fft, hop_length=n_fft, n_mfcc=n_mfcc, fmin=freq_min, fmax=freq_max)
delta = librosa.feature.delta(mfcc)
delta2 = librosa.feature.delta(mfcc, order=2)
mfcc = mfcc.T ### Transposing tables
delta = delta.T ## (We can instead set the axis above to do this without the extra step)
delta2 = delta2.T
mfcc_sans_0th = [frame_values[1:] for frame_values in mfcc]
all_features = []
for i in range(len(mfcc)):
all_features.append(list(mfcc_sans_0th[i]) + list(delta[i]) + list(delta2[i]))
return all_features
评论列表
文章目录