To have your computer speak to you open your terminal and enter:
say "Your Text Here"Customizing the voice
Pass in --voice (or -v). For example:
say "Jelly" -v "Albert"To list out all voices, use
say -v '?'Finding voices from system preferences
There is another way to find voices.
Go to the System Preferences app. Open Accessibility > Spoken Content. You will see the System Voice dropdown.
Open that dropdown and note down the voice names you see (but don't change them!). Here are a list of voices I see:
- Daniel
- Kate
- Deranged
- ...

For example,
say "This is the deranged voice" -v "Deranged"Testing out different voices
Go to the System Preferences app. Open Accessibility > Spoken Content. You will see the System Voice dropdown.
Scroll to the bottom and click the "Customize" button:

You can now browse through all voices, and click "Play" to test them out:

Reading from a file
Use the --input-file (-f) to specify the file to read from.
Say you have this file, say.txt:
We're no strangers to love
You know the rules and so do I
A full commitment's what I'm thinking of
You wouldn't get this from any other guyHave your computer sing with
say -f song.textYou an also use the pipe operator: cat song.text | say.
Rate
Use --rate (-r) to control the rate in words per minute of the sound.
For example,
say "I am in a rush!" -r 500What's the default rate?
See this question on AskDifferent: What is the default speaking rate for the speech synthesis program?
Saving as mp4 or aiff
Pass in the --output-file (-o) to pass an output file. For example:
say "Happy birthday!" -o birthday.mp3Note that some audios may not support one of the formats.
If you try to save the output as an mp3 file (example: say "hello" -o voice.mp3), you may see this error:
Specifying ExtAudioFileRef failed: -50To save as mp3, first save as aiff, then use the lame encoder to convert it to mp3:
say "Never gonna give you up" -o voice.aiff
lame -m m voice.aiff voice.mp3Install lame with brew install lame.
Credits to this answer on stackoverflow.