from fastapi import FastAPI, Response, Request from fastapi.middleware.cors import CORSMiddleware from gtts import gTTS import io import uvicorn app = FastAPI() # Configuration CORS (Pour autoriser votre site) app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) @app.get("/") def home(): return "API Google TTS (gTTS) est en ligne." @app.api_route("/tts", methods=["GET", "POST"]) async def tts(request: Request): try: # 1. Récupération des données (Compatible GET et POST) if request.method == "GET": params = request.query_params text = params.get("text") lang = params.get("lang", "fr") # Par défaut Français else: data = await request.json() text = data.get("text") lang = data.get("lang", "fr") if not text: return Response("Texte manquant", status_code=400) # 2. Génération Google # slow=False pour une vitesse de lecture normale mp3_fp = io.BytesIO() tts = gTTS(text=text, lang=lang, slow=False) # Écriture dans la mémoire tts.write_to_fp(mp3_fp) mp3_fp.seek(0) # 3. Envoi du fichier MP3 return Response(content=mp3_fp.read(), media_type="audio/mpeg") except Exception as e: return Response(content=str(e), status_code=500) if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=7860)