Модуль распознавания голоса

Модуль распознавания голоса

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

Модуль распознавания голоса

О плюсах данного модуля распознавания:

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

— На ряду с другими моделями данный модуль выгодно отличается функциональностью, ценой и относительной простотой в управлении и подключении.

— Имеет высокую распознавающую способность.

— Никакого смартфона не требуется.

И так поехали! Данное видео будет направлено в первую очередь на новичков, тех, кто не знаком с программирование и интерфейсами, в общем для обычных радио любителей. В видео я покажу всё от «А» до «Я»: начнем с установки программ и подключения и закончим конкретным результатом автономной работы модуля.

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

Потребляемый ток: не более 40 мА, ток не критичный, так что просто учтите. Напряжение питания – 5 В, мы будем питать модуль USB порта компьютера при программировании, а дальше при работе вы сами решите от чего запитывать. Точность распознавания голосовой команды – 99% при идеальных условиях. Модуль распознавания голоса версии V3.1 способен запомнить 80 голосовых команд! Что на мой взгляд вполне достаточно для любых целей. Но опять же это «НО». Но модуль в единицу времени может распознавать только семь любых команд, а каких сень команд – выбирать вам.

Модуль распознавания голоса

То есть, вы можете записать в базу все 80 команд, но для распознавания выбрать только семь, любых семь из восьмидесяти. Это как с компьютером: на жестки диск можно записать 80 команд, а в оперативной памяти работать только с 7-ю командами. Если вам трудно это сейчас понять, то чуть позже на практике, я думаю, вам станет ясно о чём идет речь. Длинна голосовой команды – 1,5 секунды (1500мс) максимальное значение. Управлять платой модуля можно по интерфейсу UART, а вот снимать информацию можно как UART, так с портов GPIO, расположенных на плате. Собственно говоря, чем мы и займемся: будем снимать сигнал с выхода порта.

Переходим к практической части.

Что же нам понадобиться для работы?

— Сам модуль распознавания голоса версии V3 (V3.1) Версия не так важна – принцип работы у всех одинаков. Модуль идет с микрофоном.

— Руководство по модулю, то есть дата шит.

— Преобразователь интерфейсам USB-UART.

Все ссылки на покупку и скачивание софта под видео, в конце статьи.

Вот и всё. Как говорил Гагарин – «Поехали».

Скачиваем руководство и терминал. Терминал устанавливаем. Подключаем модуль к преобразователю интерфейса.

Модуль распознавания голоса

Будьте очень внимательны при подключении. Не страшно, если вы перепутаете TXD и RXD, ничего страшного не произойдёт. А вот если вы перепутаете плюс питания с общим проводом – это будет катастрофа! Как случилось у меня – сразу сгорел модуль и порт компьютера! Будьте очень внимательны и не повторяйте моих ошибок. Не суетитесь, не спешите, проверьте цепь несколько раз перед включением, и только после этого подключайте к USB.

После подключения к USB ваша система начнет поиск драйверов к преобразователю, в 90% случаев система сама находит драйвер и устанавливает его, но если этого по каким-то причинам не произошло, то вам буден нужно самим найти драйвер в сети и установить его. Для этого в поисковой строке напишите «CP2102 драйвер скачать» или типа того, модуль распространенный, вариантов драйверов полно.

Далее, после успешной установки оборудования идем в диспетчер устройств и смотрим порты. Нас интересует присвоенный номер нашего преобразователя. Когда узнали номер порта запускаем терминал. Идем в настройки и устанавливаем значения как у меня на рисунке.

Пишем в окне терминала команду – «AA 02 00 0A» (из даташита | AA | 02 | 00 | 0A |). Во всех командах всегда буквы заглавные и латинские.

Поле отправки вам должен последовать ответ, типа: «AA 08 00 STA BR IOM IOPW AL GRP 0A» (или из даташита | AA | 08 | 00 | STA | BR | IOM | IOPW | AL | GRP | 0A |). Если ответ пришел, то все отлично, пол дела сделано. Если нет, играемся с настройками настройками скорости передачи в терминале, просто возможно модуль настроен на другую скорость.

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

Модуль распознавания голоса

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

Поясню саму команду «AA 02 00 0A» — это пакет состоящий из 4 байт, байты — это попарные символы в шестнадцатеричной системе – AA,02,00,0A. Во всех командах пакет будет начинаться байтом AA и заканчиваться байтом A (Ноль и A) – это обязательное условие. Ответы модуля будут так же начинаться и заканчиваться этими символами.

