-
Notifications
You must be signed in to change notification settings - Fork 872
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
eSpeak/TalkBack issue when language tag is not provided. #905
Comments
Pronunciation language in Android is set manually by application preferences. |
Persian characters mainly are intersection with Arabic characters , so that eSpeak is not able to distincts the pronunciation language from a given string. |
Thank you. I will follow up the issue with Talkback and loop back. |
I talked with the Talkback team and they said text-to-speech-language setting is passed to third-party text-to-speech-engines. |
I think, this issue should be followed by Android port team of eSpeak. @rhdunn |
Do you know what API is being called by talkback and what values it is passing to espeak? Farsi (Persian) should be used if the language specified is either The logic espeak uses to select the voice is located in https://github.com/espeak-ng/espeak-ng/blob/master/android/src/com/reecedunn/espeak/TtsService.java and https://github.com/espeak-ng/espeak-ng/blob/master/android/src/com/reecedunn/espeak/Voice.java. https://github.com/espeak-ng/espeak-ng/blob/master/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechTest.java and https://github.com/espeak-ng/espeak-ng/blob/master/android/eSpeakTests/src/com/reecedunn/espeak/test/TextToSpeechServiceTest.java are the tests for the voice logic using the data from https://github.com/espeak-ng/espeak-ng/blob/master/android/eSpeakTests/src/com/reecedunn/espeak/test/VoiceData.java. |
It seems to be populated in SynthesisRequest. Documentation says the language is an ISO 639-3 letter language code, but this issue is not Farsi specific and can happen for any language for for which espeak heuristics cannot correctly detect the language. |
The language selection should work if |
Thank you, how I can I follow up if the value is passed to eSpeak from TalkBack, or there is something wrong at TalkBack side? |
Gentle reminder @rhdunn |
hi. |
Hi, I did not get any reply from e-speak NG code owners. I am following up with Talkback to see if they can send the default when language span is empty. |
hello. can you explicitly select needed language in talkback local menu. |
Hi, |
What are the values for On lollipop and later, eSpeak uses the value of What is likely happening is that the request is including the voice name (the default selected language) and that is set to English, so it is reading the Arabic/Persian characters one character at a time in English. You will need to set the default language to Farsi/Persian to get the page to read correctly. |
My Android knowledge is not at a level that I would be able to test if the values are available in the API, but the default language is selected in TalkBack UI. |
Hi,
If you go through the following steps (on Android):
You can observe that instead of reading the page in Persian, it reads it as English/Arabic and one letter at a time. I raised the issue to the TalkBack team and they said:
"In case the webpage-content or talkback-language-preference provide locale-span, Talkback is sending the language through locale-span, but it seems that eSpeak is ignoring it." and "locale-span-language would be set by the talkback-language-preference, or no locale-span-language if no talkback-language-preference is set."
Is it something that you can take a look at? Or is there any issue that needs to be fixed on the talkback side and I can follow up?
@shadyar
The text was updated successfully, but these errors were encountered: