Re: Speechd-up

Aaron Chantrill <[email protected]> Sun, 25 Jan 2026 16:46:11 -0500
Newsgroups gmane.linux.debian.devel.accessibility
Message-ID <[email protected]>
On 1/17/26 14:37, Samuel Thibault wrote:
> Hello,
Samuel, thank you for responding. I have a test laptop that I'm 
installing onto over and over right now. A couple of months ago I was 
able to install Trixie on it with the Mate desktop and thought I had 
both Speakup and Orca running so that I could work on the Mate desktop 
and get Orca feedback and ctrl-alt-f1 into a shell and get Speakup 
feedback. I've been reinstalling Trixie on that machine for a bit now 
and haven't been able to re-create that setup, to the point where I feel 
like I'm gaslighting myself.
> Aaron Chantrill, le ven. 16 janv. 2026 12:51:31 -0500, a ecrit:
>> Does anyone know how to set speechd-up up with pipewire and systemd?
> It's speech-dispatcher that you'd want to make use pipewire. speechd-up
> itself doesn't deal at all with the audio. It just takes text from
> speakup and gives it to speech-dispatcher.

This is my understanding also. I have set up a stack with speakup and 
speakup_soft kernel modules:

$ lsmod | grep speakup
speakup_soft           16384  1
speakup               159744  1 speakup_soft

then espeakup set up using the correct sound card in /etc/espeakup., 
plus libespeak-ng1:

$ dpkg -l | grep espeak
ii  espeak-ng-data:amd64                  1.52.0+dfsg-5             
amd64        Multi-lingual software speech synthesizer: speech data files
ii  libespeak-ng1:amd64                   1.52.0+dfsg-5             
amd64        Multi-lingual software speech synthesizer: shared library
ii  speech-dispatcher-espeak-ng           0.12.0-5              amd64    
     Speech Dispatcher: Espeak-ng output module

running espeak-ng "Hello World" has the expected results, but when 
pipewire is installed I get no output from speakup.

>> it's calling speech-dispatcher and that is set up to run as a user
>> service.
> You can set it up to run as a system service.
This is not recommended, and I would like to understand how to do this 
correctly.
> Aaron Chantrill, le ven. 16 janv. 2026 13:45:07 -0500, a ecrit:
>> One more thing. Does speakup still write to /dev/softsynth when using the
>> speakup_soft module,
> It rather reads from it. Actually it should rather read /dev/softsynthu,
> I have added:
>
> https://github.com/williamh/speechd-up/issues/9
>
>> or is it using /sys/accessibility/speakup/synth
> speakup/synth just contains the name of the current speakup driver.
>
>> or synth_direct
> synth_direct is the converse, it's for making e.g. emacspeak emit its
> synth through the speakup-supported hardware synths.
Yes, my current understanding is that /sys/accessibility/speakup/synth 
should contain the single word "soft" if I want to use speakup with 
software TTS. /sys/accessibility/speakup/synth_direct, as I understand 
it, could be used to send text directly to speakup.
>> Is there a way for me to read what speakup is writing to make sure it
>> is working correctly?
> speechd-up has a log file, as well as speech-dispatcher.

Here is my speech-dispatcher log:

$ sudo cat /var/log/speech-dispatcher/speech-dispatcher.log
[Sun Jan 25 16:27:40 2026 : 95201] speechd:   Speech Dispatcher started 
with 3 output modules
[Sun Jan 25 16:27:40 2026 : 95254] speechd:    Speech Dispatcher will 
use local unix socket: 
/run/speech-dispatcher/.cache/speech-dispatcher/speechd.sock
[Sun Jan 25 16:27:40 2026 : 95334] speechd:    Daemon mode, forking

[Sun Jan 25 16:27:40 2026 : 96307] speechd:    Creating new thread for 
speak()
[Sun Jan 25 16:27:40 2026 : 96416] speechd:    speak_queue Creating new 
thread for stop or pause.
[Sun Jan 25 16:27:40 2026 : 96479] speechd:    speak_queue Creating new 
thread for playback.
[Sun Jan 25 16:27:40 2026 : 96497] speechd:    speak_queue Stop or pause 
thread starting.......
[Sun Jan 25 16:27:40 2026 : 96575] speechd: Speech Dispatcher started 
and waiting for clients ...
[Sun Jan 25 16:27:40 2026 : 96602] speechd:    speak_queue Playback 
thread starting.......

Here are the contents of my speechd-up log, with log level set to 5:

$ ps -ef | grep speechd-up
root         893       1  0 16:27 ?        00:00:00 /usr/bin/speechd-up -l5

$ sudo cat /var/log/speechd-up.log
[Sun Jan 25 16:27:40 2026] speechd: Speechd-speakup starts!
[Sun Jan 25 16:27:41 2026] speechd:     Main loop characters read = 27 : 
(^A2s^A5p^A5r^A5v^A1x^A0b^A0o^A5f
^AP)
[Sun Jan 25 16:27:41 2026] speechd:     cmd: s, param: 2, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:     [rate -56, param: 2]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: p, param: 5, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:     [pitch 0, param: 5]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: r, param: 5, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:   ERROR: [r: this command is not 
supported]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: v, param: 5, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:   [volume setting not supported yet]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: x, param: 1, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:   [tone setting not supported]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: b, param: 0, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:     [punctuation none]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: o, param: 0, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:     [Voice MALE1]
[Sun Jan 25 16:27:41 2026] speechd:     cmd: f, param: 5, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:   WARNING: [frequency setting not 
supported,use rate instead]
[Sun Jan 25 16:27:41 2026] speechd:     text: |
|
[Sun Jan 25 16:27:41 2026] speechd:     [speaking (2)]
[Sun Jan 25 16:27:41 2026] speechd:     Text before recoding: |
|
[Sun Jan 25 16:27:41 2026] speechd:     cmd: f, param: 5, rel: 0
[Sun Jan 25 16:27:41 2026] speechd:   WARNING: [frequency setting not 
supported,use rate instead]

> Samuel

So, my goal is to be able to take a Debian system and enable both Orca 
to work with the Mate desktop and speechd-up to work with speakup. What 
is it that I am not understanding right now?

Thank you,

Aaron