繁体   English   中英

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

[英]Read .wav file data for every 160 microseconds

如何从 .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 微秒内应该存在位计数,它是一个正自然数,不能是十进制值。

有人可以帮忙计算吗? 谢谢。

适合时间窗口的采样间隔数

N = length_of_time_window / length_of_sampling_interval =
   = length_of_time_window * sampling_frequency = 0.00016 s * 44100 = 7.056

显然,160 微秒的间隔不能被采样间隔整除,但是可以使用 7 个样本,对应 158 微秒。 由于每个样本要存储 2 个通道的数据,每个通道使用 2 个字节,因此字节数为

Bytes = N * channels * bytes_per_sample = 7 samples * 2 channel * 2 bytes_per_sample
      = 28 bytes

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM