File size: 694 Bytes
675ef18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# genesis/utils/text_to_speech.py
import os
import requests

ELEVEN_API_KEY = os.getenv("ELEVEN_LABS_API_KEY")

def elevenlabs_tts(text, voice_id="Bella", output_file="output.mp3"):
    """Convert text to speech using ElevenLabs."""
    url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}"
    headers = {
        "xi-api-key": ELEVEN_API_KEY,
        "Content-Type": "application/json"
    }
    payload = {"text": text, "voice_settings": {"stability": 0.75, "similarity_boost": 0.75}}

    response = requests.post(url, json=payload, headers=headers)
    response.raise_for_status()

    with open(output_file, "wb") as f:
        f.write(response.content)

    return output_file