如何从WAV文件中获取一个字节的对应时间?

Posted

技术标签:

【中文标题】如何从WAV文件中获取一个字节的对应时间?【英文标题】:How to get the corresponding time of a byte from WAV file? 【发布时间】:2020-02-15 12:30:06 【问题描述】:

很抱歉,将这个概念放在问题标题中有点困难,也许有人可以帮忙,谢谢!

我能够看到“按字节”的波形观看 this video。

把整个WAV文件变成一个字节数组,现在我的问题是:

如何从字节数组的某个索引中得到对应的时间!?

比如b[3520]对应0.013s!?

我曾想过也许我可以将 WAV 文件的总时间跨度除以位数组的总长度,然后我就会知道每个字节占用多少时间。

但我对准确性的了解是粗略的,有没有更准确的方法来做这样的事情!?

非常感谢。

【问题讨论】:

【参考方案1】:

我会尝试使用 WaveFormat.BitsPerSample 和 WaveFormat.SampleRate。

例如。 BitsPerSample = 32 => 4bytes WaveFormat.SampleRate = 44100 => 4*44100bytes/sec 不知道这样会不会更准确。

【讨论】:

以上是关于如何从WAV文件中获取一个字节的对应时间?的主要内容,如果未能解决你的问题,请参考以下文章

Java - 确定要从波形文件中读取以获取时间戳的字节数

如何将声音字节转换为可以在变量中访问的 .wav 文件?

如何从 wav 文件中获取时域频率?

比较wav文件

如何查找 .wav 文件的数据(样本)大小?

将字节数组转换为 Wav 文件 [重复]