You can make your scripts executable by spoken command as long as you have the SpeakableItems extension file loaded on your machine, and you have turned SpeakableItems on in the Speech control panel (see Figure 30-1). This speech technique is as simple as this: create a script that does whatever you want then give it a filename that you will use to verbally execute the script. For instance, you can save the script as an applet with the filename go. As long as the script has been saved in the startup disk:System Folder:Apple Menu Items:SpeakableItems folder and SpeakableItems is turned on, all the user has to do is say "go" into the computer's microphone and the script is executed. The following example uses a web browser to open up the my.yahoo.com page upon spoken command, which in this case is "go to yahoo" (i.e., the filename of the script must be go to yahoo, and the script must be saved to the SpeakableItems folder): tell application "Internet Explorer" Activate GetURL "http://my.yahoo.com" end tell say scripting additionThe say command is an osax that you can use to have the computer speak text to the script user. It is extremely easy to use; simply follow the keyword say with the string text that you want the computer to say. This command requires the Speech Manager extension (see Figure 30-2), which enables the computer to read text to the user. You can use the say command alongside other speech technologies, such as the Speech Listener application. The following example tells the user what time it is. It gets the current time from the current date scripting addition. The time string property returns just the time portion of the date, as in "10:52:26 AM." Appendix A also describes the say command. A description of say and its parameters follows this example. The example also uses embedded speech commands (which are explained at the end of this chapter): set t to (time string of (current date)) (* returns something like "11:17:00 AM" *) set t1 to "" (* t1 var will hold just the time part as in "11:17:00", without the "AM" *) set t2 to ((characters -1 thru -2 of t) as text) -- holds "AM" or "PM" set t3 to "" -- will hold the lower case "am" or "pm" (* remove the " AM" part of "11:17:00 AM," for instance, and store the result in a variable *) repeat with chr from 1 to (t's length) if (character chr of t) is space then exit repeat set t1 to t1 & (character chr of t) end repeat (* create a lower case version of "AM" or "PM" so that the speech software reads the time of day as "ay-em" or "pee-em" using the [[ char LTRL ]] embedded speech command *) repeat with chr from 1 to 2 set n to (ASCII number (t2's character chr)) + 32 (* converts from upper to lower case using ASCII number osax *) set t3 to t3 & (ASCII character n) -- uses ASCII character osax end repeat say "It is [[ emph - ]] [[ slnc 500 ]]" & t1 & " [[ char LTRL ]]" & t3
|