import os import requests from dotenv import load_dotenv load_dotenv() # HIER IST DER FIX: Die Funktion nimmt jetzt das 3. Argument (voice_id) an! def elevenlabs_gen(text: str, output_wav_pth: str, voice_id: str): # Hol dir den API-Key aus deiner .env Datei api_key = os.getenv("ELEVENLABS_API_KEY") # URL nutzt jetzt die dynamische voice_id! url = f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}" headers = { "Accept": "audio/mpeg", "Content-Type": "application/json", "xi-api-key": api_key } data = { "text": text, "model_id": "eleven_v3", # Oder "eleven_turbo_v2_5" für weniger Latenz "voice_settings": { "stability": 0.5, "similarity_boost": 0.75 } } try: response = requests.post(url, json=data, headers=headers) if response.status_code == 200: # ElevenLabs schickt Audio, wir speichern es direkt auf die Platte with open(output_wav_pth, 'wb') as f: f.write(response.content) print(f"[ElevenLabs] Audio erfolgreich generiert -> {output_wav_pth}") else: print(f"\n[ElevenLabs] API FEHLER {response.status_code}: {response.text}\n") except Exception as e: print(f"\n[ElevenLabs] INTERNER FEHLER: {e}\n")