Since the introduction of the Macintosh in 1984 Mac OS has had the ability to convert text into speech. Even eight-bit computers like the Commodore 64 had SAM, an early voice synthesizer, but as I bemoaned several months ago, there has been relatively little progress in speech recognition and synthesis in the intervening decades. For the more than 45 million Americans with literacy problems this is especially important. Despite the lack of exceptional progress, OS X does offer options for text-to-speech that may be of interest to users regardless of their literacy level.
Here are some uses for speech synthesis that you may not have thought of. Anyone who writes, even if it's only an occasional professional email, can benefit from text-to-speech. While spell checkers are great for finding egregious errors, more subtle problems are harder to spot. Often writers inadvertently use the wrong word or add extra words to their text. For example, how often have you seen "you" in place of "your" accidently? One easy way to find these problems is to listen to someone read what you wrote. OS X can do that for you.
Similarly to the Dictionary application, speech synthesis has been integrated into the modern Mac operating system. Any highlighted text whether it be in a web browser or an e-mail, can be read aloud by the computer. In many applications like word processors the user just needs to bring up the context menu by right clicking or control clicking and choose the "Speech" option, and "Start speaking". If the option is not in the context menu it is still available in the Services menu. Click on the name of the application in the menu bar and then go to "Services/Speech/Start speaking". It is also possible to create a shortcut key for this option. Simply go to System Preferences and open the Speech preference pane. In the "Text to speech" tab, check "Speak selected text when the key is pressed" and then push the "Set key" button. Now just highlight text in any application, and your computer will read it to you at the touch of a button.
Another speech feature can be useful to many people. When working on the computer it's easy to lose track of time. Sometimes hours go by before I realize it. To avoid this, OS X can announce the time for you. The option is available in the Date and Time settings. These can be accessed in several ways. There is a button in the aforementioned "Text to speech" pane, or you may click on the time in the menu bar and choose the "Open Date & Time..." option. Date and Time is also a choice from the main System Preferences menu. Once there, simply click "Announce the time", in the Clock tab, choose how often, and click "Customized voice" if you wish to set specific voice options.
Some users like me, who keep their Dock hidden, may not always notice applications bouncing their icons in the Dock when they need attention. This can be addressed by having OS X speak to you when a program needs attention. This option is also in the "Text to speech" tab of the Speech System Preferences. Just check "Announce when an application requires your attention". The computer is even very polite, saying, "Excuse me. Application X needs your attention."
What if you are dissatisfied with the standard computer voices? Without doing an exhaustive search I found two companies that offer commercial voice packs for OS X. Both have fairly realistic voices. You can hear many samples or download demos at the InfoVox and Cepstral web sites. Unfortunately, they're rather pricey. The InfoVox voices are $100 for the American English pack, whereas Cepstral voices are sold individually for $29 each.
While it would be hard to say that speech synthesis has come a long way on the Mac, the availability of universally integrated speech options and high-quality commercial voices does make a compelling combination. For those who prefer to have text read to them or just simple system alerts, text-to-speech can be a useful and important component of the operating system.
For more great information on the Services menu, see this web site.
Friday, May 16, 2008
Mac OS X Speech Synthesis
Labels: assistive technology, OS X, user interfaces
Thursday, May 15, 2008
Universal Access Options for Everyone

