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

error when switching to another synthesizer when the change was previously made in a profile #14760

Closed
fernando-jose-silva opened this issue Mar 29, 2023 · 11 comments · Fixed by #15074
Labels
blocked/needs-technical-investigation Issue is blocked. A technical investigation is required to progress the issue. bug/regression component/speech-synth-drivers p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Milestone

Comments

@fernando-jose-silva
Copy link

Steps to reproduce:

First of all, apologies if I'm too imprecise, as I don't know what causes the problem, I'll try to show my whole scenario.
First create a profile for word.
In this profile I have configured nvda to read column and cell information in tables.
Now in the normal settings profile besides several settings I have configured nvda to use the rh voice synthesizer.
It is worth saying that I think that to reproduce this problem it is possible to use a profile of settings for any program, the most important thing is that in the normal profile the voice is defined for the rhvoice synthesizer and in the profile for word there is not even a defined voice, so he is using the rh voice too, derived from the normal profile.
Perhaps this is reproduced with another synthesizer besides the rh voice.
in summary:
normal perfio using rhvoice voice and not reading table info.
perfio word using rh voice inherited from normal perfio and reading table positioning information.
Now open word
press nvda + ctrl + s choose with the arrow keys the one core synthesizer and press enter.
so far everything ok.
I don't know if it matters how these screens are opened, so I'm describing how I opened and used them.
now press windows+d to go to desktop.
Now nvda should be using the rh voice synthesizer defined in the normal profile again.
reopen the synthesizer screen with nvda + ctrl + s.
from there with the arrow keys to the one core synthesizer and press enter.

Actual behavior:

nvda reports that there is an error in the one core synthesizer and does not change the normal profile synthesizer.

Expected behavior:

nvda should switch to the one core synthesizer for the normal profile as it is already in use in the word profile.

I remembered, the profile for word is configured to be activated automatically when entering word.

System configuration

NVDA installed/portable/running from source:

instaled e portable

NVDA version:

nvda.exe, NVDA alpha-27948,bc3e97dd

Windows version:

10 19045.2728

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

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.

no

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

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

yes
log:
voz.txt

@seanbudd seanbudd added component/speech-synth-drivers p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation. blocked/needs-technical-investigation Issue is blocked. A technical investigation is required to progress the issue. labels Mar 29, 2023
@CyrilleB79
Copy link
Collaborator

@fernando-jose-silva could you reproduce the issue with add-ons disabled and provide a log? Thanks.

@fernando-jose-silva
Copy link
Author

follows log with disabled addons.
it is possible to reproduce the error by switching between speak and one core voices.
normal configuration using speak.
word configuration using one core.
When going to the desktop, nvda switches to the normal profile using the speak voice, so far so good.
When trying to change the voice from the normal profile to the one core voices the error is displayed, it is not possible to switch to the synthesizer.
expecte
voz1.txt
d, able to switch to the one core synthesizer.
log hoe

@CyrilleB79
Copy link
Collaborator

CyrilleB79 commented Mar 30, 2023

Note: Message edited: I was mentioning Rui instead of Fernando, sorry.

Thanks @fernando-jose-silva.
In the meantime, I have just faced the same issue. Very strange since I have run 2023rc1/2 for some weeks and have just got this issue now.

@fernando-jose-silva
Copy link
Author

thank you very much for your attention.

@CyrilleB79
Copy link
Collaborator

Cc @LeonarddeR: You have recently modified synthHandler.py. Would there be any link?

@LeonarddeR
Copy link
Collaborator

The relevant error:

TypeError: unsupported operand type(s) for /: 'str' and 'float'

It looks like the profile is corrupt, i.e. the volume is parsed as string, not as float. Is this an entirely new profile?

@fernando-jose-silva
Copy link
Author

I deleted the nvda.ini files, and reconfigured nvda.
I deleted the word profile and created a new one.
after all this the error can be reproduced.
Attached is a new log with these changes, add-ons enabled since disabling them did not change according to messages like this.
voz3.txt

@LeonarddeR
Copy link
Collaborator

In that case @fernando-jose-silva, it would really help to know when this issue started occurring. Does it occur in 2023.1 and 2022.4?

@CyrilleB79
Copy link
Collaborator

In that case @fernando-jose-silva, it would really help to know when this issue started occurring. Does it occur in 2023.1 and 2022.4?

I have performed tests. The issue does not occur on 2022.4. It occurs on 2023.1beta1.

@CyrilleB79
Copy link
Collaborator

I have tracked the regression to be introduced in commit 816496f (PR #14133). Previous commit 084db95 is running well.

@seanbudd could you have a look to this regression since you are the author of #14133? Thanks.

Note that I have used a slightly different way to reproduce the issue but it seems to me that it is the same root issue.

STR:

  • Default profile with synth IBMTTS
  • Notepad profile with one change, e.g. indent reporting and no other TTS change, thus inheriting IBMTTS
  • Go to Notepad
  • Restart with add-ons disabled

Result:
OneCore is sometimes heard when NVDA is loading (since IBMTTS cannot be loaded due to restart without add-ons). Then as soon as NVDA reports Notepad window, eSpeak is speaking, due to the same error with OneCore. Note also that if I alt+tab to another application where default profile applies, the TTS remains set to eSpeak.

@CyrilleB79
Copy link
Collaborator

Also got just now another error related to value coming from the config

ERROR - unhandled exception (21:58:23.911) - MainThread (9448):
Traceback (most recent call last):
  File "gui\settingsDialogs.pyc", line 4149, in onCategoryChange
  File "gui\settingsDialogs.pyc", line 667, in onCategoryChange
  File "gui\settingsDialogs.pyc", line 649, in _doCategoryChange
  File "gui\settingsDialogs.pyc", line 577, in _getCategoryPanel
  File "gui\settingsDialogs.pyc", line 335, in __init__
  File "gui\settingsDialogs.pyc", line 345, in _buildGui
  File "gui\settingsDialogs.pyc", line 3221, in makeSettings
  File "gui\settingsDialogs.pyc", line 2726, in __init__
TypeError: Choice.SetSelection(): argument 1 has unexpected type 'str'

The code line is the following:
self.UIAInMSWordCombo.SetSelection(config.conf["UIA"]["allowInMSWord"])

NVDA 2023.1; Windows 10 2004 (x64) build 19041.388.

@seanbudd seanbudd added this to the 2023.2 milestone Apr 3, 2023
@seanbudd seanbudd assigned seanbudd and unassigned seanbudd Apr 3, 2023
seanbudd added a commit that referenced this issue Jul 3, 2023
Fixes #14760
Fixup of #14133

Summary of the issue:
When saving a config spec, validation would be skipped if the string value of the data is unchanged.

This caused various issues including config values not being correctly converted to numbers from strings when validating.
This caused config profiles to fail to load or save correctly.

Description of user facing changes
Fix up of various bugs related to user config

Description of development approach
Perform special handling that was introduced in #14133 for feature flags only
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
blocked/needs-technical-investigation Issue is blocked. A technical investigation is required to progress the issue. bug/regression component/speech-synth-drivers p4 https://github.com/nvaccess/nvda/blob/master/projectDocs/issues/triage.md#priority triaged Has been triaged, issue is waiting for implementation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants