Перейти к содержанию
Публикация AiManual

AuroraASR-1M: сверхлёгкая модель распознавания речи на 949K параметров, кому она нужна и чего от неё ждать

AuroraASR-1M укладывает распознавание речи в 1,06 МБ весов INT8 и выдаёт около 436× реального времени на одном потоке CPU. Разбираем, что скрывается за WER 11,4

Коротко

Что будет в материале

  1. 01

    Что такое AuroraASR-1M и почему 949K параметров - это необычно

  2. 02

    Как устроена weight-shared Conformer-CTC: архитектура без лишней математики

  3. 03

    WER 11,43% на LibriSpeech test-clean: как честно читать эту цифру

  4. 04

    Кому и зачем нужна сверхлёгкая ASR-модель: сценарии на слабом железе

AuroraASR-1M - сверхлёгкая модель распознавания речи на архитектуре weight-shared Conformer-CTC. В ней 949 тыс. параметров, веса в INT8 занимают 1,06 МБ, а скорость достигает примерно 436× реального времени на одном потоке CPU. На LibriSpeech test-clean модель показывает WER 11,43% при жадном декодировании без внешней языковой модели. Код распространяется под Apache 2.0, автор открыт к отзывам и критике. Все эти цифры взяты из описания релиза, независимых замеров пока нет.

Для контекста: привычные ASR-системы вроде Whisper или wav2vec 2.0 измеряются десятками и сотнями миллионов параметров, а их веса занимают десятки и сотни мегабайт. Разница в два-три порядка. 949K параметров и мегабайт весов - это отдельный класс, который уместно называть микро-ASR: здесь на первом месте стоит не качество транскрибации, а возможность вообще запустить распознавание на имеющемся железе.

Практический вывод в трёх строках. Есть GPU и задача расшифровать длинную запись с высокой точностью - AuroraASR-1M вам не нужна. Делаете офлайн-команды на плате за несколько долларов, где нет ни гигабайта памяти, ни интернета, - это тот класс решений, который стоит проверить на своих данных.

Что такое AuroraASR-1M и почему 949K параметров - это необычно

AuroraASR-1M относится к семейству моделей автоматического распознавания речи, которые решают одну задачу: превратить аудио в текст. Отличие в масштабе. 949 тыс. параметров - это меньше, чем у многих исследовательских моделей середины 2010-х, и в сотни раз меньше, чем у современных ASR общего назначения.

Компактность достигнута тремя решениями: архитектурой Conformer, CTC-декодированием и разделением весов между слоями. Про каждое - ниже, без формул.

Ключевые характеристики в одной таблице

ПараметрЗначение
Число параметров949 тыс.
Архитектураweight-shared Conformer-CTC
Формат весовINT8
Размер весов1,06 МБ
Скорость~436× реального времени на одном потоке CPU
WER на LibriSpeech test-clean11,43%
Декодированиежадное, без внешней языковой модели
Лицензия кодаApache 2.0

Это данные авторского анонса, а не независимый бенчмарк. Их достаточно, чтобы понять класс модели, и мало, чтобы ставить её в один ряд с системами, которые кто-то измерял по единой методике.

Почему это отдельный класс моделей, а не «ещё один Whisper»

Whisper и wav2vec 2.0 решают задачу точной транскрибации разнообразной речи. За это платят памятью: сотни мегабайт весов, гигабайты в пиковой нагрузке, обычно GPU или быстрый CPU. AuroraASR-1M решает другую задачу: дать рабочее распознавание там, где места под мегабайты нет в принципе.

Арифметика размера прозрачна. При квантовании INT8 каждому весу нужен один байт. 949 тыс. параметров дают около 0,95 МБ, заявленные 1,06 МБ чуть больше за счёт служебных коэффициентов квантования и масштабов. Для сравнения, те же 949 тыс. параметров в FP32 заняли бы почти 4 МБ, а типичная модель на 70 млн параметров в INT8 - около 70 МБ.

Цифру 436× реального времени удобно перевести в бытовые единицы: час аудио обрабатывается примерно за 8 секунд на одном потоке. Запас огромный, но условия замера в источнике не детализированы, поэтому конкретное железо может дать совсем другую картину.

Как устроена weight-shared Conformer-CTC: архитектура без лишней математики

Conformer соединяет две идеи. Свёрточные слои ловят локальные паттерны в спектрограмме: форманты, переходы, короткие звуковые события. Self-attention связывает удалённые участки последовательности и даёт модели контекст на уровне фразы. В классическом Conformer такие блоки ставят друг за другом, и каждый блок несёт собственный набор весов.

