如何更改 Ubuntu 中 Firefox Reader View(讲述人)使用的语音?

如何更改 Ubuntu 中 Firefox Reader View(讲述人)使用的语音?

**如何在 ubuntu 中更改 Firefox 阅读器视图声音**

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

我找不到任何关于该功能如何实现的文档。

答案1

我设法将festival语音设置为默认火狐

在此处输入图片描述

为了做到这一点,我们需要更改文件上的某些配置/etc/speech-dispatcher/speechd.conf。但首先,我需要解释一下它的基本工作原理。我们总是可以使用以下speech-dispatcher命令查看默认使用的语音spd-say

spd-say "Hello. How are you?"

开启后Ubuntu,默认自带的文本转语音 (TTS) 语音speech-dispatcher说话。因此,当我们使用另一个命令时,我们会听到完全相同的声音:

espeak "Hello. How are you?"

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

因此,我们需要做的是改变命令中输出的声音spd-say,一旦我们这样做了,火狐也将使用不同的TTS voice作为默认设置。我将描述使其与festival语音一起工作的过程,但我相信如果你想运行不同的,过程是相同的TTS voice。首先,我们需要安装节日

sudo apt-get install festival speech-dispatcher-festival

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

echo "Hello. How are you?" | festival --tts

现在我们需要修改文件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

这里需要做两处修改:

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

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

@reboot /usr/bin/festival --server

现在完成了!!重启后系统火狐并将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 应用程序).​​..如果这是可能的,那就意味着也可以在 Ubuntu 上运行 Ivona作为系统的默认语音,并因此使用它reader view mode火狐。虽然我现在不知道该怎么做,但这看起来是一个有趣的可能性。

答案2

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

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

在 Firefox 阅读器 GUI 中选择语音/语言的支持有限,但大多数设置必须在 OS 端(即speechd.confLinux)进行。

about:config如果您搜索“narrate”,则可以通过对话框获得一些设置:

在此处输入图片描述

我在和中尝试了很多不同的设置,about:configspeechd.conf除了 Ubuntu 自带的默认设置外,其他设置都不起作用。我的感觉是 Firefox 和语音调度程序之间的界面不太稳定,但也许你在尝试时会更幸运。

这家伙:https://bbs.archlinux.org/viewtopic.php?id=217411在 Archlinux 上配置使用 festival 作为输出似乎更成功。我尝试在 Ubuntu 18.04 上重现此问题,但无法让 Firefox 运行。

答案3

谢谢拉斐尔·穆伊纳尔斯克回答启动我的问题。以下是我所做的

安装依赖项

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
  • festvox-{rablpc16k,kallpc16k,kdlpc16k}语音语言是英语吗
  • sox,没有它,只有部分文本被读取

编辑配置

sudo vim /etc/speech-dispatcher/speechd.conf

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

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

#DefaultModule espeak-ng
DefaultModule festival

启动festival服务器

如果没有它,我只得到一些句法。

/usr/bin/festival --server

重启 Firefox

然后进入阅读器视图模式并尝试一下。

答案4

为了右声道(我认为 Linux 上最好的离线语音):

  1. 安装:

    sudo add-apt-repository ppa:linvinus/rhvoice
    sudo apt-get install rhvoice speech-dispatcher-rhvoice rhvoice-english
    
  2. 编辑/etc/speech-dispatcher/speechd.conf

    • 取消注释:AddModule "rhvoice" "sd_rhvoice" "rhvoice.conf"
    • 添加:DefaultModule rhvoice
  3. 测试:spd-say "Hello. How are you?"

可能需要重新启动系统/Firefox。

相关内容