Previous Next Contents

1. Introduction

Emacspeak is an Emacs subsystem that allows the user to get feedback using synthesized speech.

Screen reading programs allow a visually impaired user to get feedback using synthesized speech. Such programs have been commercially available for well over a decade. Most of them run on PC's under DOS, and there are now a few screen-readers for the Windows platform. However, screen-readers for the UNIX environment have been conspicuous in their absence.

This means that most visually impaired computer users face the additional handicap of being DOS-impaired -- a far more serious problem:-)

Emacspeak is an emacs subsystem that provides basic speech access. Emacspeak will always have the shortcoming that it will only work under Emacs. This said, there is very little that cannot be done inside Emacs, so it's not a real shortcoming:-) Within Emacs, you can open a "shell window" where you can run commands and examine their output, even output which has scrolled out of the window. Emacs provides special modes for running certain commands. For example, it can parse error messages printed by a compiler and open a separate edit window with the cursor at the point of the error. It can also run a debugger and keep a separate edit window open at the point in the source code corresponding to the program counter.

Emacspeak does have a significant advantage: since it runs inside Emacs, a structure-sensitive, fully customizable editor, Emacspeak often has more context-specific information about what it is speaking than its commercial counterparts. In this sense, Emacspeak is not a "screenreader", it is a subsystem that produces speech output. A traditional screen-reader speaks the content of the screen, leaving it to the user to interpret the visually laid-out information. Emacspeak, on the other hand, treats speech as a first-class output mode; it speaks the information in a manner that is easy to comprehend when listening.

This initial version provides a basic speech subsystem for Emacs; using Emacs' power and flexibility, it has proven straightforward to add modules that customize how things are spoken, e.g. depending on the major/minor mode of a given buffer. Note that the basic speech functionality provided by Emacspeak is sufficient to use most Emacs packages effectively; adding package-specific customizations makes the interaction much smoother. This is because package-specific extensions can take advantage of the current context.

Emacspeak will only work with emacs. However, emacs can be used to run any program that has a command-line interface (ls, cd, rm, adduser, etc.). You can even run those like less or lynx which use escape sequences to control the appearance of the screen. The key to this is eterm mode, which you get with the emacs command M-x term.

Emacs is a large program, but it does not all have to be in RAM, because Linux has virtual memory. You can designate a swap partition, so that programs (or parts of programs) can be swapped out when they are not being used. You can comfortably run emacs with 8 MB of ram plus 8 MB of swap space.

This document is limited to the following:

The use of adaptive technology with Linux, and in particular, using adaptive technology to make Linux accessible to those who could not use it otherwise, is covered in the Linux Access HOWTO.

If you would like to help extend this document to cover one or more of the other alternatives, or point me to a discussion somewhere else, please contact me.

Emacspeak was written by T. V. Raman Emacspeak has a Web page at

Emacspeak supports several speech synthesizers. The software required depends on which you have.

If you have a DECtalk Express or Multivoice, you need the basic Emacspeak package, tcl (an interpreter), and tclx (extensions for tcl). You can get the source package for Emacspeak from the Emacspeak web page, or a binary package in one of the popular distributions of Linux (Slackware, Red Hat, or Debian). I build each of these packages. Since I normally run Debian, the Debian package will be available a little sooner than the others. At this writing, the most recent release of Emacspeak is version 7.0. Here are some URLs:

Note: there are European mirrors of the blinux site which you should use if they closer:
For the external DoubleTalk or LiteTalk synthesizers, you need the Emacspeak package and a separate driver which comes in the emacspeak-dt package:

For the internal DoubleTalk, you need three pieces of software: the basic Emacspeak package, the emacspeak-dt package, and a device driver. Here are some URLs for the device driver:

There is an alpha test version of a driver for the Braille 'n Speak, Braille Lite, and Type 'n Speak devices used in "speech box" mode:

Computer hardware, Unix user commands, Unix system administration, Emacs, and Emacspeak are each substantial subjects. Attempting to learn all of them at once is likely to lead to frustration. Instead, I suggest that the new user go through a sequence of stages, learning about only one system at a time.

Previous Next Contents