CTC (Connectionist Temporal Classification) решает проблему выравнивания. Аудио и текст имеют разную длину, и CTC позволяет обучать модель без разметки, где именно в записи находится каждая буква. На выходе получается последовательность токенов плюс служебный blank-символ, который отбрасывается при декодировании.

Разделение весов - третий ингредиент. Один и тот же набор весов используется в нескольких последовательных слоях или блоках. Физически слоёв может быть много, уникальных параметров - мало. Именно это и превращает архитектуру в 949 тыс. параметров вместо десятков миллионов.

Что даёт разделение весов на практике

Экономия идёт за счёт ёмкости. Модель с общими весами выполняет меньше разнообразных преобразований, чем модель с независимыми слоями той же глубины. Потолок точности ниже. Это сознательный инженерный обмен: мегабайт весов и работа на одном ядре CPU против качества распознавания.

Насколько именно падает точность от sharing, в описании модели не сказано. Автор не приводит ablation-экспериментов, то есть сравнений с вариантом без разделения весов. Оценивать вклад каждого решения придётся самостоятельно или ждать независимых разборов.

Жадное декодирование и CTC: почему это важно для WER

Жадное декодирование берёт самый вероятный токен на каждом шаге и не перебирает альтернативные гипотезы. Ни beam search, ни внешней языковой модели. Плюсы: минимум вычислений, предсказуемая задержка, никакой дополнительной памяти под LM. Минус: ошибки акустики никто не исправляет.

Beam search держит несколько гипотез и часто снижает WER, а языковая модель отбрасывает фонетически похожие, но бессмысленные варианты. Обе техники стоят вычислений и памяти. Для модели весом в мегабайт подключать LM на сотни мегабайт означает потерять главное преимущество.

Отсюда важный вывод: 11,43% - результат «как есть», без подстройки декодера. Насколько сильно декодер меняет картину, видно на примере LoRA и подбора декодера для крымскотатарского: WER упал с 0.3463 до 0.1701. Цифру 11,43% стоит читать как базовую точку отсчёта, а не как финальный потолок.

WER 11,43% на LibriSpeech test-clean: как честно читать эту цифру

WER (word error rate) считают как сумму замен, вставок и пропусков слов, делённую на число слов в эталоне. 11,43% означает примерно одну ошибку на девять слов. Для диктовки это много. Для голосовой команды «включи свет» обычно приемлемо: команда либо распознаётся целиком, либо не распознаётся вовсе, и это сразу заметно.

LibriSpeech test-clean - начитанные аудиокниги на английском, без фонового шума, с качественной записью. Бенчмарк относительно мягкий. На реальных записях с микрофона ноутбука, улицы или конференц-зала WER у любой модели выше, чем на test-clean.

Почему WER без языковой модели - это другой режим

Языковая модель исправляет ошибки на уровне слов и фраз: «привет мир» вместо «привет миф». Она добавляет память и вычисления, зато заметно снижает WER на связной речи. Цифры, полученные с LM и без неё, живут в разных системах координат. Сравнивать их напрямую так же странно, как сравнивать время забега на 100 и на 400 метров.

У AuroraASR-1M заявлен режим без LM и без beam search. Значит, 11,43% - это результат в самом дешёвом по вычислениям режиме, и сравнивать его корректно только с моделями в таком же режиме. Ставить рядом WER системы с внешней языковой моделью и делать вывод «эта хуже» - типичная ошибка при чтении таблиц.

Что WER не говорит о реальной речи

Метрика не описывает, как модель поведёт себя на вашем аудио. Шум, реверберация, далёкий микрофон, акцент, технические термины и имена собственные поднимают WER, иногда в разы. Отдельный вопрос - язык. Бенчмарк LibriSpeech англоязычный, поддержка русского или других языков в описании релиза не заявлена, поэтому приписывать модели мультиязычность нельзя.

Практическое правило: собрать 30-50 коротких записей из своего сценария, прогнать через модель и посчитать WER вручную или скриптом. Полчаса работы дадут более полезную цифру, чем любой публичный бенчмарк.

Кому и зачем нужна сверхлёгкая ASR-модель: сценарии на слабом железе

Ценность AuroraASR-1M проявляется там, где остальные модели просто не запускаются. 1,06 МБ весов - порядок, при котором модель помещается в память бюджетного микроконтроллера или маломощного SoC. Работа на одном потоке CPU снимает требование к GPU.

Встраиваемые устройства и офлайн-сценарии

Классы задач, где такой профиль уместен:

  • голосовые команды и IoT-устройства: умный дом, короткие фразы, ограниченный словарь;
  • edge-инференс с низкой задержкой: реакция без похода в облако;
  • носимая электроника и автономные датчики с батарейным питанием, где важен каждый миллибайт;
  • одноплатные компьютеры уровня Raspberry Pi без GPU и без интернета;
  • промышленные и медицинские устройства, где аудио нельзя отправлять наружу;
  • предварительная фильтрация: модель решает, стоит ли отправлять фрагмент на распознавание крупной системе.

