testcppp / app.py
Charan5775's picture
Update app.py
d01ebbb verified
raw
history blame
1.02 kB
from fastapi import FastAPI, UploadFile, File
from pywhispercpp.model import Model
import uvicorn
import tempfile
import os
from time import time
app = FastAPI(title="pyWhisperCPP API")
# Load model ONCE at startup
#MODEL_PATH = "ggml-tiny.en.bin"
#model = Model(MODEL_PATH)
#model = Model('base.en')
model = Model("base.en-q5_1")
@app.get("/")
def root():
return {"status": "Whisper.cpp API is running!"}
@app.post("/transcribe")
async def transcribe(file: UploadFile = File(...)):
# Save uploaded audio
with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as temp:
temp.write(await file.read())
temp.flush()
audio_path = temp.name
start = time()
segments = model.transcribe(audio_path)
text = " ".join([seg.text for seg in segments])
elapsed = round(time() - start, 3)
os.remove(audio_path)
return {
"text": text,
"processing_time_seconds": elapsed
}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=7860)