File size: 2,208 Bytes
ab709a8
 
bdc69a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ab709a8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
bdc69a8
 
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
41
42
43
44
45
46
47
48
49
50
51
import requests

# Voice mapping dictionary
VOICE_MAPPING = {
    "charlottee": "XB0fDUnXU5powFXDhCwa",
    "daniel": "onwK4e9ZLuTAKqWW03F9",
    "callum": "N2lVS1w4EtoT3dr4eOWO",
    "charlie": "IKne3meq5aSn9XLyUdCD",
    "clyde": "2EiwWnXFnvU5JabPnv8n",
    "dave": "CYw3kZ02Hs0563khs1Fj",
    "emily": "LcfcDJNUP1GQjkzn1xUU",
    "ethan": "g5CIjZEefAph4nQFvHAz",
    "fin": "D38z5RcWu1voky8WS1ja",
    "freya": "jsCqWAovK2LkecY7zXl4",
    "gigi": "jBpfuIE2acCO8z3wKNLl",
    "giovanni": "zcAOhNBS3c14rBihAFp1",
    "glinda": "z9fAnlkpzviPz146aGWa",
    "grace": "oWAxZDx7w5VEj9dCyTzz",
    "harry": "SOYHLrjzK2X1ezoPC6cr",
    "james": "ZQe5CZNOzWyzPSCn5a3c",
    "jeremy": "bVMeCyTHy58xNoL34h3p"
}

def generate_speech(voice, input_text, model="eleven_multilingual_v2"):
    # Convert voice name to voice ID if necessary
    voice_id = VOICE_MAPPING.get(voice.lower(), voice)

    url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}?allow_unauthenticated=1"
    headers = {
        "Content-Type": "application/json"
    }
    data = {
        "text": input_text,
        "model_id": model,
    }

    response = requests.post(url, json=data, headers=headers)
    
    if response.status_code == 200:
        return response.content
    else:
        print(f"Failed to generate speech: {response.status_code}, {response.text}")
        return [response.status_code, response.text]

if __name__ == "__main__":
    text = """हमारा भारत एक विविधताओं से भरा देश है।

              यहाँ कई भाषाएँ, संस्कृतियाँ और परंपराएँ एक साथ फलती-फूलती हैं।

              प्रकृति ने भी इस देश को अपार सुंदरता से सजाया है।

              पहाड़, नदियाँ, समुद्र और हरे-भरे जंगल, सभी इसकी शोभा बढ़ाते हैं।"""
    voice = "charlottee"  # You can now use the voice name instead of the ID
    print(generate_speech(voice, text))