def plot_spectrum(sound_files, sound_names):
"""plot log power spectrum"""
i = 1
fig = plt.figure(figsize=(20, 64))
#这个代码会报错 AttributeError: module 'librosa' has no attribute 'logamplitude' 可能是因为librosa这个库已经不包含logamplitude()这个函数
#因为查看了关于这个函数的信息是很早之前的,个人采用其他的函数处理,画频普图
"""
#这个可以
"""
for f, n in zip(sound_files, sound_names):
y, sr = librosa.load(os.path.join('F:/data/esc10/audio/', f))
plt.subplot(10, 1, i)
mfccs = librosa.feature.mfcc(y=y, sr=sr,n_mfcc=24)
librosa.display.specshow(mfccs, sr=sr, y_axis='log')
plt.title(n + ' - ' + 'Spectrum')
i += 1
"""
#这个也可以
for f, n in zip(sound_files, sound_names):
y, sr = librosa.load(os.path.join('F:/data/esc10/audio/', f))
plt.subplot(10, 1, i)
melspec=librosa.feature.melspectrogram(y,sr,n_fft=1024,hop_length=512,n_mels=128)
logmelspec=librosa.power_to_db(melspec)
librosa.display.specshow(logmelspec,sr=sr,x_axis='time',y_axis='mel')
plt.title(n + ' - ' + 'Spectrum')
i += 1
plt.tight_layout(pad=10)
plt.show()