Я пытаюсь извлечь объекты из аудиофайлов с помощью Librosa, чтобы передать их на CNN в виде массивов Numpy.
В настоящее время я сохраняю по одной функции за раз для подачи в CNN.Я сохраняю в Python двумерные (одноканальные) лог-функции мел-спектрограммы, используя Librosa
:
def build_features():
y, sr = librosa.load("audio.wav")
mel = librosa.feature.melspectrogram(
n_fft=4096,
n_mels=128, #Mel-bins
hop_length=2048,
)
logamplitude = librosa.amplitude_to_db
logspec = logamplitude(mel, ref=1.0)[np.newaxis, :, :, np.newaxis]
Это дает форму (1,128,323,1)
.
Я бы хотелдобавить еще одну функцию, скажем, tempogram
.Я могу сделать это, используя тот же код, но заменив melspectrogram на tempogram ' и установив длину окна на 128
.
Это дает мне tempogram
форма (1,128,323,1)
.
Теперь я хотел бы "сложить" эти 2 слоя объектов в многоканальный объект numpy, который я могу передать в CNN в Керасе.
Как мне это написать?
РЕДАКТИРОВАТЬ:
Думаю, я понял это, используя np.vstack ()