nvaccess / nvda

NVDA, the free and open source Screen Reader for Microsoft Windows
Other
2.07k stars 624 forks source link

NVDA and Plover pplication. #6931

Open ossossosso opened 7 years ago

ossossosso commented 7 years ago

Hi! My name is Daniele. I'm from Italy. I'm a stenotyper: using a special keyboard I transcribe bery fast recorded audio into text. I'm new in this job so I need some help to fix the workflow. I don't know any other blind person who do it, so I have nobody to ask to. Thank you in advance for reading, and sorry for my basic English.

The application that I use for that is called "Plover": http://www.openstenoproject.org/

It is free and opensource. It simply translates keys combinations that I press on my keyboard into words or syllables, it isn't a word processor, so I can write in any application (MS Word, Wordpad, Google Documents, Notepad, etc.). Everywhere there is a Text Field.

NVDA reads correctly the word that I type. The problem is when I make a mistake and I have to delete the word.

Using a standard qwerty keyboard if I press "Backspace" NVDA reads the characters I delete. one by one. And if I press "Ctrl + Backspace" NVDA reads the word I delete, one by one.

Using my stenokeyboard and Plover I can simulate that combinations of keys, but NVDA doesn't read characters or words that I delete.

To fix it there's an option under NVDA preferences-->keyboard settings-->handle keys from other applications. If it is checked the problem is solved. But unfortunatley another problem appears.

Let me explain in short how stenomachine and plover work together for better understand.

Plover (like any other steno applications) has a dictionary text file, with this kind of entry: "Vctpie": "inevitabilmente", On the left side of the ":" there is the combination of keys I press at once. On the right side the output that appears if I press that combination. Basically stenotype is a long list of shortcuts that I can press to type longer words. Once you memorize all of them, you can write extremely fast.

On the right side I insert what I want, also a sentence. So if I press that specific combinations of keys, the whole sentence appears.

Here's is the problem. With entries like this one: "I/Pshr": "Pubblico Ministero -"

If "handle keys from other applications" is ON, the output is modified by NVDA, randomly: Pubblico Minister - or Pubblico MINISTERO _ or Pubblico Minisero -

Another example. The dictionary contains this entry: "I/PRcte": "Avv. Parte Civile, Carosso -"

The uncorrect output could be: Avv. Parte Civile, Caross - or Avv. Parte Civile, Carosso or AVV. PARTE CIVILE; CAROSSO _

I notice the problem only with longer output. Sometimes it appears, sometimes not. The last example:

"Pstp/CHRh": "Pubblico Ministero", sometimes can output pPubblico Minister

I hope I have been clear. I did my best. I really hope can be found a solution.

I can give more informations if need.

Thank you very much for reading until here.

Ps. Plover works also with a standard qwerty keyboard. Once Plover is run and Enabled, the qwerty keyboard changes layout into a stenomachine.

Adriani90 commented 5 years ago

@ossossosso how is it working with NVDA 2019.1 and the last version of plover? Do you still have this issue?

ossossosso commented 5 years ago

Thank you for your question. A usable workflow between a SCreen Reader and Plover needs a specific plugin to make them dialogue correctly. Unfortunatly an update, unless dedicated to it, cannot fix all the issues.

Thanks again.

josephsl commented 1 month ago

Hello,

Do you have any updates on this situation in 2024?

Thanks.

ossossosso commented 1 month ago

Hi Joseph, To ensure that NVDA's vocal feedback works correctly during transcription with Plover, a plugin is required that enables communication between Plover and NVDA. Without this plugin, there will be inaccuracies.

The developers at Freedom Scientific have created a plugin for Plover that works correctly. The plugin is available among the Plover plugins.

The plugin has open-source code, and I imagine it can be modified to be used with other screen readers as well. Best regards, Daniel

Adriani90 commented 1 month ago

Thanks for the update. Is ther a link to the plugin and its source code?Von meinem iPhone gesendetAm 20.07.2024 um 14:47 schrieb ossossosso @.***>: Hi Joseph, To ensure that NVDA's vocal feedback works correctly during transcription with Plover, a plugin is required that enables communication between Plover and NVDA. Without this plugin, there will be inaccuracies. The developers at Freedom Scientific have created a plugin for Plover that works correctly. The plugin is available among the Plover plugins. The plugin has open-source code, and I imagine it can be modified to be used with other screen readers as well. Best regards, Daniel

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

