Text-to-Speech modules piper-tts not recognized

I installed the Text-to-Speech modules piper-tts and piper-voices-en-us from AUR, but apps like Ocular and other apps are still using espeak-ng from a previous installation (and speech dispatcher was already installed and is active).

systemctl --user status speech-dispatcher
peech-dispatcher.service - Common interface to speech synthesizers
     Loaded: loaded (/usr/lib/systemd/user/speech-dispatcher.service; static)
     Active: active (running) since Wed 2026-08-19 20:35:07 CEST; 16min ago
 Invocation: 37dc2d5a9e134b35a8a4fb4d1cf5cf1a
TriggeredBy: ● speech-dispatcher.socket
   Main PID: 4349 (speech-dispatch)
      Tasks: 10 (limit: 4540)
     Memory: 13.7M (peak: 14.4M)
        CPU: 902ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/speech-dispatcher.service
             ├─4349 /usr/bin/speech-dispatcher -s -t 0
             ├─4351 /usr/lib/speech-dispatcher/speech-dispatcher-modules/sd_espeak-ng /etc/speech-dispatcher/modules/
             └─4352 /usr/lib/speech-dispatcher/speech-dispatcher-modules/sd_dummy /etc/speech-dispatcher/modul● speech-dispatcher.service - Common interface to speech synthesizers
     Loaded: loaded (/usr/lib/systemd/user/speech-dispatcher.service; static)
     Active: active (running) since Wed 2026-08-19 20:35:07 CEST; 16min ago
 Invocation: 37dc2d5a9e134b35a8a4fb4d1cf5cf1a
TriggeredBy: ● speech-dispatcher.socket
   Main PID: 4349 (speech-dispatch)
      Tasks: 10 (limit: 4540)
     Memory: 13.7M (peak: 14.4M)
        CPU: 902ms
     CGroup: /user.slice/user-1000.slice/user@1000.service/app.slice/speech-dispatcher.service
             ├─4349 /usr/bin/speech-dispatcher -s -t 0
             ├─4351 /usr/lib/speech-dispatcher/speech-dispatcher-modules/sd_espeak-ng /etc/speech-dispatcher/>
             └─4352 /usr/lib/speech-dispatcher/speech-dispatcher-modules/sd_dummy /etc/speech-dispatcher/modu>

Aug 19 20:35:07 time systemd[917]: Started Common interface to speech synthesizers.
Aug 19 20:35:07 time speech-dispatcher[4349]: [Wed Aug 19 20:35:07 2026 : 870154] speechd: Speech Dispatcher >

Also the test

spd-say "Testing piper"

does not recognize piper-tts but espeak-ng instead.

How can I change the default speak engine to piper-tts and use it for all apps with speech capeability as espeak-ng sounds horrible robotic?

Thanks for your advice.

It appears a project has to specifically import the Piper library, so it doesn’t seem to be a drop-in replacement for eSpeak. The README lists projects using it.

Also, the Open Home Foundation website mentions it’s “optimized for the Raspberry Pi 4”, so it might not have much of a wider aim.

I’d also been struggling for ages to get rid of the C64 SAM robot voice. At some point I’d had enough and installed Pied. Basically, you can then copy the successful configuration and try it yourself manually.

You would need to configure the speech-dispatcher manually, but i can’t answer how to do so. If your goal is as you say to get rid of espeak-ng robotic voices, then as already suggested by @pwx you could install Pied. So here is the recipe

  • download the Pied flatpak
  • install the flatpak package from the repo via pamac gui or with sudo pacman -S flatpak
  • install Pied flatpak install --bundle Downloads/com.mikeasoft.pied.flatpak (if the download went to the Downloads folder)
  • open Pied - its in Plasma’s applications launcher
  • choose language and voice

What Pied does is to install Piper locally (notice that Piper already contains espeak-ng as engine so you can unintall the repo package), and it downloads and setups voices and configures the speech dispatcher automatically. On the other hand, if you prefer to do this on your own, perhaps you find something in the Arch wiki about it.

The Pied flatpak installs some dependencies from Flathub. If you don’t want to manage this via the command line, you can also use Discover for this. Only make sure that packagekit-qt6 and packagekit are not installed. (Discover will notify you about available updates.)

The Pied flatpak since it isn’t on Flathub cannot be updated this way that is with Discover. To update one has to download the newer version and install again.

I’ve been reading my way though this today myself

The log shows Speech Dispatcher is still loading sd_espeak-ng, so installing piper-tts alone is not enough. Select Piper in Speech Dispatcher’s module configuration, then restart the user service.

My goodness, so easy, thanks for that post.
Everything done in minutes, Pied even reloads the speech-dispatcher no restart required.
All apps with speech work seamlessly, just QStarDict does not recognize ‘Piper’ in the settings, but that might be a specific app problem.