每秒音频样本?

use*_*792 8 audio sampling

我想知道样本块与其等效时间之间的关系.鉴于我目前的粗略想法:

每秒播放的样本数=总文件大小/持续时间.

所以说,我有一个1.02MB的文件,持续时间为12秒(平均),我将每秒播放大约89,300个样本.这是正确的吗?

还有其他方法可以计算这个吗?例如,我怎么知道一个字节[1024]数组与时间相当多少?

Bro*_*ass 19

一般来说,对于PCM样本,您可以将总长度(以字节为单位)除以持续时间(以秒为单位)以获得每秒的字节数(对于WAV文件,将会有一些不准确的情况来考虑标题).这些如何转化为样本取决于

  1. 采样率
  2. 每个样本使用的比特,即通常使用的比特是16比特= 2个字节
  3. 通道数,即立体声,这是2

如果你知道2)和3)你可以确定1)

在你的例子89300字节/秒,假设立体声和每个样本16位将是89300/4~ = 22Khz采样率

  • @Paul R:PCM没有涉及压缩,对于其他格式,这个答案不适用 - 没有简单的转换,因为大多数格式甚至不使用恒定比特率(即大多数WMA和MP3). (5认同)
  • 所有的优点,但可能还有压缩要处理。 (2认同)

Pau*_*l R 16

除了@ BrokenGlass的非常好的答案之外,我只想添加固定采样率,通道数和每个采样位数的未压缩音频,算法相当简单.例如,对于"CD质量"音频,我们的采样率为44.1 kHz,每个采样16位,2个通道(立体声),因此数据速率为:

  44100 * 16 * 2
= 1,411,200 bits / sec
= 176,400 bytes / sec
= 10 MB / minute (approx)
Run Code Online (Sandbox Code Playgroud)