Respostas:
Consegui usar a festival
voz como padrão no Firefox .
Para fazer isso, precisamos alterar algumas configurações no arquivo /etc/speech-dispatcher/speechd.conf
. Mas primeiro, preciso explicar a idéia básica de como funciona. Sempre podemos ver qual voz é a padrão usada speech-dispatcher
usando o comando spd-say
:
spd-say "Hello. How are you?"
Ativado Ubuntu
, a voz padrão do Texto para fala (TTS) que acompanha speech-dispatcher
é a fala . Então, ouvimos exatamente a mesma voz quando usamos este outro comando:
espeak "Hello. How are you?"
Isso acontece porque spd-say
está apenas usando espeak
vozes como saída. E bem, o Firefox faz o mesmo, usa qualquer voz configurada 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 sai como saída no spd-say
comando e, assim que o fizermos, o Firefox também usará um TTS voice
padrão diferente . Vou descrever o processo de fazê-lo funcionar com a festival
voz, mas acredito que o procedimento seja o mesmo se você quiser executar um procedimento diferente TTS voice
. 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 mudar o arquivo speechd.conf
. Então digitamos sudo vi /etc/speech-dispatcher/speechd.conf
no terminal e em torno 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:
AddModule "festival" "sd_festival" "festival.conf"
DefaultModule festival
Precisamos rodar festival
como um servidor para speech-dispatcher
usá-lo como padrão. Podemos fazer isso adicionando a seguinte linha no final do arquivo que está aberto quando usamos o comando sudo crontab -e
:
@reboot /usr/bin/festival --server
Agora está feito !! Depois de reiniciar o sistema Firefox e spd-say
estará usando a festival
voz como saída.
Acredito que o procedimento para fazer novas vozes funcionarem Firefox
sempre será o mesmo:
Remova o comentário do módulo da nova voz TTS que instalamos ( /etc/speech-dispatcher/speechd.conf
).
Defina uma nova linha padrão para a voz TTS que queremos ( /etc/speech-dispatcher/speechd.conf
).
Execute um servidor na porta especificada nos arquivos dentro da pasta /etc/speech-dispatcher/modules/
.
O que chamou minha atenção nisso é que há um módulo para as vozes da Ivona lá. Ivona é um produto patenteado e hoje a única maneira de usá-lo (tanto quanto eu sei) é como um pay-as-you-go serviço on AWS
, mas suas vozes são realmente bons e eles som muito natural.
O arquivo /etc/speech-dispatcher/modules/ivona.conf
está configurado para atender a um servidor na porta 9123. Eu acho que talvez haja uma maneira de executar um servidor local que recebe o Ivona vozes usando o meu AWS APIs
(não tenho certeza, mas talvez usando uma parte deste app Node.js isso já foi 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 reader view mode
no Firefox . Embora eu não saiba como fazê-lo agora, parece uma possibilidade interessante.
As vozes usadas pela função narrar do modo leitor do firefox dependem da plataforma em que você o executa. No Linux, o Firefox usará speech-dispatcher
para renderizar texto em fala artificial.
Portanto, tudo o que você configurou nas configurações do discador de voz ( /etc/speech-dispatcher/speechd.conf
) deve ser escolhido e usado pelo firefox. Existem vários mecanismos e vozes disponíveis para o despachante de fala, alguns dos quais podem ser instalados via pacotes Ubuntu, por exemplo, speech-dispatcher-espeak-ng
ou speech-dispatcher-festival
.
Há suporte limitado para a seleção de vozes / idiomas na interface gráfica do leitor do firefox, mas a maioria das configurações deve ser feita no lado do sistema operacional, que está speechd.conf
no linux.
Algumas configurações estão disponíveis na about:config
caixa de diálogo se você procurar "narrar":
Eu experimentei um pouco com configurações diferentes em ambos, about:config
e speechd.conf
, mas não consegui fazer nada funcionar, exceto o padrão que acompanha o Ubuntu. A sensação que sinto é que a interface entre o Firefox e o Voice-Dispatcher não é muito estável, mas talvez você tenha mais sorte em experimentar.
Esse cara: https://bbs.archlinux.org/viewtopic.php?id=217411 parece ter tido mais sucesso no Archlinux configurando coisas para usar festival como saída. Eu tentei reproduzir isso no Ubuntu 18.04, mas nunca consegui o firefox para rodar com ele.
Agradeço ao Rafael Muynarsk por responder por me dar um pontapé inicial . Aqui está o que eu fiz
apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
festvox-{rablpc16k,kallpc16k,kdlpc16k}
são idiomas de voz para inglêssox
, sem apenas uma parte do texto onde é lidasudo vim /etc/speech-dispatcher/speechd.conf
Desative espeak
a configuração relacionada e ative festival
uma
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival" "sd_festival" "festival.conf"
#DefaultModule espeak-ng
DefaultModule festival
festival
servidorSem ele, tenho apenas algumas sintetizações.
/usr/bin/festival --server
Em seguida, vá para o modo de visualização do leitor e tente.