File size: 905 Bytes
d4bd31b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | 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") |