unbound方法get_sample_size():保存wav文件时

时间:2014-05-11 15:19:33

标签: python python-2.7 numpy pyaudio

我正在尝试保存wav文件。 data是一个数据类型为int16的numpy数组。 当我运行我的代码时,它会给我以下错误,我不明白。

wf.setsampwidth(p.get_sample_size(pyaudio.paInt16))
TypeError: unbound method get_sample_size() must be called with PyAudio instance as first argument (got int instance instead)
Exception wave.Error: Error('sample width not specified',) in <bound method Wave_write.__del__ of <wave.Wave_write instance at 0x02B777D8>> ignored 

我的代码:

p = pyaudio.PyAudio
wf = wave.open(Config.WAVE_FORMATTED_OUTPUT_FILENAME, 'wb')
wf.setnchannels(Config.CHANNELS)
wf.setsampwidth(p.get_sample_size(Config.FORMAT))
wf.setframerate(Config.RATE)
wf.writeframes(b''.join(data))
wf.close()

我的配置

class Config():
CHUNK = 1024
FORMAT = pyaudio.paInt16
CHANNELS = 1
RATE = 44100
RECORD_SECONDS = 5
WAVE_OUTPUT_FILENAME = "output.wav"
WAVE_FORMATTED_OUTPUT_FILENAME = "new_output.wav"

总体情况是:

我从wav文件中提取出数据。我在数据数组的末尾附加图像位。现在以wav格式保存数据。

1 个答案:

答案 0 :(得分:0)

也许你的意思是:

p = pyaudio.PyAudio()

而不是

p = pyaudio.PyAudio