h-rand commited on
Commit
cdc2ff7
·
verified ·
1 Parent(s): b111d89

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +22 -18
app.py CHANGED
@@ -1,11 +1,10 @@
1
- from fastapi import FastAPI, Response
2
  from fastapi.middleware.cors import CORSMiddleware
3
  import edge_tts
4
- import io
5
 
6
  app = FastAPI()
7
 
8
- # Autoriser votre site à accéder à l'API (CORS)
9
  app.add_middleware(
10
  CORSMiddleware,
11
  allow_origins=["*"],
@@ -16,31 +15,36 @@ app.add_middleware(
16
 
17
  @app.get("/")
18
  def home():
19
- return "Edge TTS API is running! Use /tts?text=...&voice=..."
20
-
21
- @app.get("/tts")
22
- async def tts(text: str, voice: str = "fr-FR-VivienneMultilingualNeural"):
23
- """
24
- Génère de l'audio via Microsoft Edge TTS.
25
- Voix Malgache: mg-MG-FaniryNeural
26
- Voix Française: fr-FR-VivienneMultilingualNeural ou fr-FR-RemyMultilingualNeural
27
- """
28
  try:
 
 
 
 
 
 
 
 
 
 
 
 
 
29
  communicate = edge_tts.Communicate(text, voice)
30
  audio_data = b""
31
-
32
- # On récupère les morceaux d'audio
33
  async for chunk in communicate.stream():
34
  if chunk["type"] == "audio":
35
  audio_data += chunk["data"]
36
-
37
- # On renvoie le MP3 directement
38
  return Response(content=audio_data, media_type="audio/mpeg")
39
 
40
  except Exception as e:
41
  return Response(content=str(e), status_code=500)
42
 
43
- # Lancement du serveur
44
  if __name__ == "__main__":
45
- import uvicorn
46
  uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
+ from fastapi import FastAPI, Response, Request
2
  from fastapi.middleware.cors import CORSMiddleware
3
  import edge_tts
4
+ import uvicorn
5
 
6
  app = FastAPI()
7
 
 
8
  app.add_middleware(
9
  CORSMiddleware,
10
  allow_origins=["*"],
 
15
 
16
  @app.get("/")
17
  def home():
18
+ return "Edge TTS Ready"
19
+
20
+ # ✅ MODIFICATION ICI : On accepte GET et POST
21
+ @app.api_route("/tts", methods=["GET", "POST"])
22
+ async def tts(request: Request):
 
 
 
 
23
  try:
24
+ # On gère les paramètres qu'ils viennent de l'URL (GET) ou du Body (POST)
25
+ if request.method == "GET":
26
+ params = request.query_params
27
+ text = params.get("text")
28
+ voice = params.get("voice", "fr-FR-VivienneMultilingualNeural")
29
+ else:
30
+ data = await request.json()
31
+ text = data.get("text")
32
+ voice = data.get("voice", "fr-FR-VivienneMultilingualNeural")
33
+
34
+ if not text:
35
+ return Response("Texte manquant", status_code=400)
36
+
37
  communicate = edge_tts.Communicate(text, voice)
38
  audio_data = b""
39
+
 
40
  async for chunk in communicate.stream():
41
  if chunk["type"] == "audio":
42
  audio_data += chunk["data"]
43
+
 
44
  return Response(content=audio_data, media_type="audio/mpeg")
45
 
46
  except Exception as e:
47
  return Response(content=str(e), status_code=500)
48
 
 
49
  if __name__ == "__main__":
 
50
  uvicorn.run(app, host="0.0.0.0", port=7860)