在Python中,我有一个由浮点数组成的数组,表示模拟信号的电压。请问如何将该数组转换为.wav格式?我看到了this。我需要先将数据格式从[1.23,1.24,1.25,1.26](例如)更改为1.231.241.251.26,然后再添加标头以便正确读取吗?最终,我计划对这些值使用FFT来推导基本频率,如果这种情况下有更好的方法来存储这些值吗?谢谢。
如果你知道信号的采样频率,并且数据已经通过max(abs(data))适当缩放,则可以使用scipy轻松完成:from __future__ import print_function import scipy.io.wavfile as wavf import numpy as np if __name__ == "__main__": samples = np.random.randn(44100) fs = 44100 out_f = 'out.wav' wavf.write(out_f, fs, samples) 你也可以使用标准的wave模块。
wave
模块的文档在描述writeframes
期望数据方面相当不足。 - Mark Ransom