哪种音频文件格式最容易操作?
Posted
技术标签:
【中文标题】哪种音频文件格式最容易操作?【英文标题】:Which audio file format is easiest to manipulate? 【发布时间】:2011-02-08 17:08:55 【问题描述】:你好漂亮的电脑人士,
对于question I had earlier concerning accessing the samples in an audio file,我现在意识到核心音频格式可能不是要走的路。
特别是因为on page 15 of the spec 它提到了使用 C 是一种“符号方便”,即你不能只用一些 c 函数打开它,然后用它做你想做的事。
也就是说,如果我想打开一个音频文件,然后在其上运行一些 C、C++ 或 Objective-C 代码来播放样本值,那么哪种格式最适合:WAV?国际电影节?其他的?
请记住,我希望它能够在 ios 上运行。
谢谢!
【问题讨论】:
请注意,带有未压缩 LinearPCM 的 CAF 文件(如规范的表 2-2 所示)实际上与未压缩的 WAV 相同,并且应该同样易于编辑。 @AShelly。有趣的。我能否获得您对关于演示文稿“符号方便”的评论的意见(框的第 15 页。在规范中)。很高兴听到你的想法:) 我相信这是说您不能直接将文件二进制读取到文档描述的结构中。有诸如填充和可变大小字段之类的东西,需要解析文件。我的观点是,一旦你得到任何一种格式的 DATA 块,你所拥有的是原始 PCM,这是最容易编辑的格式。 【参考方案1】:未压缩的 WAV 文件。它们由标题和原始样本组成。
【讨论】:
【参考方案2】:我曾经通过 C++ 操作 WAV,这很容易。 我使用这个规范来编写我的代码:https://ccrma.stanford.edu/courses/422/projects/WaveFormat/ 有了这个文档和对数字音频的一点了解,您就可以轻松地操作 WAV 文件。
【讨论】:
【参考方案3】:未压缩的 WAV 是音频编辑的事实标准。您可以使用各种库来轻松操作它们。如果您只是想要完整的原始样本,甚至没有 WAV 标头与 PCM 一起使用,但是您必须提前知道您的采样率、频率等,因为您不会拥有通常在 WAV 标头中的所有信息是未压缩的样本。
【讨论】:
我的频率、采样率等永远不会改变,所以是的,我只需要原始样本。您能否具体说明“使用 PCM”是什么意思? PCM(脉冲编码调制)是一种原始的未压缩音频格式...诸如 Adobe Audition 和其他音频编辑、采样、母带处理等程序将识别 PCM 文件扩展名。具体来说,我以前在电信中使用文本到语音合成时使用了 PCM。基本上它是一个没有标题的 WAV 文件。【参考方案4】:最简单的未压缩 WAV 文件格式只有一个 44 字节的标头(它告诉您采样率、每个采样的位数以及数据是立体声对还是单声道),然后是原始 PCM 数组(通常) 短整数。
在 little-endian CPU(例如 Intel 或大多数 ARM)上,您可以将此文件格式直接映射到 16 位 short 的 C 数组中,并使用与标头适当的偏移量对其进行索引。
【讨论】:
【参考方案5】:未压缩的 WAV 将是最容易处理的,因为您不必在操作之前对它们进行解码,因此您可能希望从它开始,直到您确定您的操作例程/代码。
但是,除非您计划只制作一些现场效果或相当大的结果捆绑包,否则从长远来看,使用 IMA ADPCM 之类的东西可能会更好。解码算法已经存在(请查看 http://wiki.multimedia.cx/index.php?title=IMA_ADPCM 了解更多信息),实现起来相对简单,它可以让您在产品中加入更多声音。
【讨论】:
以上是关于哪种音频文件格式最容易操作?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone 和 Android 可以录制和播放哪种音频格式?