From 3757c5dde7800fb6bc05bc19d20cdc37efe27f79 Mon Sep 17 00:00:00 2001 From: sczx-win10 Date: Tue, 22 Apr 2025 16:44:45 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dtts=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=E4=B8=8D=E9=87=8D=E8=AF=95=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/xiaozhi-server/core/providers/tts/base.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/main/xiaozhi-server/core/providers/tts/base.py b/main/xiaozhi-server/core/providers/tts/base.py index e39ca65c..f34158d1 100644 --- a/main/xiaozhi-server/core/providers/tts/base.py +++ b/main/xiaozhi-server/core/providers/tts/base.py @@ -26,10 +26,14 @@ class TTSProviderBase(ABC): max_repeat_time = 5 text = MarkdownCleaner.clean_markdown(text) while not os.path.exists(tmp_file) and max_repeat_time > 0: - asyncio.run(self.text_to_speak(text, tmp_file)) - if not os.path.exists(tmp_file): - max_repeat_time = max_repeat_time - 1 - logger.bind(tag=TAG).error(f"语音生成失败: {text}:{tmp_file},再试{max_repeat_time}次") + try: + asyncio.run(self.text_to_speak(text, tmp_file)) + except Exception as e: + logger.bind(tag=TAG).error(f"语音生成失败: {text},错误: {e}") + max_repeat_time -= 1 + if max_repeat_time > 0: + logger.bind(tag=TAG).error(f"再试{max_repeat_time}次") + asyncio.sleep(max_repeat_time / 10) if max_repeat_time > 0: logger.bind(tag=TAG).info(f"语音生成成功: {text}:{tmp_file},重试{5 - max_repeat_time}次")