Смогут ли микроконтроллеры с NPU заменить облако для распознавания речи?

Смогут ли микроконтроллеры с NPU заменить облако для распознавания речи?

Если вы пользуетесь голосовыми ассистентами — Алисой, Siri, Google Assistant — ваш голос каждый раз отправляется в облако. Там он распознаётся, и ответ приходит обратно. Система работает неплохо, но требует интернет-соединения, имеет задержку и подразумевает передачу личных данных на сторонние серверы. А что если всё это можно делать прямо на устройстве?

Сегодня на устройствах возможны два сценария: либо используются дешёвые чипы, распознающие лишь несколько заученных команд вроде «включи свет», либо задействуются мощные процессоры, быстро сажающие батарею. Между этими крайностями — пустота: полноценное распознавание произвольной речи на устройстве, без интернета и с низким энергопотреблением.

Недавно появились микроконтроллеры (MCU) со встроенным нейроускорителем (NPU). Возможны ли на их основе автономные системы распознавания речи? Анализ публикаций и проектов показал: готовых решений, реализующих распознавание произвольной речи на таких чипах, пока нет.

Из чего состоит система

Ключевая часть системы — акустическая модель — реализована на микроконтроллере STM32N6 с NPU. Подход разбивает распознавание на три этапа, что позволяет сэкономить память и повысить точность:

  • Акустическая модель — самая ресурсоёмкая часть. Преобразует сырые аудиоданные с микрофона в последовательность фонем (минимальных звуковых единиц речи).
  • Декодер — собирает из фонем слова, используя словарь и языковые правила.
  • Рескоринг — перепроверяет результат, учитывая контекст, и выбирает наиболее вероятную фразу.

На данный момент реализована и протестирована только акустическая модель — это основа всей системы. Декодер и рескоринг компактнее и находятся в разработке.

Демонстрация работы

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

Пока используется жёсткое сопоставление фонем со словами — по сути, таблица «фонемы → слово». Это ограничивает возможности системы. После внедрения полноценного декодера с языковой моделью точность значительно вырастет, и система сможет распознавать любые слова, а не только заранее заданные.

Энергопотребление

Полное энергопотребление устройства при активном распознавании — всего ~0,215 Вт. При этом:

  • NPU и ядро Cortex-M55;
  • внешняя память (Flash + PSRAM);
  • внешние пины микроконтроллера.

Оптимизация пока не проводилась. Ядро Cortex-M55 используется только для вычисления мел-спектрограммы и не участвует в работе нейросети — его можно перевести в спящий режим или снизить частоту. NPU загружен всего на 10,4% — есть большой резерв для улучшений.

В реальном сценарии (просыпается по ключевому слову → распознаёт → засыпает) фоновое потребление будет минимальным. Устройство сможет долго работать от батареи.

Сигнал на входе модели: датасет и микрофон

Модель обучалась на датасете LibriSpeech. Сравнение мел-спектрограмм показывает, что сигнал с микрофона устройства сохраняет основные структуры речи, несмотря на шум. Пока фильтрация не применяется — шумоподавление станет следующим шагом.

Точность модели

Характеристики акустической модели:

  • Размер: 8,5 млн параметров;
  • PER (dev_clean): 5,51%;
  • PER (dev_other): 13,75%;
  • Потеря точности при квантовании до int8: 0,4% (dev_other) / 0,15% (dev_clean);
  • Время инференса на NPU: 52 мс на 500 мс аудио;
  • Полная латентность: 985 мс (включая 485 мс «окна в будущее»).

Метрика PER (Phone Error Rate) измеряет долю ошибок в распознанных фонемах. Чем она ниже, тем точнее модель «слышит» звуки, из которых потом формируются слова.

Обучение проводилось на полном датасете LibriSpeech, после чего модель была квантована до int8. Результаты получены не в симуляции, а на реальном устройстве: валидационный набор был обработан через NPU, данные передавались по UART, а метрика рассчитывалась на ПК.

Сравнение с другими решениями

Прямое сравнение затруднено: большинство публикаций приводят WER (ошибки на уровне слов), а не PER (ошибки на уровне фонем). WER зависит от декодера и языковой модели, поэтому сравнивать его с PER некорректно.

Тем не менее, при 8,5 млн параметров модель показывает PER 5,51% на test_clean — это сопоставимо с wav2vec 2.0 Base (5,74%) и HuBERT Base (5,41%), которые в 11 раз больше по размеру. Ни одна из них не работает на микроконтроллере. Данная модель — единственная в списке, выполняемая на NPU в реальном времени.

Точность указана для расширенного набора фонем из 72 символов — более сложная задача по сравнению со стандартными наборами из 39–44 фонем.

Планируемые результаты с декодером: при добавлении фонемного декодера ожидается WER ~16–25% на сложном датасете LibriSpeech dev_other при общем размере системы около 8–16 млн параметров.

Потенциал и запас роста

Сейчас используется лишь малая часть возможностей чипа:

  • RAM занята на 18% — модель можно увеличить примерно в четыре раза;
  • NPU загружен на 10,4% — вычислительный ресурс практически не задействован;
  • Энергопотребление не оптимизировано — текущие ~0,2 Вт можно значительно снизить.

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

Где MCU с NPU может заменить облако

Система не заменит Siri или Алису — диктовка длинных текстов невозможна из-за ограничений памяти. Однако она превосходит классические KWS (keyword spotting) системы, которые распознают только точные команды.

Новые возможности:

  • Умный дом без облака: управление светом, климатом, техникой естественной речью. «Сделай в зале поуютнее», «в детской чуть потеплее» — система понимает контекст, комнату и параметр. Данные не покидают устройство.
  • Голосовой ввод данных: показания счётчиков, измерений, кодов. «Давление сто тридцать два» — система извлекает число. Удобно при занятых руках или в перчатках.
  • Промышленное оборудование: команды с параметрами. «Подать заготовку на позицию три», «скорость двадцать процентов» — управление без панели.
  • Медицинские устройства: тонометры, глюкометры. Пациент говорит: «после еды», «утром натощак» — проще, чем кнопки.
  • Склад и логистика: сотрудник с занятыми руками диктует: «на полке Б двенадцать — три коробки», «это брак, убери».
  • Транспорт и спецтехника: в поле, на стройке, в шахте. «Поехали на базу», «переключи на экономный» — без интернета.
  • Детские игрушки и образовательные устройства: робот, понимающий свободную детскую речь — имена, числа, цвета. Без Wi-Fi, подписок и передачи голоса.
  • Устройства для людей с ОВЗ: управление коляской или протезом. «Поедем вперёд», «немного левее» — естественно и автономно.

Заключение: так смогут ли заменить?

Сейчас работает акустическая модель, распознающая фонемы произвольной речи на микроконтроллере — в реальном времени, без интернета, с потреблением ~0,2 Вт. Для диктовки она не подойдёт, но для голосовых команд, ввода данных и управления — более чем достаточна.

Там, где облако избыточно, а KWS слишком примитивен, микроконтроллер с NPU выигрывает по цене, энергопотреблению и автономности. Чип дешевле процессора, не требует сложной аппаратной платформы и тяжёлого ПО.

Впереди — реализация декодера, языковой модели, шумоподавление и оптимизация энергопотребления. Каждый шаг приближает момент, когда MCU с NPU будут решать всё больше задач, где важны приватность, автономность и работа без интернета.

Читать оригинал