如何在没有音频库的情况下编辑原始PCM音频数据?

Sov*_*iut 8 python audio binary wav

我有兴趣精确提取PCM WAV文件的部分,直到样本级别.大多数音频模块似乎都依赖于特定于平台的音频库.我想制作这个跨平台,速度不是问题,是否有任何本机python音频模块可以做到这一点?

如果没有,我将不得不解释PCM二进制文件.虽然我相信我可以相当容易地挖掘PCM规范,并且原始格式很容易走路,但我以前从未真正处理过Python中的二进制数据.是否有任何好的资源可以解释如何做到这一点?特别是与音频有关的只是结冰.

tzo*_*zot 6

我读了问题和答案,我觉得我必须遗漏一些完全明显的东西,因为没有人提到以下两个模块:

  • audioop:操纵原始音频数据
  • wave:读写WAV文件

也许我来自一个平行的宇宙,而Guido的时间机器实际上是一个时空机器:)

如果您需要示例代码,请随时提问.

PS假设48kHz采样率,24/1.001 = 23.976023976 ... fps的视频帧是2002年的音频样本长度,并且在25fps时它是1920个音频样本长.


小智 5

我只用C++和Java编写了一个PCM阅读器,但格式本身相当简单.可以在这里找到一个不错的描述:http://ccrma.stanford.edu/courses/422/projects/WaveFormat/

过去你应该能够阅读它(二进制文件阅读,http://www.johnny-lin.com/cdat_tips/tips_fileio/bin_array.html)并处理结果数组.您可能需要使用一些位移来使对齐正确(https://docs.python.org/reference/expressions.html#shifting-operations),但根据您的阅读方式,您可能不需要.

所有这些都说,我仍然倾向于大卫的方法.