def extract_feature(file_name, mfcc, chroma, mel):
with soundfile.SoundFile(file_name) as sound_file:
X = sound_file.read(dtype="float32")
sample_rate=sound_file.samplerate
if chroma:
stft=np.abs(librosa.stft(X))
result=np.array([])
if mfcc:
mfccs=np.mean(librosa.feature.mfcc(y=X, sr=sample_rate, n_mfcc=40).T, axis=0)
result=np.hstack((result, mfccs))
if chroma:
chroma=np.mean(librosa.feature.chroma_stft(S=stft, sr=sample_rate).T,axis=0)
result=np.hstack((result, chroma))
如果是梅尔: mel = np.mean(librosa.feature.melspectrogram(X,sr = sample_rate).T,axis = 0) result = np.hstack((结果,梅尔)) 返回结果
运行代码时出现错误
NameError Traceback (most recent call last)
<ipython-input-5-6da3ea2e19b7> in <module>()
20 chroma=np.mean(librosa.feature.chroma_stft(S=stft, sr=sample_rate).T,axis=0)
21 result=np.hstack((result, chroma))
---> 22 if mel:
23 mel=np.mean(librosa.feature.melspectrogram(X, sr=sample_rate).T,axis=0)
24 result=np.hstack((result, mel))
NameError: name 'mel' is not defined