#!/usr/bin/env python3 """Smoke-test an exported OpenVINO GenAI Whisper model directory. Example: python scripts/validate_whisper_genai.py models/whisper-small-int8-new --device CPU """ from __future__ import annotations import argparse import sys from pathlib import Path def main() -> int: ap = argparse.ArgumentParser() ap.add_argument("model_dir", type=Path, help="Directory with openvino_* IR files") ap.add_argument("--device", default="CPU", help="OpenVINO device") ns = ap.parse_args() d = ns.model_dir.resolve() if not d.is_dir(): print(f"Not a directory: {d}", file=sys.stderr) return 1 try: import numpy as np import openvino_genai as ov_genai except ImportError as e: print("Install openvino-genai:", e, file=sys.stderr) return 1 samples = np.zeros(16000, dtype=np.float32) try: pipe = ov_genai.WhisperPipeline(str(d), ns.device) out = pipe.generate(samples) if hasattr(out, "text"): text = out.text elif isinstance(out, str): text = out else: text = str(out) print("generate() ok, prefix:", ascii(text[:200])) except Exception as e: print("WhisperPipeline failed:", e, file=sys.stderr) return 1 return 0 if __name__ == "__main__": raise SystemExit(main())