diff --git a/main/xiaozhi-server/core/providers/tts/alibl_stream.py b/main/xiaozhi-server/core/providers/tts/alibl_stream.py index af912ef6..f3032b5e 100644 --- a/main/xiaozhi-server/core/providers/tts/alibl_stream.py +++ b/main/xiaozhi-server/core/providers/tts/alibl_stream.py @@ -103,14 +103,6 @@ class TTSProvider(TTSProviderBase): try: message = self.tts_text_queue.get(timeout=1) - # 过滤旧消息:检查sentence_id是否匹配 - if message.sentence_id != self.conn.sentence_id: - continue - - logger.bind(tag=TAG).debug( - f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" - ) - if self.conn.client_abort: try: logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") @@ -123,6 +115,14 @@ class TTSProvider(TTSProviderBase): logger.bind(tag=TAG).error(f"取消TTS会话失败: {str(e)}") continue + # 过滤旧消息:检查sentence_id是否匹配 + if message.sentence_id != self.conn.sentence_id: + continue + + logger.bind(tag=TAG).debug( + f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" + ) + if message.sentence_type == SentenceType.FIRST: # 初始化会话 try: diff --git a/main/xiaozhi-server/core/providers/tts/aliyun_stream.py b/main/xiaozhi-server/core/providers/tts/aliyun_stream.py index 824e7902..f9581ee8 100644 --- a/main/xiaozhi-server/core/providers/tts/aliyun_stream.py +++ b/main/xiaozhi-server/core/providers/tts/aliyun_stream.py @@ -216,14 +216,6 @@ class TTSProvider(TTSProviderBase): try: message = self.tts_text_queue.get(timeout=1) - # 过滤旧消息:检查sentence_id是否匹配 - if message.sentence_id != self.conn.sentence_id: - continue - - logger.bind(tag=TAG).debug( - f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" - ) - if self.conn.client_abort: logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") asyncio.run_coroutine_threadsafe( @@ -232,6 +224,14 @@ class TTSProvider(TTSProviderBase): ) continue + # 过滤旧消息:检查sentence_id是否匹配 + if message.sentence_id != self.conn.sentence_id: + continue + + logger.bind(tag=TAG).debug( + f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" + ) + if message.sentence_type == SentenceType.FIRST: # 初始化参数 try: diff --git a/main/xiaozhi-server/core/providers/tts/base.py b/main/xiaozhi-server/core/providers/tts/base.py index 25ade2d6..4c3dd6be 100644 --- a/main/xiaozhi-server/core/providers/tts/base.py +++ b/main/xiaozhi-server/core/providers/tts/base.py @@ -320,12 +320,12 @@ class TTSProviderBase(ABC): while not self.conn.stop_event.is_set(): try: message = self.tts_text_queue.get(timeout=1) - # 过滤旧消息:检查sentence_id是否匹配 - if message.sentence_id != self.conn.sentence_id: - continue if self.conn.client_abort: logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") continue + # 过滤旧消息:检查sentence_id是否匹配 + if message.sentence_id != self.conn.sentence_id: + continue if message.sentence_type == SentenceType.FIRST: self.current_sentence_id = message.sentence_id self.tts_stop_request = False diff --git a/main/xiaozhi-server/core/providers/tts/huoshan_double_stream.py b/main/xiaozhi-server/core/providers/tts/huoshan_double_stream.py index f95acaba..0d783754 100644 --- a/main/xiaozhi-server/core/providers/tts/huoshan_double_stream.py +++ b/main/xiaozhi-server/core/providers/tts/huoshan_double_stream.py @@ -273,14 +273,6 @@ class TTSProvider(TTSProviderBase): try: message = self.tts_text_queue.get(timeout=1) - # 过滤旧消息:检查sentence_id是否匹配 - if message.sentence_id != self.conn.sentence_id: - continue - - logger.bind(tag=TAG).debug( - f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" - ) - if self.conn.client_abort: try: logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") @@ -299,6 +291,14 @@ class TTSProvider(TTSProviderBase): logger.bind(tag=TAG).error(f"取消TTS会话失败: {str(e)}") continue + # 过滤旧消息:检查sentence_id是否匹配 + if message.sentence_id != self.conn.sentence_id: + continue + + logger.bind(tag=TAG).debug( + f"收到TTS任务|{message.sentence_type.name} | {message.content_type.name} | 会话ID: {message.sentence_id}" + ) + if message.sentence_type == SentenceType.FIRST: # 初始化参数 try: diff --git a/main/xiaozhi-server/core/providers/tts/xunfei_stream.py b/main/xiaozhi-server/core/providers/tts/xunfei_stream.py index 40d8a11b..6cdb8e19 100644 --- a/main/xiaozhi-server/core/providers/tts/xunfei_stream.py +++ b/main/xiaozhi-server/core/providers/tts/xunfei_stream.py @@ -155,6 +155,10 @@ class TTSProvider(TTSProviderBase): try: message = self.tts_text_queue.get(timeout=1) + if self.conn.client_abort: + logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") + continue + # 过滤旧消息:检查sentence_id是否匹配 if message.sentence_id != self.conn.sentence_id: continue @@ -169,10 +173,6 @@ class TTSProvider(TTSProviderBase): # 增加序列号 self.text_seq += 1 - if self.conn.client_abort: - logger.bind(tag=TAG).info("收到打断信息,终止TTS文本处理线程") - continue - if message.sentence_type == SentenceType.FIRST: # 初始化参数 try: