diff --git a/main/xiaozhi-server/core/connection.py b/main/xiaozhi-server/core/connection.py index df751e7c..e88cf8a9 100644 --- a/main/xiaozhi-server/core/connection.py +++ b/main/xiaozhi-server/core/connection.py @@ -878,7 +878,7 @@ class ConnectionHandler: self.executor = None # 清空任务队列 - self._clear_queues() + self.clear_queues() if ws: await ws.close() @@ -886,8 +886,11 @@ class ConnectionHandler: await self.websocket.close() self.logger.bind(tag=TAG).info("连接资源已释放") - def _clear_queues(self): + def clear_queues(self): # 清空所有任务队列 + self.logger.bind(tag=TAG).info( + f"开始清理: TTS队列大小={self.tts_queue.qsize()}, 音频队列大小={self.audio_play_queue.qsize()}" + ) for q in [self.tts_queue, self.audio_play_queue]: if not q: continue @@ -899,6 +902,9 @@ class ConnectionHandler: q.queue.clear() # 添加毒丸信号到队列,确保线程退出 # q.queue.put(None) + self.logger.bind(tag=TAG).info( + f"清理结束: TTS队列大小={self.tts_queue.qsize()}, 音频队列大小={self.audio_play_queue.qsize()}" + ) def reset_vad_states(self): self.client_audio_buffer = bytearray() diff --git a/main/xiaozhi-server/core/handle/abortHandle.py b/main/xiaozhi-server/core/handle/abortHandle.py index 3183487f..35385b89 100644 --- a/main/xiaozhi-server/core/handle/abortHandle.py +++ b/main/xiaozhi-server/core/handle/abortHandle.py @@ -10,6 +10,7 @@ async def handleAbortMessage(conn): logger.bind(tag=TAG).info("Abort message received") # 设置成打断状态,会自动打断llm、tts任务 conn.client_abort = True + conn.clear_queues() # 打断客户端说话状态 await conn.websocket.send(json.dumps({"type": "tts", "state": "stop", "session_id": conn.session_id})) conn.clearSpeakStatus()