我正在尝试使用 Librosa 从音频文件中提取特征,以作为 Numpy 数组馈送到 CNN。
目前,我一次保存一个特征以输入 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 对象,我可以将其输入 Keras 中的 CNN。
我应该如何编码?
编辑:
想我想通了,使用 np.vstack()