1

我正在尝试使用 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()

4

0 回答 0