fix: 修复 tts_end 和 abort 循环调用的问题

This commit is contained in:
Del Wang
2025-05-26 23:12:34 +08:00
parent 824ff6bc68
commit d83c2b3093
2 changed files with 8 additions and 4 deletions
+6 -2
View File
@@ -27,6 +27,7 @@ class __EventManager:
self.session_id = 0
self.current_step = Step.idle
self.next_step_future = None
self.tts_session_id = ""
def update_step(self, step: Step, step_data=None):
if get_xiaoai().mode == "xiaozhi":
@@ -77,16 +78,19 @@ class __EventManager:
self.update_step(Step.on_wakeup)
self.start_session()
def on_tts_end(self):
def on_tts_end(self, session_id):
"""TTS结束"""
if self.current_step == Step.on_interrupt:
# 当前 session 已经被打断了,不再处理
return
if self.tts_session_id == session_id:
return
self.tts_session_id = session_id
self.session_id = self.session_id + 1
self.update_step(Step.on_tts_end)
self.start_session()
def on_tts_start(self):
def on_tts_start(self, session_id):
"""TTS结束"""
self.update_step(Step.on_tts_start)
+2 -2
View File
@@ -296,10 +296,10 @@ class XiaoZhi:
"""处理TTS消息"""
state = data.get("state", "")
if state == "start":
EventManager.on_tts_start()
EventManager.on_tts_start(data.get("session_id"))
self.schedule(lambda: self._handle_tts_start())
elif state == "stop":
EventManager.on_tts_end()
EventManager.on_tts_end(data.get("session_id"))
self.schedule(lambda: self._handle_tts_stop())
elif state == "sentence_start":
text = data.get("text", "")