ThisCalculator

Everyday

How to Choose Linux Text-to-Speech Software: 22 Free Options

Updated · Standard formula, shown below

How to Choose Linux Text-to-Speech Software: 22 Free Options

This guide helps you pick a free and open-source text-to-speech (TTS) engine for Linux. You’ll learn what to look for, compare 22 options, and get step-by-step instructions to test and choose the one that fits your needs—whether for screen reading, language learning, or just listening to documents.

What You’ll Need

  • A Linux computer with an internet connection.
  • Basic familiarity with the terminal (for installing packages).
  • An idea of what you’ll use TTS for (e.g., reading web pages, dictation, accessibility).
  • Optional: a pair of headphones or speakers to test audio quality.

Step-by-Step

  1. Define your primary use case. Are you using TTS for accessibility (screen reader), for language learning, for listening to long documents, or for a project like a voice assistant? Different tools excel in different areas—some are fast and light, others sound more natural.
  2. Understand the main TTS architectures. Linux TTS generally falls into two categories: command-line tools (like espeak-ng, festival) and graphical interfaces (like Speech Dispatcher with a frontend). Also, some use older formant synthesis (robotic sound) while others use neural or HMM-based voices (more natural).
  3. List the 22 free and open-source options. Here they are, grouped roughly by type:
    • Command-line engines: eSpeak NG, Festival, Flite, Pico TTS (libttspico), MaryTTS, Mimic (from Mycroft), RHVoice, OpenTTS, Coqui TTS, Piper TTS.
    • Speech dispatcher and frontends: Speech Dispatcher (speechd), Orca (screen reader), KDE Text-to-Speech, GNOME Accessibility (uses speechd).
    • Libraries and APIs: gTTS (Google Translate TTS wrapper, but uses online service—still free), pyttsx3 (Python wrapper), espeak-ng (library), Festival (library), MaryTTS (Java-based server).
    • Other notable tools: say (macOS-like, but there is a Linux port), espeak (older), flite (lightweight), pico2wave (from SVOX, now discontinued but still packaged), mimic2 (deprecated), OpenJTalk (Japanese-focused), and a few more like Sinsy (singing synthesis).

    Note: Some of these are older or unmaintained, but they still work on current distributions.

  4. Install a few candidates. Use your package manager. For example, on Debian/Ubuntu: sudo apt install espeak-ng festival flite libttspico-utils speech-dispatcher. For RHVoice, you may need to add a repository. For Piper, download from its GitHub releases.
  5. Test each engine with a standard sentence. Use a text that contains varied phonetics, like: “The quick brown fox jumps over the lazy dog. He said, ‘I’ll be there at 5 o’clock.'” Run each tool on that text and listen carefully.
  6. Evaluate voice quality. Rate the naturalness, clarity, and speed. Note if the voice is monotone or robotic. For neural voices (like Piper), you’ll hear a big difference compared to eSpeak.
  7. Check language support. If you need a specific language, verify that the engine supports it. For example, RHVoice has good Russian, Piper supports many languages, eSpeak NG supports many but with robotic quality.
  8. Test speed and resource usage. Run a long text and time how long it takes to generate speech. Also, monitor CPU and memory usage with top or htop. For real-time use, low latency is important.
  9. Consider integration with your desktop. If you use a screen reader, you’ll likely want Orca with Speech Dispatcher. For simple reading of selected text, you might use a clipboard reader with eSpeak.
  10. Look at configuration options. Can you adjust pitch, speed, and volume? Are there multiple voices? For example, Festival allows voice selection, eSpeak NG has many parameters.
  11. Check for active development. A project with recent commits is more likely to be maintained and bug-free. Piper and RHVoice are actively developed; Pico TTS is not.
  12. Read documentation and community support. A tool with good docs and a responsive community will be easier to use. Check the project’s website or GitHub issues.
  13. Test with your actual use case. If you plan to listen to PDFs, try converting a page to text and then speaking it. If you need to read code, test with a code snippet.
  14. Make a shortlist of your top 3. Based on your tests, pick the ones that sound best and meet your needs.
  15. Install your final choice and set it up. For command-line use, you might create aliases. For desktop integration, configure Speech Dispatcher or your desktop’s accessibility settings.
  16. Try a few advanced options. Some tools support SSML (Speech Synthesis Markup Language) for fine control. Piper can run offline with neural voices. MaryTTS offers a server for multiple languages.
  17. Decide based on your priorities. If you want the most natural voice, go with Piper or RHVoice. If you want minimal resource use, eSpeak NG or Flite. If you want a full screen reader, Orca.
  18. Test with a long text to check for fatigue. Listen to a 10-minute reading. Some voices become annoying after a while.
  19. Check for hardware acceleration. Some engines can use GPU for faster neural synthesis (Piper can). This matters if you’re generating lots of audio.
  20. Consider licensing. All 22 are open source, but some have specific licenses (e.g., Pico TTS is under a proprietary license but free to use). Ensure it fits your project.
  21. Look at the community and examples. Search for “ example” to see how others use it. This can reveal hidden features.
  22. Make your final choice. After testing, you’ll know which one feels right. For most users, eSpeak NG is a good default because it’s fast, reliable, and available everywhere. For better quality, Piper is excellent.

