我目前正在查看在线示例,这里是一个以字节为单位的WAV文件内容
52 49 46 46 24 08 00 00 57 41 56 45 66 6d 74 20 10 00 00 00 01 00 02 00 22 56 00 00 88 58 01 00 04 00 10 00 64 61 74 61 00 08 00 00 00 00 00 00 24 17 1e f3 3c 13 3c 14 16 f9 18 f9 34 e7 23 a6 3c f2 24 f2 11 ce 1a 0d
这是视觉;表示:
因此根据Subchunk2Size,数据中有2048个字节。计算WAV中样本数的公式如下:
Subchunk2Size /(NumChannels * BitsPerSample/8 ) = NumSamples
如果我插入数字并根据给出的信息得到NumSamples = 512.但是在图中,采样率是22050.样本的总数如何小于一秒的样本?
答案 0 :(得分:2)
对于那些想知道的人,这里是来源的link。
我怀疑他们只是在使用一个不好的例子,其中wav文件的持续时间不到一秒钟。这不是一个令人满意的答案,也许您已经知道了,但是我仍然认为我会发布我的思考过程,以防其他人跨过该网站并遇到同样的问题。他们的公式很有意义,我们可以用它来验证一秒钟的wav文件的数据大小。
如果我们的采样率为22050个样本/秒,而wav文件为一秒,则numSamples =22050。我们知道Subchunk2Size是数据中的字节数,可以使用以下公式计算:Subchunk2Size = numSamples * numChannels * bitsPerSample / 8
,因此,假设numChannels = 2并且bitsPerSample = 16,我们知道一秒钟的wav文件应该是(22050 * 2 * 16 / 8) bytes
的{{1}},所以如果Subchunk2Size为2048字节(按照网站的示例,那么wav文件的持续时间将小于一秒,因此numSamples会小于22050。