← СИГНАЛ ЖЕЛЕЗО
ЖЕЛЕЗО

Микроконтроллер распознаёт речь без интернета

На плате STM32N6 реализовано распознавание свободной английской речи в текст без подключения к сети при потреблении около 0,2 Вт. Исходники, модель и прошивка выложены на GitHub.

Разработчик с портала «Хабр» реализовал на микроконтроллере STM32N6 модель распознавания речи, которая преобразует звук сразу в буквы, без промежуточной таблицы фонем. В предыдущей версии проекта слова собирались из фонем по заранее заданному списку, теперь плата распознаёт произвольные английские слова. Все вычисления выполняются локально, без интернета и сервера, при потреблении около 0,2 Вт во время работы.

Тесты проводились на отладочной плате STM32N6570-DK стоимостью около 200 долларов, при этом сам микроконтроллер стоит менее 14 долларов. Источник звука находился в метре от микрофона при громкости 55–60 дБ. Для демонстрации автор использовал сгенерированный голос, поскольку его собственный русский акцент был слабо представлен в обучающих данных. На пяти бытовых командах для умного дома подряд, содержащих 79 слов, модель допустила только одну ошибку.

Автор сравнил своё решение CynipsNet с открытыми моделями QuartzNet и Citrinet-256, близкими по числу параметров. Базовая версия обучалась только на LibriSpeech, после чего была дообучена на шумах, 248 часах аудио, записанного через микрофон платы, и датасетах с командами умного дома. Это снизило WER на записях с расстояния 2,5 м с 44,21% до 25,54%, хотя на исходных данных LibriSpeech ошибок стало немного больше.

После 8-битного квантования WER на test-clean вырос с 5,77% до 5,89%, а на записях с 2,5 м — с 25,54% до 26,02%. Именно квантованная версия работает на плате. Автор отмечает, что при текущих настройках NPU занят 44% времени, тогда как теоретическая загрузка составляет всего 5% — это связано со снижением задержек и увеличением контекста модели.

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

Автор сравнивает STM32N6 с альтернативами: классический Cortex-A7 на 1 ГГц выдаёт около 5–16 GOPS при int8 MAC против 600 GOPS у STM32N6, а встроенный Cortex-M55 на 0,8 ГГц не справился с задачей в реальном времени. Китайские процессоры на Cortex-A и RISC-V с NPU могут быть интересны, но требуют практической оценки энергопотребления. FPGA-решения, по мнению автора, вероятно, окажутся дороже и менее энергоэффективны, чем NPU, отлитый в кремнии.

Исходный код, модель и готовый образ прошивки выложены на GitHub, инструкция по прошивке находится в том же репозитории в файле docs/flash.md. Уже сейчас решение подходит для коротких фраз и голосового ввода своими словами без передачи записей на внешний сервер. Повышение точности и устойчивости к шуму существенно расширит спектр задач, где такой подход будет оптимальным.

stm32распознавание речимикроконтроллерыnpnopen sourceвстраиваемые системы
Первоисточник Читать в Хабр ↗

Материал подготовлен ИИ-редакцией «Сигнала» как пересказ публикации первоисточника. Фактическую точность и подробности проверяйте по оригиналу.

По этой теме ИССЛЕДОВАНИЯ Anthropic нашла 29 439 уязвимостей в open source Хабр · 15:43 СОЦСЕТИ Sabi-Noema: дообучение Qwen 3.8 27B на эффективность Reddit LocalLLaMA · 02:01 СОЦСЕТИ Вышла ComfyUI v0.40.0 Reddit LocalLLaMA · 14 окт, 15:37 ИНСТРУМЕНТЫ Ollama встроили в десктопный лаунчер для трёх ОС Хабр ML · 14 окт, 12:00 СОЦСЕТИ Вышел Koboldcpp v1.123 Reddit · 14 окт, 10:03