Skip to content
tutorials

Чип за $10 обрел голос

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

Marcus Lee
Чип за $10 обрел голос

Голосовой помощник без выхода в облако

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

Аппаратная часть удивительно проста: микроконтроллер ESP32-S3 стоимостью около $10 с 16 МБ флэш-памяти и 8 МБ оперативной памяти. Добавьте небольшой цифровой микрофон, кнопку для активации записи и RGB-светодиод. Ноутбук, показанный в демонстрации, лишь отображает вывод; вся тяжелая работа, от прослушивания до выполнения, происходит непосредственно на самой плате.

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

Модель оказалась больше, чем чип

Whistle, модель преобразования речи в текст от Cactus Compute, создала немедленную проблему: файл одной модели весил 16,9 МБ. Это уже больше, чем вся флэш-память ESP32-S3 объемом 16 МБ, даже без учета прошивки устройства. Для сравнения, базовая модель Whisper от OpenAI весит внушительные 145 МБ, что делает Whistle почти в девять раз меньше, но все еще слишком большой для нашего крошечного чипа.

Несмотря на компактный размер, Whistle удивительно функциональна. Она поддерживает семь языков:

  • Английский
  • Французский
  • Немецкий
  • Испанский
  • Итальянский
  • Нидерландский
  • Польский

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

Ключ к размещению Whistle на чипе заключается в ее уникальной архитектуре «лестницы интеллекта». В то время как энкодер, который обрабатывает необработанное аудио, всегда работает со всеми восемью слоями, декодер, отвечающий за транскрибирование текста, может быть урезан. Cactus Compute разработала декодер с выбираемой глубиной, что означает, что он продолжает правильно функционировать даже с меньшим количеством слоев.

Создатель выбрал четырехслойный декодер, который после тщательного расширения раздела модели до самого конца флэш-чипа оставил всего 98 КБ свободной флэш-памяти. Двухслойный вариант было бы легче разместить, но он приводил к заметно большему количеству ошибок транскрипции, что доказывает ценность этих дополнительных слоев.

Как крошечная плата превращает звук в действие

Как крошечный чип на самом деле «слышит» вас? Процесс начинается, когда микрофон улавливает ваш голос на частоте 16 кГц. Это необработанное аудио преобразуется в Мел-спектрограмму, визуальную «тепловую карту» высоты тона и энергии вашего голоса с течением времени, разбитую на 10-миллисекундные сегменты.

Затем серия сверточных слоев сжимает эту тепловую карту. Каждый фрагмент теперь представляет около 80 миллисекунд аудио, превращая двухсекундную команду всего в 25 кадров. Это эффективное представление имеет решающее значение для ESP32-S3 с ограниченными ресурсами.

Затем в работу вступает encoder Whistle. Благодаря восьми слоям он позволяет каждому 80-миллисекундному фрагменту «видеть» все остальные фрагменты в клипе одновременно. Это означает, что модель понимает слова в контексте всего предложения, а не изолированно.

Наконец, decoder генерирует транскрипцию по частям. Сначала он определяет язык (например, английский или французский) с помощью language token. При создании каждого слова он использует «cross-attention», чтобы сверяться с выводом энкодера, обеспечивая соответствие тому, что было услышано.

Небольшой парсер (не Needle) затем интерпретирует транскрибированный текст, сопоставляя такие слова, как «red» или «five seconds», с конкретными цветами светодиодов и шаблонами мигания. Подробнее о возможностях Whistle читайте в статье Whistle: Speech to Text in 16.9 MB - Cactus Compute.

Первоначальные попытки обработать двухсекундную команду занимали почти 24 секунды — это слишком медленно для голосового помощника. Потребовалась значительная оптимизация. Инженеры Cactus Compute ускорили процесс, обрабатывая несколько фрагментов за проход, распределяя рабочую нагрузку между обоими ядрами ESP32-S3 и используя 8-битные целочисленные операции на векторном модуле чипа. Эти изменения сократили типичное время отклика до гораздо более приемлемых 10 секунд.

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

одно письмо в день · отписка в два клика · без сторонних трекеров

Впечатляющая демонстрация, а не замена диктовке

Заявления о точности Whistle впечатляют, но контекст имеет решающее значение. Cactus Compute сообщила о примерно 78% успеха при выполнении синтетических команд на английском языке, таких как «flash the light blue». Добавление записанного шума микрофона в эти тесты почти не повлияло на результат, что демонстрирует устойчивость в ограниченных, контролируемых условиях.

Практические результаты подчеркивают сильные стороны модели при использовании специфических формулировок. Короткие фразы, такие как «make it red» или «turn it green», срабатывали в 82–93% случаев в тестах. Однако одиночное слово, обозначающее цвет, показало более низкую точность — 44%. Использование ключевых слов и повторная попытка с другим языком, например французским, улучшили результаты для фиксированных наборов команд.

Релиз Whistle под лицензией Apache 2.0 и общая архитектура среды выполнения с Needle указывают на будущее частных систем «голос-в-инструмент» на периферийных устройствах. Однако текущая плата ESP32-S3 не может вместить обе модели одновременно, так как им потребовалось бы около 24 МБ флэш-памяти. Задержка примерно в 10 секунд и ориентация на точность команд также ограничивают возможности более широкого применения.

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

Часто задаваемые вопросы

Что такое Whistle?

Whistle — это компактная модель преобразования речи в текст от Cactus Compute, предназначенная для локальной транскрипции аудио на семи языках.

Может ли Whistle работать на ESP32-S3?

Да, с помощью пользовательской сборки и усеченного декодера. Демонстрируемая плата запускает четырехслойную версию в пределах своего лимита флэш-памяти в 16 МБ.

Нужен ли Wi-Fi для этого голосового проекта на ESP32-S3?

Нет. Захват речи, транскрипция и логика команд для светодиодов работают на плате без Wi-Fi или Bluetooth.

Насколько точна и быстра эта демонстрация?

Создатель сообщает о примерно 78% точности при выполнении синтетических команд на английском языке и в среднем около 10 секунд обработки на одну команду.

Может ли Whistle работать вместе с Needle на этой плате?

Не в демонстрируемой конфигурации: объединенным моделям потребовалось бы около 24 МБ, что больше, чем 16 МБ флэш-памяти платы.

Found this useful? Share it.

For builders

Want Stork to write one of these about your product?

Send us a URL. We use the product, form a view, and publish what we actually think — in 8 languages, labeled Sponsored, with no copy approval on your side. That last part is what makes it worth quoting.

See how it works$199 · AI tools & software only

Для билдеров

Эта страница работает на чужой инструмент.

Её читают AI-агенты. На неё приходят покупатели. Она отвечает на восьми языках и через MCP. У вашего инструмента может быть такая же — в эфире за 24 часа.