Talking to Your Home
Volume Number: 16 (2000)
Issue Number: 11
Column Tag: Home Automation
Talking to Your Home
By Bruce Lawton
The futuristic world of talking to your home to operate everything in it is here now! Well, how many times have we heard claims like that? The truth is: for some it really is here now; for others, it is not quite ready yet. Speech recognition technology is delivering some amazing results already and it is just getting better as the computers get faster and the recognition software continues to improve.
To make it happen, we'll be talking about voice commands, microphone(s), a Power Macintosh, software, X-10 home automation hardware and your existing lamps, appliances and other gadgets. This discussion assumes you're already familiar with general X-10 home automation. If not, check out the June 2000 issue of MacTech.
Why You Might Want to Use Voice Commands
The most useful application for speech recognition is for persons wanting to overcome a physical handicap. With limited mobility or limited dexterity, speech recognition enables someone to operate lamps, appliances and home entertainment units that would otherwise be difficult or impossible to operate. In this way, the quality of life can be greatly improved, giving the person a bit more independence.
For those who are not physically limited, operating the home by voice can be a matter of convenience or just plain fun. How many times have you settled into bed and then realized (perhaps with a little helpful reminder from your dear significant other) that some lights were left on? The easiest thing to do is to say "Turn off all lights."
It is also impressive to show your PC friends what your Macintosh will do in response to your voice commands. There's nothing quite like seeing everyday hardware operated by voice.
Figure 1. From voice to lamp.
Setting up the Microphone(s)
To get started, you must first plan how you're going to get your voice to your Macintosh. There are at least three ways to do it. The most inexpensive microphone configuration is the standard PlainTalk, corded microphone connected directly to your Mac. The obvious drawback is that the cord restricts the distance you can go from your Mac while issuing voice commands. In some situations, this may be adequate.
The most cost-effective approach giving you more range is to use a wireless microphone that transmits your voice as your own personal FM radio station. Then you have a small FM radio connected to your Mac to feed the sound in. The range on the microphone should enable operation from anywhere in a normal-sized home. My own experience is that the Pro.2 microphone from Lotus Productions ( www.lotusproductions.com, (800) 211-3778 ) works well and costs around $45. A small $25 radio from Radio Shack will receive the FM signal and should be connected to either your A/V Mac's RCA input jacks or directly to the PlainTalk mic jack using a standard 3.5 mm stereo plug as shown below. The PlainTalk jack is really a stereo line-level input. The extra length of the plug allows the Mac to supply power to the tip which is then used by circuitry in the PlainTalk mic. The normal 3.5 mm stereo plug doesn't use that available power. The headphone jack of the radio provides an audio signal compatible with the PlainTalk mic input. Make sure you adjust the radio headset volume to get the clearest sound with no clipping.
Figure 2. FM microphone and radio.
The deluxe approach is to use in-wall microphones and a mixer. This costs the most, but can give you completely hands-free voice control from any room. There is a fair amount of experience in the comp.home.automation newsgroup from those who have set this up on Windows. It can work well, though I must admit I haven't done this myself my own home has far too much "noise". Wired microphones can be great for a home with one or maybe two people living there, but may not work well with several people. The Mac's PlainTalk can get confused if it is listening to many voices at once. When using in-wall microphones, each mic has a cable that is run back to the mixer, which is presumably near the Mac. The audio output from the mixer is then connected to the Mac's sound input. Similar to the FM radio configuration, you can feed the line-level signal either into your A/V Mac's RCA input jacks or directly into the PlainTalk mic jack using a standard 3.5 mm stereo plug.
Shure (www.shure.com, (847) 866-2200) makes the SCM-410 and SCM-810 mixers with 4 and 8 inputs respectively. They dynamically cut out the microphones that are not being used, improving the audio quality for the microphone you're speaking to. They cost $800 and $1,200 at iAutomate ( www.iAutomate.com, (800) 741-6790 ). HomeVoice also makes a mixer, sold as part of their "Multiroom Processor Kit" at SmartHome (www.smarthome.com, (800) 762-7846) for $690. Good, compatible, in-wall microphones vary greatly in price, from $70 to $250 or more. One of the most recommended models is the Crown PZM-11, sold at iAutomate and SmartHome.
Figure 3. In-wall microphones with a mixer.
For our purposes, there are two categories of speech recognition software: dictation and discrete commands. IBM's ViaVoice is an excellent way to get your speech dictation into the Macintosh, but the resulting stream of words is not "understood" by the ViaVoice software. That is, it doesn't know what action you want taken in response to the words. Dictation software is intended as an alternate method of text input it is not going to help you operate your X-10 system. This is where you want software that understands discrete commands. PlainTalk is at the heart of this type of speech recognition. As it has steadily improved over the years and CPU's have sped up, the reliability has become quite good. The Thinking Home application uses PlainTalk to make your X-10 devices available. First, install PlainTalk. This is done via a "Custom" installation from your MacOS CD or it can be downloaded from Apple's web site at <http://www.apple.com/macos/speech/>. Next, ensure you have checked the "Respond to Voice Commands" checkbox in the Preferences as seen in Figure 4.
Figure 4. Enabling speech commands.
You need to have a device named "Bedroom Lamp" like the example of Figure 5. Now you can say "Turn off the bedroom lamp." and Thinking Home will do the right thing.
Figure 5. Your device names are used by PlainTalk.
Syntax of What You Say to Make it Work
In order to operate a device using Thinking Home, you speak a normal sentence, with the action followed by the device name. For example, "Turn off the bedroom lamp." or "Set the thermostat to heat." The precise syntax is shown here in Backus-Naur Form notation:
<voice-command> ::= <action> <device-name> |
"What is the status of the> <device-name> |
"Set the" <thermostat-name> "to" <mode>
<action> ::= "Turn on" | "Turn off" | "Dim" | "Brighten"
<device-name> ::= the device name used in the Thinking Home document
<thermostat-name>::= <device-name> | "thermostat"
<mode> ::= "Heat" | "Cool" | "Off"
- Turn on the bedroom lamp.
- Turn off the kitchen light.
- Dim the theater lights. will be dimmed by 35%
- Brighten the bedroom lamp. for a gentle start in the morning.
- Set the thermostat to cool.
- What is the status of the sidewalk lights?
Note that the thermostat can be referred to by the name you gave it, like any other device. Or you can refer to it simply as "thermostat" and Thinking Home will use the first thermostat it finds in any open document.
There are some caveats to asking for the status of a device. First of all, the Mac will speak the reply and you may not be at your Macintosh if you are using the wireless mic or mics installed in each room. The other issue is the accuracy of the status. This will depend on whether the X-10 module is able to report its status. Two-way device modules ($25+) will report their status, but the most common modules that sell for $4 to $12 do not. If you're using an ActiveHome CM-11A computer interface, it will keep track of X-10 commands observed on your home wiring and will report the status of the lamp. This assumes you have not operated it manually. The report from a two-way lamp module would reflect its actual state, including manual operation.
You can also control your X-10 thermostat by saying "Set the thermostat to cool." The choices for thermostat modes are cool, heat and off. Unfortunately, you cannot say "Set the thermostat to 72 degrees." This is one place where PlainTalk is not quite ready. Recognizing spoken numbers is much more difficult than most other speech.
Speakable Items (installed with PlainTalk) is another way to access some of Thinking Home's functionality via speech. For example, you may want to know the time of sunset on a regular basis. By making a Speakable Item like the example below, you can say to your Macintosh "When is sunset?" and the Speakable Items application will run the the AppleScript by that name. The AppleScript can, in turn, tell Thinking Home to speak the time of today's sunset as seen here in Figure 6.
Figure 6. Using Speakable Items to get the time of sunset.
This is also how you can get XTension v3.0 (from Sand Hill Engineering) to respond to your voice. Although XTension does not have built-in support for PlainTalk, it does have excellent support for AppleScript. You can use Speakable Items for speech recognition and make an AppleScript for each command you want recognized. Your scripts in the Speakable Items folder will tell XTension which X-10 device to operate. For example, to get the time of sunset, you'd write a script almost exactly as that for Thinking Home.
Figure 7. XTension Speakable Item for getting the time of sunset.
To use XTension to operate devices via speech, you create an AppleScript like that in Figure 8 and name it as you intend to speak it. Like before, you name this script "Turn off the bedroom lamp". You'll also need to make a similar one for "Turn on the bedroom lamp."
Figure 8. XTension Speakable Item for operation of a device.
To get device status using XTension, you write an AppleScript similar to that shown in Figure 9.
Figure 9. XTension Speakable Item for getting the status of a device.
Since faster CPU's seem to perform better than slower ones, you will probably want to avoid using a Power Macintosh running less than 100 MHz.
The Shure web site has a wealth of useful information and general advice regarding the various options, such as ceiling- vs. wall-mounted microphones. <http://www.shure.com/support/technotes/app-soundcard.html#Macintosh>
Before you demo your cool home to others, test it out in advance. In particular, check that it works reliably from all locations you plan to be when showing it. When using a wireless microphone, ensure the range is sufficient to operate consistently from all locations where you will be using it. Also, make sure the ambient sounds are the same. Putting on background music just as your guests arrive will change the "noise" level and your speech commands may very well get lost. Once you have it set up nicely, your friends will be amazed.
Integrating speech recognition into your Macintosh X-10 home automation can be useful, convenient and fun. This futuristic technology is ready and affordable today and still improving. Select an arrangement that fits your lifestyle and budget and try it out.
Bruce Lawton is still an enthusiastic Macintosh developer who first got hooked over 15 years ago. He can be reached at firstname.lastname@example.org.