Elevenlabs / elevenlabs.py
DevsDoCode's picture
Upload 4 files
bdc69a8 verified
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))