XVoice Version 0.8, Thu Mar 9 14:17:37 PST 2000 by Brian Craft, while Tom is tied up on other things. http://www.thecraftstudio.com/bcboy/xvoice bcboy@thecraftstudio.com Version 0.6, Nov 25, 1999. http://www.compapp.dcu.ie/~tdoris/Xvoice Tom Doris tdoris@compapp.dcu.ie Versions previous to 0.5 by: http://www.zachary.com/creemer/xvoice.html David Z. Creemer david@zachary.com XVoice is a simple hack. It will accept contuinuous speech input from IBM's ViaVoice SDK for Linux, and then retarget the resulting text at many X applications. To accomplish this retargeting, XVoice synthesizes X key press events. Many application will happily accept synthesized events, but some will not, deeming them -- correctly -- to be a security risk. You should test XVoice with an RXVT terminal window as a target to make sure that it's working. Once it works correctly with an rxvt, try it with other applications. XVoice is known to work with RXVT, WordPerfect, XFMail, XEmacs, and others. GTK-based apps seem to work too. Qt-based apps (at least the two I've tried) do not. Most importantly, XTerm does _not_ seem to work. I'll have to look into this more to see if there is some sort of option (preferably run-time) for it. I'd suggest trying things out using rxvt or XEmacs. Before running XVoice, you need to set up your environment to connect to the ViaVoice service. Do this by executing the following in your shell: shell% . vvsetenv If you don't do this, XVoice will attempt to bootstrap the environment by invoking vvsetenv and restarting. It works for me. Your milage may vary. Note that if you want to run XVoice under gdb you *must* run vvsetenv, because gdb won't walk through XVoice restarting. In order to get emacs to work, you _must_ evaluate the following elisp: (setq x-allow-sendevents t) Building XVoice requires X, ViaVoice SDK, GTK+, and libgnomeui to build. Some of the code is based on the IBM ViaVoice SDK sample "gtkhello". If you can build that sample program, you can build XVoice. See the Makefile for local settings. Running "xvoice -h" will show you help on running the application. "xvoice -m" starts XVoice with the microphone ON. XVoice xvoice now runs in "autofocus" mode, which means it actively tracks the focus window and loads whatever grammars it finds for that window. It also keeps a history of any context grammars that were loaded, so if the focus changes the context grammars can be automatically reloaded when the window is re-focused. "command mode" and "dictate mode" may be used to control which vocabularies are loaded. Currently this implementation ONLY works with gnome compliant Window Managers. Also, only managed client windows may be focused. This is probably a BUG (though I haven't found an app yet where this is a problem), and will be fixed sometime in the future. Once started, XVoice presents a list of currently active vocabularies, a list of recognised words (initially blank), and the current target application (initially blank). Focus a target with the mouse, or by saying "next window" until the desired application is focused, and say "command mode" or "dictate mode" to begin sending voice commands. Say "stop command" or "stop dictate" to stop each mode. "Microphone off" will turn off the microphone. While dictating into an application, speaking "stop dictation" will return to XVoice command mode. Speaking "correction" will erase the last dictated word or punctuation. You may erase words back to the beginning of the dictation session. Speaking "new paragraph" will enter a single CR for you (i.e. "enter"). Speaking "command mode" will put Xvoice into application command mode. Xvoice will attempt to find the grammar file for the focused window, and use this as the current grammar. The xvoice.xml file contains mappings from spoken text to synthesisted X events. Thus it is possible to speak "open file" and have the key sequence "C-x C-f" sent to emacs. It is possible for users to modify the xvoice.xml file to incorporate key sequences for other applications. This procedure is described in the COMMANDS file. COPYRIGHT Long Version: XVoice is Copyright (c) 1999, 2000 by David Z. Creemer, Tom Doris, and Brian Craft. All rights not granted in the LICENSE file are reserved. XVoice is distributed subject to the terms explained in the LICENSE file. Portions of this program are based on code from other projects, which use the GPL and other licenses. All attributions are in the AUTHORS file. Short Version: GPL.