api-gg / app.py
tudeplom's picture
Update app.py
29bf20c verified
raw
history blame
1.34 kB
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)}")