- Зачем: - пользователь должен знать о --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.
4.8 KiB
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-бэкендом |
| Интеграция в авто-детект | Экспериментальный бэкенд, не хотим сюрпризов у пользователей |