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

Python 如何在没有音频库的情况下编辑原始PCM音频数据?,python,audio,binary,wav,Python,Audio,Binary,Wav,我感兴趣的是精确地提取PCM WAV文件的各个部分,直到样本级别。大多数音频模块似乎依赖于特定于平台的音频库。我想让这个跨平台和速度不是问题,有没有本地python音频模块可以做到这一点 如果没有,我将不得不解释PCM二进制文件。虽然我确信我可以相当容易地挖掘出PCM规范,而且原始格式很容易理解,但我以前从未在Python中实际处理过二进制数据。有没有好的资源来解释如何做到这一点?专门与音频相关只是锦上添花。您的解决方案是纯Python真的很重要,还是您会接受可以在各种平台上使用本机音频库的东西

我感兴趣的是精确地提取PCM WAV文件的各个部分,直到样本级别。大多数音频模块似乎依赖于特定于平台的音频库。我想让这个跨平台和速度不是问题,有没有本地python音频模块可以做到这一点


如果没有,我将不得不解释PCM二进制文件。虽然我确信我可以相当容易地挖掘出PCM规范,而且原始格式很容易理解,但我以前从未在Python中实际处理过二进制数据。有没有好的资源来解释如何做到这一点?专门与音频相关只是锦上添花。

您的解决方案是纯Python真的很重要,还是您会接受可以在各种平台上使用本机音频库的东西(因此它实际上是跨平台的)?后面的例子有好几个,

似乎是open(…,“rb”)的组合,关于(可能更好的参考)的一些细节将起到作用


<> P> >好奇,你打算用原始的样本数据做什么?

< P>我只在C++和java中编写了一个PCM阅读器,但是格式本身相当简单。可以在此处找到适当的描述:

过去,您应该能够在(二进制文件读取,)中读取它,并只处理生成的数组。您可能需要使用一些位移位来获得正确的对齐方式(),但根据您的读入方式,您可能不需要这样做


尽管如此,我还是倾向于大卫的方法。

我阅读了问题和答案,我觉得我肯定遗漏了一些非常明显的东西,因为没有人提到以下两个模块:

  • :操纵原始音频数据
  • :读取和写入WAV文件
也许我来自一个平行宇宙,而Guido的时间机器实际上是一个时空机器:)

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


PS假设采样率为48kHz,24/1.001==23.976023976…fps的视频帧长度为2002个音频采样,25 fps的视频帧长度为1920个音频采样。

我正在查找此项,发现: 它需要Numpy(如果要绘制它,还需要matplotlib)


查看原始作者的网站了解更多详细信息。

这在python中应该是非常有趣的。如果你必须自己做的话,你应该在博客上写下。我需要把一个长长的波浪切成几段,对应于一系列的输入和输出点。它必须是准确的,以便它可以精确匹配视频在任何帧速率。大多数库的精度仅为1/10秒,同时,即使我们的最低帧速率也从12 fps开始。我更希望有44000秒的准确度。我认为RTFMing是一门失传已久的艺术。哇,我不确定我怎么会错过它,但我猜它只是被所有的音频库包装所掩盖。希望这是跨平台的,并且足够准确,但看起来确实如此。
import numpy
data = numpy.memmap("test.pcm", dtype='h', mode='r')
print "VALUES:",data