How can I call a python function from an advanced scripting voice command in Dragon NaturallySpeaking?

355 Views Asked by At

How can I call a python function from an advanced scripting voice command in Dragon NaturallySpeaking?

I don't want to use a third-party application such as dragonfly or NatLink (paper).

2

There are 2 best solutions below

0
On

So, one way is to compile it. You can put a bunch of functions that do different things all into the same program and pass along appropriate arguments to select the function you want, and pass the parameters along. Returning the result can be tricky, though, but I usually use the Clipboard (so copy the py output to clip and read from clip in Dragon). Multi-word params need to have spaces escaped (%20) and process it inside your py.

Something like this:

 ShellExecute "path\program.exe myFunc myPar1, my%20Par%202", 6  ' 6 runs minimized
 Wait 1
 myVar = Clipboard

Hth,

0
On

Warning: This is not an answer. I am not a programmer. I don't know any Python and have no way of testing it.

This is just a suggestion on how to solve this problem. I don't know where else to put this. I'd put it in a comment, but it allows no screenshots. Please edit and suggest as you wish.

  1. There is answer on SO that deals with calling Python from Excel, which is a similar concept: https://stackoverflow.com/a/3569988/2101890. I am trying to use that here but don't know how.

  2. When using commands in another programming language, you can sometimes add them by adding a reference in the MyCommands Editor. You can reference DLLs and other "stuff". Some references to libraries appear automatically. I've installed Python and hoped to find Python in the References, but no such luck:

enter image description here

There is no Python entry here that I can find. You may have better luck. If you do find something, check the box and see if you can add python commands without causing an error when saving the command.

enter image description here

Maybe you can browse to %localappdata%\Programs\Python\Python36\ and add some of the DLLs from there and call Python commands from there. Or try getting it to work in the way described under 1.