Spaces:
Runtime error
Runtime error
| from fastapi import FastAPI, File, UploadFile | |
| from fastapi.middleware.cors import CORSMiddleware | |
| from pydantic import BaseModel | |
| from transformers import pipeline | |
| import uvicorn | |
| import tempfile | |
| # Initialize FastAPI | |
| app = FastAPI() | |
| # Enable CORS for all origins (so Render or any client can access it) | |
| app.add_middleware( | |
| CORSMiddleware, | |
| allow_origins=["*"], | |
| allow_credentials=True, | |
| allow_methods=["*"], | |
| allow_headers=["*"], | |
| ) | |
| # Load the pretrained speech emotion recognition pipeline | |
| emotion_pipeline = pipeline( | |
| "audio-classification", | |
| model="ehcalabres/wav2vec2-lg-xlsr-en-speech-emotion-recognition" | |
| ) | |
| # Health check route | |
| def read_root(): | |
| return {"message": "HF Space is live!"} | |
| # Predict route | |
| async def predict_emotion(file: UploadFile = File(...)): | |
| try: | |
| # Save the uploaded audio file to a temporary location | |
| with tempfile.NamedTemporaryFile(delete=False) as tmp: | |
| tmp.write(await file.read()) | |
| tmp_path = tmp.name | |
| # Run emotion prediction | |
| result = emotion_pipeline(tmp_path) | |
| top_emotion = result[0]['label'] | |
| return {"emotion": top_emotion} | |
| except Exception as e: | |
| return {"error": str(e)} | |