«AA 02 00 0A» — второй байт этой команды означает количество байт между байтами начала и конца, короче кроме AA и 0A. А все что между ними считаем и пишем во второй байт. Как видим в этом примере, что между AA и 0A стоят два байта — 02 00, следовательно – 02, то есть число считает само себя. Еще пример, «AA 03 20 01 0A» то есть между AA и 0A стоят три байта «03 20 01», следовательно, второй байт – 03. Думаю, Вам будет понятно.

Команда «12» — настройка портов модуля.

На плате модуля расположены порты, с которых мы будем снимать сигнал, прежде чем это делать, необходимо настроить эти порты. Настроить порты можно это командой

«AA 03 12 01 0A» — третий байт — это команда, а четвертый значение команды. Четвертый байт может принимать следующие значения и задавать следующие опции: если «00» — режим импульса, то есть при распознавании голосовой команды, на нужный нам порт подается короткий импульс. Если «01» — режим инверсии, то есть при распознавании голосовой команды, на нужный нам порт сменит состояние на противоположное, если был 0 – станет 1 и наоборот. Если «02» — режим при котором порт переходит в ноль. Если «03» — режим при котором порт переходит в единицу.

Читайте также  Русский салат из слабосолёной сельди и яиц

Команда «20» — настройка портов модуля.

«AA 03 20 01 0A» — третий байт — это номер команды, которую мы будем записывать. Пример записи двух команд 1 и 2: «AA 04 20 01 02 0A». Пример записи двух команд 1, 2, 3: «AA 05 20 01 02 03 0A».

Команда «30» — загрузка записи в «распознаватель» модуля.

«AA 03 30 01 0A» — третий байт команда загрузки в память распознавателя записи 01. Если нужно записать две команды — «AA 04 30 01 02 0A», если нужно записать все семь команд — «AA 09 30 01 02 03 04 05 06 07 0A».

Команда «15» — Автозагрузка голосовых команд в распознаватель при включении питания – автономный режим работы без внешнего контроллера.

«AA 03 15 07 01 02 03 0A» — третий байт команда, четвертый байт метка команд, то есть своеобразный идентификатор, и равен 01 для загрузки одной команды, 03 – для загрузки двух команд, 07 – для загрузки трех команд и так далее, смотрите в даташит таблицу. Ну а дальше идут номера команд, которые нужно загружать.

Вот и всё: проверили связь с модулем, сконфигурировали порты, записали команды, настроили автозагрузки голосовых команд.

Об остальных командах читайте в даташит. Я лишь объяснил примерный вид работы с модулем.

Модуль распознавания голоса EasyVR 3 Plus Shield

Товары из офиса нельзя заказать через интернет или забронировать. Можно только прийти, схватить и бежать. Доступное количество актуально на момент загрузки страницы.

Офис находится в 3 минутах ходьбы от м. Парк культуры по адресу: ул. Тимура Фрунзе, 8/5.

Товары из магазина-мастерской нельзя заказать через интернет или забронировать. Можно только прийти, схватить и бежать. Доступное количество актуально на момент загрузки страницы.

Магазин-мастерская находится в трёх минутах пешком от метро Лиговский Проспект, на территории пространства «Лофт Проект Этажи», по адресу Лиговский проспект 74Д.

Хотите общаться с контроллером и отдавать команды голосом? «Окей, Ардуино, мигни светодиодом на 13-м пине!» Звучит круто, но программное распознавание голоса — слишком сложная задача для ардуинки и инженера-любителя. Модуль EasyVR 3 Plus Shield — готовое решение для распознавания голосовых команд, чтобы управлять умным домом или своими роботами.

EasyVR расшифровывается как «Easy Voice Recognition» и позволяет записать перечень команд через микрофон, а потом определить, фразу с каким номером вы произносите. Получив номер команды, микроконтроллер выполняет заложенное в неё действие: включает-выключает свет в комнате, открывает дверь хозяину или подаёт чашечку кофе. Также устройство умеет проигрывать в ответ заранее записанные аудиофрагменты, чтобы поддерживать диалог.

Принцип действия

