from flask import Flask, request, jsonify from faster_whisper import WhisperModel import tempfile import os app = Flask(__name__) # model: tiny | base | small | medium model = WhisperModel("base", compute_type="int8") @app.route("/transcribe", methods=["POST"]) def transcribe(): if "audio" not in request.files: return jsonify({"error": "No audio file"}), 400 file = request.files["audio"] tmp = tempfile.NamedTemporaryFile(delete=False) file.save(tmp.name) segments, info = model.transcribe(tmp.name) text = " ".join([segment.text for segment in segments]) os.unlink(tmp.name) return jsonify({ "text": text, "duration": info.duration }) app.run(host="0.0.0.0", port=8000)