librosa 不会规范化 [-1, 1] 之间的 wave 文件

librosa does not normalize wave file between [-1, 1]

在通过使用传递文件时:

librosa_audio, librosa_sample_rate = librosa.load(filename)

输出生成的音频文件如下:

Librosa audio file min~max range: -1.2105224 to 1.2942806

我正在处理的文件是从 https://www.boomlibrary.com/ 获得的,位深度为 24。我向下采样到 16,也向上采样到 32 以使用 librosa。这两个文件在通过 librosa 后产生了相同的最小-最大范围。

为什么会这样?
有没有办法将 wav 文件解析为 Librosa,使数据介于 [-1,1] 之间?

这里是 link 文件:

https://drive.google.com/drive/folders/12a0ii5i0ugyvdMMRX4MPfWMSN0arD0bn?usp=sharing

您观察到的行为直接源于 librosa load 默认情况下对 22050 Hz 的重采样:

librosa.core.load(path, sr=22050)

重采样过程总是会影响音频,因此您会看到未标准化的值。你必须自己做。

更有可能的是,您想以原始采样率读取音频,在这种情况下,您应该像这样将 None 传递给 sr

librosa.core.load(path, sr=None)

基于您提供的音频示例的示例:

In [4]: y, sr = librosa.load('201-AWCKARAK47Close0116BIT.wav', sr=None)
In [5]: y.max()
Out[5]: 0.9773865

In [6]: y.min()
Out[6]: -0.8358917