Davidliu 3 mesiacov pred
rodič
commit
c9201b445e
2 zmenil súbory, kde vykonal 23 pridanie a 19 odobranie
  1. 22 18
      src/core/voip/asr.py
  2. 1 1
      src/core/voip/bot.py

+ 22 - 18
src/core/voip/asr.py

@@ -68,31 +68,34 @@ class TestSt:
             print("无法获取Token")
             return None
 
-    def __init__(self, tid, message_receiver=None):
+    def __init__(self, tid, logger, message_receiver=None):
         # self.is_closed = False
         # self.lock = threading.Lock()
-
+        self.logger = logger
+        self.__ready = False
         self.__th = threading.Thread(target=self.__test_run)
         self.__id = tid
         self.message_receiver = message_receiver
         self._Token = self.get_cached_token()
         self.sr = None
-        print("开始")
+        self.logger.info("开始")
 
     def start(self):
         self.__th.start()
 
     def send_audio(self, audio_data):
         if self.sr:
-            # print("Sending audio data of length:", len(audio_data))
-            self.sr.send_audio(audio_data)
-            # print("Audio data sent.")
+            if self.__ready:
+                self.sr.send_audio(audio_data)
+            else:
+                self.logger.info("[%s]Sending audio data of length:%s", self.__id, len(audio_data))
+            # self.logger.info("Audio data sent.")
         # if self.sr and not self.is_closed:
         #     with self.lock:
         #         try:
         #             self.sr.send_audio(audio_data)
         #         except Exception as e:
-        #             print(f"Error sending audio: {e}")
+        #             self.logger.info(f"Error sending audio: {e}")
         #             self.close()
     # def close(self):
     #     with self.lock:
@@ -101,16 +104,16 @@ class TestSt:
     #             try:
     #                 self.sr.stop()
     #             except Exception as e:
-    #                 print(f"Error stopping ASR: {e}")
+    #                 self.logger.info(f"Error stopping ASR: {e}")
 
     def close(self):
         try:
             self.sr.stop()
         except Exception as e:
-            print(f"Error stopping ASR: {e}")
+            self.logger.info(f"Error stopping ASR: {e}")
 
     def __test_run(self):
-        print("Thread:{} start..".format(self.__id))
+        self.logger.info("Thread:%s start..",self.__id)
         nls.enableTrace(True)
         self.sr = nls.NlsSpeechTranscriber(
             url=URL,
@@ -132,37 +135,38 @@ class TestSt:
             enable_inverse_text_normalization=True
         )
         self.sr.ctrl(ex={'max_sentence_silence': '1200ms', 'disfluency': True,'enable_words': True })
-        print("ASR session started.")
+        self.logger.info("ASR session started.")
 
     def test_on_sentence_begin(self, message, *args):
         # pass
-        print("test_on_sentence_begin:{}".format(message))
+        self.logger.info("test_on_sentence_begin:%s", message)
         if self.message_receiver:
             self.message_receiver(message, *args)
 
     def test_on_sentence_end(self, message, *args):
-        print("test_on_sentence_end:{}".format(message))
+        self.logger.info("test_on_sentence_end:%s", message)
         if self.message_receiver:
             self.message_receiver(message, *args)
 
     def test_on_start(self, message, *args):
-        # print("test_on_start:{}".format(message))
+        self.__ready = True
+        # self.logger.info("test_on_start:%s", message)
         pass
 
     def test_on_error(self, message, *args):
-        # print("on_error args=>{}".format(args))
+        # self.logger.info("on_error args=>{}".format(args))
         if self.message_receiver:
             self.message_receiver(message, *args)
 
     def test_on_close(self, *args):
-        # print("on_close: args=>{}".format(args))
+        # self.logger.info("on_close: args=>{}".format(args))
         pass
 
     def test_on_result_chg(self, message, *args):
-        # print("test_on_chg:{}".format(message))
+        # self.logger.info("test_on_chg:{}".format(message))
         if self.message_receiver:
             self.message_receiver(message, *args)
 
     def test_on_completed(self, message, *args):
-        # print("on_completed:args=>{} message=>{}".format(args, message))
+        # self.logger.info("on_completed:args=>{} message=>{}".format(args, message))
         pass

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

@@ -212,7 +212,7 @@ class MyCall(pj.Call):
 
         self.cur_player_file = None   #当前播放的文件
 
-        self.asr = TestSt(self.session_id, message_receiver=self.on_receiver_asr_result)  # 创建ASR实例
+        self.asr = TestSt(self.session_id, logger=self.logger, message_receiver=self.on_receiver_asr_result)  # 创建ASR实例
         self.asr.start()  # 启动ASR线程
 
         self.start_time = time.time()  # 当前机器人对话开始时间