2

我正在编写一个包含读取和写入波形文件的音频库,并且我了解三种可能的波形文件格式之间的区别,但是在处理单声道或立体声 PCM 数据时,不清楚何时使用可扩展格式。我一直使用作为我的主要参考,它清除了何时使用可扩展格式的明显案例。但是,该链接提到,如果 PCM 数据大于 16 位,则应使用可扩展格式,但是当我尝试使用 Audacity 导出 24 位或 32 位音频时,他们没有使用可扩展格式。

我没有在规范中找到任何提及在这种情况下应该优先使用可扩展格式,或者是否所有文件都应该使用可扩展格式。现代图书馆甚至会支持旧格式吗?我应该在所有情况下使用可扩展格式简化文件写入吗?

更新:

我从 Microsoft 找到了有关格式块的资源。据我了解,PCM 数据可以使用可扩展格式或 18 字节格式,但旧的 16 字节格式已过时。有谁知道您是否可以在 Windows 机器上播放带有 16 字节标头的 WAVE PCM 文件?带有 16 字节标头的 24 位 PCM 怎么样?这是我在网上找到的另一个极端案例。我没有 Windows 映像,所以我无法自己检查。

4

4 回答 4

1

它在 MSDN 上,但移动或消失了,现在留下的痕迹是

根据 MSDN 文档“任何具有 2 个以上通道、每个样本超过 16 位或每秒超过 44,100 个样本的 PCM 格式必须由WAVEFORMATEXTENSIBLE

于 2015-07-31T06:50:22.630 回答
1

根据http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html

 "The WAVE_FORMAT_EXTENSIBLE format should be used whenever:
    1) PCM data has more than 16 bits/sample.
    2) The number of channels is more than 2.
    3) The actual number of bits/sample is not equal to the container size.
    4) The mapping from channels to speakers needs to be specified."
于 2018-12-18T19:39:17.000 回答
0

我会使用 16 位 PCM,然后将采样率更改为 48000 Hz、little-endian 和 2 声道立体声以获得最干净的结果,因为大多数 CD 是 44100 Hz,更改为 48000 Hz 可能对更高的质量有用消费质量音频(商业音频)以外的用途。这将是最干净的选择。

于 2015-07-31T18:05:50.810 回答
0

您可以在正常 wav 格式中指定 24 位或 32 位 - 如 Audacity 所示。可扩展格式更适合处理多个(超过 2 个)通道。以我的经验,WAV 格式比可扩展版本得到更广泛的支持。鉴于您正在处理单声道和立体声,我建议您坚持使用 WAV。

于 2015-07-31T06:31:33.403 回答