Python 如何计算;“标准化”;Mel频谱图的频率?

Python 如何计算;“标准化”;Mel频谱图的频率?,python,spectrogram,librosa,Python,Spectrogram,Librosa,我用librosa计算了mel光谱图,如下所示: self.Spectrogram = librosa.feature.melspectrogram(y=self.RawSignal, sr=self.sampling_frequency, n_mels=128, fmax=8000) 由于n_mels=128,我需要在标准化刻度[0127]中获得给定频率(比如4400 Hz)的对应值。

我用librosa计算了mel光谱图,如下所示:

self.Spectrogram = librosa.feature.melspectrogram(y=self.RawSignal, sr=self.sampling_frequency,
                                                      n_mels=128, fmax=8000)
由于
n_mels=128
,我需要在标准化刻度[0127]中获得给定频率(比如4400 Hz)的对应值。我已经看到103是4400 Hz的对应值,但我想要一个通用公式。 PS.这不是我要寻找的从Hz到mels的转换公式

提前感谢

使用该函数计算mel过滤器的中心点。确保传递的参数与光谱图相同。一旦有了中心点,就可以通过查找最接近的值来找到特定频率所属的箱子

import numpy
import librosa

find = 4400 
freqs = librosa.core.mel_frequencies(fmin=0.0, fmax=8000, n_mels=128)
bin = numpy.argmin(abs(freqs - find))

print(bin)
103