我正在尝试使用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/

10-10 16:12