Установка "домового"

В настоящий момент, приложение работает исключительно в системе 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>;