-
-
Notifications
You must be signed in to change notification settings - Fork 665
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 add automatically speak character description function when cursor move #13509
Comments
I like this idea. This would also help persons with hearing dificulties.
|
Agreed. This function has been in iOS's VoiceOver as standard practice for a
decade, and it is not something I've heard any complaints about.
It can be disabled there, but is enabled by default.
I too would like to see this one in core @feerrenrut. I suspect it would not
impose much of a maintenance burden, at least from a past review I did of the
add-on code.
|
Yes it would be very handy for some voices where it tends to sound very
similar on different characters, I'd imagine.
… I like this idea. This would also help persons with hearing difficulties.
|
Yes, this feature is also useful in Chinese environment. Hope to see it in NVDA core. |
Yes, we are happy for someone to start work on this. |
Hi. I'm the developer of the add-on, I could implement it on the Core of NVDA. Although I have some doubts about the implementation. E.G. Python threads or wx.CallLater for the timers? Initially I used python threads, but that way had some incompatibilities with other add-ons. In the last beta version of this add-on, I've used wx.CallLater, and this workaround fixed those issues. But I don't know if this is correct, or can introduce another issues, although no one has reported issues so far. |
Hi @LittleStar-VIP, sorry for my delaied response hehe. I usually receive a lot of e-mails and sometimes some messages go to the spam, etc. The enhanced phonetic reading add-on, is compatible with the last stable version of NVDA. You can test the latest beta version from this link: This version fix some issues, for example incompatibilities with bluetooth audio add-on. But could introduce new issues, because I used wx.CallLater and not python threads as in older versions. I going to work in an implementation of this feature on the NVDA core, but in the meantime, you can use this version and you and others can send me feedback on the GitHub repo |
Hi everybody. What do you think would be a good category to place the character descriptions settings? |
Hi @davidacm Glad you'd like to implement this feature in NVDA core, I tend to place this option in NVDA's voice settings panel, This feature is somewhat similar to pitch change. Thanks |
What do you think would be a good category to place the character descriptions settings?
I think Speech comes the closest to being the correct panel.
Less desirable options are General, Keyboard, and Object Presentation, all of
which seem inappropriate in one way or another, though better than Advanced. Still, I think Speech settings should work.
|
@davidacm Thanks very much, this addon really help me a lot. |
Yes, probably speech setting is the best location, unless new verbosity category is added. |
@davidacm I think wx.CallLater would work, but you might find that
core.callLater works more solidly, with less chance of possible problems.
Although I am unclear what problems may arise with this particular usage.
Perhaps @feerrenrut or @seanbudd know which would be preferable, or if some
other direction would be better?
But absent comment from one of the core devs, I would suggest core.callLater.
|
Hard to give advice on whether I'll try to give some background information instead.
|
Hard to give advice on whether core.callLater will fix the problems because I don't know what they were.
@feerrenrut I'll ask the question differently then, since I don't know what the
problems with threads were either.
After the reviewed character is spoken, in order to speak the phonetic after
the (user-configured) delay, he needs to be able to perform an interruptable
speech action, after a configured number of milliseconds.
How would you do that?
|
Probably
Why the (user-configured` delay? Can you give a solid example of the expected speech:
Why not report the character description immediately after the character?
|
As a user, I would like to speak on this issue.
|
I implemented this and I did it with speech commands, specifically the BreakCommand. There are two clear advantages to this:
|
BreakCommand sounds as a good aproach, but... That ensures that it will work with any synth driver? Even if BreakCommand is not supported in some driver? I know, native drivers support it, but there are many external synth drivers used by users. My current add-on can cancel the timer if another event occurs, even if the user press the control key. |
@LittleStar-VIP I understand. I think there are a few ways to achieve this with speech commands / sequences. The approach you use will depend on the scale of the delay required. Most speech separates concepts (E.G. A role description from the accessible name) with a double space. The synthesizer announces this with a slightly longer pause than between words. As @derekriemer mentions the
@davidacm this may be a concern, it would be possible to implement this on the NVDA side generically. |
I started to coding when I said I'd do it, based on my add-on EnhancedPhoneticReading but I hadn't had time to update the guide. I sent the pr now. You can see it in This link Use breakCommands could be a good idea, but it will need a distinct way from NVDA to handle the breakCommands and I don't think that it will be changed in short term. |
@LittleStar-VIP |
@cary-rowen |
Closes #13509 Summary of the issue: The main use case is navigating character by character and a user encounters a character that they do not understand. The delayed phonetic character description is something like “alpha”/“beta”/“romeo”/“igloo”. What makes understanding a character difficult? This may be because a synthesizer pronounces a character unusually or indistinguishable from another character. A user may also be hearing impaired or have other trouble processing the character. In this case, the user waits for the delayed phonetic description to occur. Other ways to report the character description: - script_review_currentCharacter - script_review_currentWord - script_review_currentLine - script_reportCurrentLine What makes determining the delay difficult? The main determinate of the delay is the speed that a user interacts with the device, e.g. speed of navigating by character. NVDA currently does not have a way to configure interaction rate, which is a general problem described in #13915. Meeting auditory processing needs is generally achieved by adjusting the synthesizer rate. Unfortunately, synthesizer rate varies by synthesizer, and so calculating a delay based on rate is challenging. While a general solution for the interaction rate is blocked by #13915, using a sensible default will handle most users requirements. This delay can be configured easily by add-ons. Description of user facing changes Adds an option, which when enabled, causes character descriptions to be announced after a fixed delay of 1 second. This delay value has been tested as a default in the “Enhanced phonetic reading” Add-on. Description of development This code modifies getTextInfoSpeech to emit a BreakCommand followed by several commands to speak a character description. This only happens if the unit of resolution is a single character, and the reason for querying for textInfo speech is caret. This causes NVDA to emit character descriptions in the following conditions: when moving by character in an edit field. When moving by character in review cursors. When moving by character in browse mode. When reporting single characters at review cursor. Any other time that caret movement is being reported for single characters. This solution also reads the character description with capitalization settings. Using the BreakCommand means that the overall approach is simpler as opposed to using a timer, and handled by the synthesizer rather than NVDA.
I think the user guide should explain how long the delay is with the checkbox. |
and the what's new. |
@derekriemer The User Guide currently contains a reference to the delay time:
|
Ah, indeed it does. The what's new doesn't but that's fine.
…On Tue, Jul 19, 2022 at 5:44 PM Sean Budd ***@***.***> wrote:
@derekriemer <https://github.com/derekriemer> The User Guide currently
contains a reference to the delay time:
For example, while reviewing a line by characters, when the letter "b" is
read NVDA will say "Bravo" after a 1 second delay.
—
Reply to this email directly, view it on GitHub
<#13509 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABI2FPL4J7ABTLK7WN2IYN3VU44WNANCNFSM5RE44TRQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
Derek Riemer:
Improving the world, one byte at a time. ⠊⠍⠏⠗⠕⠧⠬ ⠮ ⠸⠺⠂ ⠐⠕ ⠃⠽⠞⠑ ⠁⠞ ⠁ ⠐⠞⠲
Software engineer, Drive web
|
Hi, I'm so glad that the delayed character descriptions feature is included in NVDA. |
Hello again, also, one more feature can be added. |
Thanks, I sign this user perspective.
|
@MertKaraguzelcommented and @bdorer, if you want your comments to be taken into account, you'd better open a new issue or comment in an existing matching open issue (if any). |
Is your feature request related to a problem? Please describe.
As I am a non-English user, I have to rely heavily on the character description function of NVDA, i.e. pressing numpad 2 twice to report the character description of character at current cursor focus.
Please imagine that, typing a piece of article and you have to press numpad 2 twice in almost every word is a nightmare.
In fact, I have been using the addon enhance Phonetic reading for years, but I have contacted the addon author several times, hope that the author can make the addon compatible with latest nvda version, but I have not received any feedback from the author.
As this function is really key to my daily usage, I hope nvda can one day add this function to the core application.
Describe the solution you'd like
e.g. for English character, pressing arrow key may cause nvda to report a alpha automatically
e.g. for non English character that has more than one character description, like Chinese, nvda can add a user defined variable to set the maximum number of character description to be automatically spoken
Describe alternatives you've considered
Additional context
The text was updated successfully, but these errors were encountered: