nvda icon indicating copy to clipboard operation
nvda copied to clipboard

ControllerClient: implement pause/resume speech and speaking of single characters

Open insomnimus opened this issue 3 years ago • 6 comments

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!

insomnimus avatar Oct 17 '21 02:10 insomnimus

Is there any update on this?

insomnimus avatar Jan 20 '22 20:01 insomnimus

@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?

LeonarddeR avatar Oct 31 '23 21:10 LeonarddeR

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!

insomnimus avatar Nov 02 '23 17:11 insomnimus

Oh, actually IIRC disabling speech made my program silent as well. I'll see if I can test this out this weekend.

insomnimus avatar Nov 02 '23 18:11 insomnimus

Actually you can disable speech by pressing nvda+s command until you hear "speech mode: off". Is this meeting your purpose?

Adriani90 avatar Feb 02 '24 21:02 Adriani90

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.

insomnimus avatar Feb 13 '24 19:02 insomnimus