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
为缩放后的值。
对于一个项目,我正在解码 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
为缩放后的值。