Исследование

В нашем тесте лучший движок распознавания русской речи оказался открытым и локальным

Дмитрий Бороздин · 5 июля 2026 · обновлено 29 июля 2026

WER — метрика ошибок распознавания речи. По ссылке доступны определения WER, micro-WER, медианы WER и среднего WER.

Результаты на общей выборке

Рейтинг: 8 моделей и 2 режима распознавания

Корпус содержит 491 запись спонтанной русской речи — около трёх часов аудио. В рейтинге 8 моделей и 2 режима обработки. Sber SaluteSpeech, Yandex и Deepgram проверены и пакетно, и в потоке, поэтому в таблице 11 конфигураций. В сопоставимый расчёт вошли 488 записей, общих для всех конфигураций. Меньше WER — лучше.

Локальная GigaAM с открытыми весами обошла все облачные решения: 7,46% micro-WER и 5,13% медианы WER. На этом корпусе её micro-WER на 12,4% ниже ближайшего результата — OpenAI gpt-realtime-whisper с 8,52%.

8 моделейи 2 режима обработки
491 / 488в корпусе / в общей базе
≈3 чспонтанной русской речи
#Движокmicro-WERWER медианаWER среднееРежим
1🇷🇺 GigaAM v37,46%5,13%7,43%пакет/локальный
2🇺🇸 OpenAI gpt-realtime-whisper8,52%6,45%9,11%поток
3🇺🇸 faster-whisper large-v39,78%7,14%9,54%пакет/локальный
4🇺🇸 OpenAI whisper-19,82%7,75%10,12%пакет
5🇺🇸 Deepgram nova-39,90%7,46%10,43%пакет
6🇷🇺 Sber SaluteSpeech (B2B)10,86%9,09%10,86%поток
7🇷🇺 Sber SaluteSpeech (B2B)11,06%9,09%11,12%пакет
8🇷🇺 Yandex SpeechKit v3 (async)11,80%9,09%10,96%пакет
9🇺🇸 Deepgram nova-311,87%9,72%11,85%поток
10🇷🇺 Yandex SpeechKit v313,04%10,87%12,53%поток
11🇷🇺 Nexara18,12%8,30%14,90%пакет

Порядок — по основной метрике micro-WER на общей базе из 488 записей и 20 901 слова в эталонах. Девять конфигураций получили исходные результаты для 491/491 записей, две конфигурации Deepgram — для 489/491; пересечение всех результатов исключает три уникальные записи. Медиана и среднее показаны как дополнительные разрезы.

Кто вошёл в рейтинг. У OpenAI три модели: whisper-1, gpt-realtime-whisper и Whisper large-v3 с открытыми весами, которую мы запустили локально через faster-whisper. У Сбера две модели: GigaAM v3 и SaluteSpeech. Yandex, Deepgram и Nexara занимают ещё по одной позиции. Sber SaluteSpeech, Yandex и Deepgram проверены в двух режимах, поэтому восемь позиций дали 11 конфигураций. Что под капотом у Nexara. В документации сервиса указаны идентификаторы whisper-1 и nexara-ru; по умолчанию используется whisper-1. На 29 июля 2026 года в открытой документации мы не нашли описания архитектуры и базовых весов этих моделей. В сохранённых артефактах нашего прогона параметр model не записан, поэтому в рейтинге Nexara указана как отдельный сервис.

Лучший результат — локальноGigaAM: 5,13% медианы и 7,46% micro-WER.
Лучший облачный и потоковыйOpenAI gpt-realtime-whisper: 8,52% micro-WER — второе место во всём рейтинге.
Лучший потоковый в контуре РФSber: 10,86% micro-WER, впереди потокового Yandex на этом корпусе.

Выбираете ASR для звонков или встреч? Сохраните эту таблицу для шорт-листа или отправьте статью коллеге, который сравнивает облачные и локальные решения.

Как получены эти цифры ↓  ·  Прослушать 491 запись, сравнить эталоны и гипотезы →  ·  Скачать агрегированные результаты →

В июне в одной из локалей RetailCRM распознали более 82 тысяч звонков. В IP-телефонии каналы обычно разделены, а офлайн-встречи проходят с другими микрофонами, шумом и перебиваниями. Для таких условий движок приходится выбирать по собственным замерам.

Исследование началось после того, как в опытной эксплуатации ухудшилось качество транскрипции и диаризации офлайн-разговоров. Я решил сам разобраться, как устроить воспроизводимые прогоны: зафиксировать входные данные, правила обработки и критерии сравнения, а затем повторять расчёт после каждого изменения.

