Files
JuYou/API/deploy/download_whisper_model.py
T
2026-08-25 17:59:42 +08:00

31 lines
1013 B
Python

from __future__ import annotations
from pathlib import Path
from faster_whisper.utils import download_model
MODEL_SIZE = "small"
MODEL_DIR = Path(__file__).resolve().parent.parent / "models" / f"faster-whisper-{MODEL_SIZE}"
REQUIRED_FILES = ("config.json", "model.bin", "tokenizer.json", "vocabulary.txt")
def main() -> int:
missing = [name for name in REQUIRED_FILES if not (MODEL_DIR / name).is_file()]
if not missing:
print(f"Whisper model already exists: {MODEL_DIR}")
return 0
MODEL_DIR.mkdir(parents=True, exist_ok=True)
print(f"Downloading faster-whisper-{MODEL_SIZE} to {MODEL_DIR} ...")
download_model(MODEL_SIZE, output_dir=str(MODEL_DIR))
missing = [name for name in REQUIRED_FILES if not (MODEL_DIR / name).is_file()]
if missing:
raise RuntimeError(f"Whisper model download is incomplete; missing: {', '.join(missing)}")
print(f"Whisper model is ready: {MODEL_DIR}")
return 0
if __name__ == "__main__":
raise SystemExit(main())