6. 常见问题解答 (FAQs)

本节介绍安装 Emacspeak 时遇到的一些常见问题。如果此处未涵盖您的问题,您应该查看 Emacspeak 邮件列表存档,地址为http://www.cs.vassar.edu/~priestdo/emacspeak/。您可以在那里找到更多问题的答案。

我系统的音量非常低 - 如何增加音量?

增加系统音量最简单的方法是使用扬声器。但是,有时扬声器不可行(例如,使用笔记本电脑),或者即使使用扬声器,音量仍然不够大。在这种情况下,您可以使用应用程序 aumix 来增加系统音量。

Aumix 随附于许多 Linux 发行版,但如果您的发行版没有 aumix,您可以从 http://prdownloads.sourceforge.net/aumix/aumix-2.7.tar.gz 下载。最新版本是 2.7。

要使用 aumix 增加系统音量,请键入命令 aumix -v +100aumix -w +100。数值是音量百分比,因此在本例中 100 表示 100%。您可能需要尝试不同的设置以找到最适合您的设置。

有关使用 aumix 的更多信息,请在命令提示符下键入 aumix -h

sndconfig 无法识别我的声卡。我该怎么办?

如果 sndconfig 无法识别您的声卡,您应该查看是否可以下载适用于您声卡的驱动程序。高级 Linux 声音架构 (ALSA) 网站 http://www.alsa-project.org 列出了许多声卡及其驱动程序(如果可用)。另一种选择是适用于 Linux 的开放声音系统 (OSS)。OSS 是 Linux 内核驱动程序的商业实现,支持的声卡列表可以在 http://www.4front-tech.com/osshw.html 中找到。以前有一个免费版本,但显然不再可用(如果有人知道不同的情况,请告诉我)。

Note注意
 

一些用户报告了 ViaVoice 和 ALSA 驱动程序的兼容性问题。我无法从各种邮件列表存档中确定确切的问题或解决方案,因此如果有人能提供有关此问题的更多信息,请告诉我。

当我尝试安装 ViaVoice RTK rpm 文件时,出现错误“libXm.so.1 is missing”。怎么回事?

文件libXm.so.1lesstif发行版的一部分,它也是一个共享库。此错误消息表明lesstif未安装,或者系统无法找到该文件。通常,共享库通过符号链接引用到实际的共享库文件,该文件可能命名为类似libXm.so.1.0.17。当指向共享库的符号链接的名称与实际共享库文件的名称不同时,即使共享库存在,系统也可能无法找到它。如果另一个程序依赖于找不到的共享库,则会产生如上所示的错误消息。在libXm.so.1的情况下,lesstif 仅用于图形演示程序。因此,如果您不打算使用图形模式,则可以使用 --nodeps 选项安全地安装 ViaVoice RTK rpm,该选项告诉 ViaVoice 忽略任何缺失的依赖项。

Note注意
 

请注意,这只是一种解决方法,而不是“修复”,并且它仅适用于 ViaVoice 文本到语音 (TTS)。如果您使用任何 ViaVoice 语音识别软件,此解决方案可能不起作用。

当我为 Emacspeak 编译 ViaVoice TTS 服务器时,出现错误“tcleci.cpp:43:17: eci.h: No such file or directory”。eci.h 在哪里?

当您以错误的顺序安装 ViaVoice RTK 和 SDK,或者未安装 SDK 时,会出现此错误消息。

文件eci.h应该在/usr/include目录中。如果不在那里,请重新安装 ViaVoice TTS、RTK,然后安装 ViaVoice TTS SDK。检查以确保eci.h/usr/include目录中,然后将目录更改为/usr/share/emacs/site-lisp/emacspeak/servers/linux-outloud,然后在命令提示符下键入 make。现在应该可以成功生成 ViaVoice TTS。

当我启动 Emacspeak 时,一直收到错误“process speaker not running”。怎么回事?

如果您收到此错误消息,则可能有多种可能的原因。本节逐步介绍查找和纠正此问题的方法。

