This document is Copyright © 2001 IBM. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found at http://www.gnu.org/license/fdl.txt.
Emacspeak is a Linux application that allows users to get synthesized speech output inside the Emacs desktop environment. Because Emacspeak is actually integrated into the Emacs environment (instead of just running "on top" of an environment like most screen readers), Emacspeak provides much more context-specific information than its commercial screen reader counterparts. In this sense, Emacspeak is not a "screen reader," but rather a subsystem of Emacs that produces speech output.
Although Emacspeak only works inside Emacs, there are a large number of both built-in and add-on applications for Emacs that do everything from keeping track of your appointments to playing CDs to coding HTML. In addition, Emacs has a special command shell mode that can be used to run any command-line application.
This HOWTO focuses on installing Emacspeak on your Linux system. It does not discuss how to actually use Emacs or Emacspeak - for information on usage, refer to the Emacspeak User's Guide, available at http://www.tldp.org/guides.html#espk.
As per the LDP Author Guide, this HOWTO uses the following documentation conventions:
There are a number of things you must have before you install Emacspeak, including Linux, a Linux-compatible sound card, Emacs, and a hardware or software speech synthesizer. You should read this section carefully before installing Emacspeak, because Emacspeak will not function correctly if any of the requirements are missing.
This HOWTO assumes that you have already installed Linux on your system. If not, you may wish to refer to the "Linux Information Sheet" by Michael K. Johnson a http://www.linuxdoc.org/HOWTO/INFO-SHEET.html. It provides an introduction to Linux, discusses some hardware requirements, and also has a section on how to obtain Linux.
There are a number of different Linux distributions (distros) that you can choose from. All of the distros are based upon the same basic Linux code, or kernel, but each distro has a different installation process, features, and support options. Martin Wheeler's "Distributions HOWTO," at http://www.linuxdoc.org/HOWTO/Distributions-HOWTO/index.html, discusses the pros and cons of a number of Linux distros. You can also find information about each distribution on their respective web sites. Those distros known to support Emacspeak are listed below with their URLs:
All of the distributions listed above can be downloaded free of charge from their respective web sites. However, the downloads are quite large, so you'll need a fast Internet connection. You will also need access to a CD burner, to burn your own CDs from the images you download. Depending on the distribution, you may also have to download and make a boot floppy. Once you have burned the CDs and created the boot floppy, you can install Linux. Alternatively, you can purchase the disks at your local computer store for between $30 and $80 US. Both of these options are discussed at length in the Linux Installation HOWTO at http://www.linuxdoc.org/HOWTO/Installation-HOWTO/overview.html, so you may want to refer there before making a decision as to which route to take.
Most methods of installation require sighted assistance. However, if you prefer to install Linux yourself, there are two options. The first is to install Linux from a DOS machine running JAWS. This option requires two machines, a null modem cable, JAWS for DOS, and a hardware speech synthesizer. More information on this option can be found in, Appendix A. The second option is installing one of the distributions that includes a Speakup kernel patch. This option requires a Speakup-enabled distro and a hardware synthesizer. Speakup is a screen reader that is patched into the kernel, so it starts talking at boot and will speak during the entire installation. Currently, Speakup is supported on Debian, Red Hat 7.1, and Slackware. The Speakup option also requires you to download the CD images and make your own CDs. Refer to the Speakup home page at http://www.linux-speakup.org for instructions for this option.
For assistance with installing Linux, Eric Raymond's Linux Installation HOWTO, at http://www.linuxdoc.org/HOWTO/Installation-HOWTO, is highly recommended reading. In the HOWTO, Eric discusses hardware requirements, choosing a distro, and installing your distro of choice. If Eric's HOWTO does not provide enough installation-specific information, you can refer to the documentation specific to your distribution, available at the URLs given in the distro list.
Because Emacspeak is an Emacs subsystem, you must have Emacs installed for Emacspeak to work. Most distributions include Emacs by default, so it should be installed on your system when you install Linux.
If you do not have Emacs on your system or you want to check on the latest version of Emacs, refer to the Emacs homepage at http://www.gnu.org/software/emacs/emacs.html. If you install Emacs on your own or choose to upgrade, be sure to install all of Emacs, including both the X and non-X versions (even if you do not plan to use X). Some Emacs applications depend on packages included in the X version, even if you use those applications in the non-X version of Emacs.
If you would like to learn more about Emacs and how to use it, an excellent place to start is the Emacs Beginner's HOWTO, by Jeremy D. Zawondy. It's available at http://www.linuxdoc.org/HOWTO/Emacs-Beginner-HOWTO.html. There is also an online manual available at http://www.gnu.org/manual/emacs/index.html. Alternatively, you can try the built-in Emacs tutorial. To start the tutorial, type C-h t.
Emacspeak depends on a number of applications. Because each Linux distribution comes with different applications, you may find that your distro does not quite have everything that Emacspeak needs to run properly. Therefore, before you install anything else, it is important to make sure you have all the necessary applications, as listed below.
To produce speech output, you need two things: something to parse the information on the screen (Emacspeak), and something to produce the sounds you hear as output (a speech synthesizer). Emacspeak can use either a hardware or software synthesizer to produce sound output. Software synthesizers have the benefit of being either free or very inexpensive. Hardware synthesizers can run from $150 to $1600 or more, but they are typically easier to install than software synthesizers.
Emacspeak supports the following hardware synthesizers:
Support for the DECtalk Express and MultiVoice synthesizers is built into Emacspeak. If you have a synthesizer other than a DECtalk Express, you may require additional drivers or "speech servers" to get Emacspeak to work with your synthesizer.
The Internal DECtalk PC and DECtalk PC2 require a kernel driver available from ftp://leb.net/pub/blinux/dectalk_pc-0.95.tgz. Installation instructions are at ftp://leb.net/pub/blinux/dectalk_pc-0.95.README.
The DoubleTalk PC and AT, Braille n' Speak, Type n' Speak, Braille Lite, Apollo, and Accent synthesizers all require an additional speech server that can be downloaded from http://leb.net/pub/blinux/emacspeak/blinux/emacspeak-ss-1.7-1.i386.rpm. A README file with installation instructions can be found at ftp://leb.net/pub/blinux/emacspeak/blinux/emacspeak-ss.README.
If you choose to use a software synthesizer, you must make sure your sound card is Linux compatible. In addition, if you want to perform any tasks that require a multi-channel sound card, such as playing auditory cues when you open or close an Emacs buffer, you must make sure that your sound card is multi-channel capable.
There is a complete list of Linux-compatible sound cards available at http://www.alsa-project.org. In addition, you can usually find information on your distribution's web site about which sound cards are supported with each distro.
Once you have ensured that your sound card is Linux compatible, you can install a software synthesizer. Currently the only one that works with Emacspeak is IBM's ViaVoice Text-to-Speech (TTS), formerly called ViaVoice Outloud. Many Emacspeak users use this software synthesizer, because it is free of charge. Instructions for installing ViaVoice can be found in, Appendix B.
Assuming that you have all the items listed in, Requirements, you are ready to install Emacspeak. The following steps provide the instructions to do so.
Now, you should have installed and configured everything required to run Emacspeak. To use Emacspeak, log on to your system as someone other than root (you should never run Emacspeak as root), and type emacspeak at the prompt. Emacspeak should start talking immediately.
This sections covers some of the more common problems encountered when installing Emacspeak. If there is a topic that is not covered here, you should review the Emacspeak mailing list archives at http://www.cs.vassar.edu/~priestdo/emacspeak/. You can find the answers to many additional questions there.
Once Emacspeak has been successfully installed, you should become familiar with the Emacspeak commands and the many applications you can run with Emacs. Although this HOWTO does not cover this information, there are a number of excellent tutorials that are available for new users of both Emacs and Emacspeak. The following list provides a starting point:
In the original Emacspeak HOWTO, James Van Zandt provided instructions on how to install Linux from a DOS machine using a null-modem cable. As with the other instructions in this HOWTO, I tried, unfortunately without success, to duplicate this procedure. However, I have provided the information gathered during testing in the following section. If you successfully install Linux from a Windows™ or DOS™ machine over a null-modem cable, please let me know the procedure you followed and I'll include it here.
Please note that the original instructions for installing Linux over a null modem cable were written for a DOS machine. I first attempted to reproduce these instructions with my Windows 2000 machine (from the DOS prompt) and Red Hat 7.1. Although I successfully downloaded and installed JAWS for DOS (available from Freedom Scientific at http://www.freedomscientific.com/fs_downloads/morejaws.asp), I was unable to get a DOS VT100 terminal emulator installed. I tried using TELIX, which was popular several years ago, but when I tried to install TELIX version 3.51, I got a runtime error. Since I was unable to find any other DOS terminal emulators, I decided to try using a Windows screenreader and terminal emulator instead. This section documents the procedure I tried with the Windows machine.
For this process, you will need a machine with a working speech synthesizer and a terminal emulator program. For my test, I used a Windows 2000 machine and tried both Narrarator (which comes with Windows 2000) and JAWS for Windows v.3.5. For the terminal emulator, I used tried both Hyperterminal (which comes with Windows) and CRT (which can be downloaded from http://www.vandyke.com/products/crt). You will also need a second machine (on which to install Linux), a null modem cable, and a copy of your preferred Linux distribution on either floppy disk or CD-ROM.
To connect the two computers, you need a "null modem" cable. A "null modem" cable is a serial cable that connects ground to ground and transmits on each end to receive on the other. The cable that comes with the DOS applicationLapLink will work fine. The LapLink cable is particularly handy because it has both a 9 pin and a 25 pin connector on each end. Alternatively, you may be able to find a null modem cable at your local computer store, or you can have one made. If you choose to have one made, here are the required connections:
Once you have your null modem cable, you'll need to connect the two machines while both of them are off. It's easiest to use COM1 on both machines. Once you've got them connected, you're ready to start them up, as discussed in the next section
Once your machines are connected via the null modem cable, boot the DOS/Windows machine, then start the terminal emulation program. For my test, I tried both Hyperterminal (which comes with Windows 2000) and CRT (which can be downloaded from http://www.vandyke.com/products/crt. For some reason, the arrow keys did not work in HyperTerminal, making navigation within the HyperTerminal window impossible. However, the arrow keys (as well as Tab and Return) do work in CRT, so I recommend using CRT as your terminal emulator.
Set the terminal emulator for 9600 baud, no parity, eight data bits, 1 stop bit. If "Flow control" is an option, select Hardware. Also be sure to set your terminal emulation mode to VT100. Start the terminal emulator connection (you won't get any data at this point, as your Linux machine should still be off).
Once you've set up the terminal emulator on your DOS/Windows machine, insert the "boot" floppy or CD into your Linux machine and boot the machine. With Red Hat, at the boot: prompt, I typed in the command linux text console=ttyS0. Note that the "s" in "ttyS0" is capitalized, and that's a "zero" at the end of the string, not a capital letter "o." Other distributions may require other strings, so if you know the syntax required for distros other than Red Hat, please let me know and I will include that information here.
Once you've typed in this string at the boot: prompt and hit Return, you should get output in your terminal emulator program on your DOS/Windows machine. Unfortunately, at this point I discovered that neither JAWS for Windows nor Narrarator produces speech output in either the HyperTerminal or CRT terminal windows. This ultimately stymied my attempts to install Linux over a null modem cable.
This section steps through the installation of ViaVoice TTS, which can be used as a software synthesizer with Emacspeak.
First, you must download the ViaVoice Software Development Kit (SDK) and the Run Time Kit (RTK), as described in the following steps.
Now that you have downloaded the ViaVoice files, you can install them. You must install the RTK first, as it contains libraries required by the SDK.
Now that you have installed the RTK, you can install the SDK as well using the following steps:
Now that you have installed both the ViaVoice RTK and SDK, you must test to make sure that they are working correctly. You can perform two tests using the following steps:
If for some reason your test was not successful, refer to the installation notes provided with both the RTK (ttsrt.readme.txt) and the SDK (ttssd.readme.txt) for debugging information.
As with any effort for the Linux project, there are a number of people who contributed to this HOWTO in a roundabout way. Without their help, this document would not exist.
Mr. James Van Zandt, the original author of the Emacspeak HOWTO. He graciously allowed me maintainership of the original HOWTO, which has been reworked into this document, "The Emacspeak Installation HOWTO."
Dr. T.V. Raman, who always answered my Emacspeak questions, no matter how odd.
Marty Moore, who provided a list of instructions for installing Emacspeak and ViaVoice under Mandrake. Many of Marty's instructions were used to make this document more complete.
Tim Cross also deserves recognition, as he clarified several points in Marty's instructions, and some of Tim's comments are also used in this document. Tim also provided excellent explanations for the libXm.so.1 error message, as well as the "process speaker not running" error message.
All the folks on the Emacspeak and blinux mailing lists who contributed suggestions, answered my questions, and gently showed me the errors in my ways.
Throughout this document, I have tried to give credit to other authors when referring to their work. If I missed a citation, please let me know and I will be sure to correct it. If you did the work, you certainly deserve the credit!