1

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

4

1 回答 1

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,来转换它。)

于 2013-05-13T20:30:15.760 回答