Text-to-Speech
espeak / espeak-ng
Install
bash
# Debian/Ubuntu sudo apt install espeak-ng # Arch sudo pacman -S espeak-ng # Fedora sudo dnf install espeak-ng
Speak text
bash
espeak "Hello, this is a test" espeak-ng "Hello, this is a test"
Pipe text
bash
echo "Hello world" | espeak cat article.txt | espeak
Choose a voice/language
bash
espeak -v en "English" espeak -v en-us "American English" espeak -v fr "Bonjour"
List available voices
bash
espeak --voices espeak --voices=en # English voices only
Adjust speed (words per minute)
bash
espeak -s 200 "Speaking faster" espeak -s 100 "Speaking slower"
Adjust pitch (0-99)
bash
espeak -p 80 "Higher pitch" espeak -p 20 "Lower pitch"
Save to audio file
bash
espeak -w output.wav "Text to save"
speech-dispatcher (spd-say) -- alternative
bash
# Install sudo apt install speech-dispatcher # Speak spd-say "Hello world" # Set rate (-100 to 100) spd-say -r 50 "Faster" # Set voice spd-say -t female1 "Hello" # Stop speech spd-say -S
piper -- neural TTS (higher quality)
For higher quality offline TTS, consider piper:
bash
echo "Hello world" | piper --model en_US-lessac-medium --output_file output.wav aplay output.wav
Command blocks until speech completes (espeak, spd-say). On headless systems, audio output requires ALSA or PulseAudio.