Spaces:
Running on Zero
Running on Zero
| from dataclasses import dataclass | |
| import builtins | |
| from hackathon_advisor.asr_runtime import ( | |
| DEFAULT_ASR_MODEL_ID, | |
| NemotronAsrTranscriber, | |
| extract_transcript, | |
| ) | |
| class Hypothesis: | |
| text: str | |
| def test_nemotron_transcriber_status_is_lazy() -> None: | |
| transcriber = NemotronAsrTranscriber() | |
| status = transcriber.status().to_dict() | |
| assert status["backend"] == "nemo-asr" | |
| assert status["model_id"] == DEFAULT_ASR_MODEL_ID | |
| assert status["loaded"] is False | |
| assert status["sample_rate"] == 16_000 | |
| def test_nemotron_transcriber_requires_nemo_asr(monkeypatch) -> None: | |
| real_import = builtins.__import__ | |
| def block_nemo_import(name, *args, **kwargs): | |
| if name == "nemo.collections.asr": | |
| raise ImportError("nemo unavailable") | |
| return real_import(name, *args, **kwargs) | |
| monkeypatch.setattr(builtins, "__import__", block_nemo_import) | |
| transcriber = NemotronAsrTranscriber() | |
| try: | |
| transcriber._ensure_loaded() | |
| except RuntimeError as error: | |
| message = str(error) | |
| assert "NVIDIA NeMo ASR" in message | |
| else: | |
| raise AssertionError("missing NeMo should fail before loading another backend") | |
| def test_extract_transcript_accepts_nemo_output_shapes() -> None: | |
| assert extract_transcript(["A spoken idea."]) == "A spoken idea." | |
| assert extract_transcript([{"text": "A mapped archive."}]) == "A mapped archive." | |
| assert extract_transcript([Hypothesis("A private timeline.")]) == "A private timeline." | |