计算 WAV 文件中的样本数
Calculating the number of samples in a WAV file
我目前正在查看在线示例,这里是一个以字节为单位的 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。样本总数怎么可能少于一秒的样本?
对于那些想知道的人,这里是 link 来源。
我怀疑他们只是在使用一个错误的例子,其中 wav 文件的持续时间不到一秒。他们的公式很有意义,我们可以用它来验证一秒wav文件的数据大小。
如果我们的采样率是22050samples/sec而我们的wav文件是一秒,那么numSamples = 22050。我们知道Subchunk2Size是数据中的字节数,可以用这个公式计算:Subchunk2Size = numSamples * numChannels * bitsPerSample / 8
,所以,假设 numChannels = 2 和 bitsPerSample = 16,我们知道一秒的 wav 文件应该是 (22050 * 2 * 16 / 8) bytes
即 88200 bytes
,所以如果 Subchunk2Size 是 2048 字节就有意义了,根据网站的示例,wav 文件的持续时间将小于一秒,因此 numSamples 将小于 22050.
我目前正在查看在线示例,这里是一个以字节为单位的 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。样本总数怎么可能少于一秒的样本?
对于那些想知道的人,这里是 link 来源。
我怀疑他们只是在使用一个错误的例子,其中 wav 文件的持续时间不到一秒。他们的公式很有意义,我们可以用它来验证一秒wav文件的数据大小。
如果我们的采样率是22050samples/sec而我们的wav文件是一秒,那么numSamples = 22050。我们知道Subchunk2Size是数据中的字节数,可以用这个公式计算:Subchunk2Size = numSamples * numChannels * bitsPerSample / 8
,所以,假设 numChannels = 2 和 bitsPerSample = 16,我们知道一秒的 wav 文件应该是 (22050 * 2 * 16 / 8) bytes
即 88200 bytes
,所以如果 Subchunk2Size 是 2048 字节就有意义了,根据网站的示例,wav 文件的持续时间将小于一秒,因此 numSamples 将小于 22050.