Ya no tienes que investigar más por todo internet ya que llegaste al espacio justo, poseemos la respuesta que deseas y sin complicaciones.
Solución:
Me las arreglé para usar el festival
voz por defecto en Firefox.
Para hacer eso, necesitamos cambiar algunas configuraciones en el archivo /etc/speech-dispatcher/speechd.conf
. Pero primero, necesito explicar la idea básica de cómo funciona. Siempre podemos ver qué voz es la predeterminada utilizada por speech-dispatcher
usando el comando spd-say
:
spd-say "Hello. How are you?"
Sobre Ubuntu
, la voz predeterminada de Texto a voz (TTS) que viene con speech-dispatcher
es espeak. Entonces escuchamos exactamente la misma voz cuando usamos este otro comando:
espeak "Hello. How are you?"
Eso pasa porque spd-say
solo está usando espeak
voces como salida. Y bueno, Firefox hace lo mismo, usa cualquier voz configurada en speech-dispatcher
como salida para leer páginas web en el modo de vista de lector (Ctrl+Alt+R
).
Entonces, lo que tenemos que hacer aquí es cambiar la voz que viene como salida en el spd-say
comando y, una vez que lo hacemos, Firefox va a usar un diferente TTS voice
como predeterminado también. Voy a describir el proceso de hacerlo funcionar con el festival
voz, pero creo que el procedimiento es el mismo si desea ejecutar una TTS voice
. Primero, necesitamos instalar festival:
sudo apt-get install festival
Podemos probar su voz en la línea de comandos escribiendo:
echo "Hello. How are you?" | festival --tts
Ahora tenemos que cambiar el archivo. speechd.conf
. Entonces escribimos sudo vi /etc/speech-dispatcher/speechd.conf
en el terminal y alrededor de la línea 205 veremos la siguiente pieza de configuraciones 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
Es necesario hacer dos cambios aquí:
- Descomentar la línea
AddModule "festival" "sd_festival" "festival.conf"
- Agrega la línea
DefaultModule festival
Necesitamos correr festival
como servidor para hacer speech-dispatcher
utilícelo como predeterminado. Podemos hacer eso agregando la siguiente línea al final del archivo que está abierto cuando usamos el comando sudo crontab -e
:
@reboot /usr/bin/festival --server
¡¡Ya está hecho !! Después de reiniciar el sistema Firefox y spd-say
estará usando el festival
voz como salida.
información adicional
Creo que el procedimiento para hacer funcionar nuevas voces en Firefox
será siempre el mismo:
-
Descomenta el módulo de la nueva voz TTS que instalamos (
/etc/speech-dispatcher/speechd.conf
). -
Establecer una nueva línea predeterminada para la voz TTS que queremos (
/etc/speech-dispatcher/speechd.conf
). -
Ejecute un servidor en el puerto especificado en los archivos dentro de la carpeta
/etc/speech-dispatcher/modules/
.
Lo que me llamó la atención es que allí hay un módulo para las voces de Ivona. Ivona es un producto patentado y hoy la única forma de usarlo (que yo sepa) es como servicio de pago por uso sobre AWS
, pero sus voces son realmente buenas y suenan muy naturales.
El archivo /etc/speech-dispatcher/modules/ivona.conf
está configurado para escuchar un servidor en el puerto 9123. Creo que tal vez haya una manera de ejecutar un servidor local que obtenga las voces de Ivona usando mi AWS APIs
(No estoy seguro, pero tal vez usando una parte de esta aplicación Node.js que ya está desarrollada) … Y si eso es posible, significa que también es posible ejecutar Ivona en Ubuntu como la voz predeterminada del sistema y, en consecuencia, utilizarlo con el reader view mode
sobre Firefox . Aunque no sé cómo hacerlo ahora, parece una posibilidad interesante.
Las voces utilizadas por la función narrar del modo lector de Firefox dependen de la plataforma en la que lo ejecutes. En Linux, firefox usará speech-dispatcher
para convertir texto en voz artificial.
Entonces, lo que sea que haya configurado en la configuración de su despachador de voz (/etc/speech-dispatcher/speechd.conf
) debe ser recogido y utilizado por firefox. Hay varios motores y voces disponibles para el despachador de voz, algunos de los cuales se pueden instalar a través de paquetes de Ubuntu, p. Ej. speech-dispatcher-espeak-ng
o speech-dispatcher-festival
.
Existe un soporte limitado para seleccionar voces / idiomas desde la GUI del lector de Firefox, pero la mayoría de las configuraciones deben realizarse en el lado del sistema operativo, que es speechd.conf
en linux.
Algunas configuraciones están disponibles a través del about:config
diálogo si busca “narrar”:
Experimenté bastante con diferentes configuraciones en ambos, about:config
y speechd.conf
, pero no pudo hacer que nada funcionara excepto el predeterminado que viene con Ubuntu. La sensación que tengo es que la interfaz entre Firefox y Speech Dispatcher no es muy estable, pero quizás tengas más suerte experimentando.
Este tipo: https://bbs.archlinux.org/viewtopic.php?id=217411 parece haber tenido más éxito en Archlinux configurando cosas para usar festival como salida. Intenté reproducir esto en Ubuntu 18.04 pero nunca pude hacer que firefox se ejecutara con él.
Gracias a Rafael Muynarsk por responder por animarme. Aquí esta lo que hice
Instalar dependencias
apt install festival speech-dispatcher-festival festvox-rablpc16k,kallpc16k,kdlpc16k sox
festvox-rablpc16k,kallpc16k,kdlpc16k
son idiomas de voz para ingléssox
, sin él, solo una parte del texto donde se lee
Editar configuración
sudo vim /etc/speech-dispatcher/speechd.conf
Desactivar espeak
-configuración y habilitación relacionadas festival
uno
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival" "sd_festival" "festival.conf"
#DefaultModule espeak-ng
DefaultModule festival
Comienzo festival
servidor
Sin él, solo obtuve algunas frases.
/usr/bin/festival --server
Reinicia Firefox
Luego vaya al modo de vista de lector y pruébelo.
Puedes añadir valor a nuestra información aportando tu veteranía en los informes.