RetroArch
RetroArch copied to clipboard
Change espeak to speech-dispatcher
Use a high-level speech-dispacher as the linux narrator. It supports many TTS engines, including eSpeak. It allows to use the preferred TTS engine that is may already be configured in the system/user environment.
Any downsides with us moving over to this? Will it break some people's setup that relied on espeak instead?
Those who have only espeak will need to install speech-dispatcher (default config should pick up the espeak module). However, for those who widely use the voice synthesizer, it will most likely be installed in the system.
Is there a way to support both?
I say if you can put in a setting where you can select between espeak and speak-dispatcher so that we can retain the ability to use either of them then that is a PR I could merge. Unless there's a better way to do that without a setting but I could see that as being a compromise
We could enable speech-dispatcher and add to the changelog that you have to install espeak module for speech-dispatcher to keep compatibility.
Currently, RA supports only espeak on Linux/Unix but with speech-dispatcher we can get access to other TTS engines for "free".
Moreover, speech-dispatcher is packaged for a lot of distributions and for example on Debian it is used more than espeak(-ng). Source.
Sorry for the delay, I don't have much free time right now. I added an engine selection item to the menu with restricted the visibility to Linux only at this stage. The code is working, but may not be very neat and may require refactoring. Perhaps in the future, if we widely use the many engines API, it will be appropriate to use the driver concept for the narrator, similar to sound, video, etc.
P.S. these changes should not affect users who are currently using eSpeak
I hope the retroarch guys pull your pull request, this is badly needed.