|
@@ -17,6 +17,7 @@ def env_bool(name: str, default: bool = False) -> bool:
|
|
|
LOG_LEVEL = os.getenv("WHISPER_LOG_LEVEL", "INFO").upper()
|
|
LOG_LEVEL = os.getenv("WHISPER_LOG_LEVEL", "INFO").upper()
|
|
|
VAD_ENABLED = env_bool("WHISPER_VAD", True)
|
|
VAD_ENABLED = env_bool("WHISPER_VAD", True)
|
|
|
MODEL_SIZE = str(os.getenv("MODEL_SIZE", "small").lower())
|
|
MODEL_SIZE = str(os.getenv("MODEL_SIZE", "small").lower())
|
|
|
|
|
+COMPUTE_TYPE = os.getenv("WHISPER_COMPUTE_TYPE", "float32").strip().lower()
|
|
|
MIN_AUDIO_SEC = float(os.getenv("MIN_AUDIO_SEC", "2.0"))
|
|
MIN_AUDIO_SEC = float(os.getenv("MIN_AUDIO_SEC", "2.0"))
|
|
|
MAX_AUDIO_SEC = float(os.getenv("MAX_AUDIO_SEC", "10.0"))
|
|
MAX_AUDIO_SEC = float(os.getenv("MAX_AUDIO_SEC", "10.0"))
|
|
|
|
|
|
|
@@ -32,13 +33,14 @@ logger.setLevel(getattr(logging, LOG_LEVEL, logging.INFO))
|
|
|
|
|
|
|
|
logger.info(f"Log level = {LOG_LEVEL}")
|
|
logger.info(f"Log level = {LOG_LEVEL}")
|
|
|
logger.info(f"VAD enabled = {VAD_ENABLED}")
|
|
logger.info(f"VAD enabled = {VAD_ENABLED}")
|
|
|
|
|
+logger.info("Model = %s, compute type = %s", MODEL_SIZE, COMPUTE_TYPE)
|
|
|
|
|
|
|
|
app = FastAPI()
|
|
app = FastAPI()
|
|
|
|
|
|
|
|
# =========================
|
|
# =========================
|
|
|
# Whisper model (shared)
|
|
# Whisper model (shared)
|
|
|
# =========================
|
|
# =========================
|
|
|
-model = WhisperModel(MODEL_SIZE, device="cuda", compute_type="float32")
|
|
|
|
|
|
|
+model = WhisperModel(MODEL_SIZE, device="cuda", compute_type=COMPUTE_TYPE)
|
|
|
# Vérifier les kernels CUDA avant de déclarer le service prêt.
|
|
# Vérifier les kernels CUDA avant de déclarer le service prêt.
|
|
|
list(model.transcribe(np.zeros(16000, dtype=np.float32), language="fr", beam_size=1)[0])
|
|
list(model.transcribe(np.zeros(16000, dtype=np.float32), language="fr", beam_size=1)[0])
|
|
|
model_lock = Lock()
|
|
model_lock = Lock()
|
|
@@ -54,7 +56,7 @@ def transcribe_audio(audio):
|
|
|
|
|
|
|
|
@app.get("/healthz")
|
|
@app.get("/healthz")
|
|
|
def healthz():
|
|
def healthz():
|
|
|
- return {"status": "ready", "model": MODEL_SIZE}
|
|
|
|
|
|
|
+ return {"status": "ready", "model": MODEL_SIZE, "compute_type": COMPUTE_TYPE}
|
|
|
|
|
|
|
|
# =========================
|
|
# =========================
|
|
|
# REST API (Swagger / tests)
|
|
# REST API (Swagger / tests)
|