Emacspeak for Blind Users Slackware Linux includes two methods of creating a blind-accessible distribution: the Speakup.s kernel and emacspeak. The Speakup.s kernel is configured to work with hardware speech-synthesizers which connect to a non-sighted user's computer and "speaks" whatever is sent to standard out. Not all non-sighted users have access to hardware speech-synthesizers and even those that do might find it cumbersome to carry one along with their laptop every time they go out. To account for this, Emacspeak was developed, by a non-sighted programmer, to create audio output from normal interactions in Emacs. Since Emacs is so extensible and has modes for shell access, office work, email, web browsing, file management, and so much more, it can act as the primary UI for the rest of the OS.
Prerequisites Before you install Emacspeak, you should (obviously) first have installed Emacs. If you excluded this from your initial install, then add it with slackpkg or pkgtool (it can be found in application set "e"). You should also have at least one user (not including root) on the system, and this user should be a member of the audio group.
Installing Emacspeak Emacspeak can be installed over the network with slackpkg. See for more information. darkstar:~# slackpkg install emacspeak You can also install it from the install media using pkgtool or installpkg. Emacspeak can be found in the /extra directory on the disc. Once Emacspeak has been installed, it needs to be configured, but you can test that it has been installed by simply typing emacspeak at a shell prompt. Emacs will start and return some errors in the minibuffer; this is expected, since we have yet to configure the backend for sound. To exit emacs, type control-x control-c.
Configuring Emacspeak In order for emacspeak to produce sound, your system requires speech synthesizer software. As of this writing, flite is the most actively maintained and most reliable free speech synthesizer for Linux. While it does not ship with Slackware, it can be obtained as an RPM package from LINK HERE Use rpm2tgz to convert the RPM package to a Slackware Package, and install using installpkg as discussed in . You can test flite once it has been installed with the command flite -t foo. You should hear flite speak "foo". If you do not, then either flite has not been installed correctly, or your computer's sound is not working or is muted. Check alsamixer to adjust the levels of your speakers, use lsmod to find out if your computer speakers are being recognized at all, and which flite to ensure that flite actually got installed. With flite and emacspeak confirmed, your system now has both the user interface and the speech synthesizer to vocalize input and output. The final component necessary is a speech server to bridge these two separate parts. The speech server that has been developed for flite is eflite, and is available directly from its homepage at eflite.sourceforge.net. To build eflite from source code: darkstar:~$ tar -xf eflite*gz && cd eflite* darkstar:~$ make darkstar:~$ make test The test should play a voice confirming that eflite is working properly. If you hear nothing, do not install eflite until you diagnose and repair the problem. Assuming all goes well, install eflite: darkstar:~$ su -c 'make install' An environment variable needs to be established so that emacspeak knows what speech server to use: darkstar:~$ echo "DTK_PROGRAM=/usr/local/bin/eflite" >> ~/.bash_profile darkstar:~$ echo "export DTK_PROGRAM" >> ~/.bash_profile darkstar~:$ source ~/.bash_profile Launch emacspeak and you will find that every interaction is narrated.
Usability Hacks Strictly speaking, the emacspeak system is now fully configured. However, there are two useful modifications that should be made to help usability. As it is now, when the system boots, it runs through the usual init sequence and stops silently at a login prompt waiting for the user to enter their information. Obviously a silent prompt is meaningless to a non-sighted user. To create an audible login prompt, modify a startup script such that some command is initiated at the end of the boot sequence. The final script to be executed during the normal init sequence is /etc/rc.d/rc.local, so modify it as root: darkstar:~# echo 'exec /usr/bin/flite -t "please log in."' >> /etc/rc.d/rc.local Now the non-sighted user will know when it is time to log in to the computer, but immediately after logging in the same problem exists: the user is given a silent shell prompt without any confirmation that their login was successful or that the computer awaits their next command. Probably the most sensible way to deal with this problem is to have emacspeak automatically launch after a successful login; this provides audio cues that the login was successful as well as eliminating the redundancy of manually launching emacspeak every time the user logs into the system. darkstar:~$ echo 'exec /usr/bin/emacspeak' >> ~/.bash_profile Reboot and test the new configuration; not only should the user be audibly prompted to login, but immediately after login emacspeak should launch. In fact, any new shell that the user creates will launch an instance of emacspeak.
Combined with the inherent power of GNU emacs and the addition of all of its extensions such as the w3m web browser, eshell console, wl email client, org-mode organizer, dired file manager, emms multimedia player, a non-sighted user has a robust, stable, and powerful Slackware Linux system.