Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
| """ | |
| Model family ids and lazy mapping to backend builders (heavy imports on first eval only). | |
| """ | |
| from __future__ import annotations | |
| from collections.abc import Callable | |
| from family_registry import ( | |
| DROPDOWN_CHOICES, | |
| FAMILY_IDS, | |
| FAMILY_META, | |
| default_family_id, | |
| normalize_family_id, | |
| resolve_label, | |
| ) | |
| __all__ = [ | |
| "DROPDOWN_CHOICES", | |
| "FAMILY_IDS", | |
| "FAMILY_META", | |
| "build_transcriber", | |
| "default_family_id", | |
| "normalize_family_id", | |
| "resolve_label", | |
| ] | |
| def build_transcriber( | |
| family_id: str, | |
| model_id: str, | |
| device_str: str, | |
| device_int: int, | |
| ) -> tuple[Callable[..., str], Callable[[], None]]: | |
| from family_registry import _FAMILY_ALIASES | |
| from . import ( | |
| auto, | |
| granite_speech, | |
| speechbrain_asr, | |
| transformers_ctc, | |
| transformers_pipeline, | |
| universal, | |
| ) | |
| from .family_resolve import resolve_auto_family | |
| fid = resolve_auto_family(model_id, _FAMILY_ALIASES.get(family_id, family_id)) | |
| if fid == "auto": | |
| return auto.build_transcriber(model_id, device_str, device_int) | |
| if fid == "transformers_pipeline": | |
| return transformers_pipeline.build_transcriber(model_id, device_int) | |
| if fid == "universal": | |
| return universal.build_transcriber(model_id, device_str) | |
| if fid == "granite_speech": | |
| return granite_speech.build_transcriber(model_id, device_str) | |
| if fid == "transformers_ctc": | |
| return transformers_ctc.build_transcriber(model_id, device_str) | |
| if fid == "speechbrain": | |
| return speechbrain_asr.build_transcriber(model_id, device_str) | |
| raise ValueError(f"Unknown model family: {family_id!r}. Choose one of {FAMILY_IDS}.") | |