嘈杂的Scipy Wavfile输出问题

时间:2013-07-23 19:34:33

标签: python audio numpy scipy wav

我正在尝试使用scipy.io.wavfile.write()创建一个.wav文件,但结果是一个嘈杂的wav文件,我尝试使用iNotebook,结果相同,这里是代码:

import numpy as np
from scipy.io import wavfile

x= np.arange(25600.0)
sig= np.sin(2*np.pi*(1250.0/10000.0)*x) 

def makewav(data,outfile,samplerate):
    wavfile.write(outfile,samplerate,data)

makewav(sig,'foo.wav',44100)

只有在我尝试生成纯音时才会发生。读取.wav whith scipy.io.wavfile.read()并使用scipy.io.wavfile.write()再次写入时出现任何问题。

1 个答案:

答案 0 :(得分:3)

根据this documentation,您应输出整数值,并且您有浮点数据,因此您必须先转换它们。

The method:
    scipy.io.wavfile.write(filename, rate, data)[source]

Argument:
    data is a ndarray A 1-D or 2-D numpy array of integer data-type.

要实际转换数据,请尝试使用以下代码:

data=np.int16(sig/np.max(np.abs(sig)) * 32767)

Check out more in this answer