【问题标题】:How do I split Mel Spectrogram into sub-bands of different frequency ranges如何将 Mel Spectrogram 拆分为不同频率范围的子带
【发布时间】:2021-11-21 12:52:09
【问题描述】:

我对音频信号处理非常陌生,但是我有这个任务,但我遇到了困难。

我想要实现的是,假设我已经使用 Mel Spectrogram 对语音音频进行了特征提取,频率范围为 Mel 标度(300Hz、3400Hz)。 例如,我如何进一步将其拆分为 5 个不重叠的子带

频段 1:[300Hz,627Hz]

频段 2:[628Hz、1060Hz]

频段 3:[1061Hz, 1633Hz]

频段 4:[1634Hz, 2393Hz]

频段 5:[2394Hz,3400Hz]

我一直在尝试到处寻找实际实现的示例,但找不到。

如果有人能给我一些建议或指导我正确的方向,我将不胜感激。

【问题讨论】:

    标签: python signal-processing librosa audio-processing


    【解决方案1】:

    由于您的问题基于作业,因此此答案将提供您需要的工具(不是实际答案!)。

    假设您使用过 librosa 的 Mel Spectrogram,如下所示:
    https://librosa.org/doc/latest/generated/librosa.feature.melspectrogram.html

    然后,您将获得频谱图的二维 numpy 数组。
    对于上面的例子,使用S.shape 得到(128, 230)

    这意味着生成了 128 个mel-bands(频率分组)和 230 个时间分组。

    然后你需要做一些array slicing 来获得正确的乐队。示例:S[0:5] 获取所有时间步长的前五个波段。您需要进行数学运算才能查看哪些频段代表哪些频率。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 2013-11-09
      相关资源
      最近更新 更多