我想创建一个Numpy数组或数组,其中每个子数组的形状为[128,audio_length,1],因此我可以将这个np数组提供给Keras.fit。但是我似乎无法弄清楚如何做到这一点,因为np.array只是抛出无法播放错误
def prepare_data(df, config, data_dir, bands=128):
log_specgrams_2048 = []
for i, fname in enumerate(df.index):
file_path = data_dir + fname
data, _ = librosa.core.load(file_path, sr=config.sampling_rate, res_type="kaiser_fast")
melspec = librosa.feature.melspectrogram(data, sr=config.sampling_rate, n_mels=bands)
logspec = librosa.core.power_to_db(melspec) # shape would be [128, your_audio_length]
logspec = logspec[..., np.newaxis] # shape will be [128, your_audio_length, 1]
log_specgrams_2048.append(normalize_data(logspec))
return log_specgrams_2048
答案 0 :(得分:0)
您必须按长度对序列进行分组并多次调用Keras.fit。
你可以这样做: