Files
local-transcriber/docs/adr/005-onnx-asr-backend.md
T
ddadmin 854bf55145 docs: задокументировать onnx-бэкенд в README, CLI-help и ADR-005
- Зачем:
  - пользователь должен знать о --device onnx и поддерживаемых моделях.
- Что:
  - CLI help: добавлен onnx в список устройств.
  - README: секция примеров, таблица платформ, device-aware дефолты.
  - ADR-005: результаты parakeet-v3 --language ru, уточнённые рекомендации.
- Проверка:
  - uv run pytest -q (172 passed).
  - uv run transcribe --help показывает onnx.
2026-04-25 23:13:41 +03:00

4.8 KiB
Raw Blame History

ADR-005: onnx-asr бэкенд (Parakeet / GigaAM) — эксперимент и решение

Статус: Принято Дата: 2026-04-25

Контекст

Целевая аудитория local-transcriber — пользователи с Intel iGPU / CPU, без дискретного NVIDIA GPU. Существующие CPU-бэкенды (faster-whisper, OpenVINO) дают 0.5-6x RTF для средних моделей — транскрипция часовой записи занимает 10-120 минут.

onnx-asr — легковесная обёртка (onnxruntime + numpy) над ONNX-моделями Parakeet, GigaAM, FastConformer и Canary. Заявляет 30-90x RTF на CPU при сравнимом с Whisper качестве для русского языка.

Эксперимент

Проведено сравнение на трёх реальных русскоязычных записях встреч (22-81 мин, mp4), ноутбук с Intel i7-11800H (CPU-only).

Сравнивались: onnx-asr GigaAM v3 CTC (int8, CPU) против OpenVINO Whisper medium (int8, CPU). Эталон — faster-whisper large-v3 на RTX 3060 (GPU).

Результаты

Файл Длит. gigaam-v3 (CPU) parakeet-v3 --ru (CPU) OpenVINO medium (CPU)
10-59-59 22:26 81с (16.6×) 116с (11.6×) 265с (5.1×)
Vasya 45:51 95с (29×) 138с (20×) 455с (6×)
12-02-37 1:20:44 170с (28.5×) 251с (19.3×) 779с (6.2×)

Качество (русская речь, файл 12-02-37)

Модель Пунктуация Читаемость Контекст Особенности
GPU f-whisper large-v3 Отлично
GigaAM v3 CTC (CPU) Хорошо Самый быстрый, без пунктуации
Parakeet v3 --ru (CPU) Хорошо Пунктуация, <unk> токены, ловит англ. вкрапления
OpenVINO medium (CPU) Хорошо Самый медленный

GigaAM v3 не расставляет знаки препинания, но контекст разговора полностью сохраняется — пригоден для конспектирования и дальнейшей LLM-обработки. VAD даёт более дробные сегменты (удобнее для навигации). Английскую речь не понимает (модель обучена только на русском).

Решение

Оставить onnx-asr как экспериментальный бэкенд. Доступен через --device onnx, не в цепочке авто-детекта.

Модели:

  • gigaam-v3 — по умолчанию для --device onnx. Русский, 4.7% WER, 17-29x RTF на CPU. Без пунктуации.
  • parakeet-v3 — мультиязычный (25 языков). 11% WER, 12-20x RTF. Для русского рекомендуется --language ru. С пунктуацией, но возможны <unk> токены.

Обе модели в int8-квантизации (~300 MB, минимальная потеря качества).

Последствия

  • Пользователи CPU получают 3-5x ускорение для русской речи по сравнению с OpenVINO
  • gigaam-v3: максимальная скорость, без пунктуации — пригоден для конспектирования
  • parakeet-v3: с пунктуацией, медленнее gigaam на 40%, для русского нужен явный --language ru
  • Мультиязычные записи требуют --model parakeet-v3
  • Бэкенд не в авто-детекте — пользователь должен явно указать --device onnx
  • В будущем: добавить onnx в авто-детект, рассмотреть Canary для лучшего качества

Отклонённые альтернативы

Альтернатива Почему отклонена
NeMo Parakeet напрямую Требует PyTorch + CUDA, Python ≥ 3.12, ~2 GB зависимостей — слишком тяжело для CLI
Замена faster-whisper на onnx-asr faster-whisper поддерживает 99+ языков и пунктуацию, остаётся лучшим GPU-бэкендом
Интеграция в авто-детект Экспериментальный бэкенд, не хотим сюрпризов у пользователей