oice command interfaces may be the next big thing. In this article, I'll walk you through the process of using the Microsoft Speech Server SDK to create a voice-command interface that you can use to control an affordable and easy-to-assemble robot named ARobot. Even if you do not want to purchase the ARobot, you can follow through the article to understand how the command interface works.
Assembling a Robot
I'll start with the robotas that's probably bothering you right now. Don't worry, this particular robot is quite easy to set up. The robot is named ARobot (see Figure 1
) and is produced by Arrick Robotics. It is available for purchase
for $339.00 US. With the purchase, you get an ARobot, a Basic Stamp 2 controller, a Basic Stamp Programming book, and a book written by ARobot's creator, "Robot Building for Dummies
You should allow about 3 hours for assembling your new ARobot using basic hand tools.
After assembling your ARobot, you can immediately program it using a "Basic Stamp 2," which is a small, self-contained computer controller manufactured by Parallax, Inc.. The controller can execute a BASIC program created with the BASIC Stamp Editor, version 2.2.5. The editor was created by Parallax and is available as a free download from their web site.
|Figure 1. The Arobot: The "ARobot" (pronounced "A Robot") is an inexpensive and easy-to-assemble computer-controlled mobile robot.|
|What You Need
|To build the sample project discussed in this article, you need: Visual Studio .NET 2003, Microsoft Speech Application SDK, 1.1, and an ARobot Mobile Robot. Note that although this article is specific to the ARobot, the techniques apply equally well to any remotely-controllable device with a programmable interface.
For most .NET developers, creating a BASIC program is not an attractive option. .NET developers want to take advantage of all the convenient features available with Visual Studio .NET. Lucky for us, ARobot's designer, Roger Arrick, has written a special command-level program in BASIC that allows ARobot to receive high-level commands from a serial port. The program lets you control the ARobot's drive motor, steering motor, beeper, and LEDs remotely via a serial cable or wireless receiver. To simplify command entry, you can use a speech-recognition to accept and recognize voice commands, translating the spoken commands to the appropriate high-level commands sent via a serial port or wireless interface to the robot.
Using this scheme, command flow moves from the UI, which accepts spoken commands, to a Speech Server, which recognizes the commands, to application code, which translates the recognized commands into the appropriate command form for the attached device, in this case, the ARobot.