我正在尝试使用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()再次写入时出现任何问题。
答案 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)