Используем встроенный синтезатор речи MacOS в Ruby скриптах

Say - это команда синтезатора речи встроенного в macOS. При помощи этой команды можно пользоваться функцией чтения текста. По умолчанию используется тот голос, который указан в настройках операционной системы macOS.

Читаемый текст может быть передан в строке или в файле. В перечне опций команды "say" - выбор голоса; выбор файла для чтения; запись звукового файла; скорость чтения; и еще ряд более тонких настроек.

Для запуска команды из Ruby-скрипта можно воспользоваться записью с обратными косыми кавычками (backticks):

`say "Hello Nerdy Person!"`

Если символ грависа (обратной кавычки) не нравится, можно использовать альтернативную запись, которая также исполняет системные команды "%x":

%x(say "Hello Nerdy Person!")

Если не использовать синтаксис вызова системных команд из Ruby-скрипта, мы получим ошибку:

say "Hello Nerdy Person!" undefined method `say' for main:Object (NoMethodError)

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

Например воспроизведем имя передаваемое через аргумент при запуске скрипта. При помощи ARGV[0] получим первый элемент из массива аргументов.

%x(say "Hello #{ARGV[0]}!") 

sayhello.rb Siri