Ответы:
Мне удалось использовать 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
Затем перейдите в режим просмотра читателя и попробуйте.