如何以无头PCM格式编写文件?源数据是一个numpy数组,我有一个应用程序期望无头PCM文件中的数据,但我找不到文件格式的任何文档?它与波形文件中的数据块基本相同吗?
答案 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
以外的转换。)