Настройка голосовых команд Mac OS для запуска произвольного кода

в 16:14, , рубрики: apple, mac os, голосовые команды, диктовка, умный дом

Предыстория

Когда вышла Mac OS Sierra, одной из громких новостей было появление Siri. Меня, как пещерного человека, очень удивила и заинтересовала возможность управления ноутбуком с помощью голоса (да-да, это не инновации, но лично я с этим до этого никогда не пользовался и считал это чем-то бесполезным).

После пары часов чтения разных материалов я был огорчен тем, что нельзя очень быстро расширить возможности Siri (среди которых я нашел мало полезного для себя). Хотелось иметь возможность запустить какой-нибудь баш-скрипт, но способы запуска были не очень удобные (на мой вкус).

Но тут я неожиданно узнал о голосовых командах, которые есть в маке уже черт знает сколько времени (лет?)

Запуск произвольных скриптов с помощью Диктовки Mac OS

Для начала идем в "Системные настройки" -> "Клавиатура" (внезапно) -> "Диктовка" и включаем ее.
После этого идем в "Системные настройки" -> "Универсальный доступ" -> "Диктовка".

Для начала включим ключевые фразы диктовки. Это нужно для того, чтобы распознавание речи работало постоянно, а не по требованию.
Далее открываем команды. Здесь вы увидите множество уже предопределенных команд. Лично я их отключил.

Давайте создадим свою, пользовательскую. Настройки всего три: текст команды, контекст и действие.
К сожалению, мы все еще не можем запускать баш-скрипты, но зато можем запускать приложения. А что является приложением в Mac OS? Всего-лишь директория с определенной структурой и суффиксом .app. Решение напрашивается само собой — сделать .app из скрипта.

Я не буду останавливаться на структуре приложения. Лично я еще давно написал ruby-скрипт, который превращает произвольный скрипт в .app. Вот он.

Собственно, вот и все. "Выполнить" -> "Запустить процесс" -> "Другое" и выбираем наше "приложение".

Как я это использовал

Не могу не похвастаться своим маленьким ноу-хау.
У меня дома музыка играется не с моего ноутбука, а с отдельного устройства, подключенного к колонкам на другом конце комнаты. Раньше это был телефон с установленным на нем Plex, но буквально вчера я купил Raspberry Pi и установил на него mpd.

С помощью своего ruby-скрипта я наделал приложений, которые выполняют по одной команде вида

ssh pi@raspberry 'mpc <command>'

и назначил их на голосовое управление.

Вот небольшая демка (прошу прощения за звук и беспорядок):

upd. altervision сообщил о том, что вместо .app можно использовать .command файлы, что для каких-то мелких команд должно быть намного удобнее.

Автор: Sna1L

Источник

Поделиться

* - обязательные к заполнению поля