Установка "домового"
В настоящий момент, приложение работает исключительно в системе linux, опираясь на ее мультемедийные возможности.
Для запуска программы требуется установленный мультимедийный фреймворк FFMPEG и, если требуется распознавание речи, CMU PocketSphinx.
Приступим к установке в системе debian linux.
От лица суперпользователя, выполните команду:
apt install ffmpeg pocketsphinx
(второй пакет нужно устанавливать только, если будем распознавать голос).
Выберите и установите язык исходя из ваших потребностей по инструкциям на сайте проекта.
В папке "/usr/share/pocketsphinx" создайте линк на требуемую языковую модель с названием "def".
Создайте папку "/usr/share/hobgoblin" и разместите там файлы словаря и правил, которыми вы хотите руководствоваться при распознавании речи. Названия файлов: "my.dict" и "my.jsgf". Рекомендации и инструменты можно найти на сайте разработчика.
Создайте сервис для запуска приложения и выполните настройки в соответствии с инструкциями.
Примеры файлов для распознавания речи
my.dict
автомат a f t a m aa t автомат(2) a f t a m aa d верхний vv je r h nn i j включи f k ll uj ch ii выруби v yy r u bb i дверь d vv je rr достань d a s t aa nn зажги z a zh gg ii закрой z a k r oo j запись z aa pp i ss кондиционер k ay n dd i c y a nn je r монитор m ay nn i t oo r на n aa надолго n a d oo l g ay настольный n a s t oo ll n y j нафаня n a f aa nn i нафаня(2) n aa f aa n ay i l нафаня(3) n ay f aa n ay i l нафаня(4) n a f aa n aa i l нафаня(5) n a f aa n a ii l нафаня(6) n a f aa n ay i l нафаня(7) n a f aa nn ay нижний nn ii zh nn i j окне a k nn je останови a s t ay n a vv ii открой a t k r oo j погаси p ay g a ss ii подсветку p a c vv je t k u попроси p ay p r a ss ii свет s vv je t свет(2) s vv je d тупой t u p oo j ты t yy ухожу u h a zh uu уши uu sh y фоновый f oo n ay v y j я j ja иншаллах ii n sh ay l ay h иншаллах(2) ii n sh ay l ay скажи s k a zh yy погоду p a g oo d u время v rr je mm i вентилятор vv i nn tt i ll ja t ay r розетку r a zz je t k u дату d aa t u
my.jsgf
#JSGF V1.0; grammar my; <greetings> = нафаня; <operation1> = (открой | закрой) дверь; <operation2> = (зажги | погаси) (([настольный | верхний | нижний | фоновый] свет [на окне]) | (подсветку)); <operation3> = (достань автомат) | (я ухожу надолго); <operation4> = (включи | выруби) (кондиционер | монитор | вентилятор | розетку); <operation5> = (открой уши иншаллах) | (закрой уши); <operation6> = (скажи (время | дату)); <operation> = <operation1> | <operation2> | <operation3> | <operation4> | <operation5> | <operation6>; public <query> = <greetings> <operation>;