[Mac OS X] Используем голосовые возможности OS X в командной строке

Пользователи OS X знают о голосовых возможностях системы. Суть этих возможностей — преобразование текста в голос. Обычно они доступны во многих Cocoa-приложениях через меню ПравкаПроговаривание текста.
Вот пример из TextEdit.app:

pic_1

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

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

pic_0

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

Самое простое применение — попробуйте ввести команду:

say Hello my friend!

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

say -v?

pic_2

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

say -v Bells Hello my friend!

Второе простое применение — чтение текстового файла. Использование:

cat filename | say

где вместо filename — имя файла, текст из которого нужно прочитать.

Еще одно простое применение — произнесение вводимого с клавиатуры текста. Для этого просто введите команду say без каких либо аргументов и начинайте вводить текст, по завершению вводимой строки нажимайте как обычно Enter и именно в этот момент строка будет произнесена.

pic_3

Попробуйте, как на картинке ввести текст «Mac OS X«. Будете приятно удивлены, тем, что система произнесет последнюю букву «Х» именно как «тэн», а не как можно было бы ожидать «экс». 😀

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

ls | say

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

man ls | say

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

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

; say All done

Пример модификации команды для 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, что и будет сигналом о завершении записи диска. Это действительно удобно.

Удачи!