Common Mistakes

  • Ignoring the difference between formant and neural voices. Formant (eSpeak) is robotic but light; neural (Piper) is natural but heavier.
  • Not testing with your own text. The default demo might sound good, but your content may include numbers, abbreviations, or foreign words that are mispronounced.
  • Overlooking language support. Some engines have poor support for certain languages. Always check the language list before committing.
  • Assuming all free TTS is the same. The quality varies hugely. Take time to listen.
  • Forgetting about latency. For real-time use, a slow engine can be frustrating. Test with a short text.

Tips

  • Use a script to test multiple engines automatically. Write a bash script that runs each engine on the same text and saves the audio files, then listen to them in sequence.
  • Adjust the speed. Many engines default to a speed that’s too fast or too slow. Set it to a comfortable listening pace.
  • Try different voices within an engine. eSpeak NG has many voice variants (e.g., en+m3, en+f3). Piper has multiple voices per language.
  • Use SSML for more control. If you need pauses, emphasis, or pronunciation tweaks, learn SSML. Festival and MaryTTS support it well.
  • Combine TTS with other tools. For example, use a clipboard manager to read selected text with a keyboard shortcut.

Troubleshooting

  • No sound output. Check that your audio device is working (e.g., speaker-test). Ensure the TTS tool is using the correct audio output (ALSA, PulseAudio, PipeWire).
  • Engine not found after installation. Some packages install binaries with different names. Use which espeak-ng to locate them. Or reinstall with sudo apt install --reinstall.
  • Poor audio quality or clipping. This may be due to sample rate mismatch. Try setting the output sample rate in the engine’s config.
  • Speech Dispatcher not working with a specific engine. Check the speechd config file (/etc/speech-dispatcher/speechd.conf) and ensure the module is enabled.
  • Piper voices don’t load. Ensure you’ve downloaded the voice model files and placed them in the correct directory (usually ~/.local/share/piper-voices/).
  • High CPU usage. If using neural voices, consider using a smaller model or reducing the sample rate.

Frequently Asked Questions

Which is the most natural-sounding free TTS for Linux?

Piper TTS (neural voices) and RHVoice are often considered the most natural. Piper offers many high-quality voices, while RHVoice is especially good for Russian and some other languages.

Can I use TTS offline?

Yes, most of the 22 options work offline. Exceptions include gTTS (which uses Google’s online service) and some cloud-based tools. For offline use, choose engines like eSpeak NG, Festival, Flite, RHVoice, or Piper.

How do I make TTS read selected text in a browser?

You can use a browser extension that calls a local TTS engine, or use a clipboard reader script. For example, you can bind a keyboard shortcut to run espeak-ng "$(xclip -o)".

Is there a TTS that supports multiple languages well?

eSpeak NG supports many languages, but with robotic quality. Piper has good multi-language support with neural voices. MaryTTS also supports multiple languages but is older.

Can I use TTS for a screen reader?

Yes, Orca is a full screen reader that uses Speech Dispatcher, which can use any of the TTS engines. You can configure it to use your preferred engine.

What is the lightest TTS engine in terms of CPU?

eSpeak NG and Flite are very lightweight and run on minimal hardware. They are ideal for embedded systems or old computers.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.