|
@@ -82,45 +82,45 @@ class MyAudioMediaPort(pj.AudioMediaPort):
|
|
|
self.call.logger.info("Received audio frame: %s %s", frame.buf, frame.size)
|
|
|
self.asr.send_audio(frame.buf)
|
|
|
|
|
|
- try:
|
|
|
- asr_text = self.get_asr_text()
|
|
|
- play_complete = self.call.is_play_complete()
|
|
|
- current_time = time.time() # 实时当前时间
|
|
|
- if self.call.inputType == '1.0':
|
|
|
- time_difference = int(current_time - self.call.inputLongStart)
|
|
|
- # print('current_time - self.call.inputLongStart:',time_difference > 35, self.call.txtLock , play_complete)
|
|
|
- if time_difference > 35 and play_complete:
|
|
|
- self.user_asr_texts.append(f"DTMF({self.call.digit})DTMF")
|
|
|
- user_asr_text = self.user_asr_texts[0] if len(self.user_asr_texts) == 1 else '###'.join(self.user_asr_texts)
|
|
|
- self.user_asr_texts.clear()
|
|
|
- self.call.chat(user_asr_text)
|
|
|
- # print("测试超长", user_asr_text)
|
|
|
- elif asr_text:
|
|
|
- self.user_asr_texts.append(asr_text)
|
|
|
- if time_difference > int(self.call.wait_time):
|
|
|
- self.call.reset_wait_time()
|
|
|
- else:
|
|
|
- if asr_text and not play_complete:
|
|
|
- self.user_asr_texts.append(asr_text)
|
|
|
- if (asr_text and play_complete) or (play_complete and self.user_asr_texts):
|
|
|
- if asr_text:
|
|
|
- self.user_asr_texts.append(asr_text)
|
|
|
- user_asr_text = self.user_asr_texts[0] if len(self.user_asr_texts) == 1 else '###'.join(self.user_asr_texts)
|
|
|
- self.user_asr_texts.clear()
|
|
|
- self.call.chat(user_asr_text)
|
|
|
-
|
|
|
- if self.call.wait_time and self.call.wait_time != "0" and play_complete and not asr_text:
|
|
|
- self.call.wait_time_check(current_time, self.call.wait_time)
|
|
|
-
|
|
|
- message_queue_size = self.call.message_queue.qsize()
|
|
|
- if (message_queue_size > 0 and not self.call.cur_player_file) or (message_queue_size > 0 and play_complete):
|
|
|
- # self.call.logger.info('onFrameReceived:message_queue_size=', message_queue_size, 'play_complete=', play_complete, asr_text)
|
|
|
- self.call.cur_player_file, self.call.wait_time, self.call.inputType,self.call.action, self.call.node_id = self.get_player_file()
|
|
|
- # 重置播放完成标志和超时计时器,确保新的播放从头开始计时
|
|
|
- self.call.reset_wait_time()
|
|
|
- self.call.send_bot_speaker(self.call.cur_player_file)
|
|
|
- except:
|
|
|
- pass
|
|
|
+ # try:
|
|
|
+ # asr_text = self.get_asr_text()
|
|
|
+ # play_complete = self.call.is_play_complete()
|
|
|
+ # current_time = time.time() # 实时当前时间
|
|
|
+ # if self.call.inputType == '1.0':
|
|
|
+ # time_difference = int(current_time - self.call.inputLongStart)
|
|
|
+ # # print('current_time - self.call.inputLongStart:',time_difference > 35, self.call.txtLock , play_complete)
|
|
|
+ # if time_difference > 35 and play_complete:
|
|
|
+ # self.user_asr_texts.append(f"DTMF({self.call.digit})DTMF")
|
|
|
+ # user_asr_text = self.user_asr_texts[0] if len(self.user_asr_texts) == 1 else '###'.join(self.user_asr_texts)
|
|
|
+ # self.user_asr_texts.clear()
|
|
|
+ # self.call.chat(user_asr_text)
|
|
|
+ # # print("测试超长", user_asr_text)
|
|
|
+ # elif asr_text:
|
|
|
+ # self.user_asr_texts.append(asr_text)
|
|
|
+ # if time_difference > int(self.call.wait_time):
|
|
|
+ # self.call.reset_wait_time()
|
|
|
+ # else:
|
|
|
+ # if asr_text and not play_complete:
|
|
|
+ # self.user_asr_texts.append(asr_text)
|
|
|
+ # if (asr_text and play_complete) or (play_complete and self.user_asr_texts):
|
|
|
+ # if asr_text:
|
|
|
+ # self.user_asr_texts.append(asr_text)
|
|
|
+ # user_asr_text = self.user_asr_texts[0] if len(self.user_asr_texts) == 1 else '###'.join(self.user_asr_texts)
|
|
|
+ # self.user_asr_texts.clear()
|
|
|
+ # self.call.chat(user_asr_text)
|
|
|
+ #
|
|
|
+ # if self.call.wait_time and self.call.wait_time != "0" and play_complete and not asr_text:
|
|
|
+ # self.call.wait_time_check(current_time, self.call.wait_time)
|
|
|
+ #
|
|
|
+ # message_queue_size = self.call.message_queue.qsize()
|
|
|
+ # if (message_queue_size > 0 and not self.call.cur_player_file) or (message_queue_size > 0 and play_complete):
|
|
|
+ # # self.call.logger.info('onFrameReceived:message_queue_size=', message_queue_size, 'play_complete=', play_complete, asr_text)
|
|
|
+ # self.call.cur_player_file, self.call.wait_time, self.call.inputType,self.call.action, self.call.node_id = self.get_player_file()
|
|
|
+ # # 重置播放完成标志和超时计时器,确保新的播放从头开始计时
|
|
|
+ # self.call.reset_wait_time()
|
|
|
+ # self.call.send_bot_speaker(self.call.cur_player_file)
|
|
|
+ # except:
|
|
|
+ # pass
|
|
|
|
|
|
def get_asr_text(self):
|
|
|
try:
|