Ashinch / ReadYou

An Android RSS reader presented in Material You style.
GNU General Public License v3.0
5.11k stars 202 forks source link

Read Aloud Integration Method? #801

Closed ihateprogramming88 closed 3 months ago

ihateprogramming88 commented 4 months ago

Not particularly a feature request, I wanted to work on the read aloud feature. Is there any particular way that you want this implemented?

Jackson-Nickk commented 4 months ago

Please use a good neural network based engine so it wouldn't be a robotic and annoying voice reading the text. There are numerous open source read aloud engines out there that you can use.

ihateprogramming88 commented 4 months ago

Does anyone have any recommendations for neural network engines that can be used?

Jackson-Nickk commented 4 months ago

A simple google search brought me to this:

https://github.com/espeak-ng/espeak-ng

They say it's lightweight and low footprint. It even has an android implementation for testing which I tested and it was OK. Its development doesn't seem to be dead as the last commit was 8 days ago.

But that's just my search results, and I am not a developer myself. Please probe this project and search for other TTS models to find the one most suitable.

Jackson-Nickk commented 4 months ago

This one also seems interesting: https://github.com/coqui-ai/TTS

Jackson-Nickk commented 4 months ago

Android has its own API called Google Speech Recognition & Synthesis. Third party apps can use the built in API to get accessibility features. But it is not as good as other neural models. And also, it relies on the provided API from android, which means if you're using a custom ROM android that ripped this API out, the ReadYou app cannot produce TTS on its own.

Jackson-Nickk commented 4 months ago

This one also has good results:

https://github.com/rendchevi/nix-tts

But its development seems dead.

Jackson-Nickk commented 4 months ago

Mozilla has its own TTS engine too:

https://github.com/mozilla/TTS

It's also good but I don't know if it's lightweight or suitable for this job. Pocket text to speech feature is good, but I couldn't find any evidence that Pocket is using Mozilla's TTS model or not.

This one also didn't see the charm of development in 3 years. I don't know how that would effect you or the implementation. But you can always train the model yourself I guess.

candideu commented 4 months ago

Reeder is another FOSS RSS reader that does TTS read aloud pretty well, but I'm not sure what library is being used, and there's only one voice: https://github.com/spacecowboy/Feeder

Another engine to look into is Piper TTS: https://github.com/rhasspy/piper

My only other suggestion, from a user experience perspective, would be to highlight the paragraph being read, and having the ability to click on a paragraph to go back to it. This way users can replay or skip to the sections of their choice.

Here are some examples from other reading apps:

Read Aloud

image

AblePlayer

https://ableplayer.github.io/ableplayer/demos/video3.html

Hyperaudio

https://hyperaudio.github.io/hyperaudio-lite-editor/#hypertranscript=22.1,22.3

ihateprogramming88 commented 4 months ago

Great, thanks for the input, I'll do some research and decide what is best suited. Hopefully will get started soon.

Ashinch commented 3 months ago

Temporary solution: Utilize the ability to read aloud in webview.

Ashinch commented 3 months ago

568

ihateprogramming88 commented 3 months ago

Awesome, nice stuff, I have downloaded the latest build, how do I use read aloud. I can see bionic reading is working nicely. Just can't figure out how to use read aloud, WebView is enabled. @Ashinch

Ashinch commented 3 months ago

Awesome, nice stuff, I have downloaded the latest build, how do I use read aloud. I can see bionic reading is working nicely. Just can't figure out how to use read aloud, WebView is enabled. @Ashinch

In Webview, needs select text and expand text tool to tap "Read aloud" button.

I‘m looking for a more convenient way to trigger.

ihateprogramming88 commented 3 months ago

I can't seem to get this to work on GrapheneOS, do you need any extra applications installed, I have google speech synthesis installed but when I delete the text in WebView no option pops up with read aloud at the moment on latest nightly build.