如何在 Ubuntu 中更改 Firefox Reader View (Narrator) 使用的语音?

VJ *_*nga 21 firefox text-to-speech

**如何在 ubuntu 中更改 firefox 阅读器查看语音**

默认语音以及所有替代语音都很难理解。

我找不到有关此功能如何连接的任何文档。

Raf*_*rsk 20

我设法festivalFirefox 上默认使用语音。

在此处输入图片说明

为此,我们需要更改文件/etc/speech-dispatcher/speechd.conf. 但首先,我需要解释它是如何工作的基本思想。我们总是可以speech-dispatcher使用以下命令查看默认使用的语音是什么spd-say

spd-say "Hello. How are you?"
Run Code Online (Sandbox Code Playgroud)

在 上Ubuntu,随附的默认文本到语音 (TTS) 语音speech-dispatcherespeak。因此,当我们使用另一个命令时,我们会听到完全相同的声音:

espeak "Hello. How are you?"
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为spd-say只是使用espeak声音作为输出。好吧,Firefox 也是如此,它使用任何配置的语音speech-dispatcher作为输出,以阅读器视图模式( Ctrl+Alt+R)阅读网页。

所以,我们在这里需要做的是改变spd-say命令中输出的声音,一旦我们这样做,Firefox也将使用不同的TTS voice默认值。我将描述使其与festival声音一起工作的过程,但我相信如果您想运行不同的TTS voice. 首先,我们需要安装节日

sudo apt-get install festival speech-dispatcher-festival
Run Code Online (Sandbox Code Playgroud)

我们可以在命令行中输入以下命令来测试它的声音:

echo "Hello. How are you?" | festival --tts
Run Code Online (Sandbox Code Playgroud)

现在我们需要更改文件speechd.conf。所以我们sudo vi /etc/speech-dispatcher/speechd.conf在终端上输入 205 行,我们将看到以下注释配置:

#AddModule "espeak"       "sd_espeak"   "espeak.conf"
AddModule "festival"     "sd_festival"  "festival.conf"
#AddModule "flite"        "sd_flite"     "flite.conf"
#AddModule "ivona"    "sd_ivona"    "ivona.conf"
#AddModule "pico"        "sd_pico"     "pico.conf"
#AddModule "espeak-generic" "sd_generic" "espeak-generic.conf"
#AddModule "espeak-mbrola-generic" "sd_generic" "espeak-mbrola-generic.conf"
#AddModule "swift-generic" "sd_generic" "swift-generic.conf"
#AddModule "epos-generic" "sd_generic"   "epos-generic.conf"
#AddModule "dtk-generic"  "sd_generic"   "dtk-generic.conf"
#AddModule "pico-generic"  "sd_generic"   "pico-generic.conf"
#AddModule "ibmtts"       "sd_ibmtts"    "ibmtts.conf"
#AddModule "cicero"        "sd_cicero"     "cicero.conf"

# DO NOT REMOVE the following line unless you have
# a specific reason -- this is the fallback output module
# that is only used when no other modules are in use
#AddModule "dummy"         "sd_dummy"      ""

# The output module testing doesn't actually connect to anything. It
# outputs the requested commands to standard output and reads
# responses from stdandard input. This way, Speech Dispatcher's
# communication with output modules can be tested easily.

# AddModule "testing"

# The DefaultModule selects which output module is the default.  You
# must use one of the names of the modules loaded with AddModule.

#DefaultModule espeak
DefaultModule festival
Run Code Online (Sandbox Code Playgroud)

这里有必要做两个改变:

  1. 取消注释该行 AddModule "festival" "sd_festival" "festival.conf"
  2. 添加行 DefaultModule festival

我们需要festival作为服务器运行才能speech-dispatcher默认使用它。我们可以通过在使用命令时打开的文件末尾添加以下行来实现sudo crontab -e

@reboot /usr/bin/festival --server
Run Code Online (Sandbox Code Playgroud)

现在完成了!!重新启动系统Firefox 后spd-say将使用festival语音作为输出。


附加信息

我相信让新声音起作用的程序Firefox将始终相同:

  1. 取消对我们安装的新 TTS 语音模块的注释 ( /etc/speech-dispatcher/speechd.conf)。

  2. 为我们想要的 TTS 语音设置一个新的默认行 ( /etc/speech-dispatcher/speechd.conf)。

  3. 在文件夹内文件上指定的端口上运行服务器/etc/speech-dispatcher/modules/

引起我注意的是那里有一个用于Ivona声音的模块。伊沃娜是一个专有的产品,今天用它(据我所知)的唯一途径是作为一个随收随付你去服务AWS,但它的声音是非常好,他们的声音很自然。

该文件/etc/speech-dispatcher/modules/ivona.conf配置为侦听端口 9123 上的服务器。我想也许有一种方法可以运行本地服务器,使用我的AWS APIs(我不确定,但可能使用Node.js 应用程序的一部分来获取 Ivona 声音这已经开发了)......如果可能的话,这意味着也可以在 Ubuntu运行 Ivona作为系统的默认语音,并因此reader view modeFirefox上使用它。虽然我现在不知道该怎么做,但看起来是一个有趣的可能性。


Seb*_*ark 7

firefox 阅读器模式的叙述功能使用的声音取决于您运行它的平台。在 Linux 上,firefox 将用于speech-dispatcher将文本渲染为人工语音。

因此,您在语音调度程序设置 ( /etc/speech-dispatcher/speechd.conf) 中配置的任何内容都应该被 firefox 接收和使用。语音调度程序有各种可用的引擎和语音,其中一些可以通过 Ubuntu 软件包安装,例如speech-dispatcher-espeak-ngspeech-dispatcher-festival.

从 firefox 阅读器 GUI 中选择语音/语言的支持有限,但大多数设置必须在操作系统端进行,即speechd.conf在 linux 上。

about:config如果您搜索“叙述”,则可以通过对话框使用某些设置:

在此处输入图片说明

我在about:config和中对不同的设置进行了大量试验speechd.conf,但除了 Ubuntu 附带的默认设置外,其他任何东西都无法正常工作。我得到的感觉是firefox和speech-dispatcher之间的接口不是很稳定,但也许你更幸运地尝试。

这家伙:https : //bbs.archlinux.org/viewtopic.php?id=217411 似乎在 Archlinux 配置事物以使用节日作为输出方面取得了更大的成功。我试图在 Ubuntu 18.04 上重现这个,但永远无法让 Firefox 运行它。


Édo*_*pez 5

感谢Rafael Muynarsk的回答,让我启动。这是我所做的

安装依赖项

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
Run Code Online (Sandbox Code Playgroud)
  • festvox-{rablpc16k,kallpc16k,kdlpc16k}是英语的语音语言
  • sox,没有它,只有阅读到的文本的某些部分

编辑配置

sudo vim /etc/speech-dispatcher/speechd.conf
Run Code Online (Sandbox Code Playgroud)

禁用espeak相关配置并启用festival一项

#AddModule "espeak-ng"    "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival"     "sd_festival"  "festival.conf"

#DefaultModule espeak-ng
DefaultModule festival
Run Code Online (Sandbox Code Playgroud)

启动festival服务器

没有它我只能得到一些句子。

/usr/bin/festival --server
Run Code Online (Sandbox Code Playgroud)

重新启动火狐浏览器

然后进入读者查看模式并尝试一下。