Ответы:
Мне удалось использовать festival
голос по умолчанию в Firefox .
Для этого нам нужно изменить некоторые конфигурации в файле /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
. Для начала нам нужно установить фестиваль :
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
будет всегда той же самой:
Раскомментируйте модуль нового голоса TTS, который мы установили ( /etc/speech-dispatcher/speechd.conf
).
Установите новую линию по умолчанию для голоса TTS, который мы хотим ( /etc/speech-dispatcher/speechd.conf
).
Запустите сервер на порт, указанный в файлах внутри папки /etc/speech-dispatcher/modules/
.
Что привлекло мое внимание на это то, что там есть модуль для голосов Ivona . Ivona является запатентованным продуктом и сегодня единственным способом использовать его (насколько я знаю) , это как платить как-You-Go службу на AWS
, но его голос действительно хорошо , и они звучат очень естественно.
Файл /etc/speech-dispatcher/modules/ivona.conf
настроен на прослушивание сервера через порт 9123. Я думаю, что, возможно, есть способ запустить локальный сервер, который получает голоса Ivona, используя мой AWS APIs
(я не уверен, но, возможно, используя часть этого приложения Node.js. что уже разработаны) ... и если это возможно, то это означает , что это также можно запустить Ivona на Ubuntu , как голос по умолчанию системы и , следовательно , использовать его с reader view mode
на Firefox . Хотя я не знаю, как это сделать сейчас, похоже, это интересная возможность.
Голоса, используемые функцией повествования в режиме чтения Firefox, зависят от платформы, на которой вы его запускаете. В Linux Firefox будет использовать speech-dispatcher
для перевода текста в искусственную речь.
Поэтому все, что вы настроили в настройках диспетчера речи ( /etc/speech-dispatcher/speechd.conf
), должно быть подобрано и использовано Firefox. Для диспетчера речи доступны различные механизмы и голоса, некоторые из которых могут быть установлены через пакеты Ubuntu, например, speech-dispatcher-espeak-ng
или speech-dispatcher-festival
.
Существует ограниченная поддержка для выбора голосов / языков из графического интерфейса Firefox Reader, но большинство настроек должны быть сделаны на стороне ОС, то есть speechd.conf
на Linux.
Некоторые настройки доступны через about:config
диалог, если вы ищете «повествовать»:
Я экспериментировал совсем немного с различными параметрами в обоих, about:config
и speechd.conf
, но не мог ничего работать , но по умолчанию , которая поставляется с Ubuntu. У меня такое ощущение, что интерфейс между firefox и диспетчером речи не очень стабилен, но, возможно, вам больше повезло в экспериментах.
Этот парень: https://bbs.archlinux.org/viewtopic.php?id=217411, похоже, добился большего успеха в настройке Archlinux для использования фестиваля в качестве выходных данных. Я пытался воспроизвести это на Ubuntu 18.04, но так и не смог запустить firefox с ним.
Спасибо Рафаэлю Муйнарску за то, что он дал мне ответ. Вот что я сделал
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
Затем перейдите в режим просмотра читателя и попробуйте.