Table of Contents

Зачем использовать микроконтроллеры PIC для распознавания голоса?

Технология распознавания голоса все чаще внедряется в потребительскую электронику, промышленные элементы управления и устройства IoT. В то время как высокопроизводительные процессоры и специализированные цифровые сигнальные процессоры (DSP) доминируют в ландшафте, микроконтроллеры PIC предлагают убедительный баланс стоимости, энергоэффективности и простоты разработки для приложений, которые требуют простого распознавания команд, а не обработки естественного языка. Их низкая цена блока (часто менее 2 долларов США в объеме) и минимальный расход энергии (микроампы в спящем режиме) делают их идеальными для устройств с питанием от батареи или всегда включенными прослушивающими устройствами.

Преимущества PIC для распознавания голоса выходят за рамки экономики. Обширная экосистема компиляторов, программистов и библиотек сообщества сокращает время разработки. Многие варианты PIC включают интегрированные аналого-цифровые преобразователи (ADC), компараторы и даже операционные усилители, позволяющие напрямую подключать аудиодатчики с минимальными внешними схемами. Например, PIC18F47Q10 имеет 12-битный ADC, способный отбирать звуковые частоты до 44 кГц, достаточный для извлечения функций из человеческой речи.

Однако проблемы остаются. Основное ограничение — вычислительная пропускная способность. Типичный PIC18, работающий на частоте 64 МГц, может выполнять около 16 MIPS, что намного меньше, чем современный ARM Cortex-M4 или DSP. Это ограничивает сложность алгоритмов распознавания, которые могут работать в режиме реального времени. Кроме того, оперативная память на чипе часто ограничивается несколькими килобайтами, что ограничивает количество и размер голосовых шаблонов, которые могут быть сохранены. Поэтому дизайнеры должны выбирать алгоритмы, которые являются вычислительно легкими и использовать внешнее хранилище (например, SPI flash) для баз данных шаблонов.

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

Требования к аппаратному обеспечению для распознавания голоса на PIC

Выберите микрофон и предусилитель

Высококачественный электронно-конденсаторный микрофон (ECM) или микрофон MEMS преобразует акустические волны в аналоговое напряжение. Для систем на основе PIC типична ECM с чувствительностью -44 дБВ/Па. Микрофон должен быть подключен к предусилителю для доведения уровня сигнала до входного диапазона ADC (например, 0-3,3 В или 0-5 В). Хорошо работает простая однопроводная схема оп-ампа (например, с использованием MCP602 или TS912) с усилением 40-60 дБ. Конструкторы должны включать полосовой фильтр (300 Гц-3,4 кГц) для удаления низкочастотного гула и высокочастотного шума, что повышает точность распознавания при одновременном снижении скорости передачи данных.

Для многокомандных систем или шумных сред рассмотрите дифференциальный микрофонный массив и предусилитель с автоматическим управлением усилением (AGC) для поддержания согласованной амплитуды.

Аналоговые к цифровым преобразованиям

Внутренний ADC PIC должен быть сконфигурирован для непрерывной выборки со скоростью, по меньшей мере, в два раза превышающей наибольшую интересующую частоту (теорема Никвиста). Для речи скорость выборки 8 кГц (8-битное разрешение) является минимальной для разборчивости; 16 кГц при 12-битном разрешении рекомендуется для надежного распознавания. Многие PIC-устройства поддерживают как одноконтурные, так и дифференциальные входные данные. Часы преобразования ADC должны быть оптимизированы, чтобы избежать псевдонимирования; для PIC без выделенного DMA может использоваться выделенный таймер. Для PIC без выделенного DMA процессор должен считывать каждый образец и хранить его в ОЗУ или передавать его наружу. Использование ADC с прерыванием с помощью кругового буфера является стандартным подходом.

Память и хранение

Голосовые шаблоны требуют постоянного хранения. Это может быть достигнуто с помощью внешней SPI EEPROM (например, 25LC256) или SPI flash (например, W25Q64), запрограммированной с предварительно записанными командами во время фазы обучения. Модуль SD-карты является альтернативой для прототипов. Для систем со многими командами может потребоваться внешняя SRAM или PSRAM во время распознавания, чтобы удерживать захваченное высказывание для сравнения. RAM на чипе может хранить короткий всплеск (например, 256 мс при частоте выборки 8 кГц требуется 2 КБ для 8-битных образцов).

Алгоритмы распознавания голоса, подходящие для PIC

Шаблоны, соответствующие кросс-корреляции

Простейший алгоритм распознавания слов — это согласование шаблонов на основе энергии. PIC захватывает аудиокадр фиксированной длины (например, первые 500 мс после обнаружения голосовой активности) и нормализует его амплитуду. Также нормализуются предварительно сохраненные шаблоны. Затем вычисляется кросс-корреляция между захваченным сигналом и каждым шаблоном. Выбирается команда, соответствующая самому высокому коэффициенту корреляции. Кросс-корреляция — это операции с интенсивной памятью (требуют O(N2) операций на шаблон), но может быть реализована с целочисленной арифметикой и разматыванием петли для запуска на PIC18 на частоте 64 МГц менее чем за 50 мс для 10 шаблонов по 4000 образцов каждый.

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

