刘威 пре 6 месеци
родитељ
комит
3b37274a61
3 измењених фајлова са 15 додато и 16 уклоњено
  1. 1 1
      src/core/callcenter/esl/client.py
  2. 2 2
      src/core/datasource.py
  3. 12 13
      src/core/voip/bot.py

+ 1 - 1
src/core/callcenter/esl/client.py

@@ -31,7 +31,7 @@ class InboundClient:
         self.bot_agent = BotAgent(logger)
         self.handler_table = self.scan_esl_event_handlers()
         self.default_event_handler = DefaultEslEventHandler(self, self.bot_agent, self.logger)
-        self.host, self.port, self.password = '172.16.12.16', '8021', '4918257983818884358'
+        self.host, self.port, self.password = '172.16.12.24', '8021', '4918257983818884358'
         self.executors = {x: concurrent.futures.ThreadPoolExecutor(max_workers=1) for x in range(self.thread_num)}
 
         threading.Thread(target=self.start, args=()).start()

+ 2 - 2
src/core/datasource.py

@@ -37,7 +37,7 @@ class MysqlHandler:
     """
 
     def __init__(self,
-                 host='172.16.12.16',
+                 host='172.16.12.24',
                  user='root',
                  passwd='12345678',
 
@@ -181,7 +181,7 @@ class MysqlHandler:
 @singleton
 class RedisHandler:
 
-    def __init__(self, host='172.16.12.16', port=6379, db=0, password='^YHN&UJM'):
+    def __init__(self, host='172.16.12.24', port=6379, db=0, password='^YHN&UJM'):
         try:
             # host = '10.0.0.24'
             # host = RADIS_HOST

+ 12 - 13
src/core/voip/bot.py

@@ -58,7 +58,7 @@ class MyAudioMediaPort(pj.AudioMediaPort):
 
     def onFrameReceived(self, frame):
         # self.wav.writeframes(bytes(frame.buf))
-        print("Received audio frame:", frame.buf, frame.size)
+        # print("Received audio frame:", frame.buf, frame.size)
         if self.asr:  # 如果ASR实例存在,则发送音频数据
             self.asr.send_audio(frame.buf)
 
@@ -74,8 +74,8 @@ class MyAudioMediaPort(pj.AudioMediaPort):
                 self.call.chat(user_asr_text)
 
             player_queue_size = self.call.player_queue.qsize()
-            print('onFrameReceived:player_queu_size=',player_queue_size,'play_complete=', play_complete)
             if (player_queue_size > 0 and not self.cur_player_file) or (player_queue_size > 0 and play_complete):
+                print('onFrameReceived:player_queu_size=', player_queue_size, 'play_complete=', play_complete)
                 self.cur_player_file = self.get_player_file()
                 self.call.send_bot_speaker(self.cur_player_file)
 
@@ -151,6 +151,8 @@ class MyCall(pj.Call):
         self.call_id = call_id
         self.kwargs = kwargs
         self.aud_med = None
+        self.audio_port = None
+        self.player = None
         self.asr = None
 
         self.scripts = build_demo_script()
@@ -205,18 +207,18 @@ class MyCall(pj.Call):
                     traceback.print_exc()
 
     def receive_user_speaker(self):
-        audio_port = MyAudioMediaPort(self, self.aud_med, self.asr)
-        audio_port.createPort("Incoming Call Port", build_audio_format())
-        self.aud_med.startTransmit(audio_port)
+        self.audio_port = MyAudioMediaPort(self, self.aud_med, self.asr)
+        self.audio_port.createPort("Incoming Call Port", build_audio_format())
+        self.aud_med.startTransmit(self.audio_port)
 
     def send_bot_speaker(self, player_file):
         if not player_file or not os.path.exists(player_file):
             return
         player_id = murmur3_32(player_file)
         self.player_complete_dict[player_id] = False
-        player = MyAudioMediaPlayer(player_id, self.aud_med, on_complete=self.on_media_player_complete)
-        player.createPlayer(player_file)
-        player.startTransmit(self.aud_med)
+        self.player = MyAudioMediaPlayer(player_id, self.aud_med, on_complete=self.on_media_player_complete)
+        self.player.createPlayer(player_file)
+        self.player.startTransmit(self.aud_med)
 
     def on_receiver_asr_result(self, message, *args):
         self.user_asr_text_queue.put(message)
@@ -234,15 +236,12 @@ class MyCall(pj.Call):
         message = {'player_file': self.scripts.get()}
         player = message.get('player_file')
         print('chat::player_file=', player)
-        if "SAY_HELLO" == user_asr_text:
-            self.send_bot_speaker('/code/src/core/voip/test111.wav')
-        else:
-            self.player_queue.put(player)
+        self.player_queue.put(player)
 
 
 class BotAgent:
 
-    def __init__(self, logger, user_part_range=range(1001, 1011), host="172.16.12.16", port="5060", password="slibra@#123456"):
+    def __init__(self, logger, user_part_range=range(1001, 1011), host="172.16.12.24", port="5060", password="slibra@#123456"):
         self.logger = logger
         self.user_part_range, self.host, self.port, self.password = user_part_range, host, port, password
         self.user_part_pool = queue.Queue(maxsize=len(user_part_range))