Команда say mac os

Обновлено: 03.07.2024

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

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

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

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

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

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

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

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

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

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

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

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

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

1. SSH / OpenSSH

Чтобы открыть удаленный доступ к своему компьютеру надо:

Теперь, находясь в дали от своего Mac, в любой момент можно получить к нему доступ. Достаточно воспользоваться программой типа PuTTY на компьютерах c windows или SSH из командной строки Mac OS X:

  1. Установите соединение и укажите IP адрес от своего Mac;
  2. Введите логин и пароль.

После успешной авторизации будет получен полный доступ к интерфейсу командной строки Mac OS X.

У OpenSSH есть много областей для применения. Например, можно использовать свой удаленный компьютер в качестве SOCK сервера, чтобы безопасно пользоваться интернетом в общественных местах.

2. top

Еще одна классическая утилита, используемая в Linux/Unix сообществе для отслеживания процессов ОС.

3. lsbom

С lsbom можно проверить содержимое установочных архивов (.pkg) и получить детальную информацию о том, куда будут распакованы файлы. Для использования lsbom надо открыть Terminal.app и перейти в директорию с .pkg файлом. Набрать команду “lsbom .pkg/Contents/Archive.bom> | more”, после чего будет показан детальный список путей и файлов, которые необходимы для установки этой программы.

4. say

5. softwareupdate

Быстрый и легкий способ установить обновления для программы от Apple. Для установки всех доступных обновлений на Mac достаточно открыть Terminal.app и набрать “softwareupdate -i -a”. Если есть желание установить только рекомендуемые обновления, это можно сделать, набрав “softwareupdate -i -r”.

6. ifconfig

7. lipo

8. screencapture

Screencapture дает больше возможностей для изготовления скриншотов по сравнению с сочетанием клавиш command-shift-3. В Terminal.app можно ввести следующую команду:

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

Чтобы сделать скриншот определенной части экрана:

9 & 10. fink и darwinports

Если не хватает утилит из стандартного набора OS X, самое время, чтобы воспользоваться darwinports или fink. Используя их, можно скачать и установить сотни бесплатных программ с открытым исходным кодом.

Напоминаем, что при работе в Терминале следует быть осторожным с командами, которые начинаются с sudo. Это команды системного уровня, которые при неправильном использовании могут вызвать серьезные проблемы в Mac OS X, вплоть до краха системы. Поэтому эти команды нужно вводить максимально аккауратно и именно так, как указано в инструкции. Как правило, при работе с такими командами требуется ввести пароль администратора, который вводится вслепую.

SPOTLIGHT

Нет нужды объяснять любому маководу, пусть даже начинающему, что такое Spotlight, так как большинство пользователей используют его для поиска документов, запуска приложений, математических вычислений и пр. Между тем, существует несколько команд Терминала, помогающих оптимизировать работу Spotlight или, например, скрыть иконку Spotlight в менюбаре.


Даже в такой достаточно отлаженной системе, как Mac OS X, может случиться так (хотя и достаточно редко), что начинают глючить те или иные приложения. Так, например, Spotlight может начинать выдавать неверные результаты поиска, а то и вовсе отказываться от поиска. Как правило, такие сбои получаются в результате того, что в базе программы появились ошибки. Чтобы ликвидировать эти ошибки нам будет необходимо удалить всю базу метаданных и провести повторную индексацию содержимого всех разделов/дисков. Для этого можно воспользоваться следующими командами Терминала (не забываем после каждой команды нажимать RETURN):

[php]sudo mdutil -E
sudo mdutil -i on[/php]

После выполнения этих команд Spotlight заново проиндексирует все данные на вашем диске/дисках и ошибок больше возникать не будет.

  • Убираем иконку Spotlight из менюбара

Наверняка найдется определенный ряд пользователей Mac OS X, например некоторые свичеры, недавно перешедшие с Windows на Mac OS X, в силу своих устоявшихся привычек совсем не использующие возможности Spotlight. Мы не будем сейчас говорить о том, хорошо или плохо ли не использовать Spotlight при повседневной работе в системе, а просто приведем команду Терминала, позволяющую убрать из менюбара иконку Spotlight, дабы освободить место для значка другого приложения.

