osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.64k stars 1.01k forks source link

Include a TTS engine with the application #7173

Closed adolfintel closed 3 years ago

adolfintel commented 5 years ago

On Android, if you install a custom ROM without google services, there is no default TTS engine that Osmand can use for its synthesized voices. This is very common among F-Droid users. Other navigation apps like Here WeGo include a TTS engine with the application so they can work without google.

lbdroid commented 5 years ago

Its probably a bit much to include a TTS engine -- a lot of duplication and bloat. Maybe check if there is one installed, and if not, offer a link to Flite on F-droid.

adolfintel commented 5 years ago

Flite only supports English as far as I know, and I couldn't get it to work with Osmand. PicoTTS would be fine, it still works even if it's discontinued.

lbdroid commented 5 years ago

Picotts is part of gapps, so that won't help for people without Google installed.

It would be a smarter and easier and more useful job to contribute voices to flite than to write a new voice synthesis engine and maintain it separately.

billboule commented 4 years ago

hello @adolfintel, I've got the same problem, have you found any way to solve this issue ?

adolfintel commented 4 years ago

No, I have Flite TTS installed on the device from F-Droid

On December 5, 2019 9:55:17 AM GMT+01:00, billboule notifications@github.com wrote:

hello @adolfintel, I've got the same problem, have you found any way to solve this issue ?

-- You are receiving this because you were mentioned. Reply to this email directly or view it on GitHub: https://github.com/osmandapp/Osmand/issues/7173#issuecomment-562033409 -- Sent from my Android device with K-9 Mail. Please excuse my brevity.

ghost commented 4 years ago

Its really annoying. Flite is only English, doesnt supporty any other language. OsmAnd should include a multi lingual TTS.

lbdroid commented 4 years ago

Its really annoying. Flite is only English, doesnt supporty any other language. OsmAnd should include a multi lingual TTS.

So... Contribute to f-lite. There is nothing at all about it that is restricted to English except that NOBODY HAS BOTHERED TO CONTRIBUTE LANGUAGE DATA.

seniorm0ment commented 3 years ago

Related to #9637 I installed Flite from F-Droid, but in OSMAnd it only gives me an "English" option, I can't select English TTS or it says it can't start TTS engine.

The voiced directions are terrible with the "English" option, plus doesn't say street names or anything. I assume this is the benefit of TTS. Unless I am using Flite wrong and it didn't install properly? Edit: Required phone restart for some reason.

Seems to work, although it is an extremely poor sounding TTS. But it works at least.

seniorm0ment commented 3 years ago

After spending some time with Flite, this is extremely poor for audible navigation. It is not only hard to understand, but the instructions themselves are not complete.

For example, i I go to dev settings, and test a line with something such as "In 200km turn sharply right on Blueberry Lane, then in 2 miles take i95 North", it would say something like "In 200km, turn sharply right, then in 2 miles take i95 north"

It always seems to leave out street names, it also doesn't seem to say highway exit names, the distance is sometimes shortened or changed sa bit, it's overall just not clear etc. Also the voice itself is pretty outdated in comparison to modern TTS engines.

I tried all the TTS voices on Flite and nothing seems any better. For users with devices without a default TTS engine, this breaks a massive function of the application. I think it would be highly beneficial to work on a modern TTS engine that does such, and publish to F-Droid.

Unless I'm missing something with Flite, Flite is pretty unusable.
I would hope this could be considered of higher priority, as it's a massive function.

sonora commented 3 years ago

In any case, requesting that OsmAnd develops, incorporates, and then maintains a TTS engine does not sound like a reasonable request. Such fundamental and re-usable functionalities need to be standalone modules in the form of separate software projects.

The way to success is in deed to support projects with your time and expertise who take on this task, rather than requesting it to be developed within the scope of apps who merely use it. And whose 95% of users have no issue anyway because they have this capability from their device manufacturer, operating system, or both. Meaning something developed here would always remain a fringe topic with sub-par functionality and support.

sonora commented 3 years ago

See also #11373. I guess RHVoice could be another alternative.

bellera commented 3 years ago

TTS doesn’t work if offline mode (air-plane mode on or not network signal)

bellera commented 3 years ago

I found&tested 3 TTS offline engines for Android ... Flite Mimic TTS - Text to Speech - The engine cuts some words at the end of sentences. For example, meters. Voices tried are good. Perhaps my phone can't process the voices at necessary speed. eSpeak - I sounds very metallic. I used on Linux systems many years ago. I think it's quite obsolete. eSpeak NG - Should be a better eSpeak, but not. And it includes publicity. After you installed the app you must go to your phone System Configuration | Languages & Text introduction | Advanced Configuration | Voice Syntheses (at the end) | Preferred Engine. (Android 8.1. Sorry for inexact translation. My device isn't in English). eSpeak will download your system TTS voice when will be selected as engine. With Flite you must enter to the app and manually download. After that your apps will be capable to do TTS in offline mode.

Lee-Carre commented 2 years ago

I've had multiple languages installed in Flite for a couple years already. I see no evidence that it's English-only.

TTS should definitely be a shared system service, instead of each app reinventing the wheel. While gaining nothing, it also bloats each app. Not to mention the benefits of centralised configuration.

bellera commented 2 years ago

I found why TTS engine doesn't work for me. Main languages have TTS voices downloaded to the phone. For other languages you must download it. And for my case (Catalan language) it doesn't exist the downloadable voice. I could see this going to:

Configuration | System | Languages & Input | Advanced | Text-to-speech output
Preferred engine - Speech services by Google
[Tap the gear to the right)
Install voice data

So, if I want an offline TTS voice having my phone in Catalan language I have to say to OsmAnd I want English, French or Spanish. Thanks!

seniorm0ment commented 2 years ago

I still find all the libre TTS solutions, including F-Lite to be extremely poor quality wise. I know it's not a specific issue to OSM. It's just a shame, companies have the ability to use your own voice model for speech synthesis, or use others (Master Chief for example), but the libre community still has been unable to piece together a nice sounding basic one?

Is anybody actively already working on a project for this curiously?

lbdroid commented 2 years ago

@seniorm0ment the flite project is hosted here; https://github.com/festvox/flite

seniorm0ment commented 2 years ago

Interesting, didn't see the full readme but I just noticed the voice quality area at the bottom, with the repository Might be what I an looking for. Will check that out, thank you.

Lee-Carre commented 2 years ago

the flite project is hosted here

Lee-Carre commented 2 years ago

Contribute to f-lite. There is nothing at all about it that is restricted to English except that NOBODY HAS BOTHERED TO CONTRIBUTE LANGUAGE DATA.

Of possible use to budding enthusiasts, might be Mozilla's Common Voice project.