from fastapi import FastAPI, Response from pydantic import BaseModel from kokoro import KPipeline import soundfile as sf import io app = FastAPI() # Initialisation du moteur pour le français (lang_code 'f') pipeline = KPipeline(lang_code='f') # Format de la requête attendue class TTSRequest(BaseModel): input: str voice: str = "fr_f_claire" # Voix française par défaut @app.get("/") def home(): return {"status": "En ligne", "message": "Kokoro TTS Français est prêt !"} @app.post("/v1/audio/speech") async def generate_audio(request: TTSRequest): # Génération de la voix generator = pipeline(request.input, voice=request.voice, speed=1.0) # Récupération et formatage de l'audio for _, _, audio in generator: out = io.BytesIO() sf.write(out, audio, 24000, format='wav') return Response(content=out.getvalue(), media_type="audio/wav")