Spaces:
Sleeping
Sleeping
| from fastapi import FastAPI, Request | |
| from fastapi.responses import FileResponse | |
| from gtts import gTTS | |
| import os | |
| import uuid | |
| app = FastAPI() | |
| UPLOAD_DIR = "/tmp/audio" | |
| os.makedirs(UPLOAD_DIR, exist_ok=True) | |
| async def echo(request: Request): | |
| data = await request.json() | |
| text = data.get("text", "") | |
| if not text: | |
| return {"error": "No 'text' provided in request."} | |
| # Generate unique filename | |
| filename = f"{uuid.uuid4().hex}.mp3" | |
| filepath = os.path.join(UPLOAD_DIR, filename) | |
| # Generate and save speech | |
| tts = gTTS(text, lang='en') | |
| tts.save(filepath) | |
| # Return the audio file as response | |
| return FileResponse(filepath, media_type="audio/mpeg", filename=filename) | |