Showing posts with label assistive technology. Show all posts
Showing posts with label assistive technology. Show all posts

Friday, May 16, 2008

Mac OS X Speech Synthesis

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.

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.


Finally, the option "Enable access for assistive devices" appears at the bottom of the Universal Access pane all the time. This choice needs to be selected in order for tools like text expanders to work. It allows applications to access the keyboard buffer as you are typing.

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.

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.

ViaVoice's SpeakPad dictation application.

As I have it set up, ViaVoice allows dictation into its own application called SpeakPad. I am using this program to create a simple plain text file. In order for my Mac to access it, I set up Windows file sharing. Because I am using the Powerbook as a wireless gateway for the PC, it was somewhat harder to get the two computers to see each other. I was able to see the Windows share from my Mac but not vice versa.

The simple green screen interface of WriteRoom.

Aside from that issue setting up sharing was fairly straightforward. I followed the directions here. Then, to finally published the article I am using several Mac applications. First, I save the file from SpeakPad into the shared directory. I use the application, WriteRoom, to open that text file in order to proofread. I like the green and black full screen mode for this because it is easy on my eyes and typing with text expansion is responsive. Plus, once a file is open in WriteRoom, it will reopen it the next time the program is run. I simply save over the same text file in the virtual PC, and the Mac text editor reflects those changes. Next, I drag the text file into MacJournal in order to keep a nice, searchable copy. From there it's one click to publish. I open the blog in a browser where I add images and links and do the final check.

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.

AT: Pencil grip and pen text scanner

This blog has not focused on AT per se, but several of my posts relate to the topic. ATMac made me aware of a blog carnival asking for submissions of bloggers' favorite AT posts. Mine are on the topic of text expansion tools.
Text Expansion: Wasting Time Trying to Save Time tells of my travails as I tried several tools to improve my typing speed. I recently added an addendum, Text Expanders Revisited. While this reads too much like an advertisement for my taste, it necessarily updates the topic of available text expansion software since newer versions have been released.

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.

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
      Date: April 11, 2008 5:55:59 PM PDT
      To: info@smileonmymac.com
    Hi,
    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.

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.

The Fry 100 Word List

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.
TypeIt4Me shows how many keystrokes have been saved.

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.


Moreover, when Steve Jobs introduced the Macintosh over 20 years ago his demonstration, in part, "let the computer do the talking" via a synthesized voice reading a short speech. This was quite a feat in 1984. However, very little has changed in speech synthesis between then and now. Why has there been so little advancement in voice-based computer interfaces in over two decades? Are the factors finally in place for the next interface revolution to truly put the Personal in PC's. The answer may be yes, and the company poised to lead that change is once again Apple.

The answers to the first question are many. Primarily, voice-based interfaces have stagnated not due to technology constraints but because of a lack of demand. The niche market has been served by software venders like Dragon Systems (now owned by Nuance) who have been able to do voice recognition since the days when the 486 processor ruled. Current iterations showing the feasibility of voice recognition include voice dialing, available on many, even the most inexpensive, cell phones, and the Sync system for making phone calls and controlling digital music players in Ford cars. The lack of demand on desktop systems in the past is largely due to the fact that the majority of computer use took place in the cubicle farms of the American office. Voice interfaces would not fit very effectively into that environment.

As more people spend more time online at home, speech-based interactions make more sense. In addition, many people compose numerous emails, and blog, chat, or Twitter daily. All of these applications would be well served by dictation software. Further, the generation of people having grown up with computers continues to grow. While older people, as a general rule, may be less comfortable with technology, kids and young adults have no aversion to talking to a machine. Perhaps the time is finally right for someone to take this seemingly logical next step in computer interfaces.

If the time is now the company may be Apple. Buoyed by an amazing chain of products since Steve Jobs regained the helm, Apple has shown a repeated ability to take existing technologies and polish and package them in a user-friendly way that brings them to more people. The iPod and iTunes have done it for digital music, OS X for Unix, and now the iPhone/iPod Touch for mobile computing. History has shown Apple to have an interest in improving the user experience. Another major advantage is control of the hardware and software environment and a commitment to open source. Apple has long included built-in microphones on its laptops and all-in-ones. Tweaking these for noise reduction or other speech enhancements would be fairly easy. If they set their engineers to the task, speech could become an intrinsic part of Mac OS.

This is the key to my argument. I don't purport to have done an exhaustive review of the available add-ons that can make a computer voice-activated. Far from it. But that is because this technology should not be an add-on. If I can edit a photo, listen to digital music, browse the internet, and write formatted text using a stock installation of an operating system, I should just as easily be able to search for a file, cue up a song, navigate to a web site, or dictate text without using the keyboard. I'm not saying that the computer should understand complex natural language or that the mouse and keyboard would be replaced entirely. I would be happy to follow a set format for commands and annunciate clearly and separate each word from the others.

Mac OS X even includes some support out of the box for voice recognition and computer speech (my computer tells me the time every half hour). The problem is these features are not highlighted as the way to interact with the computer. Until there is a keynote where Steve Jobs uses spoken commands in a demonstration or there is an Apple ad campaign that shows users talking to their computers, consumers (and therefore developers) won't take speech seriously. But if it were suddenly put forward as part of human interface guidelines a whole new breed of more usable applications could take hold, and the next generation of computer interface could develop. If only Apple is listening.