问题
解决
-
使用Pyaudio提供非阻塞式,在回调函数中进行数据储存
-
录音部分代码
p = pyaudio.PyAudio()
wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb')
wf.setnchannels(1)
wf.setsampwidth(p.get_sample_size(FORMAT))
wf.setframerate(RATE)
def callback(in_data,frame_count,time_info,status):
wf.writeframes(in_data)
return(in_data,pyaudio.paContinue)
stream = p.open(format=FORMAT,
channels=1,
rate=RATE,
input=True,
frames_per_buffer=CHUNK,
stream_callback=callback)
print("recing...")
stream.start_stream()
time.sleep(RECORD_SECONDS)
stream.stop_stream()
stream.close()
p.terminate()
print "录音结束"