我正在尝试使用Librosa从音频文件中提取功能,以CNN作为Numpy数组提供。
目前,我一次保存一个功能,以便输入CNN。我使用Librosa
在Python中保存了二维(单通道)对数缩放的mel谱图功能:
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)
形状。
现在我想把这两个功能层“堆叠”成一个多通道numpy对象,我可以将其输入到Keras的CNN。
我该怎么编码?
修改
想想我用np.vstack()
搞清楚了