Ни один из этих сценариев в описании релиза не проверялся, поэтому речь о классе задач, а не о подтверждённых кейсах. 1,06 МБ - это только веса. Рантайм, аудиобуферы и промежуточные тензоры добавят свою долю, и на конкретной плате итог будет другим.

Для сравнения: Cactus Whistle занимает 16,9 МБ и поддерживает семь языков и 17 платформ, включая микроконтроллеры. AuroraASR-1M примерно в 16 раз меньше по весам, но данных о платформах и языках у неё нет. Если нужен готовый охват устройств, Whistle пока выглядит практичнее. Как выглядит полный офлайн-сценарий со STT и TTS, разбираем в материале про локальный голосовой AI для слепого автора.

Когда лучше взять модель покрупнее

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

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

Как выбрать модель распознавания речи: рамка сравнения AuroraASR-1M с альтернативами

Сравнивать ASR-модели по одной цифре WER бессмысленно. Рабочая рамка - пять осей, и решение принимается по самой узкой из них.

Компромисс: размер, скорость, точность

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

Крупные семейства вроде Whisper или wav2vec 2.0 рассчитаны на десятки и сотни миллионов параметров и на GPU либо достаточно быстрый CPU. Они дают высокое качество на разнообразной речи, но требуют памяти и времени. AuroraASR-1M стоит на противоположном краю: минимум ресурсов, скромная точность, мгновенный старт. Середину закрывают компактные модели на десятки мегабайт.

Конкретные WER конкурентов здесь не приводятся сознательно. У них другие условия замеров и часто другая языковая модель, а цифры из чужих таблиц без воспроизведения режима декодирования только путают.

Чек-лист выбора под вашу задачу

  1. Определите язык и домен. Если нужен русский, сначала выясните, поддерживает ли модель этот язык: в описании AuroraASR-1M этого нет.
  2. Зафиксируйте лимит памяти и наличие GPU. Меньше 100 МБ свободной памяти и нет GPU - смотрите на микро-ASR.
  3. Решите, нужна ли языковая модель и насколько критична задержка. LM улучшает текст, но требует памяти и времени.
  4. Соберите тестовый набор из 30-50 своих записей и посчитайте WER при том же декодировании, что будете использовать в проде.
  5. Проверьте лицензию под свой сценарий и требования к атрибуции.

Ограничения и что проверить перед использованием

Список того, чего в описании модели нет или что требует уточнения:

  • WER 11,43% получен без языковой модели и без beam search, поэтому несопоставим с результатами систем с LM;
  • скорость ~436× указана для одного потока CPU, а железо, длина аудио и код инференса не детализированы;
  • сравнений с другими моделями автор не приводит;
  • независимых подтверждений качества нет;
  • языки, домены и устойчивость к шуму не оговорены.

Условия замеров: что осталось за кадром

Скорость инференса зависит от CPU, длины аудио, размера батча и качества кода. Реализация на Python с покадровой обработкой и реализация на C с векторизацией дадут разницу в разы при одних и тех же весах. 436× воспринимайте как ориентир порядка, а не как гарантию.

С размером та же история. 1,06 МБ - веса в INT8, остальное не в счёт. Рантайм, аудиобуфер и промежуточные активации в эту цифру не входят, а на микроконтроллере именно они часто определяют, влезет модель или нет.

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

Лицензия Apache 2.0: что можно и что стоит учесть

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

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

Итог: стоит ли следить за AuroraASR-1M

AuroraASR-1M - аккуратный пример микро-ASR: 949 тыс. параметров, 1,06 МБ в INT8, около 436× реального времени на одном потоке CPU, открытый код под Apache 2.0. Такое сочетание открывает распознавание речи там, где его раньше не ставили: на микроконтроллерах, одноплатниках и автономных устройствах без сети.

Заявленные 11,43% WER на LibriSpeech test-clean без языковой модели - честный ориентир для этого класса. Для голосовых команд и коротких фраз может хватить. Для транскрибации длинных записей нет. Прямых сравнений с Whisper и другими системами автор не приводит, независимых замеров тоже нет, поэтому решение принимайте после прогона на своих данных.

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

Первый шаг простой. Возьмите 30-50 своих записей, прогоните через модель в том же режиме декодирования, что планируете в проде, и сравните с текущим решением. Если на вашем железе и вашем аудио разница приемлема, у вас появился рабочий вариант на мегабайт. Если нет, у вас появилась своя цифра вместо чужой таблицы.

Подписаться на канал