File size: 1,324 Bytes
d491544
 
 
d74244d
af2fe4e
 
d491544
 
 
d74244d
 
d491544
1b1d401
d491544
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
af2fe4e
d491544
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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