EasyVR 3 Plus использует два метода распознавания голоса для различных сценариев применения.

  • Speaker-independent (SI) — фонетический алгоритм распознавания речи, который работает с отдельным языком. Тут заготовлено 26 базовых команд и 6 словарей: английский, итальянский, немецкий, французский, испанский и японский. В этом случае учитываются фонетические особенности, которые образуют разные слова, а индивидуальность голоса пользователя не имеет значения. Предустановленные команды включают в себя направления движения (влево-вправо, вперёд-назад, вниз-вверх), несколько ключевых действий (двигаться, стоять и т. д.), а также арифметические числа от 0 до 10.
  • Speaker-dependent (SD) — точный алгоритм, который отличает речевые характеристики разных людей. То есть, устройство реагирует только на тех, чей голос звучит в оригинале команды. В этом кроются плюсы и минусы метода: с одной стороны, круг доверенных пользователей становится ограничен, с другой стороны — алгоритм не привязан к какому-либо языку и точно распознаёт хозяина. Метод распознавания SD включает в себя дополнительный режим Speaker-verification (SV) для создания «голосового пароля», который идентифицирует говорящего человека по индивидуальным характеристикам голоса.

Несмотря на то, что устройство формально не поддерживает русский язык из коробки, оно запросто будет понимать ваши русскоязычные команды в режиме Speaker-dependent (SD).

Возможности

  • Распознавание пользовательских речевых команд по алгоритму SD (до 256 фраз на любом языке).
  • Распознавание предустановленных речевых команд по алгоритму SI на 6 языках (26 базовых фраз).
  • Заливка и воспроизведение звуковых ответов, задаваемых пользователем.
  • Синтез тональных телефонных сигналов DTMF для управления модулями умного дома или охранной системы.
  • Общение с другими звуковыми устройствами с помощью технологии SonicNet, которая передаёт данные по воздуху звуковыми импульсами.

Начинка

Модуль EasyVR 3 Plus сделан на базе чипа Sensory RSC-4128 — проверенного решения для распознавания речи, которое также используется в интерактивных игрушках Furby и прочих роботизированных штучках с голосовым управлением.

Система на кристалле RSC-4128 объединяет в себе 8-битный микроконтроллер с интегрированным АЦП, ЦАП, предусилителем, ОЗУ и специализированными блоками обработки звука. Именно они отвечают за быстрое распознавание голосовой информации на лету.

Подключение и настройка

Работа с EasyVR 3 Plus Shield делится на два этапа. Сначала в модуль необходимо записать референсные команды через управляющую плату и родную программу EasyVR Commander для Windows, а затем устройство в штатном режиме будет считывать голосовые команды и выдавать контроллеру управляющие сигналы. Подробный алгоритм начала работы приведён в нашей инструкции на Wiki.

Микрофон и внешний динамик подключаются к плате через JST-разъёмы. Обратите внимание, что сопротивление громкоговорителя должно быть не ниже 8 Ом. Аудиовыход 3,5 мм рассчитан на наушники сопротивлением 16–32 Ома и способен работать в качестве линейного выхода.

Комплектация

  • 1× Модуль EasyVR 3 Plus
  • 1× Плата расширения для EasyVR 3 Plus
  • 1× Микрофон
  • 1× Провод для динамика
  • 1× Набор штырьковых соединителей

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

Модуль распознования речи Elechouse Voice Recognition Module v3.1 и подключение его к Arduino

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

В данной статье мы разберем один способ как управлять голосом устройствами. Для этого нам понадобится модуль распознавания речи Voice recognition module V3.1 .

Данный модуль можно приобрести по ссылке в начале статьи. В комплект поставки входит сам модуль , микрофон на гибкой ножке с разъемом 3,5 мм jack плюс PLS контакты с шагом 2,56 мм для платы модуля.

Данный модуль может работать как в паре с микроконтроллером, так и автономно от него.

Характеристики модуля Voice recognition module V3.1 (V3):

  • Напряжение питания – 5 вольт
  • Потребляемый ток – до 40 мА
  • Интерфейсы – UART, GPIO
  • Точность распознавания – 99% (в идеальных условиях)
  • Дальность действия – зависит от используемого микрофона, для штатного микрофона из комплекта дальность составляет 0,5 – 1 метр максимального расстояния при достаточно громком голосе.
Читайте также  Мини-примус из банки от колы

На данный модуль есть datasheet в котором подробно описано, как управлять и работать с данным модулем. Ссылка на даташит: https://yadi.sk/i/nbj8jyfz3WxQyy

В данном даташите описано несколько способов программирования данного модуля. В данной статье мы рассмотрим только один, способ программирования с помощью arduino.

Для начала нам нужно подключить модуль к arduino по такой схеме:

Данное подключение используется потому, что мы будем использовать serialsoftware.

