解释WAV数据

发布于 2021-01-29 17:23:18

我正在尝试编写一个程序来显示PCM数据。我一直很沮丧地试图找到具有正确抽象级别的库,但是我已经找到了python
wave库并一直在使用它。但是,我不确定如何解释数据。

wave.getparams函数返回(2个通道,2个字节,44100
Hz,96333帧,无压缩,无压缩)。这一切似乎都很高兴,但是后来我尝试打印一个帧:’\ xc0 \ xff \ xd0 \
xff’,这是4个字节。我想一帧可能是2个样本,但是歧义并没有到此为止。

96333帧 2个样本/帧(1 / 44.1k秒/样本)= 4.3688秒

但是,iTunes报告的时间接近2秒,并且基于文件大小和比特率的计算大约为2.7秒。这里发生了什么?

另外,我如何知道字节是带符号的还是无符号的?

非常感谢!

关注者
0
被浏览
26
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    “两个声道”表示立体声,因此对每个声道的持续时间 求和 是没有意义的-
    因此您的距离减少了两倍(2.18秒,而不是4.37秒)。至于符号性,例如解释在这里,我引用:

    8位样本存储为0到255之间的无符号字节。16位样本存储为2的补码有符号整数,范围从-32768到32767。

    这是WAV格式(实际上是其超集RIFF)规范的一部分,因此不依赖于您用于处理WAV文件的库。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看