Making Linux Accessible for the Visually Impaired with Speakup
Speakup has a windowing system, which can be very useful in certain programs where a specific area of the screen that is not tracked by the cursor is updated frequently. The Speakup key plus F2 is used to set the window dimensions; the Speakup key plus F3 clears the window settings, allowing you to set a new one; and the Speakup key plus F4 silences the window, preventing it from being read automatically. However, you can read windows manually with the Speakup key plus the numpad plus key.
Work is now being done on color and highlighting recognition, which will allow ncurses-based programs to function even better than they do now, especially in menus. This means that text that is a different color from surrounding text will be given a higher priority, thus read first.
There are several ways to get help on Speakup. First, you can load the module called speakup_keyhelp, and press the Speakup key plus F1. This puts you in a key identification mode, which can be exited by pressing the spacebar. When in this mode, Speakup speaks the description of any key that is assigned to a Speakup function, and allows you to arrow through the list of assignments. Another way to get help is to consult the guide provided with Speakup under Documentation in the kernel tree, or on the Web site. This document has many useful instructions, which can get a new user started with Speakup, as well as refresh an existing user's memory.
The number one thing that sets Speakup apart from other screen reader programs is the fact that it is literally part of the kernel. The install script applies a few patches to some kernel source files and copies the relevant Speakup sources to drivers/char in the kernel tree. Then, when make config is executed, there is a section for console speech output and Speakup. There you can choose what synthesizers you would like to build directly in to the kernel or as modules, though software speech support can be built only as a module.
You can also select what synthesizer you want to be the default at startup. Thus, if you build everything in to the kernel, you have a fully talking Linux system from startup to shutdown. This allows a blind person to install Linux without any sighted assistance whatsoever, because every step in the installation talks.
There are Speakup-modified ISO images for three major distros: Debian, Fedora and Slackware. Slackware has actually incorporated Speakup into its official installation setup, simplifying things even further. There is also a Speakup-enabled version of Knoppix, which is a basic Linux distro on CD. This allows people wanting a quick look at a Linux system simply to boot the CD, have it come up talking and not have to worry about installation unless they're interested. It also can be very useful for crash recovery.
As previously mentioned, Speakup supports software speech synthesizers with some user-space support. Some of the more famous software synthesizers include Festival, Flite, Freetts and IBM's VivaVoice Outloud, which is no longer supported. Software speech in Speakup centers around another program called Speech Dispatcher. Speech Dispatcher is a framework to provide a single interface to multiple software synthesizers. It does this through a series of programs that provide a Speech Dispatcher interface to elements such as Emacs as well as libraries for a number of languages. It also has a tcp protocol for transmitting speech from a server to client that does the actual output.
Speakup has a generic software synthesizer driver called /dev/softsynth, which outputs the text that would normally be sent to a hardware synthesizer. A module for Speech Dispatcher, called speechd-up, takes the text from /dev/softsynth and sends it to Speech Dispatcher and a software synthesizer of the user's choice. Support exists for Festival, Flite, Dectalk software and generic synthesizers. You also can integrate other synthesizers with some tweaking of configuration files. Performance-wise, software synthesizers have a slight lag in responsiveness compared to hardware synthesizers, but the overall result is not that bad given the circumstances.
The first step is to get Speech Dispatcher working, which is not hard at all; just compile it and you're set to go. You have to edit the configuration file to tell it what synthesizer you want to use; by default it uses Flite. Then, compile and install speechd-up. To start software speech, load the speakup_sftsyn module if you haven't already, and run speechd-up. If you do this through an init script, you still will get an early-talking system, though not entirely in the kernel.
Getting Started with DevOps - Including New Data on IT Performance from Puppet Labs 2015 State of DevOps Report
August 27, 2015
12:00 PM CDT
DevOps represents a profound change from the way most IT departments have traditionally worked: from siloed teams and high-anxiety releases to everyone collaborating on uneventful and more frequent releases of higher-quality code. It doesn't matter how large or small an organization is, or even whether it's historically slow moving or risk averse — there are ways to adopt DevOps sanely, and get measurable results in just weeks.
Free to Linux Journal readers.Register Now!
|Secure Server Deployments in Hostile Territory, Part II||Jul 29, 2015|
|Hacking a Safe with Bash||Jul 28, 2015|
|KDE Reveals Plasma Mobile||Jul 28, 2015|
|Huge Package Overhaul for Debian and Ubuntu||Jul 23, 2015|
|diff -u: What's New in Kernel Development||Jul 22, 2015|
|Shashlik - a Tasty New Android Simulator||Jul 21, 2015|
- Secure Server Deployments in Hostile Territory, Part II
- Hacking a Safe with Bash
- KDE Reveals Plasma Mobile
- Huge Package Overhaul for Debian and Ubuntu
- Home Automation with Raspberry Pi
- The Controversy Behind Canonical's Intellectual Property Policy
- Shashlik - a Tasty New Android Simulator
- Embed Linux in Monitoring and Control Systems
- diff -u: What's New in Kernel Development
- Purism Librem 13 Review