6. Frequently Asked Questions (FAQs)

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.

The volume on my system is very low - how can I increase it?

The easiest way to turn up system volume is with a set of speakers. However, sometimes speakers aren't feasible (for example, with a laptop), or even with speakers, the volume is still not loud enough. In this case, you can use the application aumix to increase your system's volume.

Aumix comes with many distributions of Linux, but if your distro doesn't have aumix, you can download it from http://prdownloads.sourceforge.net/aumix/aumix-2.7.tar.gz. The latest version is 2.7.

To use aumix to increase your system's volume, type the command aumix -v +100 or aumix -w +100. The numerical value is the percentage volume, so in this case 100 means 100%. You may want to try different settings to find the most comfortable one for you.

For more information on using aumix, type aumix -h at the command prompt.

sndconfig doesn't recognize my soundcard. What should I do?

If sndconfig doesn't recognize your soundcard, you should see if you can download a driver for your card. The Advanced Linux Sound Architecture (ALSA) Web site, located at http://www.alsa-project.org, lists many sound cards, along with their drivers (if available). Another alternative is the Open Sound System (OSS) for Linux. OSS is a commercial implementation of the Linux kernel drivers, and a list of supported cards can be found at http://www.4front-tech.com/osshw.html. There used to be a free version, but apparently it is no longer available (if anyone knows differently, please let me know).

Note

Some users have reported compatibility problems with ViaVoice and ALSA drivers. I have been unable to determine the exact problem or solution from various mailing archives, so if anyone can provide more information on this issue, please let me know.

When I try to install the ViaVoice RTK rpm file, I get the error "libXm.so.1 is missing." What's wrong?

The file libXm.so.1 is part of the lesstif distribution, and it is also a shared library. This error message indicates that either lesstif is not installed, or that the system is unable to locate the file. Often shared libraries are referenced by a symbolic link to the real shared library file, which may be named something like libXm.so.1.0.17. When the name of the symbolic link to the shared library and the name of the real shared library file differ, the system may not be able to find the shared library, even if it exists. If another program depends on a shared library that cannot be found, an error message like the one above results. In the case of libXm.so.1, lesstif is only needed for graphical demonstration programs. Thus, if you do not plan to use the graphical mode, it is safe to install the ViaVoice RTK rpm using the option --nodeps, which tells ViaVoice to ignore any missing dependencies.

Note

Note that this is only a workaround, not a "fix," and that it only works for ViaVoice Text-to-speech (TTS). This solution may not work if you use any of the ViaVoice voice recognition software.

When I compile the ViaVoice TTS server for Emacspeak, I get an error "tcleci.cpp:43:17: eci.h: No such file or directory." Where is eci.h?

This error message appears when you install the ViaVoice RTK and SDK in the wrong order, or if the SDK is not installed.

The file eci.h should be in the /usr/include directory. If it is not there, re-install ViaVoice TTS, RTK, then install ViaVoice TTS SDK. Check to make sure eci.h is in the /usr/include directory, then change directories to /usr/share/emacs/site-lisp/emacspeak/servers/linux-outloud, and type make at the command prompt. The ViaVoice TTS should now make successfully.

When I start Emacspeak, I keep getting the error "process speaker not running." What's wrong?

If you are getting this error message, there are several possible causes. This section steps though finding and correcting this problem.

The first step is to make sure that you have tcl correctly installed, as explained in the following instructions.

  1. First, make sure you are in the /usr/share/emacs/site-lisp/emacspeak/servers directory.

  2. At the command prompt, type tcl name of speech server. The most common speech servers are dtk-exp and outloud.

If you get an error such as bash: tcl:: command not found, it means that tcl/tclx is not correctly installed on your system. You must get the latest version of either tcl or tclx and install it before Emacspeak will work.

If everything is installed correctly, you should hear a voice saying "IBM ViaVoice. This is Emacspeak" or something similar. A % command prompt should also appear. At the prompt, type q "this is a test." Then press Return and type d. This command runs the speech, so you should hear "this is a test" spoken. If you hear this, the server script is running properly. You can type exit to quit tcl.

You may also get an error like stdiosynth executable not found when you type tclname of speech server, and then get a command prompt. Testing has shown that this error can appear even when stdiosynth is correctly installed and Emacspeak is working. Even if you get this error message, you should still get the % command prompt, so you should be able to test the script.

If the script test was unsuccessful, (if tcl was found and you got a % prompt but you did not hear any speech), the next step is to make sure that you have the correct lines in your profile file to let Emacspeak know where to find the speech server. To check this, follow these steps:

  1. Go to your /etc directory, then use you favorite text editor to open the file namedprofile.

  2. Make sure the following lines are in the file:

     export DTK_PROGRAM DTK_PROGRAM=name of speech server

    The most common speech servers, are outloud and dtk-exp.

If these lines are not in your profile file, add them and then re-test tcl. If you are using ViaVoice TTS as your synthesizer, Emacspeak should work correctly at this point. If you are using a hardware synthesizer and you still do not get any sound, check to make sure that the environment variable DTK_PORT is set correctly in your /etc/profile file.

The variable DTK_PORT specifies which port your hardware synthesizer is plugged into on your computer. Under Linux, if your synthesizer is plugged into com1, you must set DTK_PORT to/dev/ttyS0, and if it is in com2, then DTK_PORT should be set to /dev/ttyS1. To set this variable, follow these steps:

  1. Open your profile file located in the /etc directory.

  2. Look for the variable DTK_PORT. If this variable does not exist, scroll to the bottom of the profile and add the following line:

    export DTK_PORT=/dev/ttySX

    In this line, the "X" should be replaced by the correct port number, as described above.

  3. When you are finished, save and close the profile file.

Finally, retest tcl, and if it works, restart Emacspeak. Emacspeak should work correctly.

If you have a hardware synthesizer and are still not getting any speech, you probably do not have the necessary permissions to use the serial port for your synthesizer. There are a number of solutions to this problem, and the best solution depends on your operating environment. For example, if you are in a multi-user environment, controlling the access permissions to the serial device may be a concern. The options are as follows:

  • Change the ownership of the serail device to the user running Emacspeak. To do this, type chown username /dev/ttyS0 at the command prompt then type chmode u+rw dev/ttyS0.

  • Add the user to the group associated with the serial device. On Red Hat systems this is usually the grouptty. To do this edit the /etc/group file and find the line starting with tty:. At the end of that line, add ",username" where username is your username.

  • Give read/write access to the serial device for all users. This is the least secure solution, but if you are the only user on the system, it will not matter. To give read/write access, make sure you are the root user and at the command prompt type chmod o+rw /dev/ttyS0.