Which speech recognition software should I choose?
The first step to successful programming by voice is to make a good choice about which speech recognition software to use. I began by looking at IBM ViaVoice and discovered someone in my workplace who was already using this to do some basic programming. I found that IBM ViaVoice gives good performance and good-quality dictation. However, I also found that the macro facilities were slightly limited. IBM ViaVoice has a menu based macro constructor. It can be used for some simple key stroke macros but it does not have a macro language and so sophisticated macros are not possible. In order to successfully program using voice recognition, it's important for your chosen software to be able to somehow interface with the programming editor. The only way to achieve this with IBM ViaVoice would have been to have used the SDK provided on the IBM web site. Given that I was having difficulty in programming at the time, this seemed too much of a physical challenge.
I then looked at Dragon NaturallySpeaking. This software package also provided excellent quality dictation and good performance. It came with four levels of macro capability, ranging from simply inserting a chunk of text/image data when you say a keyword, to a full Visual Basic macro language. I explored the macro language and was able to create some quite helpful macros for many of my applications.
While the official macro language for Dragon NaturallySpeaking was useful, what really sold the product to me was the availability of an open source unofficial python macro language which was much more powerful than the official version. This was written by one of the original Dragon developers, Joel Gould. He created a way of defining grammars within python and having Dragon call your application back when the grammar was matched. I found this extremely helpful and before too long I was able to create a set of macros for using UNIX,vi and Emacs.
As well as an advanced macro language, Dragon NaturallySpeaking gives you the ability to define several different users, giving you the option of creating a different user for each different way you like to dictate. So it's possible to have one user for writing Java code and another for writing e-mail. Splitting these different uses into different users allows good-quality recognition no matter what you are doing. Dragon NaturallySpeaking was definitely the application for me.
Comments
Posted By: TerrySaturday, June 11 2005, 07:07 pm
Your article was exactly what I was looking for. Being a programmer and suffering from RSI, I've been trying to research Speech Recognition software to relieve my symptoms.Looks like Dragon is for me. Could you tell me what version of the software you use? Standard/Preferred/Professional ?
Thanks a bunch!