[php]sudo chmod 0 /System/Library/CoreServices/Spotlight.app[/php]

Для того, чтобы вернуть иконку на место вводим другую команду:

[php]sudo chmod 755 /System/Library/CoreServices/Spotlight.app[/php]

Не забывайте, что эта команда убирает только иконку Spotlight, а само приложение продолжает работать.

ОБЛЕГЧАЕМ РАБОТУ СИСТЕМНОГО АДМИНИСТРАТОРА

Что самое трудное в работе системного администратора? Правильно, это работа с рядовыми пользователями сети и исправление последствий тех или иных действий, произведенных, например, какой-нибудь секретаршей. Неопытные пользователи, сами того не зная, могут зачастую натворить такого, чего не достичь даже при намеренном разрушении системы. Именно поэтому имеет смысл лишить пользователя возможности воздействовать на те или иные параметры системы, тем более, если этого не требуется при выполнении его обязанностей.

  • Блокировка Дока от изменения его содержимого

[php]defaults write com.apple.Dock contents-immutable -bool YES; killall Dock[/php]

  • Блокировка Дока от изменения его размеров

[php]defaults write com.apple.Dock size-immutable -bool YES; killall Dock[/php]

  • Блокировка Дока от смены его положения на экране

[php]defaults write com.apple.Dock position-immutable -bool yes; killall Dock[/php]

Для того, чтобы отменить ту или иную блокировку, нужно повторно ввести команду, не забыв заменить YES на NO.

  • Блокировка доступа к меню Системных настроек


Это наиболее радикальный способ, позволяющий исключить внесение нежелательных изменений в систему. Сразу хотим предупредить о том, что если вы не очень хорошо знакомы с разрешениями и chmod, то лучше воздержаться от использования следующей команды Терминала, дабы оградить себя от возможных последствий. Ведь что бы ни случилось с компьютером пользователя сети, которая находится в вашем ведении, разбираться с проблемой всеравно придется вам.

[php]sudo chmod /Applications/System\ Preferences.app 000[/php]

Для того, чтобы снять блокировку, используем следующую команду:

[php]sudo chmod /Applications/System\ Preferences.app 777[/php]

ОТКЛЮЧАЕМ СОЗДАНИЕ ФАЙЛОВ .DS_STORE НА СЕТЕВЫХ ДИСКАХ

[php]defaults write com.apple.desktopservices DSDontWriteNetworkStores TRUE[/php]

Для возврата к предыдущему значению следует повторно ввести данную команду, заменив TRUE на FALSE.

ЕСЛИ ЗАВИС МАК

У любой, даже самой совершенной системы случаются внештатные ситуации. Так и у Mac OS X иногда случается так, что зависает какое-то одно приложение или, что бывает гораздо реже, виснет вся система сразу. Особенно данная проблема касается пользователей Хакинтошей, так как в этом случае мы имеем дело не с оригинальной, а с модифицированной Mac OS X и ожидать такой же стабильности, как и у оригинальных Маков, здесь не приходится. Обращаем ваше внимание, что при принудительном завершении приложения, все данные, с которыми вы работали в зависшей программе, как правило, будут потеряны.

Если при зависании какого-либо приложения функция Принудительного завершения не работает, то проблемную программу можно завершить через Терминал. Для этого вам понадобиться узнать PID (идентификатор процесса) нужного приложения. Сделать это можно, как мнинмум, двумя способами.


[php]ps ux | fgrep -i FINDER.APP | fgrep -v fgrep[/php]

После выполения этой команды обращаем внимание на число, показанное сразу после имени пользователя (в данном случае после слова anjul). Это число и будет являться идентификатором процесса зависшего приложения. Для контроля правильности выбора проверяем путь до приложения.