После того как мы все правильно подключили, необходимо скачать библиотеку по ссылке: https://github.com/elechouse/VoiceRecognitionV3/archive/master.zip

После того как мы скачаем библиотеку и установим ее, нам понадобится пример vr_sample_train который можно найти перейдя в (файл -> Примеры -> VoiceRecognitionV3 -> vr_sample_train)

Выбрав данный пример, загрузим его в ардуино. После загрузки откроем монитор порта:

  1. В открывшемся мониторе порта, нужно выбрать обязательно. скорость порта 115200, и меню NL ( новая строка) Newline или NL & CR.
    sm
  2. После появившейся таблицы в мониторе порта нужно вписать команду “ settings» для того чтоб определить, отвечает ли модуль на команды и все ли подключено правильно.
    inputinput
  3. Далее нужно будет ввести команду “ sigtrain 0 On» где команда «sigtrain» отвечает за запись команды, «0» это идентификатор команды, «On» это описание нашей команды оно может быть произвольной. После ввода данной команды в мониторе порта появится команда”Speak now”, которая сигнализирует нам о том, что началась запись команды, и нужно проговорить в микрофон нужную команду которую мы хотим использовать. Затем появится команда “Speak again”,которая просит нас повторить команду еще раз. Если команды правильные и совпадают, то высветится команда”Success”, и “record 0” . Но если команда не верная или же присутствовали посторонние шумы, то высветится команда “Cann’t matched” что символизирует о том что команда не записалась и просит проговорить еще раз ее.sigtrain
  4. Если хотим записать еще одну команду, например первая была “On” на включение, а следующую хотим записать на выключение, то следует нам вписать следующую команду “ sigtrain 1 Off ”
    sigtrain
  5. После записи команд, нам нужно их записать в память контроллера, чтоб он мог данные команды использовать. За это отвечает команда “load”. Нам нужно записать в модуль две команды с идентификаторами “0” и “1” тогда следует ввести команду “ load 0 1″
    loadПосле записи можно будет проговорить наши команды и если команды распознаются то в мониторе порта будут появляться вот такие строки
    vrТеперь позле записи команд давайте попробуем по управлять голосом светодиодами. Для этого откроем пример vr_sample_control_led(Файл -> Примеры -> VoiceRecognitionV3 -> vr_sample_control_led) и загрузим его в ардуино.

И подключив светодиод к 13 пину, мы можем увидеть как по записанным нашим командам светодиод включается и выключается.

Но если вы хотите большими устройствами управлять, например как я показал в видео двумя светодиодами, то вот Вам для примера скетч чуть измененный из стандартного примера. для управления ни одним светодиодом, а двумя.

Ну и собственно демонстрация работы в видео:

Распознавания голоса на Arduino

Тема распознавания голоса микроконтроллером довольно интересна и нова, поэтому я решил представить вам схему устройства распознавания голоса на микроконтроллере, а точнее на Arduino. Распознавание голоса довольно непростая задача, а реализовать это на микроконтроллере еще сложнее, в силу ограниченности его ресурсов. В нашем случае реализация распознавания голоса будет на микроконтроллере ATmega328P, работающего на частоте 16МГц.

Распознавание голоса на Arduino

В данном устройстве была использована библиотека uSpeech, которая полностью автономна и не требует передачи голосовых команд на компьютер для дальнейшего распознавания, как того требуют другие библиотеки и модули, например, такие как BitVoicer.

В моей схеме распознавания голоса на микроконтроллере была использована uSpeech в силу своей автономности и малых размеров. Хотя у неё есть недостаток, такой как ограниченность распознавания. Эта библиотека позволяет распознавать только фонемы, т.е. отдельные звуки, но для многих схем и устройств этого более чем достаточно. Ниже приведен список используемых фонем (звуков):

Фонема (звук) Соответствующая ей буква (может быть несколько)
“е” е
“х” х, ш, щ, дж, ж, з
“в” в, может срабатывать на з
“ф” ф
“с” с
“о” о, а, ш, л, м, н, у, ю
” “ слишком тихий звук

В качестве микрофона используется электретный микрофон (ссылка на статью на Wikipedia), обычно он выглядит так:

Электретный микрофон

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

Микрофонный усилитель на операционном усилителе (ОУ) LM358

Либо можно купить готовый микрофон с усилителем на eBay или AliExpress, найти можно по запросу «Mic amplifier arduino» или «Микрофонный усилитель Arduino». Выглядит он так:

Микрофонный усилитель (готовый модуль)

