Is there an equivalent to the Mac's terminal command "say" in Ubuntu 9.10?
-
3As an aside: a nice list of English sentences in which Mac OS X understands the context quite well, like "My name is Dr. Smith and I live on Smith Dr.", "The soldier decided to desert his dessert in the desert", "The guard will permit you to pass if you show a valid permit" and "It is much rainier on the slopes of Mt. Rainier" at macosxhints.com/comment.php?mode=view&cid=107211– ArjanJan 10, 2010 at 10:36
4 Answers
espeak should be installed by default as text-to-speech engine on Linux.
You should be able to get it to speak from command-line by doing something like this:
echo "Text to speak"|espeak
You can also start espeak by just entering espeak
itself, and then enter each line of text you want spoken followed by enter.
Other TTS engines for Linux you could look at:
Espeak is available at (but should be installed by default!):
-
3If you wanted this to directly replace the say command you could use a function: function say() { echo "@" | espeak ; } Jul 29, 2010 at 4:25
-
-
4Espeak is not installed by default on Ubuntu.– user274720Jun 9, 2017 at 0:05
alias say='echo "$1" | espeak -s 120 2>/dev/null'
Then you can use:
say 'How are you doing?'
Explanation:
-s 120 #to make it slower than default
2>/dev/null #to eliminate error masseges on the console
-
1
-
By default, Bash does not import aliases from sourced files when the shell is not interactive, like in a shell script. askubuntu.com/questions/98782/… May 3 at 5:57
-
By default, Bash does not import aliases from sourced files when the shell is not interactive, like in a shell script. askubuntu.com/questions/98782/… May 3 at 5:57
There are a number of speech synthesizers available to install in karmic, most of the ones I've tried have a console version.
Search for "Speech" in synaptic to get the full list. The espeak
package works like say
.
install speech-dispatcher along with a synthesizer (flite, festival, etc) then
alias say='echo "$1" | spd-say -p -25 -e'
that will use whatever synthesizer you have configured.
The -p -25 is setting the pitch lower... change as desired. -e uses stdin