Select-and-Say(TM) and the Dragon NaturallySpeaking SDK:

(1) understanding how select-and-say works:

In order to provide select-and-say capabilities, NaturallySpeaking has to know what text is already in the window into which you are dictating. In the NaturallySpeaking editor itself, this is trivial. In Microsoft Word 97 and Corel WordPerfect, special "compatibility modules" use public or private hooks in the word processor's code to read the visible text. If the window uses standard Windows CEdit or CRichEdit controls, then NaturallySpeaking can also read the visible text. This last method is what allows NaturallySpeaking 3.52 or 4 to do select-and-say in notepad, WordPad, and various other specific applications (mostly Chat and mail programs). When you use the unofficial registry hack to try to enable select-and-say in other Windows applications, what you are doing is to tell NaturallySpeaking to try to use the same trick in those applications. Apart from the difficulty in figuring out what module name you need, the reason that this trick often fails is that the target programmed doesn't use those standard Windows controls (for example, Emacs, visual studio, and terminal emulators).

(2) implementing select-and-say using the SDK:

The NaturallySpeaking developers suite SDK includes two ActiveX dictation controls, a Dragon edit control and a Dragon custom dictation control, which allow Windows developers to readily enable dictation into their own programs. The first control basically notifies NaturallySpeaking of the name of a standard CEdit in your program which you want to activate for select-and-say dictation (so you don't have to hack the registry) with no extra effort.

The second allows you to enable select-and-say dictation in ANY window (NOT just one belonging to your program). The catch is that you have to take care of:

(a) modifying the contents of the window whenever the user dictates text,

(b) moving the cursor and changing the selection whenever the user moves about by voice using the "select...", "insert before...", or "insert after..." commands,

(c) letting NaturallySpeaking know whenever the user or the program modifies the contents of the window by any means other than dictation.

One application of the custom dictation control, which I working on as time allows, is a replacement for NaturalText which would allow some of the select-and-say and correct-and-say functionality. (NaturalText is very conservative in its assumptions about the contents of the current window, much more so than DragonDictate was, and, in many cases unnecessarily so). Unless this application had "inside knowledge" of the contents of the window, this functionality would be limited words within to the most recent n phrases dictated (though n need not be 1, just as in DragonDictate you can correct the last 32 words, not just the last one). Also, it would get messed up if you typed or manually moved the cursor around by mouse or keyboard. Thus, it would not be very useful for navigation. (By being very conservative, NaturalText avoids garbling text badly in these cases, at the expense of greater functionality of all times.)



DragonDictate, NaturallySpeaking, and Select-and-Say are trademarks of Dragon Systems, Inc.

Return to At A Word home page

This document last modified on 1/10/2002

Questions? contact web@ataword.com