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

NVDA crashes when reading some non-latin characters letter by letter #4553

Closed
nvaccessAuto opened this issue Oct 15, 2014 · 8 comments
Closed

Comments

@nvaccessAuto
Copy link

Reported by Sukil on 2014-10-15 13:25
STR:
Make sure the speech synthesizer in use is eSpeak, and that it switches languages automatically.

  1. Go to the article on "Great expectations"in wikipedia.
  2. Go to the languages heading, and down arrow. I'm not sure till when, but I know I pased something like "u u".
  3. By using down arrow, fin a language witch is non-latin, and in which eSpeak changes language.
  4. Right arrow rapidly.
@nvaccessAuto
Copy link
Author

Attachment log wikipedia.txt added by Sukil on 2014-10-15 13:27
Description:
Log file, just with the string I suspect that originated the crash. Logging level set to debug.

@nvaccessAuto
Copy link
Author

Comment 1 by jteh on 2014-10-15 22:06
Confirmed.

Technical: Both Chinese characters U+4e2d and U+6587 cause this crash, but only when speaking as characters. You can reproduce it by passing the following SSML to eSpeak:

<voice xml:lang="zh"><say-as interpret-as="characters">\u4e2d</say-as></voice>

@nvaccessAuto
Copy link
Author

Comment 3 by Sukil on 2014-10-27 20:38
Is Jonathan already aware of this?

@nvaccessAuto
Copy link
Author

Comment 4 by jteh on 2014-10-28 00:11
Probably not. Based on past experience, it's also possible it doesn't occur in his build, since he builds with an older compiler and different settings.

@rhdunn
Copy link

rhdunn commented Jan 10, 2016

Hi, I have tried that SSML string on my espeak-ng linux build and espeak 1.48.15 and get:

(en)b'a55ksla55S_!(zh)_| j'iou55_!_| s'i[51_!_| j'i51_!_| '@r51_!_| t'i51_!_|

Looking at the code, I can't see anywhere it is handling \uNNNN style character markup. Additionally, the SSML documents for the say-as attribute values don't mention that syntax.

NOTE: Using &#x4e2d; results in espeak saying (with the default, incomplete dictionary):

ts.'ong55_!_|

What compiler and settings are you using on Windows?

@jcsteh
Copy link
Contributor

jcsteh commented Jan 11, 2016

Thanks for looking at this @rhdunn.

Looking at the code, I can't see anywhere it is handling \uNNNN style character markup. Additionally, the SSML documents for the say-as attribute values don't mention that syntax.

Oops. I must have copied the raw string from Python. That should be:

<voice xml:lang="zh"><say-as interpret-as="characters">中</say-as></voice>

NOTE: Using &#x4e2d; results in espeak saying (with the default, incomplete dictionary):

ts.'ong55_!_|

What compiler and settings are you using on Windows?

@michaelDCurran?

@michaelDCurran
Copy link
Member

The crash no longer exists in eSpeak NG master, probably through some msc /analyze fixes. Therefore this will be fixed once #5651 is merged.

@jcsteh jcsteh added this to the 2016.2 milestone May 26, 2016
@jcsteh
Copy link
Contributor

jcsteh commented May 26, 2016

#5651 is now merged. Closing.

@jcsteh jcsteh closed this as completed May 26, 2016
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

4 participants