使用或不使用频率缩放将梅尔谱图归一化为 (0, 255)

问题描述 投票:0回答:1

我正在将多个 log-mel 频谱图从 .wav 文件转换为图像。 我想破坏尽可能少的信息,因为我计划将生成的图像用于计算机视觉任务。 要将数据转换为图像格式,我目前使用简单的

sklearn.MinMaxScaler((0, 255))
。 为了适应这个定标器,我在我所有的频谱图上使用所有频率的最小和最大能量。

我应该用每个特定频率的最小和最大能量来缩放我的频谱图吗?

具有不同缩放特征的不同频率是否有意义?

python normalization scaling spectrogram frequency-analysis
1个回答
1
投票

频谱图很难用作计算机视觉算法的输入,特别是神经网络,因为它们具有倾斜的非正态分布特性。要解决这个问题,您应该:

  1. 标准化输入:使用简单的 log(1+c)(第一个选项)或 box-cox 变换(第二个选项)转换值,这应该扩展低值并压缩高值,使分布更符合高斯分布。
  2. 然后将转换后的值放入适合您的用例的区间。在 CNN 的情况下,MinMaxScaler 应该足够好,但将间隔更改为 [0, 1],即
    sklearn.MinMaxScaler((0, 1))
    。对于经典的计算机视觉,这可能是
    sklearn.MinMaxScaler((0, 255))

所以,

我应该用最小和最大能量来缩放我的频谱图吗? 每个特定频率?

是的,一旦标准化完成

不同的频率有不同的意义吗 缩放功能?

视情况而定。对于 CNN,您的输入数据需要保持一致才能获得良好的结果。对于经典的计算机视觉方法,可能是,取决于你想用它做什么

© www.soinside.com 2019 - 2024. All rights reserved.