Answers:
我设法将festival
语音作为Firefox的默认设置。
为此,我们需要在file上更改一些配置/etc/speech-dispatcher/speechd.conf
。但是首先,我需要解释其工作原理。通过speech-dispatcher
使用以下命令,我们始终可以看到默认的声音是什么spd-say
:
spd-say "Hello. How are you?"
开启时Ubuntu
,随附的默认Texto To Speech(TTS)语音speech-dispatcher
是espeak。因此,当使用此其他命令时,我们会听到完全相同的声音:
espeak "Hello. How are you?"
发生这种情况是因为spd-say
仅使用espeak
声音作为输出。而且,Firefox也是一样,它使用配置speech-dispatcher
为输出的任何语音在阅读器查看模式(Ctrl+Alt+R
)下阅读网页。
因此,我们在这里需要做的是更改spd-say
命令中输出的声音,一旦完成,Firefox也将使用其他TTS voice
默认值。我将描述使其与festival
声音配合使用的过程,但是如果您要运行其他方法,我相信该过程是相同的TTS voice
。首先,我们需要安装Festival:
sudo apt-get install 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
有必要在此处进行两项更改:
AddModule "festival" "sd_festival" "festival.conf"
DefaultModule festival
festival
为了使其speech-dispatcher
默认使用,我们需要作为服务器运行。我们可以通过使用以下命令在打开的文件末尾添加以下行来做到这一点sudo crontab -e
:
@reboot /usr/bin/festival --server
现在完成了!!重新启动后系统的Firefox和spd-say
将要使用的festival
声音作为输出。
我相信,使新的声音发挥作用的过程Firefox
将始终相同:
取消注释我们已安装(/etc/speech-dispatcher/speechd.conf
)的新TTS语音的模块。
为我们想要的TTS语音设置新的默认线路(/etc/speech-dispatcher/speechd.conf
)。
在文件夹内文件上指定的端口上运行服务器/etc/speech-dispatcher/modules/
。
引起我注意的是,那里有一个用于Ivona声音的模块。伊沃娜是一个专有的产品,今天用它(据我所知)的唯一途径是作为一个随收随付你去服务的AWS
,但它的声音是非常好,他们的声音很自然。
该文件/etc/speech-dispatcher/modules/ivona.conf
被配置为侦听端口9123上的服务器。我认为也许有一种方法可以运行本地服务器来使用我的Ivona声音AWS APIs
(我不确定,但也许使用了此 Node.js应用程序的一部分)(这已经开发了)...如果可能的话,这意味着也有可能在Ubuntu上运行Ivona作为系统的默认语音,并因此reader view mode
在Firefox上使用它。尽管我现在不知道该怎么做,但这似乎是一种有趣的可能性。
firefox阅读器模式的旁白功能使用的声音取决于您在其上运行的平台。在Linux上,firefox将用于speech-dispatcher
将文本呈现为人工语音。
因此,在/etc/speech-dispatcher/speechd.conf
firefox中应该使用语音分配器设置()中配置的任何内容。有多种引擎和语音可用于语音调度程序,其中一些可以通过Ubuntu软件包(例如speech-dispatcher-espeak-ng
或)安装speech-dispatcher-festival
。
从firefox阅读器GUI中选择语音/语言的支持有限,但是大多数设置必须speechd.conf
在Linux 上的OS端进行。
about:config
如果您搜索“旁白”,则可以通过对话框使用某些设置:
我在about:config
和中都使用了不同的设置进行了相当多的实验speechd.conf
,但是除了Ubuntu附带的默认设置之外,其他都无法正常工作。我的感觉是,firefox和语音分派器之间的接口不是很稳定,但是也许您更幸运地进行了实验。
这个家伙:https : //bbs.archlinux.org/viewtopic.php?id=217411似乎在Archlinux上配置东西以使用Festival作为输出方面取得了更大的成功。我试图在Ubuntu 18.04上重现它,但无法让Firefox与它一起运行。
感谢Rafael Muynarsk对我的启动给予答复。这是我所做的
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
然后进入阅读器查看模式并尝试。