第一步是确保您已正确安装 tcl,如下列说明中所述。

  1. 首先,确保您在/usr/share/emacs/site-lisp/emacspeak/servers目录中。

  2. 在命令提示符下,键入 tcl 语音服务器名称。最常见的语音服务器是 dtk-expoutloud

如果您收到类似 bash: tcl:: command not found 的错误,则表示 tcl/tclx 未在您的系统上正确安装。您必须获取最新版本的 tcl 或 tclx 并安装它,Emacspeak 才能工作。

如果一切安装正确,您应该听到声音说“IBM ViaVoice. This is Emacspeak”或类似的内容。还应该出现 % 命令提示符。在提示符下,键入 q "this is a test."。然后按 Return 并键入 d。此命令运行语音,因此您应该听到“this is a test”的语音。如果您听到这个,则服务器脚本正在正确运行。您可以键入 exit 退出 tcl。

当您键入 tcl语音服务器名称,然后获得命令提示符时,您也可能会收到类似 stdiosynth executable not found 的错误。测试表明,即使 stdiosynth 已正确安装且 Emacspeak 正在工作,也可能会出现此错误。即使您收到此错误消息,您仍然应该获得 % 命令提示符,因此您应该能够测试脚本。

如果脚本测试不成功(如果找到 tcl 并且您获得了%提示符,但您没有听到任何语音),下一步是确保您的profile文件中包含正确的行,以让 Emacspeak 知道在哪里找到语音服务器。要检查这一点,请按照以下步骤操作

  1. 转到您的/etc目录,然后使用您喜欢的文本编辑器打开名为profile.

  2. 确保文件中包含以下行

     export DTK_PROGRAM DTK_PROGRAM=name of speech server

    最常见的语音服务器是 outlouddtk-exp

如果这些行不在您的profile文件中,添加它们然后重新测试 tcl。如果您使用 ViaVoice TTS 作为您的合成器,此时 Emacspeak 应该可以正常工作。如果您使用的是硬件合成器,但仍然没有声音,请检查以确保环境变量DTK_PORT在您的/etc/profile文件中正确设置。

变量DTK_PORT指定您的硬件合成器插入计算机的哪个端口。在 Linux 下,如果您的合成器插入 com1,您必须将DTK_PORT设置为/dev/ttyS0,如果它在 com2 中,则DTK_PORT应设置为/dev/ttyS1。要设置此变量,请按照以下步骤操作

  1. 打开您的profile文件,该文件位于/etc目录中。

  2. 查找变量DTK_PORT。如果此变量不存在,请滚动到profile底部并添加以下行

    export DTK_PORT=/dev/ttySX

    在此行中,“X”应替换为正确的端口号,如上所述。

  3. 完成后,保存并关闭profile文件中正确设置。

最后,重新测试 tcl,如果它工作,则重新启动 Emacspeak。Emacspeak 应该可以正常工作。

如果您有硬件合成器但仍然没有语音,您可能没有使用串行端口进行合成器所需的必要权限。解决此问题的方法有很多,最佳解决方案取决于您的操作环境。例如,如果您在多用户环境中,控制对串行设备的访问权限可能是一个问题。选项如下:

  • 将串行设备的所有权更改为运行 Emacspeak 的用户。为此,请在命令提示符下键入 chown 用户名 /dev/ttyS0,然后键入 chmode u+rw dev/ttyS0

  • 将用户添加到与串行设备关联的组。在 Red Hat 系统上,这通常是组 tty。为此,请编辑/etc/group文件并找到以 tty: 开头的行。在该行的末尾,添加“,用户名”,其中 username 是您的用户名。

  • 为所有用户提供对串行设备的读/写访问权限。这是最不安全的解决方案,但如果您是系统上的唯一用户,则无关紧要。要提供读/写访问权限,请确保您是 root 用户,并在命令提示符下键入 chmod o+rw /dev/ttyS0