【问题标题】:How to compute "normalized" frequency from Mel Spectrogram?如何从 Mel Spectrogram 计算“归一化”频率?
【发布时间】:2018-09-05 15:17:50
【问题描述】:

我已经用 librosa 计算了 mel 频谱图:

self.Spectrogram = librosa.feature.melspectrogram(y=self.RawSignal, sr=self.sampling_frequency,
                                                      n_mels=128, fmax=8000)

由于n_mels=128,我需要以标准化比例 [0,127] 获得给定频率(例如 4400 Hz)的相应值。我已经看到 103 是 4400 Hz 的对应值,但我想要一个通用公式。 PS。这不是我要搜索的从 Hz 到 mels 的转换公式。

提前致谢

【问题讨论】:

    标签: python spectrogram librosa


    【解决方案1】:

    使用librosa.core.mel_frequencies 函数计算你的梅尔过滤器的中心点。确保传递与melspectrogram 相同的参数。获得中心点后,您可以通过查找最接近的值来找到特定频率属于哪个 bin。

    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

    【讨论】:

      猜你喜欢
      • 2021-11-21
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-19
      • 2021-02-20
      • 1970-01-01
      相关资源
      最近更新 更多