say - Convert text to audible speech (Speech Synthesis Manager)

say [-v voice] [-o out.aiff | -n name:port ] [--progress] [--interactive=markup ]
          [-f file | string ]

Text to speech and either play it through the sound output device chosen in System Preferences or save it to an AIFF file.

-v voice . Default is the voice selected in System Preferences.

Found in /System/Library/Speech/Voices/

-f file to be spoken.

string text to speak on the command line. This can consist of multiple arguments, which are considered to be separated by spaces.

-o out.aiff Specify an AIFF file to be written.
--progress displays progress example: 11.2% 13.0B/s 0:00:07 ETA -i
Print the text line by line during synthesis, highlighting words as they are spoken. Markup can be one of...

          o   A terminfo capability as described in terminfo(5), e.g. bold, smul, setaf 1.  
           o   A color name, one of black, red, green, yellow, blue, magenta, cyan, or white.  
           o   A foreground and background color from the above list, separated by a slash, e.g. green/black. If the
               foreground color is omitted, only the background color is set.

           If markup is not specified, it defaults to smso, i.e. reverse video.
say -v '?'
Agnes               en_US    # Isn't it nice to have a computer that will talk to you?
Albert              en_US    #  I have a frog in my throat. No, I mean a real frog!
Alex                en_US    # Most people recognize me by my voice.
Bad News            en_US    # The light you see at the end of the tunnel is the headlamp of a fast approaching train.
Bahh                en_US    # Do not pull the wool over my eyes.
Bells               en_US    # Time flies when you are having fun.
Boing               en_US    # Spring has sprung, fall has fell, winter's here and it's colder than usual.
Bruce               en_US    # I sure like being inside this fancy computer
Bubbles             en_US    # Pull the plug! I'm drowning!
Cellos              en_US    # Doo da doo da dum dee dee doodly doo dum dum dum doo da doo da doo da doo da doo da doo da doo
Deranged            en_US    # I need to go on a really long vacation.
Fred                en_US    # I sure like being inside this fancy computer
Good News           en_US    # Congratulations you just won the sweepstakes and you don't have to pay income tax again.
Hysterical          en_US    # Please stop tickling me!
Junior              en_US    # My favorite food is pizza.
Kathy               en_US    # Isn't it nice to have a computer that will talk to you?
Pipe Organ          en_US    # We must rejoice in this morbid voice.
Princess            en_US    # When I grow up I'm going to be a scientist.
Ralph               en_US    # The sum of the squares of the legs of a right triangle is equal to the square of the hypotenuse.
Trinoids            en_US    # We cannot communicate with these carbon units.
Vicki               en_US    # Isn't it nice to have a computer that will talk to you?
Victoria            en_US    # Isn't it nice to have a computer that will talk to you?
Whisper             en_US    # Pssssst, hey you, Yeah you, Who do ya think I'm talking to, the mouse?
Zarvox              en_US    # That looks like a peaceful planet.

say --file-format=?
3gp2  3GPP-2 Audio         (.3g2) [Qclp,aac,aace,aacf,aach,aacl,aacp]
3gpp  3GP Audio            (.3gp) [Qclp,aac,aace,aacf,aach,aacl,aacp]
AIFC  AIFC                 (.aifc,.aiff,.aif) [lpcm,ulaw,alaw,ima4,Qclp]
AIFF  AIFF                 (.aiff,.aif) [lpcm]
NeXT  NeXT/Sun             (.snd,.au) [lpcm,ulaw]
Sd2f  Sound Designer II    (.sd2) [lpcm]
WAVE  WAVE                 (.wav) [lpcm,ulaw,alaw]
adts  AAC ADTS             (.aac,.adts) [aac,aach,aacp]
caff  CAF                  (.caf) [Qclp,aac,aace,aacf,aach,aacl,aacp,alac,alaw,ilbc,ima4,lpcm,ulaw]
m4af  Apple MPEG-4 Audio   (.m4a,.m4r) [aac,aace,aacf,aach,aacl,aacp,alac]
m4bf  Apple MPEG-4 AudioBooks (.m4b) [aac,aace,aacf,aach,aacl,aacp]
mp4f  MPEG-4 Audio         (.mp4) [aac,aace,aacf,aach,aacl,aacp]

say --file-format=caff --data-format=?
Qclp  Qualcomm PureVoice™, 1 channels
aac   AAC, 1 channels
aace  MPEG-4 AAC Enhanced Low Delay, 1 channels
aacf  MPEG-4 AAC Enhanced Low Delay With SBR, 1 channels
aach  MPEG-4 HE AAC, 1 channels
aacl  MPEG-4 AAC Low Delay, 1 channels
aacp  MPEG-4 HE AAC V2, 1 channels
alac  Apple Lossless
alaw  A-Law 2:1
ilbc  iLBC, 1 channels, 8000 Hz
ima4  IMA 4:1
lpcm  Linear PCM
ulaw  μ-Law 2:1

