osmandapp / OsmAnd

OsmAnd
https://osmand.net
Other
4.68k stars 1.02k forks source link

Road names in TTS fail if map language is incompatible with voice language #18129

Open NeatNit opened 1 year ago

NeatNit commented 1 year ago

Description

Voice navigation, with street names enabled, does not say street names if the active map language uses a different alphabet from the voice language.

How to reproduce

  1. Set map language to Hebrew (he) in Configure map
  2. Set voice language to TTS English and enable street names
  3. Navigate between any two point in Israel, e.g. in Tel Aviv which has great OSM coverage
  4. Enable "stimulate navigation" and start the trip

Actual result

TTS fails to say street names, instead says things like "Turn left onto, then keep left"

I think it's inserting Hebrew names into the text, e.g. "Turn left onto ארלוזורוב, then keep left" - if you don't know Hebrew, you'll have as much luck saying this aloud as the TTS engine.

If you change map language to English, street names work as expected.

Expected result

Voice navigation should ignore the language of the visual map, and say the name in the voice language for street names or other map elements that are read aloud.

Environment OsmAnd Version: OsmAnd~ 4.5.8 (F-Droid) Android version: 13 Device model: Galaxy S22+

DmitryAlexei commented 1 year ago

OsmAnd~ 4.6.0#755m, released: 2023-09-13 Steps to reproduce:

Actual result (see video, voice on):

Important to note: - issue also reproduces for local languages with non-Latin alphabet (tested in Ukraine and Belarus) - street names are not voiced in English when map Language **Local names** or **Ukrainian** is set. - issue do not reproduce with languages with Latin based alphabet (tested in Polish).
NeatNit commented 1 year ago

@DmitryAlexei Thanks for verifying and adding the videos :)

you have the video headers mixed up FYI, not that it really matters.

vshcherb commented 1 year ago

There are different suggestions as well as pronounce with different TTS engine...

NeatNit commented 1 year ago

There are different suggestions as well as pronounce with different TTS engine...

There is no Hebrew TTS engine in OsmAnd, or any language that supports the Hebrew alphabet. If I pick English as the voice language, it's only natural for road names read aloud to use the English name. The language selected for the rest of the UI is not relevant.

I can't agree with the "nice to have" tag, this is an outright bug. The voice can say street names but instead it says "Turn onto."

vshcherb commented 1 year ago

Well it can say, but then you can select Transliterate names first and that also doesn't work well. I think it could be fixed both sides either TTS appears for hebrew, or good transliteration make it possible.

Well easy fix (not easy) of course to take name as possible of local map but there is an issue we don't know what's the local name in which language it's written so user need to specify it

Map language = Hebrew or Local Map language = English