【问题标题】:Audio samples per second?每秒音频样本?
【发布时间】:2011-02-16 14:02:26
【问题描述】:

我想知道样本块与其时间当量之间的关系。到目前为止,鉴于我的粗略想法:

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

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

还有其他方法可以计算这个吗?例如,如何知道一个byte[1024]数组在时间上相当于多少?

【问题讨论】:

  • 您有关于音频格式的任何信息(采样频率、采样精度)吗?你的问题的答案可以直接从这些计算出来。
  • 我正在使用 .WAV 文件,采样率 44.1khz,16 位和单声道。

标签: audio sampling


【解决方案1】:

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

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

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

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

【讨论】:

  • 所有优点,但也可能需要处理压缩。
  • @Paul R:PCM 不涉及压缩,对于其他格式,此答案不适用 - 没有简单的转换,因为大多数格式甚至不使用恒定比特率(即大多数 WMA和 MP3)。
  • 是的,没错,但 OP 并没有说他正在处理 PCM 数据,因此发表了评论。
【解决方案2】:

除了@BrokenGlass 的非常好的答案,我将补充一点,对于具有固定采样率、通道数和每个采样位数的未压缩音频,算法相当简单。例如。对于“CD 质量”音频,我们有 44.1 kHz 的采样率,每个采样 16 位,2 个通道(立体声),因此数据速率为:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2013-11-17
    • 2016-01-10
    • 1970-01-01
    相关资源
    最近更新 更多