brailcom/speechd

Make the espeak-ng sound less lame

Opened this issue · 3 comments

Expected behavior

From @albertotirla :

“make it sound less lame, for example make it sound like nvda does it or something of that nature”

Not sure what nvda is doing differently, it would need investigation, as AFAIK spd mostly uses default espeak-ng parameters. I'd argue that if the espeak-ng defaults are bad, they should be changed there, but at least we can include whatever nvda tuning uses for older releases of espeak-ng.

“I don't have issues with espeak for example, but I heard it from someone who used nvda with inflection turned up to 100, and the first thing they said when I turned on orca on their vm, was that espeak sounds different and more compressed”

I think it's isn't espeak-ng problem.

the sound on Windows and Linux is really different, but this is due to the fact that both pulsaudio and pipewire use a rather low default mixer quality, if we increase the quality of the mixer in the configs, then the sound becomes exactly the same as on Windows, and perhaps even better.

Several years ago I wrote about this in a Russian group for the blind on Linux. Since I'm lazy, I'll just copy the translation of the message here.

wow raising resample.quality from 4 to 10 in /etc/pipewire/client.conf, /etc/pipewire/pipewire-pulse.conf makes a BIG improvement in espeak-ng sound. this is logical and understandable, but yesterday I set it up on my old laptop and instead of rebooting, I just restarted pw and the effect was instantaneous, it's like you stopped listening to espeak from underwater through tin cans. now my screen reader sounds as good as in windows.

wow raising resample.quality from 4 to 10 in /etc/pipewire/client.conf, /etc/pipewire/pipewire-pulse.conf makes a BIG improvement in espeak-ng sound

Ouch, I'd say it's a big pipewire issue...

I now somehow unsterstand why possibly a lot of people don't have the issue, since that probably depends on the audio card capabilities. In pw-top, the RATE columns matches the application column on my laptop, so I guess I have no resampling and thus no issue.

I wonder if once we use the native pipewire API, there will be a programmatic way to request good quality resampling