WAV 通道数据值是如何缩放的?

How are WAV Channel Data values scaled?

对于一个项目,我正在解码 wav 文件并使用数据通道中的值。我正在使用节点包 "node-wav"。据我了解,这些值应该以千为单位,但我看到的值在 -1 和 1 之间缩放。如果我想要实际值,是否需要将缩放后的值乘以某个数字?

我问的部分原因是我仍然不完全理解 WAV 文件如何存储必要的数据。

我不完全知道 node.js 是怎样的,但通常音频数据以浮点值存储,因此看到它在 -1 和 1 之间缩放是有意义的。

我从网站上拉取的内容:

Data format

Data is always returned as Float32Arrays. While reading and writing 64-bit float WAV files is supported, data is truncated to 32-bit floats.

如果出于某种原因需要字节顺序:

Endianness

This module assumes a little endian CPU, which is true for pretty much every processor these days (in particular Intel and ARM).

如果您需要它从浮点数缩放到定点整数,您可以将该值乘以位数。例如,如果您尝试转换为 16 位整数; y = (2^15 - 1) * x,其中x为数据值,y为缩放后的值。