nvda
nvda copied to clipboard
ControllerClient: implement pause/resume speech and speaking of single characters
Is your feature request related to a problem? Please describe.
Yes. Using the controller client, I'm unable to speak a single character properly e.g pitch change for capitals are not properly spoken. Also pause/resume speech functionality is missing.
Describe the solution you'd like
3 new functions for the controller client:
- One for sspeaking a character (Taking care to apply the pitch change/ say cap before for capitals).
- One for pausing the speech (not stop,).
- And one for resuming speech.
Describe alternatives you've considered
None.
Additional context
I'm currently implementing a speech server for emacspeak that uses NVDA as the backend.
Everything is implemented fine, except there is one annoyance:
The only exported function in nvdaController.h
for speaking something accepts strings
which does not take into account that capitalized letters might be spoken differently, i.e when using the pitch change setting or saying "cap" before reading the character.
Another missing feature is pause/resume speech functionality. Now I know this is a global NVDA control so usually this is not a problem but implementing a speech server for emacs, I wrote an app module that disables nvda controls on that window.
If this can be fixed or if there's anything I can do, please let me know.
P.S. I'm going to be releasing what I'm working on (full open source), I think it's about time screen reader users were able to use a terminal based editor without any problem. So I really appreciate all the help you people provide, thanks!
Is there any update on this?
@insomnimus: I'm currently revisiting the controller client and came across your request. Is it still applicable? I can see why you want a function that respects capital pitch changes, but I'm not sure about the pause/resume part. What is holding you back from respecting that NVDA uses the shift key for this?
It's still applicable, yes! Though it has been a while, I do not recall why I need pause/resume functionality. I'll have to take a look back at my progress (tho I believe I lost my project files) when I have a chance to do so, probably around January next year as I'm pretty busy these days.
Though, one good guess is I believe I had to disable NVDA on emacs because emacs is almost accessible but not really so it still speaks some things.
Thinking back, I think only disabling NVDA's speech might have made pause/resume unnecessary.
Still, being able to send NVDA keyboard gestures might be a valuable addition to the controller client!
Oh, actually IIRC disabling speech made my program silent as well. I'll see if I can test this out this weekend.
Actually you can disable speech by pressing nvda+s command until you hear "speech mode: off". Is this meeting your purpose?
I've lost the code i wrote to bridge Emacs with NVDA but I do remember that turning speech off with NVDA+s also silenced my program, as it just passes stuff coming from Emacs (using the Emacspeak plugin) to NVDA.