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

NVDA fails to announce capital letters when pitch is set to 0 #10940

Open lukaszgo1 opened 4 years ago

lukaszgo1 commented 4 years ago

Steps to reproduce:

  1. Switch to eSpeak
  2. Enable "Say 'cap' before capitals"
  3. Ensure that "capital pitch change percentage" is set to value different than 0
  4. Set pitch to 0
  5. Try to read character by character "aA"

Actual behavior:

When encountering capital letter the error sound is played and the following is in the log:

error executing script: <bound method EditableText.script_caret_moveByCharacter of <NVDAObjects.Dynamic_IAccessibleEditWindowNVDAObject object at 0x074AE1D0>> with gesture 'left arrow'
Traceback (most recent call last):
  File "scriptHandler.pyc", line 205, in executeScript
  File "editableText.pyc", line 223, in script_caret_moveByCharacter
  File "editableText.pyc", line 164, in _caretMovementScriptHelper
  File "NVDAObjects\behaviors.pyc", line 175, in _caretScriptPostMovedHelper
  File "editableText.pyc", line 150, in _caretScriptPostMovedHelper
  File "speech\__init__.pyc", line 1080, in speakTextInfo
  File "speech\__init__.pyc", line 767, in speak
  File "speech\manager.pyc", line 164, in speak
  File "speech\manager.pyc", line 298, in _pushNextSpeech
  File "synthDrivers\espeak.pyc", line 110, in speak
  File "speech\commands.pyc", line 152, in multiplier
ZeroDivisionError: float division by zero

Expected behavior:

The capital letter should be read.

System configuration

NVDA installed/portable/running from source:

Portable

NVDA version:

Latest Alpha

Windows version:

Windows 7 x64

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

Notepad

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.

It works as expected in 2019.2.1 and fails in 2019.3

If addons are disabled, is your problem still occuring?

Yes

Did you try to run the COM registry fixing tool in NVDA menu / tools?

Not relevant

cc @feerrenrut @michaelDCurran

LeonarddeR commented 4 years ago

Did this work on Python 2 versions of NVDA? I guess this applies to almost every synthesizer.

LeonarddeR commented 4 years ago

Marking this p3, as it is unlikely that one would feel very comfortable with having synthesizer pitch at 0. Having said that, it should be pretty easy to fix.

Brian1Gaff commented 4 years ago

Maybe limit all to 1 grin. Brian

Adriani90 commented 4 years ago

I think this is related to #10896 and indeed might hav been appeared after migrating to Python 3.

Qchristensen commented 2 years ago

I can replicate this with Windows OneCore as well as eSpeak-NG, so I don't think it is an eSpeak-NG issue.

I just tried in NVDA 2019.2.1 (pre Python 3) and cannot replicate this issue then, so it may be something which came in with Python 3.

Investigated as someone reported via Twitter, however I agree this is not likely to be a commonly encountered situation.

Twitter thread: https://twitter.com/mhussaincov/status/1539558402434777088

feerrenrut commented 2 years ago

A different but similar issue:

9811