Как руководителю продуктовой SaaS-компании мне важно понимать такие вещи на пальцах и в деталях, чтоб ценить хороший t2m — время выкатки новинок, фильтровать хайп от работающих вещей и поддерживать большие инвестиции в устойчивость и качество наших продуктов.

OpenAI описывает похожий подход к разработке с помощью агентов в материале о harness engineering. В нашем случае «харнесс» — это стенд, который сохраняет входы, ответы, версии обработки и итоговые метрики.

Методика v2: как считаем WER

Метрика — WER (word error rate): отношение суммы замен, пропусков и вставок к числу слов в эталоне. Меньше — лучше: 0,08 означает восемь операций редактирования на 100 эталонных слов.

Основной показатель итогового рейтинга — micro-WER по всему корпусу: сумма всех замен, вставок и пропусков, делённая на сумму слов в эталонах. При фиксированных границах записей он даёт длинным фрагментам вес пропорционально числу слов. Среднее и медиана WER по записям остаются дополнительными разрезами: они показывают соответственно чувствительность к провалам и качество «типичной» записи.

Общая база сравнения. В исходной детерминированной выборке Mozilla Common Voice Spontaneous Speech 3.0 — 491 запись. В итоговый рейтинг входят 488 записей, для которых есть результат каждой из 11 конфигураций восьми моделей: 20 901 слово в эталонах и 176,8 минуты аудио. Все модели оцениваются на одних и тех же записях и одном исходном эталоне.

Итоговый набор результатов собран из основного запуска 24 июля и трёх восстановительных запусков 25 июля для GigaAM, faster-whisper и пакетного Yandex. Во всех случаях использовалась одна детерминированная выборка; уже сохранённые ответы остальных движков повторно не запрашивались. Итоговая таблица — единый офлайн-пересчёт всех гипотез по правилам v2.

Нормализация v2. До общей нормализации только из эталона удаляем корректно закрытые служебные пометки в квадратных скобках; внутри слова части склеиваются, например вело[pause]дорожки превращается в велодорожки. Пометки в гипотезе движка не удаляются. Затем к эталону и гипотезе симметрично применяем Unicode NFKC, нижний регистр, ё→е, запись целых чисел словами и Unicode-токенизацию. Отдельные слова telegram/телеграм и discord/дискорд считаем эквивалентными; это точечные пары, а не общая транслитерация названий. Расстояние считаем алгоритмом Левенштейна по словам.

Для проверки опубликованы 491 аудиозапись с эталонными расшифровками и гипотезами 11 конфигураций восьми моделей, агрегированные результаты и контрольные суммы. Записи и тексты открываются после подтверждения условий на странице набора. Отдельно разобрали, как числа, служебные скобки и два точечных алиаса меняют WER.

Как устроен стенд

Записи мы не начитывали сами: взяли открытые корпуса с эталонными расшифровками. По манифесту с контрольными суммами можно скачать ту же выборку и повторить расчёт. Для каждого корпуса отдельно проверяются происхождение данных, лицензия и дополнительные условия площадки.

На ранних этапах использовались три корпуса: farfield-раздел Golos (СберДевайсы — команды с дальнего микрофона умной колонки), SOVA RuDevices (обращения к устройствам, CC-BY 4.0) и Mozilla Common Voice Spontaneous Speech 3.0, русский (спонтанная разговорная речь, CC0). Итоговый рейтинг построен только на Common Voice Spontaneous. Все записи приводятся к одному формату: WAV, 16 бит, 24 кГц, моно.

Для каждого прогона действуют пять правил:

Первая версия стенда работала с пятью движками через единые переходники; затем мы добавили локальные модели, пакетные режимы российских провайдеров, OpenAI gpt-realtime-whisper и потоковый Deepgram. В итоговом сравнении — 8 моделей и 2 режима обработки; у Sber SaluteSpeech, Yandex и Deepgram проверены оба режима, поэтому в таблице 11 строк. Американские решения нужны для сопоставления, а целевой контур продукта — российские облака и собственная инфраструктура.

Схема стенда замеров
Схема стенда

Всего было четыре замера: от первой проверки стенда на смешанных данных до полного корпуса спонтанной речи. Здесь разобраны замеры №1, №2 и №4, а промежуточный №3 — в статье о выборе речевого корпуса.

