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

Major Espeak NG issue with language codes. #5783

Closed
derekriemer opened this issue Feb 29, 2016 · 9 comments
Closed

Major Espeak NG issue with language codes. #5783

derekriemer opened this issue Feb 29, 2016 · 9 comments

Comments

@derekriemer
Copy link
Collaborator

Espeak NG encodes languages like en-us as en-US. Since languages from easpeak in config are loaded as en-us and when a user upgrades currently to next, the config loads espeak-ng and trys to use the voice variant en-us. It should be using en-US, but since both synthesisers store settings in [[espeak]] under [voices] the config fails. This leads to the synthesiser failing to load. Before this is pushed out to a stable version, I propose the following:

  1. come up with a way to correct language codes. This might be as simple as migrating the users config when upgrade happens to change the language code to uppercase.
  2. In case of failure, revert to the best possible language. In this case revert to English with no dialect, and pop up a message box saying to reset the config in voice settings.
@jcsteh
Copy link
Contributor

jcsteh commented Mar 1, 2016

@michaelDCurran, I seem to recall you saying there was an issue like this that got fixed. Can you investigate/comment?

@michaelDCurran
Copy link
Member

I have solved the specific case problem in #5651. Try this in the next build of next and confirm this is fixed for you. It is worth noting though that as some of the voices in espeak-ng have not only had their case changed, but instead been totally renamed (E.g. en-sc to en-GB-scotland), these older ones will no longer match in eSpeak-ng, but instead will fall back to just their country. So if you had previously used scottish, switching to espeak-ng will force you bak to standard English. You can then choose scottish again. At least though this does not break the config entirely like with the case issue.

@Brian1Gaff
Copy link

Could the code be made to not care about case in this, um.. case?
Brian
----- Original Message -----
From: "Michael Curran" notifications@github.com
To: "nvaccess/nvda" nvda@noreply.github.com
Sent: Wednesday, March 09, 2016 3:24 PM
Subject: Re: [nvda] Major Espeak NG issue with language codes. (#5783)

I have solved the specific case problem in #5651. Try this in the next
build of next and confirm this is fixed for you. It is worth noting though
that as some of the voices in espeak-ng have not only had their case
changed, but instead been totally renamed (E.g. en-sc to en-GB-scotland),
these older ones will no longer match in eSpeak-ng, but instead will fall
back to just their country. So if you had previously used scottish,
switching to espeak-ng will force you bak to standard English. You can then
choose scottish again. At least though this does not break the config
entirely like with the case issue.


Reply to this email directly or view it on GitHub:
#5783 (comment)

@michaelDCurran
Copy link
Member

Correct, that is what I did.

@ruifontes
Copy link
Contributor

Hello!
At least in Portugal and Brasil eSpeake NG does not work.
The error received is:
INFO - synthDrivers.espeak.SynthDriver.init (15:32:56):
Using eSpeak version 1.48.15 16.Apr.15
WARNING - synthDriverHandler.SynthDriver.loadSettings (15:32:57):
Invalid voice: pt-pt
ERROR - synthDriverHandler.setSynth (15:32:57):
setSynth
Traceback (most recent call last):
File "synthDriverHandler.pyc", line 88, in setSynth
File "synthDriverHandler.pyc", line 499, in loadSettings
File "synthDriverHandler.pyc", line 29, in changeVoice
File "synthDrivers\espeak.pyc", line 219, in _set_voice
File "synthDriverHandler.pyc", line 366, in _get_language
KeyError: u'pt-pt'

Rui

-----Mensagem Original-----
De: Brian1Gaff
Data: quarta-feira, 9 de março de 2016 15:29
Para: nvaccess/nvda
Assunto: Re: [nvda] Major Espeak NG issue with language codes. (#5783)

Could the code be made to not care about case in this, um.. case?
Brian
----- Original Message -----
From: "Michael Curran" notifications@github.com
To: "nvaccess/nvda" nvda@noreply.github.com
Sent: Wednesday, March 09, 2016 3:24 PM
Subject: Re: [nvda] Major Espeak NG issue with language codes. (#5783)

I have solved the specific case problem in #5651. Try this in the next
build of next and confirm this is fixed for you. It is worth noting though
that as some of the voices in espeak-ng have not only had their case
changed, but instead been totally renamed (E.g. en-sc to en-GB-scotland),
these older ones will no longer match in eSpeak-ng, but instead will fall
back to just their country. So if you had previously used scottish,
switching to espeak-ng will force you bak to standard English. You can then
choose scottish again. At least though this does not break the config
entirely like with the case issue.


Reply to this email directly or view it on GitHub:
#5783 (comment)

Reply to this email directly or view it on GitHub.

@michaelDCurran
Copy link
Member

I'm hoping that this is also fixed by the latest Next build.
Please try when its available and report back.

thanks

@ruifontes
Copy link
Contributor

Yes, it is fixed.

Rui Fontes

-----Mensagem Original-----
De: Michael Curran
Data: quarta-feira, 9 de março de 2016 15:44
Para: nvaccess/nvda
Cc: ruifontes
Assunto: Re: [nvda] Major Espeak NG issue with language codes. (#5783)

I'm hoping that this is also fixed by the latest Next build.
Please try when its available and report back.

thanks

Reply to this email directly or view it on GitHub.

@derekriemer
Copy link
Collaborator Author

Does this fix work with config profile switching? I thought my profile broke last night, but i can't remember.

@jcsteh
Copy link
Contributor

jcsteh commented Mar 31, 2016

Fixed in 32025c5 as confirmed above.

This should also apply to config profiles.

@jcsteh jcsteh closed this as completed Mar 31, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants