def recoder(self):
pa = PyAudio()
stream = pa.open(format=paInt16, channels=1, rate=self.SAMPLING_RATE, input=True,
frames_per_buffer=self.NUM_SAMPLES)
save_count = 0
save_buffer = []
time_count = self.TIME_COUNT
while True:
time_count -= 1
# print time_count
# ??NUM_SAMPLES???
string_audio_data = stream.read(self.NUM_SAMPLES)
# ???????????
audio_data = np.fromstring(string_audio_data, dtype=np.short)
# ????LEVEL??????
large_sample_count = np.sum( audio_data > self.LEVEL )
print(np.max(audio_data))
# ??????COUNT_NUM??????SAVE_LENGTH??
if large_sample_count > self.COUNT_NUM:
save_count = self.SAVE_LENGTH
else:
save_count -= 1
if save_count < 0:
save_count = 0
if save_count > 0 :
# ??????????save_buffer?
#print save_count > 0 and time_count >0
save_buffer.append( string_audio_data )
else:
#print save_buffer
# ?save_buffer??????WAV???WAV????????????
#print "debug"
if len(save_buffer) > 0 :
self.Voice_String = save_buffer
save_buffer = []
print("Recode a piece of voice successfully!")
return True
if time_count==0:
if len(save_buffer)>0:
self.Voice_String = save_buffer
save_buffer = []
print("Recode a piece of voice successfully!")
return True
else:
return False
评论列表
文章目录