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