Como posso alterar a voz usada pelo Firefox Reader View (Narrator) no Ubuntu?

8

A voz padrão e todas as vozes alternativas são muito difíceis de entender.

Não consigo encontrar nenhuma documentação sobre como esse recurso está conectado.

    
por VJ Ranga 07.09.2017 / 08:58

2 respostas

6

Consegui usar a voz festival como padrão em Firefox .

Parafazerisso,precisamosalteraralgumasconfiguraçõesnoarquivo/etc/speech-dispatcher/speechd.conf.Masprimeiro,precisoexplicaraideiabásicadecomoissofunciona.Semprepodemosverqualvozéapadrãousadaporspeech-dispatcherusandoocomandospd-say:

spd-say"Hello. How are you?"

Em Ubuntu , a voz padrão do Texto para Fala (TTS) que vem com speech-dispatcher é espeak . Então, ouvimos exatamente a mesma voz quando usamos esse outro comando:

espeak "Hello. How are you?"

Isso acontece porque spd-say está usando apenas espeak vozes como saída. E bem, o Firefox faz o mesmo, ele usa qualquer voz configurada em speech-dispatcher como saída para ler páginas da web no modo de visualização do leitor ( Ctrl+Alt+R ).

Então, o que precisamos fazer aqui é alterar a voz que vem como saída no comando spd-say e, quando fizermos isso, Firefox também usará um TTS voice diferente como padrão. Vou descrever o processo de fazê-lo funcionar com a voz festival , mas acredito que o procedimento seja o mesmo se você quiser executar um TTS voice diferente. Primeiro, precisamos instalar o festival :

sudo apt-get install festival

Podemos testar sua voz na linha de comando digitando:

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

Agora precisamos alterar o arquivo speechd.conf . Então, digitamos sudo vi /etc/speech-dispatcher/speechd.conf no terminal e ao redor da linha 205 veremos a seguinte parte das configurações comentadas:

#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

É necessário fazer duas alterações aqui:

  1. Descomente a linha AddModule "festival" "sd_festival" "festival.conf"
  2. Adicione a linha DefaultModule festival

Precisamos executar festival como um servidor para que speech-dispatcher o use como padrão. Podemos fazer isso adicionando a seguinte linha no final do arquivo que é aberto quando usamos o comando crontab -e :

@reboot /usr/bin/festival --server

Agora está feito !! Após a reinicialização , o sistema Firefox e spd-say usará a voz festival como saída.

Informações adicionais

Acredito que o procedimento para fazer novas vozes funcionarem em Firefox será sempre o mesmo:

  1. Descomente o módulo da nova voz do TTS que instalamos ( /etc/speech-dispatcher/speechd.conf ).

  2. Defina uma nova linha padrão para a voz TTS que desejamos ( /etc/speech-dispatcher/speechd.conf ).

  3. Execute um servidor na porta especificada nos arquivos dentro da pasta /etc/speech-dispatcher/modules/ .

O que me chamou a atenção é que há um módulo para as vozes do Ivona . Ivona é um produto proprietário e hoje a única maneira de usá-lo (tanto quanto eu sei) é como um serviço pay-as-you-go em AWS , mas suas vozes são realmente boas e eles soam muito naturais.

O arquivo /etc/speech-dispatcher/modules/ivona.conf está configurado para escutar um servidor na porta 9123. Acho que talvez exista uma maneira de executar um servidor local que obtém as vozes Ivona usando meu AWS APIs (não tenho certeza, mas talvez usando uma parte do este app Node.js já desenvolvido) ... E se isso for possível, significa que Também é possível executar o Ivona no Ubuntu como a voz padrão do sistema e, consequentemente, usá-lo com o reader view mode on Firefox . Embora eu não saiba como fazer isso agora, parece uma possibilidade interessante.

    
por Ramuyko 31.05.2018 / 02:19
5

As vozes usadas pela função de narração do modo de leitura do firefox dependem da plataforma em que você a executa. No Linux, o firefox usará speech-dispatcher para renderizar texto para fala artificial.

Portanto, o que quer que você tenha configurado em suas configurações de dispatcher de voz ( /etc/speech-dispatcher/speechd.conf ) deve ser escolhido e usado pelo firefox. Existem vários mecanismos e vozes disponíveis para o dispatcher de voz, alguns dos quais podem ser instalados através de pacotes do Ubuntu, e. g. speech-dispatcher-espeak-ng ou speech-dispatcher-festival .

Há suporte limitado para selecionar vozes / idiomas de dentro da GUI do leitor do firefox, mas a maioria das configurações tem que ser feita no lado do SO, que é speechd.conf no linux.

Algumas configurações estão disponíveis na caixa de diálogo about:config se você procurar por "narrar":

Euexperimenteibastantecomconfiguraçõesdiferentesemambos,about:configespeechd.conf,masnãoconseguinadaparafuncionar,masopadrãoquevemcomoUbuntu.Asensaçãoquetenhoéqueainterfaceentreofirefoxeospeech-dispatchernãoémuitoestável,mastalvezvocêtenhamaissorteemexperimentar.

Essecara: link parece ter tido mais sucesso no Archlinux configurando coisas para usar festival como saída . Tentei reproduzir isso no Ubuntu 18.04, mas nunca consegui executar o firefox.

    
por Sebastian Stark 30.05.2018 / 08:00