web-dev-qa-db-fra.com

Comment puis-je changer la voix utilisée par Firefox Reader View (Narrateur) dans Ubuntu?

**how to change firefox reader view voice in ubuntu**

La voix par défaut ainsi que toutes les voix alternatives sont très difficiles à comprendre.

Je ne trouve aucune documentation sur la configuration de cette fonctionnalité.

10
VJ Ranga

J'ai réussi à utiliser la voix festivalpar défaut sur Firefox .

enter image description here

Pour ce faire, nous devons modifier certaines configurations du fichier /etc/speech-dispatcher/speechd.conf. Mais d’abord, j’ai besoin d’expliquer l’idée de base de son fonctionnement. Nous pouvons toujours voir quelle est la voix par défaut utilisée par speech-dispatcher en utilisant la commande spd-say:

spd-say "Hello. How are you?"

Sur Ubuntuname__, la voix par défaut de Texto To Speech (TTS) accompagnant speech-dispatcher est surtout . Nous entendons donc exactement la même voix lorsque nous utilisons cette autre commande:

espeak "Hello. How are you?"

Cela se produit parce que spd-say utilise simplement les voix espeaken sortie. Et bien, Firefox fait de même, il utilise la voix configurée dans speech-dispatcher comme sortie pour lire les pages Web dans le mode d'affichage du lecteur (Ctrl+Alt+R).

Donc, ce que nous devons faire ici est de changer la voix qui sort en tant que sortie dans la commande spd-say et, une fois cela fait, Firefox va utilisez également un TTS voice différent par défaut. Je vais décrire le processus permettant de le faire fonctionner avec la voix festivalname__, mais je pense que la procédure est la même si vous souhaitez exécuter un TTS voice différent. Premièrement, nous devons installer festival :

Sudo apt-get install festival

Nous pouvons tester sa voix en ligne de commande en tapant:

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

Nous devons maintenant changer le fichier speechd.conf. Nous tapons donc Sudo vi /etc/speech-dispatcher/speechd.conf sur le terminal et autour de la ligne 205, nous verrons les configurations commentées suivantes:

#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

Il faut faire deux changements ici:

  1. Décommentez la ligne AddModule "festival" "sd_festival" "festival.conf"
  2. Ajouter la ligne DefaultModule festival

Nous devons exécuter festivalen tant que serveur pour que speech-dispatcher l'utilise par défaut. Nous pouvons le faire en ajoutant la ligne suivante à la fin du fichier qui est ouvert lorsque nous utilisons la commande crontab -e:

@reboot /usr/bin/festival --server

Maintenant c'est fait !! Après avoir redémarré le système Firefox et spd-say utilisera la voix festivalcomme sortie.


Informations complémentaires

Je pense que la procédure permettant de faire fonctionner de nouvelles voix dans Firefoxsera toujours la même:

  1. Décommentez le module de la nouvelle voix TTS que nous avons installée (/etc/speech-dispatcher/speechd.conf).

  2. Définissez une nouvelle ligne par défaut pour la voix TTS souhaitée (/etc/speech-dispatcher/speechd.conf).

  3. Exécutez un serveur sur le port spécifié dans les fichiers du dossier /etc/speech-dispatcher/modules/.

Ce qui a attiré mon attention là-dessus, c’est qu’il existe un module pour les voix Ivona . Ivona est un produit propriétaire et aujourd'hui, la seule façon de l'utiliser (pour autant que je sache) est un service par répartition le AWSname__, mais ses voix sont vraiment bonnes et leur sonorité est très naturelle.

Le fichier /etc/speech-dispatcher/modules/ivona.conf est configuré pour écouter un serveur sur le port 9123. Je pense qu’il existe peut-être un moyen d’exécuter un serveur local qui récupère les voix Ivona à l’aide de mon AWS APIs (je ne suis pas sûr, mais peut-être en utilisant une partie de this L'application Node.js déjà développée) ... Et si cela est possible, cela signifie qu'il est également possible de exécuter Ivona sur Ubuntu comme la voix par défaut du système et par conséquent l'utiliser avec le reader view mode sur Firefox . Bien que je ne sache pas comment le faire maintenant, cela semble être une possibilité intéressante.

8
Rafael Muynarsk

Les voix utilisées par la fonction narrate du mode lecteur firefox dépendent de la plate-forme sur laquelle vous l’exécutez. Sous Linux, Firefox utilisera speech-dispatcher pour rendre le texte en langage artificiel.

Donc, tout ce que vous avez configuré dans les paramètres de votre répartiteur de parole (/etc/speech-dispatcher/speechd.conf) devrait être récupéré et utilisé par Firefox. Différents moteurs et voix sont disponibles pour le répartiteur de parole, dont certains peuvent être installés via les packages Ubuntu, par exemple. g. speech-dispatcher-espeak-ng ou speech-dispatcher-festival.

La prise en charge de la sélection des voix/langues dans l'interface graphique de firefox reader est limitée, mais la plupart des paramètres doivent être définis du côté du système d'exploitation, à savoir speechd.conf sous Linux.

Certains paramètres sont disponibles via la boîte de dialogue about:config si vous recherchez "narrate":

enter image description here

J'ai expérimenté un peu avec différents paramètres dans les deux about:config et speechd.conf, mais je ne pouvais rien faire fonctionner à part le réglage par défaut fourni avec Ubuntu. J'ai l'impression que l'interface entre firefox et speech-dispatcher n'est pas très stable, mais vous êtes peut-être plus chanceux d'expérimenter.

Ce mec: https://bbs.archlinux.org/viewtopic.php?id=217411 semble avoir eu plus de succès avec Archlinux en configurant des choses pour utiliser festival en sortie. J'ai essayé de reproduire cela sur Ubuntu 18.04 mais je n'ai jamais réussi à faire fonctionner Firefox avec.

6
Sebastian Stark

Merci à Rafael Muynarsk pour me remercier de m'avoir lancé. Voici ce que j'ai fait

Installer des dépendances

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
  • festvox-{rablpc16k,kallpc16k,kdlpc16k} sont des langues vocales pour l'anglais
  • soxname__, sans cela, seule une partie du texte a été lue

Modifier la configuration

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

Désactivez la configuration liée à espeakname __- et activez festivalone

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

#DefaultModule espeak-ng
DefaultModule festival

Démarrer le serveur festivalname__

Sans cela, je n'ai que quelques syntagmes.

/usr/bin/festival --server

Redémarrer Firefox

Ensuite, allez en mode d'affichage du lecteur et essayez-le.

0
Édouard Lopez