|
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", filler_count = None) -> dict: |
|
try: |
|
|
|
whisper_model = whisper.load_model(model_size) |
|
|
|
|
|
results = compute_vers_score(file_path, whisper_model, filler_count) |
|
|
|
|
|
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)}") |