Sherpa GigaAM v3 на десктопе: как русский ASR работает локально

Подробный технический разбор Sherpa GigaAM v3 — модели для локального распознавания русской речи на CPU. Чем отличается от Whisper, какая скорость, как встроить в свой workflow.

GigaAM — это семейство моделей для распознавания русской речи от Сбера, выпущенных в open source в 2024 году. Самая свежая версия GigaAM v3 переконвертирована для Sherpa-ONNX и работает локально на CPU без GPU за ~150 мс на 5-секундной фразе. Это та же скорость, что у iPhone Dictation, но без облака.

В этой статье — что такое GigaAM, чем она отличается от Whisper, как она работает на обычном десктопе, и где её взять.

Что такое GigaAM v3 от Сбера

GigaAM (Giga Acoustic Model) — это акустическая модель, основанная на архитектуре Conformer. Её обучили на тысячах часов русской речи: радиовещание, аудиокниги, разговорные диалоги, телефонные звонки. Цель — модель, которая хорошо понимает разнообразный русский, включая разговорный, диалектный, с шумами фоном.

Версии:

  • GigaAM v1 (2023): первая версия, обученная на ~7 000 часов
  • GigaAM v2 (2024): улучшенная архитектура и расширенный датасет, ~15 000 часов
  • GigaAM v3 (конец 2024): текущая версия, ~30 000 часов, оптимизированная для streaming-режима

Все версии открыты и лежат на HuggingFace под пермиссивной лицензией: salute-developers/GigaAM.

В отличие от обычного Conformer-ASR, GigaAM использует CTC-лосс плюс RNN-T декодер (так называемый hybrid-CTC/RNN-T). Это позволяет одновременно работать в streaming-режиме (распознавание начинается до конца фразы) и сохранять высокое качество финального результата.

Качество на стандартных бенчмарках русской речи (RuSpeech, GolosSet): WER около 5-7% на чистой студийной речи и 12-15% на телефонных звонках с шумом. Для сравнения, Whisper Large-v3 даёт WER около 6-8% на той же чистой речи на русском.

Чем отличается от Whisper

OpenAI Whisper — самая известная open-source модель распознавания речи, обученная на 680 000 часов многоязычных аудио. Универсальная: один файл модели поддерживает 99 языков.

Различия с GigaAM v3 для русского:

Архитектура: Whisper — это Transformer encoder-decoder, обрабатывает 30-секундные окна целиком. GigaAM — Conformer streaming, обрабатывает аудио чанками по 200-500 мс по мере поступления.

Скорость на CPU:

  • Whisper Tiny: ~0.3 сек на 30-сек фразе
  • Whisper Base: ~0.5 сек на 30-сек
  • Whisper Small: ~1 сек на 5-сек
  • Whisper Medium: 3-5 сек на 5-сек (без GPU)
  • Whisper Large-v3: 7+ сек на 5-сек (без GPU)
  • GigaAM v3: ~150 мс на 5-сек (CPU без GPU)

GigaAM в 30-50 раз быстрее Whisper Medium на том же CPU. Причина — streaming-архитектура и оптимизация именно под русский (Whisper тратит часть compute на “понять, что это русский”).

Качество: на русском GigaAM v3 сопоставим с Whisper Medium и немного хуже Whisper Large-v3. На разговорной речи (с акцентами, шумами) GigaAM иногда лучше Whisper Medium — потому что он больше тренировался на разговорном русском.

Размер: GigaAM v3 занимает ~320 МБ. Whisper Medium — 1.5 ГБ, Large-v3 — 3 ГБ.

Языки: GigaAM — только русский. Whisper — 99 языков.

Если тебе нужен только русский — GigaAM v3 в большинстве случаев лучший выбор: быстрее в десятки раз, занимает в 5 раз меньше места, качество сопоставимое.

Скорость на CPU без GPU

Конкретные замеры на разном железе (на 5-секундной фразе на чистом русском):

CPUВремя GigaAM v3
Intel Core i3-3220 (2013)~250 мс
Intel Core i5-8250U (ноутбук 2018)~180 мс
AMD Ryzen 5 5600X~140 мс
Intel Core i7-12700~150 мс
Apple M1 (Rosetta 2)~200 мс

Тяжёлый CPU не даёт пропорционального ускорения — GigaAM упирается в фиксированную часть pipeline (feature extraction, post-processing). На обычном современном ноутбуке без GPU модель спокойно справляется за 150-200 мс.

RAM: модель занимает ~400 МБ при загрузке. Базово программа в фоне ест ~30 МБ, после первой диктовки — 430 МБ из-за кеширования модели.

Энергопотребление: на ноутбуке от батареи — пик ~10-30% одного ядра CPU на 200 мс при каждой диктовке. За час обычной работы (50-100 диктовок) — менее 1% разрядки. На холостом ходу программа в трее — 0% CPU.

Где скачать модель легально

GigaAM v3 в формате Sherpa-ONNX:

  • Github: github.com/k2-fsa/sherpa-onnx
  • HuggingFace оригинал: salute-developers/GigaAM (нужна конвертация в ONNX)
  • HuggingFace ONNX-готовые модели: ищи sherpa-onnx-streaming-zipformer-ru-gigaam и подобные

Размер ZIP — около 320 МБ. SHA-256 публикуется на HuggingFace, чтобы можно было сверить, что ты скачал именно ту модель, что планировал.

Лицензия GigaAM — Apache 2.0 (позволяет коммерческое использование при сохранении атрибуции).

Как встроить в свой workflow (или взять готовое решение)

Два варианта.

Вариант 1: использовать готовое решение — программу, которая уже встроила GigaAM v3 и предоставляет UI для голосового ввода. Это AuroraWhisp: скачал .exe, запустил, диктуешь хоткеем в любое окно. Никакого кода писать не нужно.

Вариант 2: интегрировать в свой код:

# Pseudocode для Python
from sherpa_onnx import OnlineRecognizer

recognizer = OnlineRecognizer.from_paths(
    encoder="encoder.onnx",
    decoder="decoder.onnx",
    joiner="joiner.onnx",
    tokens="tokens.txt",
    num_threads=4,
)

stream = recognizer.create_stream()

# Подаёшь PCM-аудио чанками по 100-200 мс
while audio_chunk := microphone.read():
    stream.accept_waveform(sample_rate=16000, waveform=audio_chunk)
    if recognizer.is_ready(stream):
        recognizer.decode_stream(stream)
        partial_text = recognizer.get_result(stream)
        print(partial_text)

# В конце фразы — финальный текст
recognizer.finalize_stream(stream)
final_text = recognizer.get_result(stream)

Sherpa-ONNX даёт похожие API на C++, Java, Kotlin, Swift, JavaScript. Можно встроить распознавание в десктопное приложение, мобильное, серверное (обработка батча файлов), браузерное (через WebAssembly).

Лимиты при self-hosting:

  • Нет голосового UI «из коробки» — нужно делать самому (виджет, хоткей, вставка текста в активное окно). Это 2-4 недели работы для опытного разработчика
  • Нет автоматических обновлений модели — придётся следить за релизами и обновлять самому
  • Нет коммерческой поддержки — open-source комьюнити, отвечают по мере возможности

Для большинства задач разумнее использовать готовое решение (AuroraWhisp, WhispeRu или платный SaaS для серверной обработки). Self-hosting Sherpa имеет смысл только если у тебя специфические требования: интеграция в свой продукт, изоляция от внешних сервисов на корпоративном уровне, кастомное дообучение модели на твоих данных.


Связанное:

Голос быстрее клавиатуры. Попробуй.

Есть бесплатная версия