¿Cómo puedo cambiar la voz utilizada por Firefox Reader View (Narrador) en Ubuntu?

13

** cómo cambiar la voz de vista del lector firefox en ubuntu **

La voz predeterminada, así como todas las voces alternativas, son muy difíciles de entender.

No puedo encontrar ninguna documentación sobre cómo esta función está conectada.

VJ Ranga
fuente

Respuestas:

11

Logré usar la festivalvoz por defecto en Firefox .

ingrese la descripción de la imagen aquí

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 que se usa al speech-dispatcherusar el comando spd-say:

spd-say "Hello. How are you?"

Encendido Ubuntu, la voz predeterminada de Texto a voz (TTS) que viene speech-dispatcheres espeak . Entonces escuchamos exactamente la misma voz cuando usamos este otro comando:

espeak "Hello. How are you?"

Eso sucede porque spd-saysolo está usando espeakvoces como salida. Y bueno, Firefox hace lo mismo, usa cualquier voz configurada speech-dispatchercomo salida para leer páginas web en el modo de vista del lector ( Ctrl+Alt+R).

Entonces, lo que necesitamos hacer aquí es cambiar la voz que viene como salida en el spd-saycomando y, una vez que lo hagamos, Firefox también usará un TTS voicevalor predeterminado diferente . Voy a describir el proceso de hacer que funcione con la festivalvoz, pero creo que el procedimiento es el mismo si desea ejecutar una diferente TTS voice. Primero, necesitamos instalar el festival :

sudo apt-get install festival

Podemos probar su voz en la línea de comando escribiendo:

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

Ahora necesitamos cambiar el archivo speechd.conf. Entonces escribimos sudo vi /etc/speech-dispatcher/speechd.confen la 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í:

  1. Descomenta la línea AddModule "festival" "sd_festival" "festival.conf"
  2. Agrega la línea DefaultModule festival

Necesitamos ejecutarnos festivalcomo un servidor para poder speech-dispatcherusarlo de manera predeterminada. Podemos hacerlo agregando la siguiente línea al final del archivo que está abierto cuando usamos el comando sudo crontab -e:

@reboot /usr/bin/festival --server

¡Ahora está hecho! Después de reiniciar el sistema Firefox y spd-sayusará la festivalvoz como salida.


Información Adicional

Creo que el procedimiento para que las nuevas voces funcionen Firefoxserá siempre el mismo:

  1. Descomente el módulo de la nueva voz TTS que instalamos ( /etc/speech-dispatcher/speechd.conf).

  2. Establezca una nueva línea predeterminada para la voz TTS que queremos ( /etc/speech-dispatcher/speechd.conf).

  3. 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 sobre eso es que hay un módulo para las voces de Ivona allí. Ivona es un producto patentado y hoy en día, la única forma de usarlo (que yo sepa) es mediante un servicio de pago por uso AWS, pero sus voces son realmente buenas y suenan muy naturales.

El archivo /etc/speech-dispatcher/modules/ivona.confestá configurado para escuchar a un servidor en el puerto 9123. Creo que quizás 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 se ha desarrollado) ... y si eso es posible, que significa que también es posible ejecutar Ivona en Ubuntu como la voz por defecto del sistema y por lo tanto utilizarlo con el reader view modede Firefox . Aunque no sé cómo hacerlo ahora, parece una posibilidad interesante.

Rafael Muynarsk
fuente
6

Las voces utilizadas por la función de narración del modo de lector firefox dependen de la plataforma en la que lo ejecute. En Linux, Firefox lo usará speech-dispatcherpara representar texto en voz artificial.

Entonces, lo que haya configurado en su configuración de 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, por ejemplo, speech-dispatcher-espeak-ngo speech-dispatcher-festival.

Existe un soporte limitado para seleccionar voces / idiomas desde la interfaz gráfica de usuario de Firefox Reader, pero la mayoría de las configuraciones deben realizarse en el lado del sistema operativo, que está speechd.confen Linux.

Algunas configuraciones están disponibles a través del about:configdiálogo si busca "narrar":

ingrese la descripción de la imagen aquí

Experimenté bastante con diferentes configuraciones en ambos, about:configy speechd.conf, pero no pude hacer que nada funcionara, excepto el valor predeterminado que viene con Ubuntu. La sensación que tengo es que la interfaz entre Firefox y el despachador de voz no es muy estable, pero tal vez tenga 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 el festival como salida. Traté de reproducir esto en Ubuntu 18.04 pero nunca pude hacer que Firefox lo ejecutara.

Sebastian Stark
fuente
1

Gracias a Rafael Muynarsk por responder por comenzar conmigo. 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és
  • sox, sin ella solo una parte del texto donde se lee

Editar configuración

sudo vim /etc/speech-dispatcher/speechd.conf

Deshabilitar espeakconfiguración relacionada y habilitar festivaluna

#AddModule "espeak-ng"    "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival"     "sd_festival"  "festival.conf"

#DefaultModule espeak-ng
DefaultModule festival

Iniciar festivalservidor

Sin ella solo obtuve algunas frases.

/usr/bin/festival --server

Reiniciar Firefox

Luego vaya al modo de vista de lector y pruébelo.

Édouard Lopez
fuente