mirror of
https://github.com/xinnan-tech/xiaozhi-esp32-server.git
synced 2026-07-27 01:23:55 +08:00
给复用型TTS增加相关过滤
This commit is contained in:
@@ -331,7 +331,16 @@ class TTSProvider(TTSProviderBase):
|
|||||||
if isinstance(msg, str): # JSON控制消息
|
if isinstance(msg, str): # JSON控制消息
|
||||||
try:
|
try:
|
||||||
data = json.loads(msg)
|
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":
|
if event == "task-started":
|
||||||
logger.bind(tag=TAG).debug("TTS任务启动成功~")
|
logger.bind(tag=TAG).debug("TTS任务启动成功~")
|
||||||
@@ -352,8 +361,8 @@ class TTSProvider(TTSProviderBase):
|
|||||||
self.activate_session = False
|
self.activate_session = False
|
||||||
self._process_before_stop_play_files()
|
self._process_before_stop_play_files()
|
||||||
elif event == "task-failed":
|
elif event == "task-failed":
|
||||||
error_code = data["header"].get("error_code", "unknown")
|
error_code = header.get("error_code", "unknown")
|
||||||
error_message = data["header"].get("error_message", "未知错误")
|
error_message = header.get("error_message", "未知错误")
|
||||||
logger.bind(tag=TAG).error(
|
logger.bind(tag=TAG).error(
|
||||||
f"TTS任务失败: {error_code} - {error_message}"
|
f"TTS任务失败: {error_code} - {error_message}"
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -423,6 +423,15 @@ class TTSProvider(TTSProviderBase):
|
|||||||
data = json.loads(msg)
|
data = json.loads(msg)
|
||||||
header = data.get("header", {})
|
header = data.get("header", {})
|
||||||
event_name = header.get("name")
|
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":
|
if event_name == "SynthesisStarted":
|
||||||
logger.bind(tag=TAG).debug("TTS合成已启动")
|
logger.bind(tag=TAG).debug("TTS合成已启动")
|
||||||
self.tts_audio_queue.put(
|
self.tts_audio_queue.put(
|
||||||
|
|||||||
Reference in New Issue
Block a user