Микрофон с микрофонным усилителем желательно подключить к микроконтроллеру через резистор 470…2К и разделительный конденсатор (он уже есть в самих схемах усилителей, а также на готовых платах), который убирает постоянную составляющую.

Схема подключения микрофона и усилителя к Arduino следующая: микрофон через усилитель подключается к аналоговому порту Ардуино A0, три светодиода через резисторы подключаются к цифровым выходам 5,6,7 (схему можно изменить, внеся соответствующие, небольшие правки в исходный код программы).

Схема подключения микрофона к Arduino для распознавания голоса

В качестве индикаторов распознанных команд были использованы три светодиода разных цветов.

В исходном примере библиотеки uSpeech сравнивались одиночные фонемы (звуки). Пример позволял распознать 6 фонем (звуков): «ф», «е», «о», «в», «с», «х» (f, e, o, v, s, h). Мной был использован массив байт, который содержал паттерны, распознаваемых слов, что позволило в конечном итоге распознавать не отдельные фонемы (звуки), а целые слова, состоящие из распознаваемых фонем. Массив полученных звуков сравнивается с заранее прописанным массивом байт (паттерном слова), и в случае совпадения, с учетом заданного порога чувствительности, делается вывод о том, какое слово было произнесено.

Например, заранее прописанные паттерны для английских слов green,orange и white были следующие “vvvoeeeeeeeofff”, “hhhhhvoovvvvf”, “hooooooffffffff”. Для нахождения наиболее ближайшего эквивалента произносимом слову необходимо находить минимальное редакционное расстояние (расстояние Левенштейна). Для повышения точности и игнорирования нерелевантных паттернов при распозновании использовалась константа LOWEST_COST_MAX_THREASHOLD, определяющая уровень достоверности. Подбирая её значение можно добиться высокой точности распознавания.

Скомпилированный скетч занимает около 20% FLASH-памяти микроконтроллера и около 500 байт, т.е. 25% ОЗУ. Библиотеку для распознавания голосовых команд на Ардуино – uSpeech можно скачать здесь (необходимо нажать зеленую кнопку “Clone or download”). Установка библиотеки стандартная – необходимо распаковать архив и поместить папку в “C:/Users/<Имя пользователя>/Documents/Arduino/libraries”.

Распознавание речи на Arduino Nano 33 BLE Sense

Технология распознавания речи чрезвычайно полезна в различных системах автоматизации – она не только позволяет управлять устройствами не используя для этого руки (hands free), но также повышает безопасность системы. Также эта технология применяется во многих современных электронных гаджетах и оказывает неоценимую помощью людям с некоторыми тяжелыми заболеваниями.

Читайте также  Солнечная духовка своими руками

Внешний вид проекта распознавания речи на основе платы Arduino 33 BLE Sense

Ранее на нашем сайте мы уже рассматривали преобразование текста в речь на основе Arduino, в этом же проекте мы будем использовать машинное обучение для тренировки (настройки) модели распознавания речи в Edge Impulse Studio. Мы будем тренировать нашу систему на три команды: ‘LIGHT ON’ (включить свет), ‘LIGHT OFF’ (выключить свет) и ‘NOISE’ (шум). Edge Impulse – это онлайн платформа машинного обучения, которая позволяет разработчикам создавать (проектировать) следующее поколение высоко интеллектуальных устройств со встроенным в них машинным обучением (Machine Learning).

Необходимые компоненты

Аппаратное обеспечение

  1. Плата Arduino Nano 33 BLE Sense.
  2. Светодиод (купить на AliExpress).
  3. Соединительные провода.

Программное обеспечение

    .
  1. Arduino IDE.

Схема проекта

Схема проекта распознавания речи на основе платы Arduino Nano 33 BLE Sense представлена на следующем рисунке. К сожалению, в программе Fritzing, которую мы использовали для рисования схемы, нет платы Arduino 33 BLE Sense, поэтому вместо нее на схеме мы использовали плату Arduino Nano поскольку она имеет точно такую же распиновку.

Схема проекта распознавания речи на основе платы Arduino Nano 33 BLE Sense

Положительный контакт светодиода подключен к цифровому контакту 5 платы Arduino Nano 33 BLE sense, а отрицательный контакт светодиода подключен к контакту GND платы Arduino.

Внешний вид собранной конструкции проекта показан на следующем рисунке.

Внешний вид собранной конструкции проекта

Создание набора данных для системы распознавания речи

