Vocola Information Pages by Rick Mohr (last modified May 11, 2002) |
|
Introduction(I wish to acknowledge and appreciate Joel Gould for his time and care in designing, building, and "productizing" NatLink, which enabled and inspired Vocola.) Examples Vocola's main benefits are conciseness and ease of use. For example, here
are four voice commands defined in Vocola:
The first is a simple keystroke command -- saying "Copy That" sends the keystroke Control-C, which copies the current selection to the clipboard. The great majority of commands needed for controlling a computer by voice are simple keystroke commands like this. The second command, invoked by saying "Copy to NatSpeak", copies a window of text (Control-A selects all text and Control-C copies it) and brings up the NaturallySpeaking editor (using the built-in function AppBringUp ). The third command allows controlling the cursor, by saying for example
"3 Left" to move left three characters, or "6 Down" to move down six
lines. Spoken words match variable terms on the left and are substituted
into the keystroke sequence on the right. For example, when saying "3
Left" the spoken "3" matches the numeric range "1..40" and the spoken
"Left" matches the alternative set "(Left | Right | Up | Down)
". The keystroke sequence "{Left 3}" is constructed and sent, and
the cursor moves left three characters. The fourth command allows sorting messages in the Netscape Mailer, by
saying "Sort by Date", "Sort by Sender", or "Sort by Subject". The matched
word "Date", "Sender", or "Subject", causes the appropriate keystroke "e",
"r", or "s" to be inserted into the keystroke sequence. Why a New Voice Command Language?Existing voice command languages are grafted onto existing programming languages. This means you can program any behavior you want, but unfortunately you're stuck with the syntactic overhead of the base language. In contrast, Vocola is designed specifically as a voice command language, not as a general-purpose programming language. This means you can write quickly and concisely the great majority of voice commands you need, and use another language in the few cases where you need more power. When I switched to Vocola I was able to convert all but two of my 200+ Dragon macros, and at this writing use something over 600 Vocola commands.The Dragon Macro Language (used in NatSpeak through version 5) and the newer VisualBasic-based language (introduced in version 6) both provide the necessary ingredients for writing voice commands. But, both are cumbersome to use. Simple commands consume multiple lines, and it is hard to write them quickly, keep them organized, and keep track of what you have defined. Joel Gould's NatLink system is a great improvement. Commands are more flexible, easier to organize, and are reloaded instantly. And the Python base language brings the power to program rich behaviors. But the trade-off is that a simple command still consumes four lines instead of one, is split in two locations, and shares the command file with the Python plumbing which makes it work. In Vocola most commands consume one line. Besides easy creation, this also makes it easy to see what commands you have defined. And because Vocola commands are translated into NatLink they benefit from the quick reloading and careful engineering of that system, and can coexist with existing NatLink commands. Main FeaturesHere's a summary of important Vocola features:
This Web SiteThis web site was created using a Python program developed and shared by Joel Gould, in another admirable display of community-mindedness. His description and sources are here. A single-page version of the site is available here. This page is (c) Copyright 2002 by Rick Mohr, and was last modified on May 11, 2002. |