nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
https://www.nvaccess.org/
Other
2.12k stars 637 forks source link

Automatic language switching fails with eSpeak #13727

Closed burakyuksek closed 2 years ago

burakyuksek commented 2 years ago

Steps to reproduce:

  1. Go to http://forum.audiogames.net
  2. Switch to a different language other than English, make sure automatic language dialect switching is on
  3. Read through the page.

    Actual behavior:

    NVDA does not switch languages

    Expected behavior:

    NVDA must switch languages automatically, as it used to do in the version before 2022.1.

    System configuration

    NVDA installed/portable/running from source:

    Installed

    NVDA version:

    2022.1

    Windows version:

    Windows10 21h2

    Name and version of other software in use when reproducing the issue:

    NVDA, Google Chrome

    Other information about your system:

Other questions

Does the issue still occur after restarting your computer?

Yes

Have you tried any other versions of NVDA? If so, please report their behaviors.

Yes, the version before 2022.1, I forgot.

If NVDA add-ons are disabled, is your problem still occurring?

Yes

Does the issue still occur after you run the COM Registration Fixing Tool in NVDA's tools menu?

Yes

CyrilleB79 commented 2 years ago

Hello

In some way, I can reproduce it, at least partly.

Preliminary notes:

STR:

Actual result:

Here are the logs for both versions of NVDA:

Cc @michaelDCurran, @feerrenrut, @seanbudd for information on critical issue on 2022.1 release.

CyrilleB79 commented 2 years ago

@burakyuksek your initial description is lacking of details. So maybe what I have reported is not the same issue. If this is the case, sorry for hijacking your issue. Just let me know and I will open a new dedicated issue.

To clarify your issue, could you precise the following points:

2. Switch to a different language other than English, make sure automatic language dialect switching is on
  • Which synthesizer and language are you using?
  • Which option do you enable in speech settings? Only "Automatic language switching", only "Automatic dialect switching" or both?

NVDA does not switch languages And what does it do? Read nothing instead of what should be read? Or read with wrong voice/language the website's content?

ChrisDuffley commented 2 years ago

It's important to note that not all synthesizers will support the switching of languages/dialects. For example, a synth I use on a daily basis is RHVoice (they're compatible with 2022.1 by the way). Language and dialect switching, at least to my knowledge, does not work correctly at all, even with both those options checked. The synth you'll want to try out for automatic language/dialect detection is eSpeak because it can natively switch languages.

Also, this page is a bad example of reproducing automatic language/dialect detection because of the HTML code I just saw when viewing the page source; It has no markup to say what language the homepage was in, so the synth couldn't switch to it either way.

I'd suggest using a site that you know can change languages (for example, a site in a language outside of English, perhaps), or, alternatively, probably using Google Translate as that also switches language tags for the translated text.

ChrisDuffley commented 2 years ago

Following up...

After trying the Google Translate site, automatic language detection does appear to work correctly in NVDA (at least with ESpeak). If anyone else cannot reproduce this, I'd be happy to see this issue closed.

seanbudd commented 2 years ago

@CyrilleB79 - would you be able to open a new issue if this is separate from @burakyuksek's issue.

@burakyuksek - can you confirm what synthesizer you are using? Please reproduce this issue and provide a log file of the behaviour. Ensure your log level is set to debug in general preferences.

burakyuksek commented 2 years ago

I am using espeak, the primary language I use is Turkish. I toggle both automatic language and dialect switching on. When I enter the site I mentioned, in previous versions, NVDA would automatically switch to English, but now it does not. The log is attached. nvda.log

CyrilleB79 commented 2 years ago

I have opened a new specific issue for OneCore issue: #13732.

seanbudd commented 2 years ago

This was broken in espeak around this commit https://github.com/espeak-ng/espeak-ng/commit/e91d0a58612a01954687d34c7417cf0fbd3cadaa.

An issue should be written on the espeak repository.

burakyuksek commented 2 years ago

I have written an issue. https://github.com/espeak-ng/espeak-ng/issues/1200

seanbudd commented 2 years ago

@burakyuksek - could you please test this PR and confirm the behaviour is fixed: https://ci.appveyor.com/api/buildjobs/nc5srl7o445sk222/artifacts/output%2Fnvda_snapshot_pr13739-25486%2C9f1b92d9.exe

burakyuksek commented 2 years ago

@seanbudd the pull request you sent works correctly.