As with most operating systems of the last decade or so Mac OS X contains options for accessibility by people with disabilities. What users may not realize is that some of these options are extremely useful to anyone.
OS X puts these functions in the Universal Access pane of System Preferences. This article will concentrate on a few options in the Seeing and Keyboard tabs.
The first item that is certainly of use is the zoom feature. Pressing Command- Option 8 zooms in on the screen around the mouse cursor. By default graphics are smoothed after the zooming takes place, so images that would otherwise appear pixilated still look decent. I often use this feature when watching low-quality web video. Rather than putting up with a tiny postage stamp sized video I simply press the short cut key and watch it much closer to full screen. Once in zoom mode the magnification can be adjusted by pressing Command- Option-minus or Command- Option-equals.
The Keyboard tab has features designed for people who have difficulty typing. However, one of the options in Sticky Keys is very useful for people creating screen casts. With Sticky Keys open and the option "Display pressed keys on screen" checked, the symbols for modifier keys, command, option, control, or shift, appear on the screen when they're pressed. In tutorial situations and with new users this is useful to provide a visual cue to go along with the name of the key being used.
For people with no challenges using a computer the Universal Access pane may be the last place they would look to add useful functionality to OS X. As you can see, there are some options, however, that can improve the computing experience for anyone. Hopefully people will be inspired to explore further.
Labels: assistive technology, OS X, software
Tuesday, May 13, 2008
Recognition for Speech Recognition
My friends came through again. If you've been following this blog you may remember reading about my attempts to get dictation software installed and running. I ended up creating a virtual Virtual PC. Unfortunately, the package with the IBM ViaVoice did not contain the CD. However, yesterday I received a disc in the mail from my friend; ViaVoice version 10 for Windows XP.
This is the first article that I am attempting to dictate. So far the recognition has been so-so. Correcting mistakes is not intuitive yet. I'm sure it will get better as I get used to the software. When it works the speed is amazing, so I am looking forward to getting this working better.
In order to make this somewhat more technical I am going to describe the set up that I am using in the order to get my dictated text onto the Mac.

It seems that voice recognition will be a real time saver if I manage to tame it. Obviously the current setup is somewhat convoluted, but moving the information from app to app is actually fairly painless. And the much smaller amount of typing certainly causes me less pain. It's nice to have good friends, and it's especially good to have nice friends.
Thursday, April 24, 2008
Assistive Technology Blogging
Assistive technology (AT) is a topic that has become near and dear to me. For those unfamiliar with the term, it refers to devices that help people with disabilities perform a function better. There are low tech examples like pencil grips or colored text overlays, or high tech items like a pen-based optical character recognition text reader or advanced computer software. The reason I am familiar with the subject is that I was trained as a special education teacher and worked in that capacity until an accident imparted to me a disability of my own. After breaking my neck, assistive technology became essential for helping to recover as much of my former function as possible.
If I may be somewhat optimistic for a moment, I'd like to think that some people who never considered the topic of text expanders may read this information and use it to improve their ability to use a computer. No one has requested my abbreviations yet, but I hope they may be useful to someone in the future. In particular, users of head pointing systems with onscreen keyboards may benefit from using fewer keystrokes. Plus, anyone in a position similar to me, where finances impede the adoption of a full dictation system, could be able to type faster. The two linked posts, therefore, are my entries to the AT blog carnival.
Labels: assistive technology
Tuesday, April 22, 2008
Text Expanders Revisited

