api-gg / app.py
tudeplom's picture
Update app.py
29bf20c verified
from fastapi import FastAPI, HTTPException
from fastapi.responses import FileResponse
from pydantic import BaseModel
from gtts import gTTS
import os
class AudioRequest(BaseModel):
request_id: str
text: str
language: str
app = FastAPI(
title="Stupid TTS API",
description="A simple API to generate TTS audio using Google's gTTS",
version="1.0.0"
)
@app.get("/")
async def read_root():
return {"message": "Welcome to the Stupid TTS API! Use POST /generate_audio to create audio."}
@app.post("/generate_audio")
async def generate_audio(audio_request: AudioRequest):
if not audio_request.request_id or not audio_request.text or not audio_request.language:
raise HTTPException(status_code=400, detail="All fields (request_id, text, language) are required")
try:
# Dùng /tmp thay vì thư mục audio
output_file = f"/tmp/{audio_request.request_id}.mp3"
# Không cần tạo thư mục vì /tmp đã tồn tại trong container
tts = gTTS(text=audio_request.text, lang=audio_request.language, slow=False)
tts.save(output_file)
return FileResponse(output_file, media_type="audio/mpeg", filename=f"{audio_request.request_id}.mp3")
except Exception as e:
raise HTTPException(status_code=500, detail=f"Error generating audio: {str(e)}")