Moonshine Micro: распознавание речи, VAD и синтез уместили в RP2350
RP2350 с 520 KiB SRAM запускает VAD, распознавание 50 изолированных голосовых токенов и синтез ответа, резервируя около 468 KiB памяти. Такой результат получен за счёт последовательного исполнения стадий: вычислительная арена TensorFlow Lite Micro переходит от одного блока к другому. Цена экономии памяти — turn-based режим, где запись, классификация и ответ идут по очереди.
Moonshine Micro выпущен как открытый голосовой стек для микроконтроллеров: на RP2350 он объединяет детектор голосовой активности, классификатор команд и нейросетевой синтез речи. Базовая прошивка занимает около 3.6 MiB flash и резервирует примерно 468 KiB из 520 KiB встроенной SRAM микроконтроллера. Для варианта с Wi-Fi и реальным I2S-аудиотрактом бюджет возрастает примерно до 491 KiB.
Ключевой приём находится в организации памяти. VAD, SpellingCNN для распознавания и TTS не держат собственные пиковые рабочие области одновременно. Все три компонента по очереди используют общую TFLM arena объёмом около 384 KiB. После обнаружения окончания речи прошивка формирует примерно секундный фрагмент, классифицирует его, затем передаёт арену синтезатору. Благодаря этому SRAM-потребности крупных промежуточных тензоров не суммируются.
Аудиофронтенд строит log-mel признаки с шагом 32 ms. VAD работает в int8, распознаватель получает один клип длительностью около секунды, а синтезатор выдаёт поток с частотой 16 kHz. Авторы оценивают полный цикл classify + speak в 0.7–1.0 s, однако методика замеров, распределение задержки между стадиями, ток потребления и результаты в шумовом поле пока не опубликованы.
Словарь базового примера состоит из 50 изолированных токенов: букв, цифр и командных слов. Режим continuous speech, фразы из нескольких токенов и открытый словарь в эту архитектуру не входят. Поэтому речь идёт о голосовом интерфейсе для конечного автомата устройства, а не о локальной диктовке. Ограничение имеет и системное следствие: при классификации и синтезе приём аудио приостанавливается, поскольку тракт рассчитан на последовательную обработку реплик.
Для демонстрации автономного узла предложена плата Pico 2 или Pico 2 W с I2S MEMS-микрофоном SPH0645 и I2S-усилителем MAX98357A. Команда `wifi` запускает сценарий голосовой настройки сети: выбор имени, ввод символов пароля и подключение. Сеть используется уже после настройки, тогда как распознавание и генерация речи остаются на микроконтроллере.
Ценность проекта связана с дисциплиной распределения SRAM. В RP2350 остаётся лишь несколько десятков килобайт под прикладную логику, телеметрию, RTOS и дополнительные буферы, поэтому расширение словаря или усложнение аудиотракта быстро потребуют пересмотра всей схемы. Лицензия MIT распространяется на код Micro и указанные модели; внешние компоненты сохраняют собственные условия распространения.