我正在尝试使用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和scipy.io.wavfile.read()并再次使用scipy.io.wavfile.write()时出现任何问题。
最佳答案
根据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。
关于python - 嘈杂的Scipy Wavfile输出问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17819463/