Two new Mac OS X tricks
#116 Henry, Tuesday, 28 June 2011 8:43 PM (Category: Apple)
(Tags: say mac terminal)

I just learned two new tricks from this article from

  1. Want to know where a file is located and you only have the icon? Open the Terminal and drop the icon on it. The full pathname is displayed.

  2. "say" can do more than I thought.

I have used "say" often. Sometimes I phone home and want to speak to Anne. She's on the phone. I ssh home, ssh home to her Mac, then type something like

say "I need to talk to you so please get off the phone"

and her Mac will speak those words to her through the speakers. The first time I did it, Anne freaked out a bit and wanted to exorcise the Mac. Now she understands how it's done and gets irritable when I do it.

But I've just learnt that say can do more than just play words to the speakers. Obviously, I should have done "man say" and learnt a lot more.

You can specify an output file with the -o option. Default is AIFF. You can specify different file formats with --file-format=[AIFF|WAVE|caff|m4af], but they say it's easier to just specify the extension in the output filename and it will work out what you want.

The default voice is the one in your settings, but you can specify different voices with -v. Go to Settings -> Speech -> Text To Speech, and click on the pulldown menu for the list of system voices. Might have to select Show More Voices, and then click on the pulldown menu again. You can use any of them. I tried out Zarvox, and that was quite enjoyable.

And you can specify an input file with the -f option. Text files are good, even RTF files. I don't know for sure how many other file formats it knows. But txt is pretty good.

Combining it all, you can do this sort of thing

say -o shouting.wav -v Zarvox -f ~/Documents/myspeech.txt

This is an interesting little program. I like being able to select the different system voices.