import os import requests class VoiceoverAgent: def __init__(self): self.api_key = os.getenv("ELEVENLABS_API_KEY") self.voice_id = "21m00Tcm4TlvDq8ikWAM" # Rachel (default female voice) self.model = "eleven_monolingual_v1" def generate_voiceover(self, text): if not self.api_key: print("Error: ELEVENLABS_API_KEY not found in environment variables.") return None url = f"https://api.elevenlabs.io/v1/text-to-speech/{self.voice_id}" headers = { "xi-api-key": self.api_key, "Accept": "audio/mpeg", "Content-Type": "application/json" } payload = { "text": text, "model_id": self.model, "voice_settings": { "stability": 0.7, "similarity_boost": 0.8 } } try: response = requests.post(url, headers=headers, json=payload) if response.status_code == 200: return response.content # audio bytes else: print(f"[Voiceover Error] HTTP {response.status_code}: {response.text}") return None except requests.exceptions.RequestException as e: print(f"[Voiceover Exception] {e}") return None