Динамическое искажение времени (DTW) для переменной скорости

DTW — это хорошо известный метод, который выравнивает два временных ряда разной длины, чтобы найти лучшее соответствие. Он вычислительно тяжелее, чем простая корреляция, но необходим для многоговорящих или бесплатных речевых приложений. Базовый вычисление пути деформации для высказывания 4000 образцов против шаблона 4000 образцов включает в себя построение матрицы стоимости 4000x4000, что непрактично на PIC. Однако существуют оптимизированные вариации: ограничения полосы Сакоэ-Чиба уменьшают матрицу до узкой диагональной полосы, и использование фиксированного окна (например, коэффициент деформации 0,2) уменьшает вычисления. PIC18 может обрабатывать DTW на высказываниях 1000 образцов в течение нескольких сотен миллисекунд, но допустимое количество шаблонов мало. Для больших наборов шаблонов рекомендуется внешняя обработка.

Частотный анализ доменов с использованием FFT

Мел-частотные цепстральные коэффициенты (MFCC) являются стандартной функцией распознавания речи. Извлечение MFCC требует быстрого преобразования Фурье (FFT), что является сложной задачей на PIC. Однако упрощенный подход заключается в использовании 64-точечного или 128-точечного реального FFT для извлечения спектральной энергии в нескольких критических диапазонах (например, 0-1 кГц, 1-2 кГц, 2-3 кГц). Можно использовать аппаратный множитель PIC; существуют библиотеки для FFT на PIC, такие как библиотека приложений Microchip. Полученные векторы функций обычно представляют собой 4-8 коэффициентов, которые можно сравнить с евклидовым расстоянием или легким линейным классификатором (например, k-Nearest Neighbors с несколькими соседями). Этот подход обеспечивает лучшую устойчивость к шуму, чем методы временных доменов, но при более высокой вычислительной стоимости. Он лучше всего подходит для устройств PIC24 или PIC32 с более высокими тактовыми частотами и инструкциями DSP.

Внедрение простой системы распознавания команд

Архитектура систем

Полная система содержит микрофон и предусилитель, подключенный к входу ADC на PIC. PIC управляет светодиодом состояния, зуммером для обратной связи и выходным реле или последовательным интерфейсом для запуска действий. Нажимная кнопка входит в режим обучения. Прошивка запускает машину состояния: IDLE, LISTENING, RECORDING, RECOGNIZING и RESPONDING. Во время LISTENING PIC непрерывно сэмплирует аудио и вычисляет энергию. Когда энергия превышает порог в 100 мс, она начинает запись в кольцевой буфер. Запись продолжается до тех пор, пока не будет обнаружена тишина в течение 200 мс или тайм-аут 2 секунд. Затем алгоритм распознавания работает против сохраненных шаблонов, хранящихся во внешней вспышке.

Фаза обучения против фазы признания

На этапе обучения пользователь произносит каждую команду (например, «включено», «выключено», «покадрировано») несколько раз. Захваченные высказывания сохраняются во внешней памяти вместе с метки. Для простых систем шаблоном является вся сырая форма волны (после нормализации). Для более продвинутых реализаций PIC извлекает функции (например, нулевые скрещивания и энергию на кадр) и сохраняет вектор признаков. Тренировочный набор может включать в себя несколько экземпляров на команду для обработки вариаций; система выбирает средний шаблон или тот, у которого наименьшее расстояние корреляции между экземплярами.

Практические соображения

Обнаружение голосовой активности (VAD) должно быть надежным, чтобы избежать ложных триггеров. Простой энергетический порог может быть недостаточным в шумных средах; рассмотрите возможность использования алгоритма с двойным порогом с оценкой фонового шума, обновленной во время периодов тишины. Кроме того, система должна отскакивать от кнопки обучения и предоставлять звуковые или визуальные подсказки во время обучения (например, «скажем команду сейчас» через предварительно записанный WAV или тон). Тестирование показывает, что хорошо реализованная система на основе PIC с соответствием шаблонам может достичь 80-90% точности в тихих комнатах с последовательным динамиком.

Расширение возможностей внешних процессоров и облачных сервисов

Использование IC для распознавания выделенного голоса

Когда вычислительная мощность PIC недостаточна, интеграция специализированного чипа распознавания голоса, такого как HM2007 или модуля Elechouse V3, упрощает разработку. Эти IC обрабатывают предварительную обработку и распознавание в автономном режиме, обмениваясь с PIC через последовательный или параллельный интерфейс. PIC отправляет команды на модуль распознавания и получает распознанные идентификаторы команд. Этот гибридный подход сохраняет низкую мощность PIC для логики управления при разгрузке интенсивных вычислений. Компромисс заключается в увеличении стоимости BOM и объема.

