"""Exemple pédagogique Claim26. Une requête consomme des crédits API ElevenLabs.
Usage : pip install elevenlabs python-dotenv ; créer un fichier .env local ; python exemple-elevenlabs-voix.py
"""
import os
from pathlib import Path
from dotenv import load_dotenv
from elevenlabs.client import ElevenLabs

load_dotenv()
api_key = os.environ.get("ELEVENLABS_API_KEY")
if not api_key:
    raise SystemExit("Définir ELEVENLABS_API_KEY dans votre environnement ou .env local")

client = ElevenLabs(api_key=api_key)
# Remplacez voice_id par une voix que votre compte est autorisé à employer.
stream = client.text_to_speech.convert(
    voice_id="JBFqnCBsd6RMkjVDRZzb",
    model_id="eleven_multilingual_v2",
    text="Bonjour, bienvenue dans la démonstration audio de notre site.",
    output_format="mp3_44100_128",
)
output = Path("demo-elevenlabs.mp3")
with output.open("wb") as f:
    for chunk in stream:
        if chunk:
            f.write(chunk)
print(f"Fichier créé : {output.resolve()}")