【发布时间】:2020-06-04 03:38:05
【问题描述】:
我正在学习使用图像的 fastai 音频分类教程1。 URBANSOUND 数据集的图像大小为 230x224,长度为 4 秒。我正在使用长度为 10 秒的 DCASE 音频数据集。那么,librosa中如何根据音频的长度来决定图片的大小呢?
以下是谱图生成的代码。
def create_fold_spectrograms(fold):
spectrogram_path = Path('spectrogram/')
audio_path = Path('audio/')
print(f'Processing fold {fold}')
os.mkdir(spectrogram_path/fold)
for audio_file in list(Path(audio_path/f'{fold}').glob('*.wav')):
samples, sample_rate = librosa.load(audio_file)
fig = plt.figure(figsize=[0.72,0.72])
ax = fig.add_subplot(111)
ax.axes.get_xaxis().set_visible(False)
ax.axes.get_yaxis().set_visible(False)
ax.set_frame_on(False)
filename = spectrogram_path/fold/Path(audio_file).name.replace('.wav','.png')
filename = (str(filename))
S = librosa.feature.melspectrogram(y=samples, sr=sample_rate)
librosa.display.specshow(librosa.power_to_db(S, ref=np.max))
plt.savefig(filename, dpi=400, bbox_inches='tight',pad_inches=0)
plt.close('all')
【问题讨论】: