- Зачем:
- при smoke-тесте выявлены расхождения между onnx-asr API и мок-тестами.
- Что:
- убран deprecated cpu_preprocessing из load_model.
- sample_rate передан как keyword-аргумент в recognize().
- исправлены имена полей SegmentResult: start_ts→start, end_ts→end.
- добавлен device "onnx" в DEVICE_DEFAULTS и _VALID_DEVICES.
- Проверка:
- uv run pytest -q (172 passed).
- uv run transcribe file.mp4 --device onnx --model gigaam-v3.
- Зачем:
- Основной метод бэкенда — транскрипция аудиофайла в сегменты с временными метками.
- Что:
- метод transcribe декодирует аудио через faster_whisper.decode_audio, затем вызывает model.recognize() с VAD-сегментацией.
- каждый VAD-сегмент преобразуется в проектную структуру Segment.
- поддержка колбэков on_segment, on_status.
- написаны 4 теста: сбор сегментов, вызов on_segment, передача языка, обработка пустого аудио.
- Проверка:
- uv run pytest tests/test_onnx_asr.py -v (14 passed)
- Зачем:
- onnx-asr модель должна создаваться с квантизацией и VAD для разбивки аудио на сегменты.
- Что:
- метод create_model вызывает onnx_asr.load_model с квантизацией и cpu_preprocessing=True.
- подгружается Silero VAD, прикрепляется к модели через with_vad.
- написаны 3 теста: проверка аргументов load_model, загрузка VAD, передача fp16.
- Проверка:
- uv run pytest tests/test_onnx_asr.py -v
- Зачем:
- Бэкенд должен резолвить алиасы моделей и сохранять compute_type для дальнейшего использования.
- Что:
- добавлен конструктор __init__ с полями actual_compute_type, _resolved_model_id, _vad.
- метод ensure_model_available валидирует алиас и возвращает идентификатор модели onnx-asr.
- написаны 3 теста на резолвинг и сохранение compute_type.
- Проверка:
- uv run pytest tests/test_onnx_asr.py -v
- Зачем:
- onnx-asr бэкенд должен распознавать короткие алиасы (gigaam-v3, parakeet-v3) и raw-имена (nemo-canary-1b-v2).
- Что:
- создан файл backends/onnx_asr.py с MODEL_ALIASES и классом OnnxAsrBackend.
- метод _resolve_model: преобразует алиасы, пропускает raw-имена, выдаёт ValueError для неизвестных.
- написаны 4 теста на разрешение алиасов.
- Проверка:
- uv run pytest tests/test_onnx_asr.py::TestModelAliases -v