josephsl commented 1 month ago

Hi,

Link to that plugin (at least the source code) please. Even though Vispero has created a JAWS script or a plugin, it may not be adoptable across screen readers due to internal differences. If it turns out an add-on from NVDA is needed, then I think it would be best to take care of it from the add-ons community first.

Thanks.

ossossosso commented 1 month ago

Running Plover, you can download from the plugin manager. Otherwise you can download the code from one of the two links.

https://pypi.org/project/plover-jaws/

https://www.wheelodex.org/projects/plover-jaws/

P.S. I am a blind stenographer, and I began this career in 2017 after losing my sight. Every two years, international competitions are organized by a federation called Intersteno, which brings together transcribers from around the world. My first participation in Intersteno was in 2017, and this July, I competed for the fourth time. The competitions concluded just a few days ago, with around 400 participants from 30 countries across all five continents. In the competition where I used the shorthand keyboard, Plover, and speech synthesis, I secured second place. I was the only blind participant. Beyond sharing my personal achievement, I want to highlight the career opportunities available for blind individuals. The same tools I used in the competition are those I rely on in my daily work as a court stenographer. Achieving these results would not have been possible without software development that made my workflow accessible, including the Plover plugin. Below is the link to the results of the Audio Transcription competition, where I achieved second place: https://intersteno2024.org/resultlistAT.php You can find me listed in the second position in the first table on the page; my name is Daniele Casarola. This year, I also achieved first place in another competition called Real Time: https://intersteno2024.org/resultlistRT.php In this competition, I used Dragon Naturally Speaking for voice recognition to transcribe the text. Once again, without accessibility tools, participating would not have been possible. I hope my experience serves as an inspiration for other blind individuals seeking a fully accessible profession that is still relatively unknown. I also hope it encourages developers to continue improving the accessibility of this profession. Thank you

josephsl commented 1 month ago

Hi,

Thank you for the link to download the JAWS plugin. According to PyPI (Python Package Index), it is listed as GPL version 2, so it passes license checks. However, when I attempt to install it on my local Python installation (via pip), it says the package satisfying the Python version cannot be found because the plugin is written for Python 3.6 which is end of life. Besides, the plugin is marked "alpha", which is a bit concerning - it could be buggy and may not owrk well with newer Python versions and/or Plover.

Code analysis: the plugin is essentially a bridge between Plover and JAWS screen reader. It employs Plover Python modules (apparently based on the import statement), uses pywin32 223 and pythoncom to invoke COM (Component Object Model) facilities,, and communicates with JAWS through its COM API. The key feature is detecting and speaking inserted/deleted text, and part of that involves checking to see if JAWS should announce text (a series of "if" statements are used to determine things such as digits, whitespace, and what not).

I think one way to implement NVDA support for Plover is NVDA controller client where the ap actually tells the screen reader what to say. For example, Plover could send inserted text to NVDA when text is inserted or inform NVDA about deleted text. An NVDA add-on might work but it must be distributed outside of Plover's plugin infrastructure or outside PyPI (JAWS scripts require local Python installation).

About software versions: in short, you are using alpha level code, a software version that could be prone to bugs and may include unfinished features. In open-source communities, it is okay to distribute and use alpha software as long as you know what you're doing. In a more professional environment, use of alpha versions is discouraged, especially if the environment demands accuracy and timeliness like stenography (exceptions are possible). For instance, NVDA's own alpha-level code (called master branch snapshots) are meant for developers and testers and is not used often in professional environments.

Thanks.

ossossosso commented 1 month ago

Ehm, I'm not a developer, so I can't follow all the technical details, but I generally understood the meaning of your message. I spoke with the developer of the plugin when it was created. Once we saw that everything worked, we stopped. I'm not sure why he referred to it as alpha. Regarding the functionality of the plugin, I also uploaded a video on YouTube:

https://www.youtube.com/watch?v=oNlLTbTCRj8&t=42s

There are different tasks to satisfy to make everything fully accessible. If you believe it is a project to invest a bit of time, I will be really happy to prepare a document detailed about it.

From the code I see you have already get some points. The video on youtube also gives you some extra informations.

Here another video of a demo typing with a steno keyboard. I type pretty slow to better let hear the audio of the dication and of the screen reader. In a normal job is faster:

https://www.youtube.com/watch?v=emiCbuMhFxs

Thanks for your interest.