После того, как мы узнали PID зависшего приложения, можно приступать к его завершению, используя одну из трех команд Терминала. Во всех трех командах слово PID заменяем на на числовой идентификатор зависшего приложения.

[php]kill -QUIT PID[/php]

[php]kill -TERM PID[/php]

Если же ничего не помогает и приложение продолжает находится в подвешенном состоянии, то используем третью, самую радикальную команду, которая, как правило, гарантированно завершит приложение.

[php]kill -KILL PID[/php]

Если у вас под рукой нет ни второго компьютера, ни какого-либо apple-устройства, то в этой ситуации вам поможет только принудительное выключение компьютера, с помощью нажатия и удерживания кнопки питания до тех пор, пока Мак не выключится. Если имеется устройство, с которого можно удаленно подключитья к зависшему Маку, то принудительного выключения машины можно будет избежать. Надо ли говорить о том, что для данного способа необходимо, чтобы у Мака было включено удаленное управление. Для этого необходимо в Системных настройках зайти в раздел Общий доступ и отметить соответствующий пункт.


Со второго компьютера (в нашем случае это второй Мак) открываем ва Терминале Shell -> Новое удаленное подключение -> Безопасный Shell (ssh) и выбираем компьютер, к которому хотим подключиться.


После подключения вводим одну из двух команд, в зависимости от желаемого действия.

Для завершения сеанса работы на зависшем компьютере пишем в Терминале:

[php]sudo killall -HUP WindowServer[/php]

В случае того, если хотим перезагрузить зависший Мак, используем следующую команду:

[php]sudo shutdown -r now[/php]

После использования этих команд вы также потеряете все несохраненные данные, как и при завершении только зависшего приложения.


К сожалению, поддержки русского языка в голосовой системе не реализовано. И именно поэтому русскоговорящие пользователи обычно не используют этот сервис.

Но голосовые возможности иногда бывает полезно использовать в командной строке, несмотря на языковые ограничения. С английским-то языком, у сервиса все в полном порядке. 🙂


Реализуется это при помощи команды say .

say Hello my friend!

Есть опция -v , позволяющая выбрать голос, которым будет произносится введенный текст. Посмотреть список всех имеющихся в системе голосов можно по команде:


Некоторые из них достаточно забавны. Выбирайте в списке любой голос и пробуйте, например:

say -v Bells Hello my friend!

cat filename | say


Так же можно озвучить, то, что выводит любая команда на экран терминала. Например:

или вообще послушать man на какую-либо команду :):

В предыдущих заметках о создании из командной строки установочного диска OS X Lion в виде DVD-диска и в виде USB-флешки как раз и используются такие достаточно долго выполняющиеся команды. И вот как раз их можно очень легко модифицировать, дописав в конец:

Пример модификации команды для USB-флешки:

asr restore --source /Applications/Install\ Mac\ OS\ X\ Lion.app/Contents/SharedSupport/InstallESD.dmg --target /dev/disk1s2 --erase --noprompt; say All done

Пример модификации команды для DVD-диска:

hdiutil burn /Applications/Install\ Mac\ OS\ X\ Lion.app/Contents/SharedSupport/InstallESD.dmg; say All done

Тогда, после завершения выполнения этих команд, вы услышите фразу All done, что и будет сигналом о завершении записи диска. Это действительно удобно.

Свободное общение и обсуждение материалов

Apple представила watchOS 8 почти без нововведений Apple выпустила iOS 15 Release Candidate. Как установить

Лонгриды для вас


Когда Apple Watch были представлены публике, мнения пользователей разделились. Для одних этот гаджет нужен, чтобы показать свой статус, другие используют умные часы на полную, стремясь полностью раскрыть их потенциал. В статье рассказали про самые полезные фишки устройства.



Instagram, Facebook, WhatsApp и другие онлайн-сервисы упали по всему миру. Они недоступны уже несколько часов. Рассказываем, что можно хотя бы попробовать сделать, чтобы вернуть их к работе

Читайте также: