stt / app.py
Voxxium's picture
Update app.py
b21eb2d verified
raw
history blame contribute delete
916 Bytes
from fastapi import FastAPI, UploadFile, File
from faster_whisper import WhisperModel
import uvicorn
import tempfile
import shutil
app = FastAPI()
# Modèle SMALL optimisé pour CPU HF
model = WhisperModel(
"base",
device="cpu",
compute_type="int8"
)
@app.post("/transcribe")
async def transcribe(file: UploadFile = File(...)):
# Sauvegarde temporaire du fichier audio
with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp:
shutil.copyfileobj(file.file, tmp)
audio_path = tmp.name
# Transcription
segments, info = model.transcribe(audio_path)
text = "".join([seg.text for seg in segments])
return {
"text": text,
"language": info.language,
"duration": info.duration
}
@app.get("/")
def root():
return {"status": "API Whisper BASE OK"}
if __name__ == "__main__":
uvicorn.run(app, host="0.0.0.0", port=7860)