diff --git a/sijapi/routers/tts.py b/sijapi/routers/tts.py index 8d6d6d9..14a0413 100644 --- a/sijapi/routers/tts.py +++ b/sijapi/routers/tts.py @@ -147,7 +147,6 @@ async def generate_speech( if model == "eleven_turbo_v2": info("Using ElevenLabs.") - voice = await determine_voice_id(voice) audio_file_path = await elevenlabs_tts(model, text, voice, title, output_dir) else: # if model == "xtts": info("Using XTTS2") @@ -233,18 +232,23 @@ async def elevenlabs_tts(model: str, input_text: str, voice: str, title: str = N "model_id": model } headers = {"Content-Type": "application/json", "xi-api-key": ELEVENLABS_API_KEY} - async with httpx.AsyncClient(timeout=httpx.Timeout(300.0)) as client: # 5 minutes timeout - response = await client.post(url, json=payload, headers=headers) - output_dir = output_dir if output_dir else TTS_OUTPUT_DIR - title = title if title else dt_datetime.now().strftime("%Y%m%d%H%M%S") - filename = f"{sanitize_filename(title)}.mp3" - file_path = Path(output_dir) / filename - if response.status_code == 200: - with open(file_path, "wb") as audio_file: - audio_file.write(response.content) - return file_path - else: - raise HTTPException(status_code=response.status_code, detail="Error from ElevenLabs API") + try: + async with httpx.AsyncClient(timeout=httpx.Timeout(300.0)) as client: # 5 minutes timeout + response = await client.post(url, json=payload, headers=headers) + output_dir = output_dir if output_dir else TTS_OUTPUT_DIR + title = title if title else dt_datetime.now().strftime("%Y%m%d%H%M%S") + filename = f"{sanitize_filename(title)}.mp3" + file_path = Path(output_dir) / filename + if response.status_code == 200: + with open(file_path, "wb") as audio_file: + audio_file.write(response.content) + info(f"file_path: {file_path}") + return file_path + else: + raise HTTPException(status_code=response.status_code, detail="Error from ElevenLabs API") + except Exception as e: + err(f"Error from Elevenlabs API: {e}") + raise HTTPException(status_code=response.status_code, detail="Error from ElevenLabs API")