Python pyaudio录制大wav文件

时间:2016-12-06 17:35:49

标签: python wav audio-recording pyaudio

我正在尝试使用pyaudio录制长麦克风会话。但是,一段时间后我收到内存错误。我设法使用线程拆分它,并记录3分钟,然后将其处理为文件,但这并没有解决问题。我还尝试在录制时将其直接写入文件,但我无法弄清楚如何附加到wav文件(使用wave模块)。

这是我的代码:

CHUNK = 1024
THRESHOLD = 100
FORMAT = pyaudio.paInt16
CHANNELS = 2
RATE = 44100
p = pyaudio.PyAudio()

stream = p.open(format=FORMAT,
                channels=CHANNELS,
                rate=RATE,
                input=True,
                frames_per_buffer=CHUNK)

wf = wave.open("Test.wav", "wb")
wf.setnchannels(CHANNELS)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)

rec_started = False
num_silent = 0
r = array('h')
while num_silent < 6:
    r.extend(array('h', stream.read(CHUNK)))

    silent = is_silent(r)

    if silent and rec_started:
        num_silent += 1
        print num_silent

    elif not silent and not num_silent:
        rec_started = True

data = pack("<" + ("h"*len(r)), *r)
wf.writeframes(data)
wf.close()

我的问题是:如何防止此代码在一段时间后出现内存错误?

0 个答案:

没有答案