From a299dfdb7b0c68946a7af6fe81016e5ffecae4fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=AF=E7=90=AA?= Date: Thu, 13 Mar 2025 15:48:36 +0800 Subject: [PATCH] fix: fix some error by cache queue --- server.py | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/server.py b/server.py index 252cef6..5ffb6b1 100644 --- a/server.py +++ b/server.py @@ -129,25 +129,28 @@ async def fetch_audio_data(session, pair_data, voice, speed): "speed": speed, "return_type": "base64" } - - try: - async with session.post(url, json=payload) as response: - if response.status != 200: - logger.error(f"TTS API error: {response.status} - {await response.text()}") + for i in range(3): + try: + async with session.post(url, json=payload) as response: + if response.status != 200: + logger.error(f"TTS API error: {response.status} - {await response.text()}") + return None + data = await response.json() + audio_base64 = data.get("audio_base64") + if not audio_base64: + logger.error(f"No audio data returned for pair") + return None + return { + "audio_base64": audio_base64, + "sentences": pair_data["sentences"], + "indices": pair_data["indices"] + } + except Exception as e: + logger.error(f"Error fetching audio: {e}") + if i == 2: return None - data = await response.json() - audio_base64 = data.get("audio_base64") - if not audio_base64: - logger.error(f"No audio data returned for pair") - return None - return { - "audio_base64": audio_base64, - "sentences": pair_data["sentences"], - "indices": pair_data["indices"] - } - except Exception as e: - logger.error(f"Error fetching audio: {e}") - return None + await asyncio.sleep(0.5) + continue async def text_to_speech(text, voice="zf_xiaoxiao", speed=1.5): """异步将文本转换为语音,返回每两句话的音频数据和时间戳"""