Command Sequences
Comments
You can configure Vocola to allow speaking several commands in a row without
pausing. For example, assume your commands allow you to say:
| "3 Words Right" |
|
to move the cursor 3 words to the right, |
| "2 Right" |
|
to move the cursor 2 characters to the right, and |
| "Kill Char" |
|
to delete 1 character. |
If you wanted to speak these three commands in succession you would normally
have to pause between commands, saying
"3 Words Right" (pause) "2 Right" (pause) "Kill
Char".
With Vocola you don't need to pause, so you can say
"3 Words Right 2 Right Kill Char".
Once you get used to speaking command sequences, text editing by voice becomes
faster and less frustrating.
Warning: A bug introduced in Dragon NaturallySpeaking 7.0
and worsened in 8.0 and 9.0 can cause unacceptable performance if command sequences
are enabled. With 7.0 switching to or from an application becomes slow if a
large number of commands are defined for the application. With 8.0 users have
reported that command recognition is very slow even when only a few commands
are defined.
Because of these NaturallySpeaking bugs (which ScanSoft has essentially refused
to fix), Vocola command sequences are disabled by default and not recommended
with version 7.0 and later. Personally I find them so productive that I've stayed
with NaturallySpeaking 6.0.
But see below for a modification which
some people have used successfully with version 7.0 and later.
How to Enable and Disable Command Sequences
To enable command sequences (in Vocola 2.5 or later), open the file:
NatLink\Vocola\Exec\vocola.ini
and modify it to contain the line:
Use Command Sequences=1
Then say "Load All Commands".
To disable command sequences, proceed as above but with the line:
Use Command Sequences=0
Caveats
Note that only commands defined in the same file can be spoken in sequence.
For me this causes occasional mistakes but is not a major limitation. And using
include files can help. For example, if
you find you want to sequence some of your global commands with commands local
to Microsoft Word, you could put the global commands in a separate .vch file
and include that file in both word.vcl and _vocola.vcl.
You might think command sequences would lead to mistakes when an unexpected
combination of commands is recognized, but in practice I have not found this
to be the case. It's a good idea to avoid single-word commands, but that's a
good idea anyway.
A Modification Allowing Sequencing in 7.0
and Later
An enterprising Vocola user worked out a modification which allows some sequencing
of commands. Others have used this modification successfully, so here are his
instructions:
This is essentially a one line fix. Change the following line in vcl2py.pl;
it will allow Vocola command sequences to work with version 8.0 fine for up
to four commands per sequence.
Replace
emit(2, "<$rule_name> exported = <any$suffix>+;\n");
with
emit(2, "<$rule_name> exported = <any$suffix> [<any$suffix> [<any $suffix> [<any$suffix>]]];\n");
Next, to get Vocola to use the modified vcl2py.pl rather than the unmodified
vcl2py.exe, set
usePerl = 1
at the top of _vocola_main.py. This means that you need a working Perl in
your system.
Lastly, do not forget to set "use command sequences" to 1 in
vocola.ini. Lastly, There are a couple of complications/bugs in the Scott Weinstein
Vocola installer which need a couple of simple workarounds. So if you are using
his installer:
1. The vcledit.vcl file he packaged together with it does not like my fix.
It generates "natlink.BadGrammar: The grammar is too complex to be recognized"
errors and causes vcledit Vocola commands to not work. I simply removed the
packaged vcledit.vcl file to avoid this.
2. With usePerl=1, Weinstein's package does not correctly figure out where
the vocola.ini file is located (when usePerl=0 there is no problem). I had to
copy the vocola.ini file to where it thinks it is located:
...\My Documents\NatLink\Exec\vocola.ini
|