| 123456789101112131415161718192021222324252627282930313233 |
- from fastapi import FastAPI, UploadFile, File
- from faster_whisper import WhisperModel
- import tempfile
- import os
- app = FastAPI()
- model = WhisperModel(
- "small",
- device="cuda",
- compute_type="float16"
- )
- @app.post("/transcribe")
- async def transcribe(file: UploadFile = File(...)):
- with tempfile.NamedTemporaryFile(delete=False, suffix=".wav") as tmp:
- tmp.write(await file.read())
- tmp_path = tmp.name
- segments, info = model.transcribe(
- tmp_path,
- language="fr",
- vad_filter=True
- )
- os.remove(tmp_path)
- text = " ".join([seg.text for seg in segments])
- return {
- "text": text,
- "language": info.language
- }
|