Files
local-transcriber/docs/adr/005-onnx-asr-backend.md
T
ddadmin 53142fd341 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.
2026-04-25 22:31:51 +03:00

62 lines
4.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-бэкендом |
| Интеграция в авто-детект | Экспериментальный бэкенд, не хотим сюрпризов у пользователей |