2015-10-19 148 views
0

在Python中,我有一個表示模擬信號電壓的浮點數組。Python將數組轉換爲Wav

任何人都可以解釋我可以如何將數組更改爲.wav格式?我見過this 在添加標題之前,我是否首先需要將數據格式從[1.23,1.24,1.25,1.26](例如)更改爲1.231.241.251.26,以便正確讀取它? 我最終計劃使用FFT來導出基本頻率,在這種情況下是否有更好的方法來存儲這些值?

謝謝

+0

您可以查看[wave](https://docs.python.org/2/library/wave.html)模塊 – DreadfulWeather

+0

http://soledadpenades.com/2009/10/29/fastest-way-to-生成-wav-files-in-python-using-the-wave-module/ – KingMak

+0

如果你最終打算進行FFT,那麼寫出一個wav文件有什麼意義呢?一個明顯的問題是您的模擬電壓電平將會丟失,因爲您需要將數據重新調整爲-1.0至1.0,並且wav沒有存儲縮放信息的本地方式(除非將其嵌入到自定義即興塊中) 。 – jaket

回答

0

如果你知道信號的採樣頻率和數據已經被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模塊。