Отгрузка в облако через Wi-Fi

Добавление модуля Wi-Fi (например, ESP8266 или ESP32) к PIC открывает доступ к облачным речевым сервисам, таким как Google Speech-to-Text, Amazon Alexa Voice Service или пользовательским облачным конечным точкам. PIC захватывает аудио и отправляет его через UART в модуль ESP, который передает его в облако через MQTT или HTTP. Признанный текст возвращается к PIC, который анализирует его для команд. Этот путь предлагает практически неограниченный словарный запас и понимание естественного языка. Недостатком является задержка (задержка сети) и зависимость от подключения к Интернету. Для критически важных приложений (например, домашняя автоматизация) локальный облачный сервер на Raspberry Pi может быть компромиссом.

Гибридный подход к Edge AI

Последние достижения в TinyML позволяют простым моделям нейронных сетей (например, полностью подключенным или Conv1D) работать на микроконтроллерах класса PIC. Используя инструментальную цепочку, такую как TensorFlow Lite Micro, разработчики могут обучать модель определения ключевых слов в облаке и развертывать ее в виде скомпилированной библиотеки C++ в PIC. Для вывода требуется всего несколько сотен байтов оперативной памяти и работает в десятки миллисекунд. С PIC32MX или PIC32MZ может легко поместиться четырехслойная сеть с 10 ключевыми словами. Этот подход обеспечивает надежное распознавание с минимальной задержкой и отсутствие необходимости в облачной связи. MPLAB X IDE Microchip может интегрировать сгенерированный код модели.

Реальные приложения и соображения дизайна

Умный дом контроль приборов

Голосовой переключатель света с использованием PIC18 и предварительно обученный шаблонный набор для «включения» и «выключения» может заменить традиционный настенный переключатель. Блок может работать от батареи (используя режим сна между командами) и общаться с реле через транзистор. Для надежной работы необходимо учитывать акустическое отключение эха (если микрофон находится рядом с динамиками) и предотвращать распознавание случайных звуков. Акселерометр для обнаружения сенсорного ввода может служить запасным вариантом.

Устройства доступности для инвалидов

PIC-системы использовались в вспомогательных технологиях, таких как голосовые инвалидные коляски или блоки экологического контроля для четырехногих пользователей. В таких приложениях безопасность имеет первостепенное значение; PIC должен реализовать этап подтверждения (повторить слово или использовать второй триггер) для предотвращения ложных срабатываний. Аппаратный таймер сторожевого пса обеспечивает сброс системы, если программное обеспечение висит. Для нескольких пользователей методы адаптации динамиков могут быть добавлены путем хранения нескольких шаблонов в команде.

Автоматические системы Hands-Free

Для модулей автомобилей после выхода на рынок PIC24 с интегрированной шиной CAN может принимать голосовые команды для управления окнами, огнями или информационно-развлекательными устройствами. Модуль подключается к подаче автомобиля 12 В и использует предусилитель шумового шлюза для подавления шума двигателя и дорожного шума. Такие команды, как «включено освещение» или «радио», распознаются, и PIC отправляет соответствующие сообщения CAN. Поскольку температура в автомобиле колеблется от -40 ° C до +125 ° C, PIC с расширенными температурными диапазонами (например, PIC18F2620-I / SO) имеют важное значение.

Будущие тенденции: TinyML и нейронные сети на PIC

Интеграция машинного обучения в ресурсо-ограниченные микроконтроллеры ускоряется. Такие компании, как Microchip, теперь предлагают выделенные библиотеки для искусственного интеллекта и нейронных сетей. Будущие семейства PIC могут включать аппаратные ускорители для умножения матриц или свертывания, что делает возможным распознавание голоса в реальном времени с помощью глубокого обучения. До этого разработчики могут использовать обрезку, квантование и дистилляцию знаний для развертывания небольших моделей (с <2 KB RAM and <32 KB flash) that achieve over 90% accuracy on keyword spotting tasks like "Yes" and "No". The Microchip AI Solutions Портал предоставляет примеры для серии PIC32 и SAM).

Заключение

Микроконтроллеры PIC остаются практичной и экономически эффективной платформой для внедрения базовых возможностей распознавания голоса в специализированные устройства. Ключ к успеху лежит в сопоставлении алгоритмической сложности с ресурсами микроконтроллера, оптимизации аппаратного обеспечения для чистого приобретения аудио и использовании внешней поддержки (выделенные IC или облачные сервисы), когда задача выходит за рамки простых наборов команд. Используя сопоставление шаблонов, DTW с ограничениями или даже легкие нейронные сети, дизайнеры могут создавать адаптивные системы с голосовым управлением, не прибегая к высокопроизводительным процессорам. По мере созревания TinyML линия между распознаванием голоса на основе PIC и DSP будет продолжать размываться, делая голосовое управление все более жизнеспособным вариантом даже для самых скромных встроенных проектов.