A couple months ago I posted an article about my experience with text expansion utilities. At the time I had chosen TypeIt4Me as the only alternative able to expand one-character shortcuts. Recently, both MacUpdate and MacHeist launched new shareware bundles. Since the former includes Typinator, and the latter originally was said to include TextExpander, and I was already interested in a few other offerings, I decided to give them one more try. To my surprise, Typinator exceeded my expectations and contradicted my memory.
As you may recall, I intended to use text expansion as a poor man's assistive technology for improving text input speed and accuracy. I had used CoWriter with elementary students but could not afford the price tag for my own use. As an alternative, I set up a large number of abbreviations in TypeIt4Me, allowing it to expand out the most common words as I typed the first few letters. However, I was not entirely satisfied with this solution either, since TypeIt4Me had the fewest features of the three programs I had tried but retained a fairly hefty $27 price tag. Therefore, I turned it off for the moment and located TextExpander and Typinator once again.
After a brief revisiting of TextExpander, it was clear once again that it would not fit my needs. As noted before, the one-letter abbreviations did not work. They gave a warning message, but were not highlighted in red and disabled like other illegal shortcuts. I sent the following email to their tech support.Subject: TextExpander snippets
Hi,
Date: April 11, 2008 5:55:59 PM PDT
To: info@smileonmymac.com
I've previewed your product, and it has very nice features. Unfortunately, it does not fit my needs because single letter abbreviations are not supported. (It seems to me a bug that it does not highlight them in red even though there is a warning message.) I use a text expander to facilitate all my typing because I cannot use one hand since I broke my neck. Being able to use "t" for "the" and "n" for "and", for example, saves me a lot of time. The only program that I have been able to do this with is TypeIt4Me.
Please let me know of you will ever make single letter abbreviations possible.
Thanks.
This email was sent almost two weeks ago, and I have not heard any reply, plus the MacHeist bundle does not in fact include the program, so I have written off TextExpander.
The other program, Typinator, was a pleasant surprise. I believe the version was updated to 3.0 since the last time I examined it, and the changes were dramatic. First and most noticeably, Typinator now runs nearly invisibly, with just a small icon in the menu bar. Next, when I went to import my TypeIt4Me shortcuts, I had none of the problems that I had had before. I simply dragged and dropped the file into the list of abbreviation sets, and it worked. Finally, my one-letter shortcuts worked! It may be in part due to my faulty memory, but the new version of Typinator was well worth trying.
There were some differences to adjust to in switching from TypeIt4Me. In Typinator features like whether to expand immediately or after a delimiter and how to treat case sensitivity can be set on a shortcut by shortcut basis. Unfortunately, the default on my imported abbreviations was not what I needed for most cases. In the long run, though, having this level of control will enable better functionality. Another issue I had was trying to create an expansion with a backspace in it. In TypeIt4Me I used this to enable typing " g" instead of "ing". The program would backspace over the initial space before adding the "ing". Typinator allows setting the cursor position, but not using the backspace key as far as I can tell.
Overall, I am happy I gave Typinator another try. I have over 200 abbreviations set up, and it is pretty amazing how many of the words I type are abbreviated now. The application is part of the 10-program bundle being offered by MacUpdate for $64.99. I was seriously considering the package before, but Typinator sealed the deal. I would love to have the full functionality of CoWriter or dictation software, but Typinator is not a bad replacement, and right now the price is right.
If anyone else is interested in my abbreviation file, I would be happy to share it. If you purchase the MU bundle through the link above, I earn a $3 credit.
Labels: assistive technology, software
Monday, January 28, 2008
Text Expansion: Wasting time trying to save time
Perhaps nothing is more irritating than trying to set up some time-saving software, having problems, and wasting lots of time resolving them. That's one reason why I found OS X so compelling when I first started using it; for the most part things just worked. Rather than fighting with the computer just to get the proper tools in place, I could actually get things done.
For reasons I'll go into some other time I have been searching for quite a while for ways to speed up my text input. My most recent endeavor was based on the idea of using text expansion to minimize the number of keystrokes I have to enter. As a special education teacher I had worked with the application Co:Writer by Don Johnston software, which does a fine job of text prediction as letters and sentences are typed. Unfortunately, a single license is $325. Since that is far too rich for my blood, I decided to set up a system of abbreviations myself. That can't be too hard, right? Guess again.
I found three programs that work as text expanders for OS X, Typinator, TypeIt4Me, and TextExpander. All are available as free trials with full licenses costing 19.95 Euros, $27, and $29.95, respectively.
All three programs work the same way. They run in the background watching your keystrokes. When you type a space, punctuation, or other defined key, the programs compare the keyboard buffer to the list of abbreviations you have defined. If there is a match, they backspace over what you have just typed, copy the expansion onto the clipboard, and paste its contents. A sound can also play when this happens.
To give you an example, I have "ty" defined as a shortcut for "thank you". When I start a new word with "ty" (typing it right after a space or other delimiter) and then type, say, a period, the text expansion program backspaces three times, deleting the delimiter and the "ty". Then it copies the expansion and the period onto the clipboard and pastes it into place, effectively replacing the "ty." with "thank you.". It may sound complicated, but it's really not.
The product pages for each program tend to emphasize the use of abbreviations for larger snippets of repetitive text like form letters. My usage goal was a little different. I wanted to use very short abbreviations for very common, but sometimes also very short, words. According to teacher school, if you take the 100 most common words in the English language, you can read (or write) 50% of all elementary text. One of the popular lists of words by frequency is Fry's First 100, named for its creator, Edward Fry. I figured that would be a good starting place for my abbreviations. Of course that is where the trouble started.
I began simply enough. I had a text file of Fry's List with one word per line. The programs all had options for importing text files, so I started typing abbreviations after each word, with a comma in between. If a word was only one letter (like "I") or not easily abbreviated (like "in"), I deleted it from the list. For very common and short words I used one-letter abbreviations ("t" for "the", "n" for "and", etc.)
Unbeknownst to me, there were several problems with this. First of all, the programs would accept tab-delimited but not comma-delimited text. I had to search and replace all my commas with tabs, but not too big of a deal. Next, however, I discovered that the order I had put the abbreviation and expanded text were reversed. I didn't want to retype all of that (though it probably would have been faster in the long run), so I found a simple Java program that read in a comma delimited file and wrote it out differently and modified it to fit my needs. Unfortunately, after all of this I still had a problem with the encoding of the text. The text expansion programs would not accept Unicode, so I had to resave the file.
After all this conversion I finally had my abbreviations loaded into TextExpander. The program installs itself as a System Preferences pane and has a nice interface with some advanced features. You can decide on a "snippet" by snippet basis whether to type the delimiter and how to treat upper case. I started using the program while doing emails and blogging. As I encountered a new word that I use a lot, I would add a snippet if there was not one already. It was gratifying to hear the little beeps as I typed, knowing that I was saving keystrokes each time the sound played.
But my troubles were not over. For some reason my one-letter abbreviations were not working. It turns out that TextExpander and Typinator set a minimum of two letters for an abbreviation. While TextExpander correctly highlighted my snippets in red if I accidently created duplicates, it did not flag the one-letter snippets. This limitation eliminated much of the benefit of text expansion as I was using it. Fortunately TypeIt4Me allows single letter abbreviations, but changing programs led to another problem.
I had used TextExpander for a while and added some 50 new expansions. Once again I had new abbreviations that I had to transfer into a program. TypeIt4Me's "Open File..." would allow me to choose the TextExpander file, but no new words would appear. I took a look at the two programs' abbreviation files, both plain text XML. Both are standard Apple plists, even using the same name for most attributes. However, TypeIt4Me capitalized the first letter of each, while TextExpander did not, and XML is case-sensitive. In this case close did not count.
In my stubborn refusal to do data entry when something is already in a computer, I ended up with another time consuming solution. I took the TextExpander XML file and used XSLT to parse out each abbreviation and expansion and write them to a tab-delimited text file for import into TypeIt4Me. I'll try to be an optimist and imagine that maybe somewhere all this foolishness of mine will be useful to someone else.
I have since gotten TypeIt4Me set up to my liking. I have a shortcut key to toggle it on and off, and another to add a new abbreviation. My abbreviation file has grown to over 200 items. I have also learned not to type too fast after a replacement is triggered, or sometimes I end up typing in the middle of the copy and paste.
TypeIt4Me has a nice feature where it tracks the number of expansions done and keystrokes saved. As you can see below, it will be a while before I make up the hours spent mucking around with these programs, but I did get to polish up my Java and XML knowledge and eventually solve my problems.

Labels: assistive technology, OS X, software
Wednesday, January 9, 2008
Hello, Computer?? Apple can you hear me?
There is a classic (among geeks at least) scene in Star Trek IV where the crew of the Enterprise has traveled back in time to the late 20th century. Chief Engineer Scott sits down in front of a Mac computer and says, "Computer. Computer?" Getting no response Dr. McCoy helpfully hands Scott the mouse, which he holds like microphone, "Hello, Computer??" The befuddled 1980's Earthling standing by finally tells him to just use the keyboard ("How quaint"). [Watch on YouTube] While the Mac was not able to respond to voice input, it did bring the mouse-driven graphical user interface revolution to the masses.
