我正在编写一个包含读取和写入波形文件的音频库,我理解三种可能的波形文件格式之间的差异,但是在处理单声道或立体声PCM数据时,不清楚何时使用可扩展格式。我一直在使用this作为我的主要参考,它清除了何时使用可扩展格式的明显情况。但是,链接提到如果PCM数据大于16位,则应使用可扩展格式,但是当我尝试使用Audacity导出24或32位音频时,他们没有使用可扩展格式。
我在规范中没有发现任何提及在这种情况下应该优先考虑可扩展格式,或者所有文件都应该使用可扩展格式。现代图书馆是否会支持旧格式?我是否应该简化文件写入以便在所有情况下使用可扩展格式?
更新
我从Microsoft找到了关于格式块的this resource。根据我的理解,PCM数据可以使用可扩展格式或18字节格式,但较旧的16字节格式已过时。有谁知道你是否可以在Windows机器上播放带有16字节标题的WAVE PCM文件?带有16字节标头的24位PCM怎么样?这是我在网上找到的另一个边缘案例。我没有Windows映像,所以我自己无法检查。
答案 0 :(得分:1)
您可以使用正常的wav格式指定24位或32位 - 如Audacity所示。可扩展格式更适用于处理多个(超过2个)通道。根据我的经验,WAV格式比可扩展版本支持得更广泛。鉴于你正在处理单声道和立体声,我建议你坚持使用WAV。
答案 1 :(得分:0)
它是在MSDN上移动或移动,现在是trace remained is:
根据MSDN文档"任何超过2的PCM格式 通道,每个样本超过16位,或超过44,100个样本 每秒必须由
描述WAVEFORMATEXTENSIBLE
"
答案 2 :(得分:0)
我会使用16位PCM,然后将采样率更改为48000 Hz,小端和2声道立体声以获得最清晰的结果,因为大多数CD为44100 Hz,更改为48000 Hz可能有用用于消费者质量音频(商业音频)以外的其他目的的更高质量。这将是最干净的选择。
答案 3 :(得分:0)
根据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."