Обновить

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

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели17K
Всего голосов 56: ↑56 и ↓0+67
Комментарии22

Комментарии 22

Круто! EDGE AI - это будущее в электронике.

Нейронка в 8.5 М - вот она настоящая инженерия, а не вайб кодинг калькулятора на пол гигабайта

Недавно появились микроконтроллеры MCU со встроенным нейроускорителем NPU

Точно не недавно. С инете можно найти упоминания о китайских микроконтроллерах (именно микроконтроллерах, а не микропроцессорах) с NPU на как минимум с 2020 года. Например Kendryte.

Если вы про Kendryte K210, то сам производитель называет его SoC, и это логично: два 64-бит RISC-V ядра и KPU для CNN - это уже не “классический микроконтроллер”, а AI SoC с MCU подобным сценарием применения. STM32N6 тоже размывает границу, но он всё же построен на Cortex-M55, и сама ST позиционирует его как MCU со встроенным NPU.

А нельзя просто смарт старый использовать? Есть какие то модели чтоб на смарт влезли?

Под "смартом" вы имеете в виду старый смартфон?

Гугол как раз зарелизил модель гемма-4, и у неё есть урезанная версия для запуска на бюджетных смартфонах. Она не только распознавать будет, но ещё и отвечать... С задержкой порядка минуты

Ключевое отличие здесь в том, что это всё ещё довольно тяжёлые модели, пусть и ужатые, и они рассчитаны на смартфоны с нормальным SoC и достаточным объёмом памяти.

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

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

Господи, K210 он же древний по сегодняшним меркам, а сейчас глянул, они до сих пор его куда-то пихают.

Самая лёгкая gemma4 очень сильно грузит довольно современный смартфон и ей нужно от 4ГБ свободной RAM.

Без подписок, без Wi-Fi, без передачи голоса ребёнка куда-то на серверы.

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

Вы подменяет тему.
Статья не про то, отменят ли компании подписки, а про то, можно ли технически реализовать распознавание речи на микроконтроллере с NPU. Ответ: в ряде сценариев уже становится можно.

То, что облачные решения выгоднее части бизнеса, не означает, что автономные решения «не взлетят». У них просто другой рынок: приватные, офлайн и энергоэффективные устройства.

Вы подменяет тему.

Не согласен. Подмена темы - эффективный демагогический прием, когда подмена осуществляется скрытно, потому что именно на самой подмене и строятся будущие, уже логические, легко проверяемые, конструкции. Я же открыто увожу тему в сторону, не подменяя (скрытно) и не противопоставляя (более явно), а именно что открыто меняю тему - на в чем-то близкую, но очевидно и нескрываемо другую.

Статья не про то, отменят ли компании подписки, а про то, можно ли технически реализовать распознавание речи на микроконтроллере с NPU. Ответ: в ряде сценариев уже становится можно.

Верно. Я этот тезис не опровергаю. Наоборот, статья очень интересна по своей основной теме.

То, что облачные решения выгоднее части бизнеса, не означает, что автономные решения «не взлетят». У них просто другой рынок: приватные, офлайн и энергоэффективные устройства.

Давление маркетинга на инженерию трудно игнорировать - именно в этом мой тезис. А так да, конечно не означает.

Стоит сразу обозначить границы: это не замена Siri или Алисе.

Выглядит как раз как логичная терминальная часть для устройств типа Siri: получила wake word - начинает стримить в большого брата фонемы. И запасные ресурсы тоже пригодятся, чтобы аудиовизуализировать ответ большого брата пользователю.

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

А чем это лучше распозновалки на локальном сервере умного дома?

В Том же HA уже все есть для этого

Тут скорее не про лучше, чем HA, а просто немного про другой сценарий.

В Home Assistant это действительно уже можно сделать, но обычно для этого всё равно нужен отдельный сервер, мини-ПК или что-то сопоставимое, что постоянно включено и потребляет свои 5-20 ватт. А здесь идея в другом: чтобы распознавание работало прямо на самом устройстве, вообще без отдельного сервера - ни облачного, ни локального.

Плюс вопрос цены. Одно дело - держать под это отдельную машину, и совсем другое - когда сама функция живёт прямо в дешёвом железе. Если такие решения станут распространёнными, голос можно будет добавлять даже в недорогие устройства, где ставить Home Assistant-сервер просто не имеет особого смысла.

То есть это не замена HA, а скорее другой уровень: не один умный домовой сервер на всё, а много маленьких автономных устройств, каждое со своей локальной логикой.

Очень здорово! Тема интересная и мне близка, я делал распознавание голоса лет 12 назад, но без НС. Вы правы, важен первый блок - сам перевод звука в вероятности фонем. Можете написать подробности решения проблем разной длительности и разной высоты для одинаковых фонем (при разном произношении)? Вообще, какая подробность спектра, по скольким линиям в спектре производится поиск фонемы? Если это НС, то сколько вы потратили времени на заполнение её образцами своего голоса и обучение?

Спасибо
Модель обучалась с помощью CTC. Это как раз удобно для речи, потому что не нужно вручную размечать, какой фонеме соответствует каждый момент времени: на вход подаётся аудио, на выходе - целевая последовательность фонем, а CTC сама учит модель выравнивать одно с другим во времени. К сожалению, я не смогу объяснить это в комментариях, так как это довольно сложная тема.

Разная высота голоса, тембр и манера произношения учитываются не поиском по нескольким фиксированным линиям спектра, а всей нейросетью целиком - она анализирует спектральный образ во времени. То есть фонема у меня определяется не по отдельным «линиям», а по совокупности признаков на последовательности кадров.

На своём голосе я модель не обучал. Она обучалась на LibriSpeech, то есть на большом многоголосом датасете.

 а CTC сама учит модель выравнивать одно с другим во времени. 

Но алгоритмы и код для пересчёта, вот в этой СТС (что бы это ни значило) придумывали вы?

Роскошно вообще! :)

Open source публиковать планируете? Было бы интересно дома погонять :)

Добрый день. Спасибо.
На данном этапе не планирую, однако после завершения всех частей постараюсь предоставить демонстрационную версию, которую можно будет запустить на отладочной плате.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации