| from fastapi import FastAPI, Response |
| from pydantic import BaseModel |
| from kokoro import KPipeline |
| import soundfile as sf |
| import io |
|
|
| app = FastAPI() |
|
|
| |
| pipeline = KPipeline(lang_code='f') |
|
|
| |
| class TTSRequest(BaseModel): |
| input: str |
| voice: str = "fr_f_claire" |
|
|
| @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): |
| |
| generator = pipeline(request.input, voice=request.voice, speed=1.0) |
| |
| |
| for _, _, audio in generator: |
| out = io.BytesIO() |
| sf.write(out, audio, 24000, format='wav') |
| return Response(content=out.getvalue(), media_type="audio/wav") |