Skip to content
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

Problem in speaking some Persian punctuation marks while navigating by characters #4297

Closed
nvaccessAuto opened this issue Jul 16, 2014 · 12 comments

Comments

@nvaccessAuto
Copy link

Reported by shadyar on 2014-07-16 08:31
Hello
I am Shadyar Khodayari, the developer of the Persian language in eSpeak project.
I has detected a problem in the speaking the name of some of the punctuation Persian characters while navigating on characters of a sentence.
I was thinking the internal part of eSpeak codes causes this problem so I sent the following email to Jonathan Duddingtonjonsd@talktalk.net and his reply.

Shadyar:
while navigating on Farsi characters, *(of the sentence) the name of these four

characters ، ؛ ؟ and ZWNJ is character not read. I checked the code,

all is okay. I think this problem may cause reasons.

Jonathan:
If I use the command options:
espeak -v fa --punct
then eSpeak speaks the names of the punctuation characters.
So eSpeak knows the names. If you are using the NVDA screen-reader
then NVDA speaks the names of punctuation characters itself, and
does not pass them onto eSpeak. So the problem may be that data
is not set up in NVDA for these characters.

*Shadyar: the problem of ZWNJ has been solved in new version of eSpeak. but remained characters ، ؛ ؟ have still problem.

would NVDA developers mind considering this problem

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2014-07-17 00:58
I can't reproduce this. If I set eSpeak to use Persian in NVDA's Voice Settings dialog and I move through these characters by pressing right arrow:
، ؛ ؟
I do hear names as I move through them. (I can't confirm they're the correct names, as I don't speak Persian.)

NVDA does seem to have information for the first and last characters, though the names are different to those used by eSpeak. It doesn't for the second character. However, where NVDA doesn't have information for a character, it will be passed to eSpeak as is.

Are you saying you actually hear nothing when moving through these characters when pressing right arrow?

@nvaccessAuto
Copy link
Author

Comment 2 by parham on 2014-07-19 09:19
Changes:
Changed title from "problem in the speaking the name of some of the punctuation Persian characters while navigating on characters of a sentence." to "Problem in speaking some Persian punctuation marks while navigating by characters"

@nvaccessAuto
Copy link
Author

Comment 3 by parham (in reply to comment 1) on 2014-07-19 09:24
Replying to jteh:

I can't reproduce this. If I set eSpeak to use Persian in NVDA's Voice Settings dialog and I move through these characters by pressing right arrow:

، ؛ ؟

I do hear names as I move through them. (I can't confirm they're the correct names, as I don't speak Persian.)

I personally hear nothing, neither when navigating by lines nor by letters.

NVDA does seem to have information for the first and last characters, though the names are different to those used by eSpeak. It doesn't for the second character. However, where NVDA doesn't have information for a character, it will be passed to eSpeak as is.

The problem is, I hear NVDA pronounce the first and last letters only when I go to general settings and set the whole NVDA language to Persian. When using NVDA with the language set to English and the voice set to Persian, I hear nothing.

Are you saying you actually hear nothing when moving through these characters when pressing right arrow?

Yes, I personally hear nothing.

@nvaccessAuto
Copy link
Author

Comment 4 by shadyar on 2014-07-19 11:49
hi
Are you saying you actually hear nothing when moving through these characters when pressing right arrow?
Yes, I hear nothing while navigating on those characters via left and right arrow keys. in general settings the whole NVDA language has been set to English, and voice set to Persian.
I think, NVDA should recognizes and speaks Persian punctuation marks while in general settings the whole NVDA language has been set to English, voice set to Persian.
the most of Persian speakers prefer to use NVDA which has been set the whole NVDA language: English, and voice: Persian.
because the Windows in English is popular. the users would read and write Persian and English via NVDA at the same time (without changing language frequently between English and Persian).
note: therefore I have programed eSpeak-persian in a way that is able to reads both English and Persian. Persian texts uses completely different characters set from English.

may be following information is helpful
my NVDA version: master-10214,2089790
my eSpeak version: 1.48.08 The latest development version
regards

@nvaccessAuto
Copy link
Author

Comment 5 by jteh on 2014-07-20 22:15
There are two issues here:

  1. For some reason, we are seeing different results with regard to eSpeak's handling of these characters. I don't hear them when navigating by line (because eSpeak doesn't speak them because they are punctuation), but I do hear them when moving by character. Can you please test whether you hear them when moving by character with eSpeak stable (1.48.03)?
  2. As to NVDA's handling of them, if you want to have NVDA handle Persian symbols while its language is set to English, you need to enable automatic language switching. Otherwise, the language of all NVDA data will always be bound to NVDA's language. See The letter and punctuation names remain in the NVDA language even when the synthetizer is configured differently #4210 (among other tickets) for details.

@nvaccessAuto
Copy link
Author

Comment 6 by shadyar on 2014-07-21 11:46
I don't hear them when navigating by line (because eSpeak doesn't speak them because they are punctuation), but I do hear them when moving by character. Can you please test whether you hear them when moving by character with eSpeak stable (1.48.03)?

hi
I checked navigating on those characters while synthesizer setting had been set to api sapi5 and voice set to espeak v1.48.04 lang: Fa via arrow keys character by character but NVDA speaks nothings.
as you said you should not hear them when navigating by line. it is correct.
but it is the problem, while navigating by character, we should hear these punctuation marks.

2.As to NVDA's handling of them, if you want to have NVDA handle Persian symbols while its language is set to English, you need to enable automatic language switching.
Otherwise, the language of all NVDA data will always be bound to NVDA's language. See #4210 (among other tickets) for details.

I imagine a misunderstanding has been occurred. I mean, the most Persian of speakers config their NVDA with following configurations
General settings/Language> English
Synthesizer settings/Synthesizer: espeak
Voice settings/Voice: Persian
with above configuration NVDA is able to speak Persian text while navigating by line and speaks the name of all specific Persian characters while navigating by character but these ، ؛ ؟ punctuation marks.
please you recheck these punctuation marks with above configuration.
regards

@nvaccessAuto
Copy link
Author

Comment 7 by jteh (in reply to comment 6) on 2014-07-21 23:11
Replying to shadyar:

I checked navigating on those characters while synthesizer setting had been set to api sapi5

eSpeak SAPI5 will probably behave a little differently to when NVDA uses eSpeak directly. Please test with a current official NVDA build using its eSpeak directly.

but it is the problem, while navigating by character, we should hear these punctuation marks.

And as I've said, I do hear them.

2.As to NVDA's handling of them, if you want to have NVDA handle Persian symbols while its language is set to English, you need to enable automatic language switching.

Otherwise, the language of all NVDA data will always be bound to NVDA's language. See #4210 (among other tickets) for details.

I imagine a misunderstanding has been occurred. I mean, the most Persian of speakers config their NVDA with following configurations

General settings/Language> English

Synthesizer settings/Synthesizer: espeak

Voice settings/Voice: Persian

with above configuration NVDA is able to speak Persian text while navigating by line and speaks the name of all specific Persian characters while navigating by character but these ، ؛ ؟ punctuation marks.

please you recheck these punctuation marks with above configuration.

I did. They do speak for me using eSpeak's names for them. If you want NVDA's handling of them, though, you have to enable automatic language switching as I said.

@nvaccessAuto
Copy link
Author

Comment 8 by shadyar on 2014-07-22 20:58
hi
I found the cause of different behavior of NVDA in our test and your test.
NVDA does not speak those punctuation marks in our test because in our NVDA configuration "voice settings/Automatic language switching..." checkbox is not checked.
when this checkbox is not checked, neither eSpeak in official NVDA nor eSpeak in sapi5 speaks those punctuation marks.

while this checkbox was checked. we received many emails from Persian NVDA users who complained about, on some of web page that has been written in Persian, NVDA switches its language to Arabic and speaks the name of characters in in Arabic instead of reading the sentences and words. (this at issue occurred when a webpage does not have the tag relevant to determine language.)
therefore in order to solve we had to requested Persian NVDA users not to check "voice settings/Automatic language switching..." checkbox.
would you mind solving the above problem so that that checkbox is checked for Persian NVDA users. please
or considering that why eSpeak does not speak those punctuation marks while voice settings/Automatic language switching..." checkbox is not checked.
Regards.

@nvaccessAuto
Copy link
Author

Comment 9 by jteh on 2014-07-22 21:26
There's still a difference between what I'm seeing and what you're seeing. When automatic language switching is enabled, NVDA's own information for those characters will be used. When it's disabled and NVDA's language is sset to English but the voice is set to Persian, the characters will be passed straight to eSpeak. My concern is that when I disable it, I still get those characters announced when I move by character using eSpeak directly. For some reason, you don't. This doesn't make sense. This is why I asked you to test this with the in-built eSpeak 1.48.03.

@nvaccessAuto
Copy link
Author

Comment 10 by shadyar (in reply to comment 9) on 2014-07-24 13:25
Replying to jteh:

There's still a difference between what I'm seeing and what you're seeing. When automatic language switching is enabled, NVDA's own information for those characters will be used. When it's disabled and NVDA's language is sset to English but the voice is set to Persian, the characters will be passed straight to eSpeak. My concern is that when I disable it, I still get those characters announced when I move by character using eSpeak directly. For some reason, you don't. This doesn't make sense. This is why I asked you to test this with the in-built eSpeak 1.48.03.

Dear JTeh you are right. I found the problem why NVDA did not speak those punctuation for me and my friends. it was relating to our NVDA configuration for using Persian language that is not needed.
Voice Settings/ "Use spelling functionality..." was not checked.
when I checked it. the problem entirely was solved and my code worked well in eSpeak Persian.
I will send an email all to Persian NVDA users who are subscriber in our mailing list and publish a post on our site that Voice Settings/ "Use spelling functionality..." checkbox should checked for using Persian language.
thank you very much for your attention and We apologize for any inconvenience caused.

@nvaccessAuto
Copy link
Author

Comment 11 by jteh on 2014-07-28 07:19
Note that this should be enabled by default. Closing.
Changes:
Added labels: worksforme
State: closed

@zahra21
Copy link

zahra21 commented Aug 4, 2017

hello.
thanks so much for fixing reporting punctuations.
but even with the newer version of nvda and espeak-ng, i still have some problems.
i only use espeak and not other synthesizers.
i set language of nvda in general and language of espeak in voice settings to persian.
if i check Automatic language switching (when supported) in voice settings, nvda reads farsi documents letter by letter and even says arabic before letters!
for example it reads arabicخ arabicد arabicا
and its not possible to use it with automatic language switching enabled.
moreover, Automatic dialect switching (when supported) for me is unchecked for me.
in this case, if i check automatic language switching check, espeak is changes its dialect between english US and UK, but i wish that always use Voice: Persian+English-US
if i check Trust voice's language when processing characters and symbols everythings work correctly, except announcing english punctuations and symbels which return to persian!
if i uncheck this feature, some punctuations are not spoken even in newer versions of nvda and espeak navigating letter by letter.
for example: ـ and ‌ are not spoken for me!
if uncheck Use spelling functionality if supported the problem for reporting ، and ؛ are solved both in espeak-ng and espeak 1.48.3 but not 1.48.4
and also ؟ is still not spoken with unchecking Use spelling functionality if supported
could you please solve the remainded issues?
thanks for your help, God bless you all and his infinite mercy i pray for you all.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants