Как я могу изменить голос, используемый Firefox Reader View (Рассказчик) в Ubuntu?

13

** Как изменить просмотр читателя Firefox голос в Ubuntu **

Голос по умолчанию, а также все альтернативные голоса очень сложны для понимания.

Я не могу найти документацию о том, как эта функция подключена.

VJ Ranga
источник

Ответы:

11

Мне удалось использовать 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

Здесь необходимо внести два изменения:

  1. Раскомментируйте строку AddModule "festival" "sd_festival" "festival.conf"
  2. Добавьте строку DefaultModule festival

Нам нужно работать festivalкак сервер, чтобы speech-dispatcherиспользовать его по умолчанию. Мы можем сделать это, добавив следующую строку в конец файла, открытого при использовании команды sudo crontab -e:

@reboot /usr/bin/festival --server

Теперь это сделано !! После перезагрузки система 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 . Ivona является запатентованным продуктом и сегодня единственным способом использовать его (насколько я знаю) , это как платить как-You-Go службу на AWS, но его голос действительно хорошо , и они звучат очень естественно.

Файл /etc/speech-dispatcher/modules/ivona.confнастроен на прослушивание сервера через порт 9123. Я думаю, что, возможно, есть способ запустить локальный сервер, который получает голоса Ivona, используя мой AWS APIs(я не уверен, но, возможно, используя часть этого приложения Node.js. что уже разработаны) ... и если это возможно, то это означает , что это также можно запустить Ivona на Ubuntu , как голос по умолчанию системы и , следовательно , использовать его с reader view modeна Firefox . Хотя я не знаю, как это сделать сейчас, похоже, это интересная возможность.

Рафаэль Муйнарск
источник
6

Голоса, используемые функцией повествования в режиме чтения 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 с ним.

Себастьян Старк
источник
1

Спасибо Рафаэлю Муйнарску за то, что он дал мне ответ. Вот что я сделал

Установить зависимости

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

Затем перейдите в режим просмотра читателя и попробуйте.

Эдуард Лопес
источник