import os import gradio as gr from elevenlabs import voices, generate, set_api_key, UnauthenticatedRateLimitError def generate_voice(api_key, text, voice_name): os.environ["ELEVEN_API_KEY"] = api_key try: audio = generate( text[:5000], # Limit to 250 characters voice=voice_name, model="eleven_multilingual_v2" ) with open("output" + ".mp3", mode='wb') as f: f.write(audio) return "output.mp3" except UnauthenticatedRateLimitError as e: raise gr.Error("Thanks for trying out ElevenLabs TTS! You've reached the free tier limit. Please provide an API key to continue.") except Exception as e: raise gr.Error(e) all_voices = voices() with gr.Blocks() as app: gr.Markdown("#