say -o hi.m4a --bit-rate=?
actually produced as a columnar list, edited here for simplicity(?)) 8000, 12000, 16000, 20000, 24000, 28000, 32000, 40000, 48000, 56000, 64000, 72000, 80000, 96000, 112000, 128000, 144000, 160000, 192000, 224000, 256000, 288000, 320000, 384000, 448000, 512000, 576000, 640000, 768000, 960000, 1280000

-n name
-n name:port
-n :port
-n :
Specify a service name (default AUNetSend) and/or IP port to be used for redirecting the speech

If the input is a TTY, text is spoken line by line, and the output file, if specified, will only contain audio for the last line of the input.


Diagnostic messages to standard error are lame .
Speaking failed: -1 ( return code 1 ) will occur if the input stream contains characters outside the ASCII range of xx-yy, particulary x'92' (apostrophe) and x'96' (mdash) inserted by some word processors. Since say parses the entire file it will fail without saying anything if objectionable characters occur anyway in the input without any indication of where or how many there are.

tr -cd "[:print:]" < file |say

For example:
To create a file called sayWords copy/paste this to a shell

cat << ++ > sayWords
Fri Sep 9 19:16:10 EDT 2016
In the year of our Lord 2016,
Mary had a little lamb,
a little bread and
a little jam.

say  Albert says ;   say -v Albert -f sayWords
say  alex says ;   say -v alex -f sayWords
say  bruce says ;   say -v bruce -f sayWords
say  fred says ;   say -v fred -f sayWords
say  junior says ;   say -v junior -f sayWords
say  Ralph says ;   say -v Ralph -f sayWords
say  Kathy says ;   say -v Kathy -f sayWords
say  Vicki says ;   say -v Vicki -f sayWords
say  Victoria says ;   say -v Victoria -f sayWords
say  agnes says ;   say -v agnes -f sayWords
say  Princess says ;   say -v Princess -f sayWords
say  news'  bad news says ;   say -v 'bad news' -f sayWords
say  bahh says ;   say -v bahh -f sayWords
say  bells says ;   say -v bells -f sayWords
say  boing says ;   say -v boing -f sayWords
say  bubbles says ;   say -v bubbles -f sayWords
say  cellos says ;   say -v cellos -f sayWords
say  deranged says ;   say -v deranged -f sayWords
say -v hysterical  hysterical says ;   say -v hysterical -f sayWords
say  news'  good news says ;   say -v 'good news' -f sayWords
say  organ'  pipe organ says ;   say -v 'pipe organ' -f sayWords
say  Trinoids says ;   say -v Trinoids -f sayWords
say  Whisper says ;   say -v Whisper -f sayWords
say  Zarvox says ;   say -v Zarvox -f sayWords

say  Sin-ji says ;   say -v Sin-ji -f sayWords
say  Tekha says ;   say -v Tekha -f sayWords
say  Lekha says ;   say -v Lekha -f sayWords
say   Ting-Ting says ;   say -v Ting-Ting -f sayWords
say  Milena says ;   say -v Milena -f sayWords
say  Kyoko says ;   say -v Kyoko -f sayWords
say  Sin-ji says ;   say -v Sin-ji -f sayWords
say  Maged says ;   say -v Maged -f sayWords
say  Mei-Jia says ;   say -v Mei-Jia -f sayWords

say  Amelie says ;   say -v Amelie -f sayWords
say  Alice says ;   say -v Alice -f sayWords
say  Alva says ;   say -v Alva -f sayWords
say  Anna says ;   say -v Anna -f sayWords
say  Carmit says ;   say -v Carmit -f sayWords
say  Daniel says ;   say -v Daniel -f sayWords
say   Damayanti says ;   say -v Damayanti -f sayWords
say  Ellen says ;   say -v Ellen -f sayWords
say  Fiona says ;   say -v Fiona -f sayWords
say  Joana says ;   say -v Joana -f sayWords
say  Kanya says ;   say -v Kanya -f sayWords
say  Karen says ;   say -v Karen -f sayWords
say  Melina says ;   say -v Melina -f sayWords
say  Moira says ;   say -v Moira -f sayWords
say  Monica says ;   say -v Monica -f sayWords
say  Nora says ;   say -v Nora -f sayWords
say  Nora says ;   say -v Nora -f sayWords
say  Paulina says ;   say -v Paulina -f sayWords
say  Samantha says ;   say -v Samantha -f sayWords
say  Sara says ;   say -v Sara -f sayWords
say  Thomas says ;   say -v Thomas -f sayWords
say  Tessa says ;   say -v Tessa -f sayWords
say  Yuna says ;   say -v Yuna -f sayWords
say  Veena says ;   say -v Veena -f sayWords 
say  Xander says ;   say -v Xander -f sayWords
say  Zuzana says ;   say -v Zuzana -f sayWords


-915 mavericks doesn't want to call say.

7/30/18 rc.local "Voice `alex' not found."