Форма librosa.feature.melspectrogram - PullRequest
0 голосов
/ 04 августа 2020

Я пытаюсь понять вывод librosa.feature.melspectrogram:

>>> import numpy as np
>>> from librosa.feature import melspectrogram
>>>
>>>
>>> melspectrogram(np.random.randn(128), n_mels=128).shape
(128, 1)
>>> melspectrogram(np.random.randn(900), n_mels=128).shape
(128, 2)
>>> melspectrogram(np.random.randn(500), n_mels=128).shape
(128, 1)
>>> melspectrogram(np.random.randn(512), n_mels=128).shape
(128, 2)
>>> melspectrogram(np.random.randn(511), n_mels=128).shape
(128, 1)
>>> melspectrogram(np.random.randn(1023), n_mels=128).shape
(128, 2)
>>> melspectrogram(np.random.randn(1024), n_mels=128).shape
(128, 3)
>>> melspectrogram(np.random.randn(2055), n_mels=128).shape
(128, 5)
>>> melspectrogram(np.random.randn(2047), n_mels=128).shape
(128, 4)

Что определяет второе значение его формы? Первый понятен, это n_mels, но из docs я не могу понять, откуда взялся второй.

1 Ответ

1 голос
/ 04 августа 2020

Это длина сигнала в кадрах (не в выборках), в зависимости от окна и длины прыжка. См. этот ответ .

Конкретно: 1 + len(y) // hop_length

...