flathub / com.discordapp.Discord

https://flathub.org/apps/details/com.discordapp.Discord
119 stars 43 forks source link

Text to Speech (TTS) does not work #117

Open cerulis64 opened 3 years ago

cerulis64 commented 3 years ago

In the right click menu on a message, there is an option that reads "Speak Message". Clicking this button is supposed to cause the message to be read out loud, but clicking it does nothing. Channel wide text to speech also does not work. My guess is that the package does not include espeak causing text to speech to not have any sound output.

TingPing commented 3 years ago

Sounds likely, adding espeak to the manifest shouldn't be too hard.

TheGreatestJannet commented 3 years ago

Does discord on Linux even support Text to Speech?

cerulis64 commented 3 years ago

Not sure.

lionirdeadman commented 3 years ago

It's not supported on Linux, see here : https://www.reddit.com/r/discordapp/comments/idyqrh/help_getting_tts_text_to_speech_to_work_on_linux/gabfrb9/

Closing.

NotAFile commented 2 years ago

So it turns out, discord just uses the WebSpeech api. This is cross-platform, so there is no reason why it should not work on linux. However, it is disabled in chromium for unknown reasons, probably so people use the proprietary voice synthesis implemented in Google's Chrome builds. However, I can get it to work using the --enable-speech-dispatcher argument.

I'm not familiar enough to figure out how to do this inside of flatpak myself unfortunately. I tried adding the flag and xdg-run/speech-dispatcher:ro to the filesystems but it does not seem to help. But either way it should definitely be possible, despite what Discord says. Maybe this issue could be reopened to get some more eyes on it?

lionirdeadman commented 2 years ago

I've tried making it work with no success. It seems adding espeak-ng and this flag is not enough to make it work. It may be related to https://github.com/electron/electron/issues/22844 or other electron issues, I can't really figure it out.

Vendicated commented 1 week ago

libspeechd has now been added to the electron BaseApp so this is as simple as adding a permission and command line flag (users will still need speech-dispatcher installed on the host)

see https://github.com/flathub/org.electronjs.Electron2.BaseApp/pull/59 and https://github.com/flathub/dev.vencord.Vesktop/pull/20/files

lionirdeadman commented 1 week ago

Thank for the heads-up. I got it working. While trying to get this to work, I did unfortunately stumble on this: https://bugzilla.redhat.com/show_bug.cgi?id=2284507

So unfortunately, this will not work on Fedora for now.