我是一名音频开发人员,想从 python 读取和写入 32 位浮点音频文件以进行测试。经过几个小时的放屁,我设法意识到我遇到的问题仅限于浮点格式。我可以从 numpy 数组中成功写入 16 位定点文件(即使 aifc 文档中没有示例)。
我还看到了其他几个库 PySoundFile 和 Audiolab,尽管它们要么真的很旧而且/或者没有正确安装。
在 python 中完成这项工作的正确方法是什么?关于用 python 编写声音文件的主题,谷歌搜索结果令人震惊。
以下代码不起作用,但基于非常相似的代码,适用于 16 位定点数据。
def write_test_float_aiff(data):
f = aifc.open('test.aiff', 'w')
f.setframerate(44100)
f.setnchannels(1)
f.setsampwidth(4)
f.writeframes(data)
f.close()
r = np.arange(0,1000,.1)
s = np.sin(r)
write_test_float_aiff(s.byteswap().tostring())