Какие частоты соответствуют вторым индексам матрицы полученной в результате работы функции librosa.stft()

Я хочу определить слова в аудио сигнале временными интервалами, зная диапазон частот человеческого голоса и децибел.

Для начала сэмплирую звуковой сигнал c частотой дискретизации 22кГц, используя библиотеку librosa:

arr, sr = librosa.load('sa.wav', sr=22050)

Далее пользуюсь методом librosa.stft, чтобы рассмотреть оконное преобразование Фурье:

X = librosa.stft(arr, n_fft=512, hop_length=512)

Перевожу амплитуду децибелы:

Xdb = librosa.amplitude_to_db(abs(X))

Строю тепловую спектрограмму:

fig, ax = plt.subplots()
img = librosa.display.specshow(Xdb, x_axis='time', y_axis='log', sr=sr, ax=ax)
plt.colorbar(img, ax=ax, format="%+2.f dB")
plt.show()

введите сюда описание изображения

Видно, что можно работать с зависимостью частот, времени и децибел. Но как по индексам массива Xdb понимать каким частотам и временам соответствуют его значения (децибелы)?


Ответы (0 шт):