每160微秒读取一次.wav文件数据

时间:2019-05-13 18:53:19

标签: java audio io wav sampling

如何从.wav文件中提取与确定的时间间隔相对应的数据?

我已经得到了几个.wav文件,并要求分隔标题和数据。从获得的数据中,应将与每160微秒相对应的样本分开并复制到缓冲区中。

我现在分离了标题并获得了以下信息:

Channels: 2, 
Frames: 632956
Sample Rate: 44100, 
Block Align: 4
Valid Bits: 16, 
Bytes per sample: 2

对于分离与每160微秒相对应的样本,我无法计算。我尝试了以下方法:

Total bits per 160-microsecond = ((sampling_rate * bit depth) / (time))
 = ((44100 * 16) / (160 * 1000000)) = 0.00441 bits.

我确信上面的计算有误,因为每秒有44100个样本,因此在160微秒内应该存在位数,该位数是一个正自然数,不能是十进制值。

有人可以帮助进行此计算吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

如果采样率为44.1kHz,则意味着样本之间存在1/44100的间隙或约22.675uSec。
160uSec帧大约有7个样本(160 / 22.675 = 7.05),因此您必须读取7个样本。
请记住,您的文件包含2个通道,深度为2个字节,因此在160uSec帧内,您有28个字节-每个通道14个字节。