Spaces:
Sleeping
Sleeping
from elevenlabs.client import ElevenLabs | |
import os | |
import httpx | |
import time | |
ELEVENLABS_API_KEY = os.getenv('ELEVENLABS_API_KEY') | |
elevenlabs_client = ElevenLabs(api_key=ELEVENLABS_API_KEY) | |
async def convert_text_to_speech(text, selected_voice_id): | |
try: | |
async with httpx.AsyncClient() as http_client: | |
response = await http_client.post( | |
f"https://api.elevenlabs.io/v1/text-to-speech/{selected_voice_id}/stream", | |
json={ | |
"model_id": "eleven_monolingual_v1", | |
"text": text, | |
"output_format": "mp3_44100_128" | |
}, | |
headers={ | |
"Content-Type": "application/json", | |
"xi-api-key": ELEVENLABS_API_KEY | |
}, | |
timeout=None | |
) | |
# Stream the response content | |
async for chunk in response.aiter_bytes(): | |
print(f"Received chunk: {len(chunk)} bytes at {time.time()}") | |
yield chunk | |
except Exception as e: | |
print(f"Error during text-to-speech conversion: {e}") |