def record_wave(self,temp):
while self.start_flag==1:
pa=PyAudio()
stream=pa.open(format=paInt16,channels=1,
rate=framerate,input=True,
frames_per_buffer=self.NUM_SAMPLES)
my_buf=[]
count=0
print "* start recoding *"
while count<self.TIME*20:
string_audio_data=stream.read(self.NUM_SAMPLES)
audio_data=np.fromstring(string_audio_data,dtype=np.short)
large_sample_count=np.sum(audio_data>self.LEVEL)
print large_sample_count
if large_sample_count<self.mute_count_limit:
self.mute_begin=1
else:
my_buf.append(string_audio_data)
self.mute_begin=0
self.mute_end=1
count+=1
if(self.mute_end-self.mute_begin)>9:
self.mute_begin=0
self.mute_end=1
break
if self.mute_begin:
self.mute_end+=1
print '.'
my_buf=my_buf[:]
if my_buf:
if self.file_name_index<11:
pass
else:
self.file_name_index=1
filename=str(self.file_name_index)+'.wav'
self.save_wave_file(filename=filename,data=my_buf)
self.writeQ(queue=self.wav_queue,data=filename)
self.file_name_index+=1
print filename,"saved"
else:
print '* Error: file not saved! *'
#self.save_wave_file(filename, my_buf)
my_buf=[]
stream.close()
评论列表
文章目录