Как стать автором
Обновить

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

Время на прочтение2 мин
Количество просмотров8.5K

Предыстория


Когда вышла 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 файлы, что для каких-то мелких команд должно быть намного удобнее.

Теги:
Хабы:
+8
Комментарии22

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн