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

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

如果没有,我将不得不解释PCM二进制文件。 虽然我确信我可以很容易地挖掘PCM规格,并且原始格式很容易走路,但我从来没有在Python中处理过二进制数据。 有没有解释如何做到这一点的好资源? 具体与音频有关将只是结冰。


我读了这个问题和答案,我觉得我一定会错过一些完全明显的东西,因为没有人提到以下两个模块:

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

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

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


    我只用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),但取决于您如何阅读它,您可能不需要。

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


    你的解决方案是纯粹的Python真的很重要,还是你会接受可以在各种平台上使用本地音频库的东西(所以它是有效的跨平台的)? http://wiki.python.org/moin/PythonInMusic有几个后者的例子

    链接地址: http://www.djcxy.com/p/33815.html

    上一篇: How to edit raw PCM audio data without an audio library?

    下一篇: How do I return the response from an asynchronous call?