naso / agents /voiceover_agent.py
mgbam's picture
Update agents/voiceover_agent.py
d491544 verified
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