Monday, January 9, 2017

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

Программист
4,8
рейтинг
вчера в 19:14

Настройка голосовых команд 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
карма
10,0
рейтинг 4,8
Программист
Ищу помощника! Зарплата от 90 000руб. в мес! Обучу всему сам! Работа 2-3 часа/день! Подпишись, уроки брокера 18+Сколько надо работатьКак зачисляются деньгиОтзывы о работеuniotrade.comСкрыть объявление
Объявление скрыто.
HostRase наш UpTime всегда 99.9%Скорость хостинга - скорость бизнеса, у нас быстрые каналы и мощные сервераhostrace.netСкрыть объявление
Объявление скрыто.

Самое читаемое

Комментарии (8)

  • –1

    При включении диктовки MBP постоянно пытается остановить или максимально замедлить кулеры, что определенно не полезно системе. С этим пытались бороться?

    • 0
      Честно говоря, не замечал такого (и сейчас пока не вижу). Чуть позже озадачусь, спасибо за наводку
  • 0
    ssh pi@raspberry 'mpc <command>'  

    Какая красота, рулить mpd через ssh… нет, я не осуждаю… но у mpd протокол простой как палка, да и клиентов к нему написано вагон с телегой, том числе на чистом bash.
    • 0
      Достаточно ли он прост, чтобы не нужно было что-либо гуглить?:)
      Вообще, планировал поковырять его, но пока что меня и так все более чем устраивает
      • 0
        Да, простой как палка. Фактически mpc вот этот вот
        command  
        с аргументами кидает в mpd по tcp. Да, вот прям берёт эти строчки и кидает. И обрабатывает ответы. И гуглить его очень просто
        mpd protocol
        и первая же ссылка в выдаче. Можно воспользоваться вышеприведённым bash-клиентом. Можно реализовать через nc. Можно углубиться ещё немного и найти что-то для любимого руби. Или нативный mpc для macOS(OS X). А можно оставить как есть. Просто мне не нравится через ссш. Не знаю почему. Пожалуй, не смогу объяснить.
        • 0

          Я:


          Достаточно ли он прост, чтобы не нужно было что-либо гуглить?

          Вы:


          И гуглить его очень просто

          а я ничего не гуглил

  • +2
    Система по диктовке без каких-либо проблем может запускать .command-файлы, достаточно выбрать их в пункте «Открыть объект Finder». Огромный минус — остающееся окошко или процесс терминала.
    • 0
      даже не знал об этом расширении. Спасибо огромное! Добавил в пост

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.



Original Page: https://geektimes.ru/post/284414/#habracut



Sent from my iPad

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.