| import whisper |
| import numpy as np |
| from .compute_vers_score import compute_vers_score |
|
|
| def convert_numpy_types(obj): |
| """Convert NumPy types to Python native types for JSON serialization.""" |
| if isinstance(obj, np.integer): |
| return int(obj) |
| elif isinstance(obj, np.floating): |
| return float(obj) |
| elif isinstance(obj, np.ndarray): |
| return obj.tolist() |
| elif isinstance(obj, dict): |
| return {k: convert_numpy_types(v) for k, v in obj.items()} |
| elif isinstance(obj, list): |
| return [convert_numpy_types(i) for i in obj] |
| else: |
| return obj |
|
|
| def main(file_path: str, model_size: str = "base") -> dict: |
| try: |
| |
| whisper_model = whisper.load_model(model_size) |
| |
| |
| results = compute_vers_score(file_path, whisper_model) |
| |
| |
| results = convert_numpy_types(results) |
|
|
| |
| |
| response = { |
| "VERS Score": round(results['VERS'], 2) |
| |
| |
| |
| |
| } |
| |
| return response |
|
|
| except Exception as e: |
| raise RuntimeError(f"Error during analysis: {str(e)}") |