给复用型TTS增加相关过滤

This commit is contained in:
Sakura-RanChen
2026-04-14 10:18:09 +08:00
parent 9634f84a98
commit a0497fdc48
2 changed files with 21 additions and 3 deletions
@@ -331,7 +331,16 @@ class TTSProvider(TTSProviderBase):
if isinstance(msg, str): # JSON控制消息
try:
data = json.loads(msg)
event = data["header"].get("event")
header = data.get("header", {})
event = header.get("event")
task_id = header.get("task_id")
# 只处理当前活跃会话的响应
if task_id and self.conn.sentence_id != task_id:
if event in ["task-finished", "task-failed"]:
logger.bind(tag=TAG).debug(f"收到残余下行结束响应重置会话状态~~")
self.activate_session = False
continue
if event == "task-started":
logger.bind(tag=TAG).debug("TTS任务启动成功~")
@@ -352,8 +361,8 @@ class TTSProvider(TTSProviderBase):
self.activate_session = False
self._process_before_stop_play_files()
elif event == "task-failed":
error_code = data["header"].get("error_code", "unknown")
error_message = data["header"].get("error_message", "未知错误")
error_code = header.get("error_code", "unknown")
error_message = header.get("error_message", "未知错误")
logger.bind(tag=TAG).error(
f"TTS任务失败: {error_code} - {error_message}"
)
@@ -423,6 +423,15 @@ class TTSProvider(TTSProviderBase):
data = json.loads(msg)
header = data.get("header", {})
event_name = header.get("name")
task_id = header.get("task_id")
# 只处理当前活跃会话的响应
if task_id and self.task_id != task_id:
if event_name in ["SynthesisCompleted", "TaskFailed"]:
logger.bind(tag=TAG).debug(f"收到残余下行结束响应重置会话状态~~")
self.activate_session = False
continue
if event_name == "SynthesisStarted":
logger.bind(tag=TAG).debug("TTS合成已启动")
self.tts_audio_queue.put(