如何以无头PCM格式编写文件?

时间:2013-05-13 20:23:13

标签: python audio pcm

如何以无头PCM格式编写文件?源数据是一个numpy数组,我有一个应用程序期望无头PCM文件中的数据,但我找不到文件格式的任何文档?它与波形文件中的数据块基本相同吗?

1 个答案:

答案 0 :(得分:3)

问题在于没有一种“无头PCM”格式。例如,8位单声道22K和小端16位立体声48K都是PCM的完美例子,“无头”的全部要点是你需要通过一些带外信道知道这些信息。

但是,假设你有预期的格式,它听起来很简单。

for sample in samples:
    for channel in channels:
        f.write(the_bytes_in_the_right_endianness)

如果您已经获得该格式的数据,只需将其作为一个大块写入文件。

WAV文件的“默认”编解码器 - 也是Python的wave模块支持的唯一编解码器 - 是PCM。所以,是的,如果你有一个你想要的相同格式的WAV文件,你可以将它的原始帧数据复制到无头文件,你有一个无头PCM文件。 (如果你的格式错误wav,你通常可以使用简单的转换,或者最糟糕的是audioop以外的转换。)