Python 将数组转换为 Wav

Jam*_*lly 7 python arrays audio fft

在 Python 中,我有一个代表模拟信号电压的浮点数组。

谁能解释一下如何将数组更改为 .wav 格式?我已经看到了 在添加标头之前,我首先需要将数据格式从 [1.23,1.24,1.25,1.26] (例如)更改为 1.231.241.251.26,以便正确读取吗?我最终计划对这些值使用 FFT 来导出基频,在这种情况下是否有更好的方法来存储这些值?

谢谢

joj*_*jek 8

如果您知道信号和数据的采样频率已经适当缩放,那么您可以使用scipymax(abs(data))轻松完成:

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)
Run Code Online (Sandbox Code Playgroud)

您也可以使用标准波形模块。