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")