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))