我正在尝试保存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格式保存数据。
答案 0 :(得分:0)
也许你的意思是:
p = pyaudio.PyAudio()
而不是
p = pyaudio.PyAudio