ЗамерВыборка
№120 записей: команды, обращения к устройствам, немного спонтанной речи
№260 записей: только спонтанная речь, 10–30 с
№3250 записей: спонтанная речь 10–45 с, ~100 минут аудио
№4весь корпус: 491 запись, 2,4–94,6 с, около 3 часов аудио
Четыре замера — один стенд

Замер №1 — 20 коротких записей: команды и диктовка

Первая сборка стенда: 20 записей из трёх корпусов — 8 команд с дальнего микрофона (Golos, ~3 с), 5 обращений к устройствам (SOVA, ~4 с) и 7 фрагментов спонтанной речи (Common Voice, в среднем 16 с).

ДвижокWER медианаWER среднееВыполнено
🇷🇺 Nexara (пакетный)0,1110,16419/20 (1 превышение времени)
🇷🇺 Sber (потоковый)0,1170,16920/20
🇷🇺 Yandex (потоковый)0,1620,35520/20
🇺🇸 OpenAI whisper-10,1910,15220/20
🇺🇸 Deepgram nova-30,2250,27720/20
Замер №1 — 20 записей

Российские движки впереди по медиане. Но радоваться рано по двум причинам.

Первая — домен. Две трети выборки — короткие команды и начитка, спонтанной речи лишь треть. К звонкам и встречам — где спонтанная связная речь, оговорки, перестройки фразы на ходу — такая смесь имеет мало отношения.

Вторая причина — ошибка в сборщике ответов. В первом прогоне Yandex получил WER около 1,0: потоковый режим отдавал сегмент дважды, сначала как черновик, затем как уточнённый вариант, а сборщик склеивал оба ответа. После исправления уточнение стало замещать черновик, и WER снизился до 0,162.

Замер №2 — 60 записей живой спонтанной речи

Во втором замере оставили только спонтанную разговорную речь Mozilla Common Voice Spontaneous: записи продолжительностью 10–30 секунд, медиана — 18 секунд. Это ближайший из выбранных открытых корпусов к речи на звонках и встречах. Выборка детерминированная: 60 записей и 19,4 минуты звука.

Потоковым движкам звук подаётся в реальном темпе, как в живом разговоре. Время ожидания окончательного ответа рассчитывается пропорционально длине записи.

Итоговая таблица замера №2 — все пять движков:

ДвижокWER медианаWER среднееmicro-WERВыполнено
🇷🇺 Nexara (пакетный)0,0800,0990,09160/60
🇺🇸 OpenAI whisper-10,0830,0990,09259/60 (1 ошибка провайдера)
🇺🇸 Deepgram nova-30,0860,1050,09560/60
🇷🇺 Sber (потоковый)0,1010,1180,11160/60
🇷🇺 Yandex (потоковый)0,1180,1720,15960/60
Замер №2 — 60 записей живой спонтанной речи

OpenAI вернул результат для 59 из 60 записей, остальные системы — для всех 60. Этот ранний срез не является строгим рейтингом на общей базе.

Ограничения статистической оценки замера №2

Для раннего замера мы приблизительно сравнили доли ошибок z-критерием на уровне слов корпуса. Такой расчёт не учитывает попарную структуру ответов и зависимость ошибок внутри одной записи, поэтому показывает только порядок величин и не заменяет парный бутстрэп или проверку на независимом корпусе.

ПараРазница WERzРезультат приближённой оценки
Nexara — OpenAI0,0010,12нет
OpenAI — Deepgram0,0030,34нет
Nexara — Deepgram0,0040,46нет
Nexara — Sber0,0202,17да, на грани
Deepgram — Sber0,0161,71почти
Sber — Yandex0,0484,71да
Nexara — Yandex0,0676,84да
Приближённая оценка различий между парами движков

И оценка, сколько записей нужно для разных вопросов (мощность 0,8):

Что хотим различитьРазрыв WERНужно записей
Тройку лидеров между собойоколо 0,005около 1100–3100
Разрыв 0,010,01около 280–780
Ярусы (тройка ↔ Sber)0,02около 70–200
Тройка ↔ Yandex0,04около 20–50
Сколько записей нужно для статзначимости

По этой приближённой оценке 60 записей позволяют отделить верхнюю тройку от Yandex, но не ранжировать участников внутри тройки. Расчёт мощности даёт ориентир от 1100 до 3100 записей для разрыва WER около 0,005. До проверки более строгим методом внутри плотной группы следует учитывать цену, скорость и требования к контуру данных, а не тысячные доли WER.

Замер №4 — весь корпус: 491 запись