В нашем проекте мы будем использовать Edge Impulse Studio для тренировки (настройки) нашей модели распознавания речи. Тренировка (настройка) модели в Edge Impulse Studio очень похожа на тренировку моделей машинного обучения в других подобных системах. Для тренировки (настройки) модели машинного обучения первым шагом нам необходимо собрать набор данных (dataset), который будет содержать отсчеты/образцы (сэмплы) данных, которые мы хотим распознавать.

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

Мы создадим набор данных (dataset) с тремя классами — “LED ON”, “LED OFF” и “noise”. Для создания этого набора данных необходимо создать себе аккаунт в Edge Impulse, верифицировать его и затем создать в нем новый проект. Вы можете загрузить в него образцы (samples) звуков, используя ваш смартфон, плату Arduino или другое устройство, с помощью которого можно импортировать образцы звуков в ваш аккаунт на Edge Impulse. Самый простой способ загрузить образцы звуков в аккаунт Edge Impulse – это использовать мобильный телефон (смартфон). Для этого соедините ваш смартфон с Edge Impulse. Чтобы сделать это кликните в аккаунте Edge Impulse на ‘Devices’, а затем на ‘Connect a New Device’ (подключить новое устройство).

Подключение нового устройства в Edge Impulse

В окне, которое появится после этого, нажмите на ‘Use your Mobile Phone’ (использовать ваш мобильный телефон), после чего появится QR код. Отсканируйте этот QR код вашим мобильным телефоном или введите URL, показанный на этом QR коде.

Подключение мобильного телефона в Edge Impulse

После этого ваш телефон будет подключен к Edge Impulse studio.

Мобильный телефон подключен к Edge Impulse studio

Когда ваш телефон подключен к Edge Impulse Studio вы можете загружать в него ваши образцы звуков. Чтобы сделать это кликните на ‘Data acquisition’. После этого на странице получения данных (Data acquisition page) введите номер метки, выберите микрофон в качестве датчика и ведите длину образца звука (sample length). Затем нажмите на ‘Start sampling’ и ваше устройство запишет образец звука длительностью 2 секунды. Запишите от 10 до 12 образцов звука в различных условиях.

Настройка записи образцов звуков в Edge Impulse studio

После загрузки образцов звука (samples) для первого класса измените метку и соберите также образцы звуков для классов ‘light off’ и ‘noise’

Собранные нами образцы звуков в Edge Impulse Studio

Собранные нами образцы звуков нужны для обучения (тренировки) модуля, далее нам необходимо еще собрать тестовые данные (Test Data). Эти данные должны составлять, по меньшей мере, 30% от тренировочных данных, поэтому нам нужно еще собрать 4 образца шума (‘noise’) и 4 или 5 образцов для звуков ‘light on’ и ‘light off’.

Тренировка (обучение) модели

Когда наш набор данных будет готов, мы можем создать импульс (impulse) для данных. Для этого вам нужно перейти на страницу ‘Create impulse’. Измените на ней настройки по умолчанию Window size (размер окна) с 1000 ms на 1200ms, а параметр Window increase измените с 500 ms до 58 ms. Эти настройки будут означать, что наши данные будут обрабатываться по времени 1,2 секунды, стартуя каждые 58ms.

После этого на странице ‘Create impulse’ нажмите на ‘Add a processing block’ (добавить блок обработки). В следующем окне выберите Audio (MFCC) block. После этого нажмите на ‘Add a learning block’ (добавить обучающий блок) и выберите в новом окне Neural Network (Keras) block (блок нейронной сети). Затем нажмите на ‘Save Impulse’ (сохранить импульс).

Создание нового Impulse в Edge Impulse Studio

После этого перейдите на страницу MFCC и нажмите на ‘Generate Features’. В результате этого будут сгенерированы MFCC блоки для всех наших окон с аудио.

Настройка параметров обучения модели в Edge Impulse Studio

После этого перейдите на страницу ‘NN Classifier’ и нажмите там на три точки в правом верхнем углу напротив надписи ‘Neural Network settings’ (настройки нейронной сети), после чего выберите пункт ‘Switch to Keras (expert) mode’ как показано на следующем рисунке.

Настройка параметров нейронной сети в Edge Impulse Studio

Замените оригинал следующим фрагментом кода и измените ‘Minimum confidence rating’ (минимальный доверительный интервал) на ‘0.70’. Затем нажмите на кнопку ‘Start training’ (начать обучение). После этого начнется обучение (тренировка) вашей модели.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: