Davidliu 3 months ago
parent
commit
86a627db50
1 changed files with 39 additions and 39 deletions
  1. 39 39
      src/core/voip/bot.py

+ 39 - 39
src/core/voip/bot.py

@@ -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: