luna-cry / app.py
Chinnatip Taemkaeo
Add application file
939ef3b
raw
history blame contribute delete
957 Bytes
from fastapi import FastAPI, File, UploadFile
from fastapi.responses import JSONResponse
from transformers import pipeline
import uvicorn
import tempfile
app = FastAPI()
# โหลดโมเดล (ใช้ CPU เท่านั้น)
classifier = pipeline("audio-classification",
model="AmeerHesham/distilhubert-finetuned-baby_cry",
device=-1)
@app.post("/predict")
async def predict_audio(file: UploadFile = File(...)):
try:
contents = await file.read()
with tempfile.NamedTemporaryFile(suffix=".wav", delete=False) as tmp:
tmp.write(contents)
tmp_path = tmp.name
results = classifier(tmp_path)
return JSONResponse(content={"results": results})
except Exception as e:
return JSONResponse(content={"error": str(e)}, status_code=500)
if __name__ == "__main__":
uvicorn.run("app:app", host="0.0.0.0", port=7860, reload=True)