mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-22 07:03:53 +08:00
Merge pull request #981 from xinnan-tech/aboutHandle-modify
打断时增加tts和音频任务清理
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user