После промежуточного прогона на 250 записях мы обработали весь корпус: 491 запись длительностью от 2,4 до 94,6 секунды, около трёх часов аудио (177 минут). На этом этапе участвовали четыре облачных движка и локальный faster-whisper large-v3; остальные режимы добавили позднее. Для итогового рейтинга все сохранённые гипотезы пересчитаны методикой v2 на общей базе из 488 записей.

ДвижокWER медианаmicro-WERВ общей базе
Локальный faster-whisper large-v37,14%9,78%488/488
🇺🇸 OpenAI whisper-17,75%9,82%488/488
🇺🇸 Deepgram nova-37,46%9,90%488/488
🇷🇺 Yandex (потоковый)10,87%13,04%488/488
🇷🇺 Nexara (пакетный)8,30%18,12%488/488
Пять участников этапа №4 после пересчёта v2 на общей базе из 488 записей

Стенд считает micro-WER отдельно по девяти диапазонам длительности. На этом корпусе с ростом длины записи качество всех движков постепенно снижалось. Отношение числа слов в гипотезе к числу слов в эталоне уменьшилось с 0,96 до 0,90.

Диапазон длительностиТройка лидеров, micro-WERNexara, micro-WER
до 30 соколо 0,07–0,100,064–0,105 — местами лучший результат, включая самый массовый диапазон 0–10 с
30–45 соколо 0,07–0,10резкая деградация на пяти файлах из-за зацикливания декодера
45–95 с0,12–0,15
Micro-WER по диапазонам длительности; девять диапазонов стенда сгруппированы

Поклиповая диагностика показала зацикливание декодера: в пяти записях он выдал в несколько раз больше слов, чем было в эталоне.

ФайлДлительностьСлов сказаноСлов выдалWER-norm
a3502b415a88.wav30,3 с452224,33
30c68107005f.wav36,0 с462264,22
f5ae9186866b.wav32,1 с862472,05
6c74d212beb9.wav31,0 с631331,33
c6b0da5a73d9.wav39,2 с981891,31
Nexara — залипания декодера на длинных спонтанных файлах

В одной записи из 45 слов Nexara выдала 222 слова. Пять таких случаев подняли micro-WER до 18,12% при медиане 8,30%: медиана почти не реагирует на редкие выбросы, а корпусная сумма ошибок учитывает их полностью. Значение WER 1,0 на коротких односложных клипах («ауф!», «потоп!») имеет другую причину: единственная ошибка сразу даёт единицу. Все пять обнаруженных зацикливаний пришлись на записи продолжительностью 30–45 секунд.

В контрольной диагностике сбой на одиночных файлах 30–45 секунд не повторился: ни после явной нарезки тех же клипов пополам со склейкой гипотез (micro-WER 0,112 против 4,33 и 4,22 у целых), ни на склеенном файле длительностью 25,8 минуты (WER 0,088). Все 171 вызов завершились без ошибок. Точную причину мы не установили; рабочая гипотеза связана с формой запроса или сегментацией. В продукте длинные записи стоит сегментировать с помощью VAD и отдельно проверять на собственном аудио.

Yandex в таблице выше идёт как потоковый: 10,87% медианы и 13,04% micro-WER. Пакетный Yandex async на общей базе показывает 9,09% медианы и 11,80% micro-WER. Исходный пакетный прогон восстановлен до 491/491 записей; в сопоставимый рейтинг входят те же 488 записей, что и у остальных режимов.

Отдельный потоковый замер с OpenAI gpt-realtime-whisper

В звонках и встречах текст нужен по ходу разговора, поэтому для такого сценария мы отдельно сравнили потоковые режимы. Звук подавался в реальном темпе, а движки возвращали промежуточные гипотезы и финальный ответ. В замер вошли 60 записей Common Voice Spontaneous и четыре решения, включая OpenAI gpt-realtime-whisper.

ДвижокWER медианаmicro-WERВыполнено
🇺🇸 OpenAI gpt-realtime-whisper0,0620,10660/60
🇷🇺 Sber SaluteSpeech (B2B)0,1140,12260/60
🇷🇺 Yandex SpeechKit v30,1160,13760/60
🇺🇸 Deepgram nova-3 (потоковый)0,1160,14060/60
Исторический потоковый замер — 60 записей

OpenAI gpt-realtime-whisper мы прогнали и на полном корпусе из 491 записи. Исходные результаты получены для всех записей, а на общей базе из 488 его медиана WER составляет 6,45%, micro-WER — 8,52%. Модель заняла второе место среди всех режимов и первое среди потоковых. Её худшие результаты пришлись на короткие односложные записи; зацикливаний на длинном аудио в этом прогоне не было.

