当我将 .wav 文件中的数据存储到字节数组中时,这些值意味着什么?
我读到它们采用两字节表示形式,但是这些两字节值中到底包含什么?
您可能听说过,音频信号是由某种波表示的。如果您曾经见过带有上下直线的波形图 - 这基本上就是这些文件中的内容。看看这个文件图片http://en.wikipedia.org/wiki/Sampling_rate http://en.wikipedia.org/wiki/Sampling_rate
您会看到音频波(灰线)。该波的当前值被重复测量并以数字形式给出。这就是这些字节中的数字。可以通过此调整两个不同的内容:每秒进行的测量次数(即采样率,以 Hz 为单位,即每秒获取的次数)。另一个调整是测量的精确程度。在 2 字节的情况下,一次测量需要两个字节(通常是 -32768 到 32767 之间的值)。因此,利用那里给出的这些数字,您可以重新创建原始波形(当然,质量有限,但在以数字方式存储内容时总是如此)。重新创建原始波形是扬声器在播放时尝试执行的操作。
还有一些事情您需要了解。首先,由于它是两个字节,因此您需要知道字节顺序(大端、小端)才能正确重新创建数字。其次,您需要知道您有多少个频道以及它们是如何存储的。通常您会有单声道(一个通道)或立体声(两个),但也可以有更多。如果您有多个频道,您需要知道它们是如何存储的。通常您会将它们交错排列,这意味着您会在每个时间点为每个通道获得一个值,然后为下一个时间点获得所有值。
举例来说:如果您有两个通道的 8 字节数据和 16 位数字:
abcdefgh
Here a
and b
将组成第一个 16 位数字,即通道 1 的第一个值,c
and d
将是通道 2 的第一个数字。e
and f
是通道 1 的第二个值,g
and h
通道 2 的第二个值。您不会听到太多,因为这不会接近一秒的数据......
如果将您拥有的所有信息放在一起,您可以计算出您拥有的比特率,即记录器每秒生成多少比特信息。在我们的示例中,您为每个样本的每个通道生成 2 个字节。如果有两个通道,则为 4 个字节。每秒大约需要 44000 个样本来表示人类通常可以听到的声音。所以你最终会得到每秒 176000 字节,即每秒 1408000 位。
当然,它不是 2 位值,而是两个 2 字节值,否则质量会很差。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)