Предыстория


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

Поделиться с друзьями
-->

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


  1. Celtis
    09.01.2017 19:58

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


    1. Sna1L
      10.01.2017 01:20

      Честно говоря, не замечал такого (и сейчас пока не вижу). Чуть позже озадачусь, спасибо за наводку


    1. shifttstas
      10.01.2017 15:53

      Подтверждаю, при вызове Siri у меня аналогично, это как я понимаю что бы помех было меньше


    1. Sna1L
      13.01.2017 13:58

      Тоже подтверждаю. На моем эйре затихает шум.
      Ну, даже не знаю, что с этим можно делать. Я пока что просто отключаю диктовку, если чем-то тяжелым занимаюсь (так себе решение, прямо скажем).


  1. Shtucer
    09.01.2017 22:58

    ssh pi@raspberry 'mpc <command>'
    

    Какая красота, рулить mpd через ssh… нет, я не осуждаю… но у mpd протокол простой как палка, да и клиентов к нему написано вагон с телегой, том числе на чистом bash.


    1. Sna1L
      10.01.2017 01:22

      Достаточно ли он прост, чтобы не нужно было что-либо гуглить?:)
      Вообще, планировал поковырять его, но пока что меня и так все более чем устраивает


      1. Shtucer
        10.01.2017 01:42

        Да, простой как палка. Фактически mpc вот этот вот

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


        1. Sna1L
          10.01.2017 04:00
          -1

          Я:


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

          Вы:


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

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


          1. Shtucer
            10.01.2017 10:39
            +1

            Похвально. Вас ждёт ещё уйма открытий чудных, помимо

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

            Даже завидую немного.


  1. altervision
    10.01.2017 01:22
    +2

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


    1. Sna1L
      10.01.2017 01:29

      даже не знал об этом расширении. Спасибо огромное! Добавил в пост


      1. altervision
        10.01.2017 13:05
        +1

        Мне Ваш способ с приложением понравился гораздо больше — сделал комплект приложений из этих же .command-файлов с помощью Вашего Ruby-скрипта — теперь всё работает чисто, никаких лишних окон и приложений! Просто идеально, компьютер с удовольствием откликается на «Джарвис» и «Солнышко» ;)


        1. Sna1L
          10.01.2017 14:17

          я использую имя "Вася" для простоты:D
          Удивительно, но слово "компьютер" вызывает муки при произношении


      1. bkotov
        10.01.2017 14:11
        +1

        Думаю также можно сделать скрипт в аутоматоре и сохранить как приложение


        1. Sna1L
          10.01.2017 14:18

          Да, ковырял это дело давно, но почему-то мне совсем не понравился этот вариант.


    1. Yaruson
      10.01.2017 14:28
      -1

      Хаос! Тьма!


  1. oleg0xff
    10.01.2017 15:50

    «Для начала идем в „Системные настройки“ -> „Клавиатура“ (внезапно) -> „Диктовка“ и включаем ее.»
    т.е. можно текст надиктовать вместо того чтобы набирать?


    1. Sna1L
      10.01.2017 18:21

      ну да. Эта же функция и на ios есть, как я понимаю. Да и на андроиде (часто вижу значок микрофона на клавиатурах)


      1. kanaev
        11.01.2017 12:00

        Отличная вещь, когда нет возможности набирать текст ручками. Раньше на анройде постоянно пользовался.


    1. webself
      11.01.2017 17:56

      del


  1. webself
    11.01.2017 17:58

    Пробовал включать это на макбуке. Работало, но не понравилось, что появился постоянный расход CPU на распознавание. Значит и время жизни от аккумулятора уменьшилось. Поигрался, выбросил.


  1. romandze
    12.01.2017 06:37

    Загрузка CPU под 90% recognition service
    Для ноута ну его нафиг.