Первый прогон OpenAI gpt-realtime-whisper завершался ошибкой invalid_parameter. Полное сообщение сервера уточнило причину: «Passing a transcription session update to a realtime session is not allowed». Стенд открывал разговорную сессию вместо транскрипционной. В нашем клиенте на момент прогона соединение заработало после добавления ?intent=transcription. Это деталь того запуска: в текущей документации OpenAI транскрипционная сессия задаётся полем session.type = "transcription".

Российские движки мы прогнали и в пакетном режиме на полном корпусе. На общей базе Yandex async показывает 11,80% micro-WER, Sber async — 11,06%; оба исходных прогона завершены для 491/491 записей. У Sber потоковый и пакетный режимы близки, у Yandex пакетный заметно лучше потокового, а у Deepgram переход в поток увеличивает micro-WER с 9,90% до 11,87%.

Сколько стоит минута распознавания

Цены проверены 29 июля 2026 года. Долларовые ставки пересчитаны по курсу Банка России 78,6980 ₽/$; налоги и комиссия конвертации не учтены. У Яндекса и Сбера итоговая цена зависит от режима и условий договора.

Движок₽ за минуту₽ за часПримечание
🇷🇺 GigaAM (локальная)0*0** платы провайдеру нет; инфраструктура считается отдельно
Локальный faster-whisper0*0** платы провайдеру нет; инфраструктура считается отдельно
🇷🇺 Nexaraот 0,36от 21,60посекундная оплата
🇺🇸 Deepgram nova-3, пакетный≈0,34≈20pre-recorded, $0,0043/мин
🇺🇸 OpenAI whisper-1≈0,47≈28$0,006/мин
🇺🇸 Deepgram nova-3, потоковый≈0,54≈32как в замере: промо-ставка плюс diarization, $0,0068/мин
🇷🇺 Sber0,6036постоплата; минимум 15 000 ₽/мес.; новым клиентам недоступна с 15 июля 2026
🇷🇺 Yandex, потоковый0,650439,02каждый начатый блок по 15 секунд
🇺🇸 OpenAI gpt-realtime-whisper≈1,34≈80$0,017/мин

По базовым облачным тарифам час стоит примерно от 20 рублей у пакетного Deepgram до 80 рублей у OpenAI gpt-realtime-whisper. У локальных моделей платы провайдеру нет, но инфраструктурная стоимость считается отдельно. Здесь показан тариф на единицу аудио — без расчёта затрат на исследование.

В этой таблице у Nexara самая низкая базовая ставка среди российских облачных сервисов, но на общей выборке у него самый высокий micro-WER — 18,12%. GigaAM лидирует по качеству и не требует платы провайдеру за минуту, однако работает на собственной инфраструктуре. Среди российских облачных режимов лучший результат показал пакетный Sber — 11,06%.

Итог: 8 моделей и 2 режима на общей базе

Через стенд прошли 8 моделей и 2 режима обработки на одном корпусе из 491 записи — около трёх часов спонтанной речи. Sber SaluteSpeech, Yandex и Deepgram проверены пакетно и в потоке, поэтому получилось 11 конфигураций. Девять конфигураций дали результаты для всех записей, пакетный и потоковый Deepgram — для 489. Итоговый рейтинг построен на пересечении из 488 записей, одинаковом для каждой конфигурации. Все гипотезы пересчитаны методикой v2; основная метрика — micro-WER, медиана и среднее дают дополнительные разрезы.

↑ Итоговая таблица: 8 моделей и 2 режима — в начале статьи

Потоковые прогоны Yandex и Sber на полном корпусе занимали по три часа и использовали контрольные точки. Стенд записывал результат каждого клипа сразу после обработки, а после обрыва сети или сна машины продолжал с недостающих записей. Это защищает сам стенд от локальных сбоев и ничего не говорит о надёжности провайдера. Полный прогон OpenAI gpt-realtime-whisper выполнялся без этого механизма.

Следующие замеры

Продолжение — о выборе данных для замеров: «Как выбор речевого корпуса меняет результаты оценки ASR».

Корпуса: Golos · SOVA RuDevices · Common Voice Spontaneous. Локальные модели: GigaAM · faster-whisper. Облачные сервисы: Yandex SpeechKit · Sber SaluteSpeech · Nexara · Deepgram · OpenAI.