docs(adr): ADR-005 — результаты эксперимента с onnx-asr бэкендом

- Зачем:
  - задокументировать результаты сравнения gigaam-v3 vs OpenVINO на CPU.
- Что:
  - таблица скорости по 3 файлам (3-5x ускорение).
  - сравнение качества русской речи с GPU faster-whisper.
  - решение: оставить бэкенд как экспериментальный (--device onnx).
- Проверка:
  - просмотр docs/adr/005-onnx-asr-backend.md.
This commit is contained in:
2026-04-25 22:31:51 +03:00
parent b1cbdc3e0b
commit 53142fd341
+61
View File
@@ -0,0 +1,61 @@
# 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](https://github.com/istupakov/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) | OpenVINO medium (CPU) | Ускорение |
|------|-------|-----------------|----------------------|-----------|
| 10-59-59 | 22:26 | 81с (16.6×) | 265с (5.1×) | **3.3×** |
| Vasya | 45:51 | 95с (29×) | 455с (6×) | **4.8×** |
| 12-02-37 | 1:20:44 | 170с (28.5×) | 779с (6.2×) | **4.6×** |
### Качество (русская речь, файл 12-02-37)
| Модель | Пунктуация | Читаемость | Контекст |
|--------|-----------|-----------|----------|
| GPU f-whisper large-v3 | ✅ | Отлично | ✅ |
| **GigaAM v3 CTC (CPU)** | ❌ | Хорошо | ✅ |
| OpenVINO medium (CPU) | ✅ | Хорошо | ✅ |
GigaAM v3 не расставляет знаки препинания, но контекст разговора полностью сохраняется — пригоден для конспектирования и дальнейшей LLM-обработки. VAD даёт более дробные сегменты (удобнее для навигации). Английскую речь не понимает (модель обучена только на русском).
## Решение
**Оставить onnx-asr как экспериментальный бэкенд.** Доступен через `--device onnx`, не в цепочке авто-детекта.
Модели:
- `gigaam-v3` — по умолчанию для `--device onnx`. Русский, 4.7% WER, 17-29x RTF на CPU.
- `parakeet-v3` — мультиязычный fallback (25 языков, включая русский). 11% WER, 34x RTF.
Обе модели в int8-квантизации (~300 MB, минимальная потеря качества).
## Последствия
- Пользователи CPU получают 3-5x ускорение для русской речи по сравнению с OpenVINO
- Пунктуация отсутствует (GigaAM не обучен её ставить) — приемлемо для конспектирования
- Мультиязычные записи требуют `--model parakeet-v3`
- Бэкенд не в авто-детекте — пользователь должен явно указать `--device onnx`
- В будущем: добавить parakeet-v3 в авто-детект для мультиязыка, рассмотреть Canary для лучшего качества
## Отклонённые альтернативы
| Альтернатива | Почему отклонена |
|---|---|
| NeMo Parakeet напрямую | Требует PyTorch + CUDA, Python ≥ 3.12, ~2 GB зависимостей — слишком тяжело для CLI |
| Замена faster-whisper на onnx-asr | faster-whisper поддерживает 99+ языков и пунктуацию, остаётся лучшим GPU-бэкендом |
| Интеграция в авто-детект | Экспериментальный бэкенд, не хотим сюрпризов у пользователей |