Наткнулся на ГитХабе - https://github.com/arjo129/uSpeech/wiki/Voice-controlled-LED Кто что может сказать по этой теме ? К чему вопрос ? - Тяготею, так скажем, к "антропоморфным" методам общения с техникой.
Там последняя дата, которую видел, была - 2014 год. Любопытно, продвинулся ли автор в этом деле дальше. Да, конечно интересует и реализация и теория.
Сейчас же не 2014 год, есть колонки с Яндекс Алисой, зачем делать распознавание команд на отдельном устройстве? Ну да, это требует интернета, но куда уж без него. Алиса - общение и распознавание голосовой команды, дальше - mqtt - отправка команд и получение данных с устройств. Сейчас уже почти всем можно управлять голосом, через Алису. Вчера подключил возможность голосовой командой запустить автозапуск на машине, узнать температуру двигателя, в салоне, прикольно, но не более. А вот свет в квартире, шторы, температура на улице, уведомления о событиях через text2speech - интересно и очень полезно. Использую и нравится.
С той поры и более новая версия платы вышла - значит кому-то это нужно до сих пор..... Просто этот обзор у Амперки адекватнее того который вышел на новую версию платы. И да, тут не надо ни каких mqtt - воткнул фразы через словарь и все работает без Интернетов и без необходимости наличия каких либо специфических знаний в голове.... Я думаю что раз плата продается и обновляется - кто-то её и сейчас использует.
По ТВ было - Супер-пуперный японо-мамский робот-уборщица. Отказывается работать по причине недоступности GPS сигнала. Блин - хорошо что наши жены без Джи-пи-эса, джи-пи-эр-эса, интернета и электро - сетей обходятся, когда полы моют.
- Алиса! Покузюкай мне пятку на левой ноге! - Нет связи с GPS! Нет связи с mqtt!... проверьте соединения...
Тогда немного теории. Вот только тория будет не совсем про распознавание речи, а вообще про цифровую обработку голоса. В своё время столкнулся с устройством, используемом в цифровой телефонии -- вокодер -- VOice CODER. Позволял передавать человеческую речь на скорости 1200 бит в секунду (что более, чем в 50 раз ниже стандартных 64 кбит/с при 8 бит * 8 кГц, про 8 кГц смотри теорему Котельникова). Правда голос сильно искажался, но смысл сказанного оставался понятным. А при определённом навыке можно было даже отличить голос одного человека от другого. Суть была в том, что для каждой фонемы (или с определённой периодичностью -- со временем уже подзабылось) выделялись три гармоники с наибольшей амплитудой. Частоты этих гармоник и их амплитуды переводились в цифру. На приёмной стороне по этим гармоникам восстанавливалась речь человека. Так же было развитие этой технологии -- липредер -- вокодер с линейным предсказанием. Но с такими устройствами в живую не сталкивался. Как можно использовать при распознавании речи: составить карту соответствия гармоник и их амплитуд буквам или буквосочетаниям и с помощью такой карты переводить речь в текст. Карта может (или скорее должна) содержать не конкретные гармоники и амплитуды, а определённые диапазоны. Или даже хранить не столько конкретные значения, сколько "относительные", что-то вроде векторов. Суть в том, что одни и те же фонемы, сказанные разными людьми, хоть и имеют разные гармоники и амплитуды, но сами гармоники будут иметь одинаковую зависимость друг от друга. Это как играть на пианино одну и ту же мелодию на разных октавах и с разной громкостью. Частоты и амплитуды разные, но последовательность нот одна и человек понимает, что это одна и та же мелодия. Так же есть способ переводить аналоговый сигнал в векторы. Сигнал разбивается на векторы разной длительности. Векторы берутся из подготовленного набора (например, из семи векторов). На картинке попытался показать суть этого способа. Спойлер: картинка Так же составляется карта векторов для каждой фонемы/звука и по этой карте производится преобразование в текст. Но этот способ, наверно, более сложный и даст худшие результаты на практике. Хотя кто его знает....