Consegui usar a voz festival
como padrão em Firefox
.
Parafazerisso,precisamosalteraralgumasconfiguraçõesnoarquivo/etc/speech-dispatcher/speechd.conf
.Masprimeiro,precisoexplicaraideiabásicadecomoissofunciona.Semprepodemosverqualvozéapadrãousadaporspeech-dispatcher
usandoocomandospd-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:
- Descomente a linha
AddModule "festival" "sd_festival" "festival.conf"
- 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:
-
Descomente o módulo da nova voz do TTS que instalamos (
/etc/speech-dispatcher/speechd.conf
). -
Defina uma nova linha padrão para a voz TTS que desejamos (
/etc/speech-dispatcher/speechd.conf
). -
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.