打断时增加tts和音频任务清理

This commit is contained in:
Sakura-RanChen
2025-04-25 09:34:22 +08:00
parent 8318ba5e55
commit 204b966935
2 changed files with 9 additions and 2 deletions
+8 -2
View File
@@ -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()
@@ -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()