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

13

** comment changer la voix de vue du lecteur Firefox dans Ubuntu **

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

Je ne trouve aucune documentation sur la façon dont cette fonctionnalité est connectée.

VJ Ranga
la source

Réponses:

11

J'ai réussi à utiliser la festivalvoix par défaut sur Firefox .

entrez la description de l'image ici

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

spd-say "Hello. How are you?"

Activé Ubuntu, la voix par défaut Texto To Speech (TTS) fournie avec speech-dispatcherest espeak . Nous entendons donc exactement la même voix lorsque nous utilisons cette autre commande:

espeak "Hello. How are you?"

Cela se produit car spd-sayutilise simplement des espeakvoix comme sortie. Et bien, Firefox fait de même, il utilise la voix configurée en speech-dispatchersortie pour lire les pages Web en mode lecteur ( Ctrl+Alt+R).

Donc, ce que nous devons faire ici est de changer la voix qui vient en sortie dans la spd-saycommande et, une fois que nous le faisons, Firefox va également utiliser un autre TTS voicepar défaut. Je vais décrire le processus pour le faire fonctionner avec la festivalvoix, mais je crois que la procédure est la même si vous voulez en exécuter un autre TTS voice. Tout d'abord, nous devons installer le festival :

sudo apt-get install festival

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

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

Maintenant, nous devons changer le fichier speechd.conf. Nous tapons donc sudo vi /etc/speech-dispatcher/speechd.confsur le terminal et autour de la ligne 205, nous verrons le morceau suivant de configurations commentées:

#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 est nécessaire d'apporter deux modifications ici:

  1. Décommenter la ligne AddModule "festival" "sd_festival" "festival.conf"
  2. Ajoutez la ligne DefaultModule festival

Nous devons exécuter en festivaltant que serveur afin de pouvoir l' speech-dispatcherutiliser par défaut. Nous pouvons le faire en ajoutant la ligne suivante à la fin du fichier ouvert lorsque nous utilisons la commande sudo crontab -e:

@reboot /usr/bin/festival --server

Maintenant c'est fait !! Après avoir redémarré le système Firefox et spd-sayutilisera la festivalvoix comme sortie.


Information additionnelle

Je pense que la procédure pour faire fonctionner de nouvelles voix 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 que nous voulons ( /etc/speech-dispatcher/speechd.conf).

  3. Exécutez un serveur sur le port spécifié sur les fichiers à l'intérieur du dossier /etc/speech-dispatcher/modules/.

Ce qui a attiré mon attention là-dessus, c'est qu'il y a un module pour les voix Ivona là-bas. Ivona est un produit propriétaire et aujourd'hui la seule façon de l'utiliser (pour autant que je sache) est comme un service de paiement à l'utilisation AWS, mais ses voix sont vraiment bonnes et elles semblent très naturelles.

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

Rafael Muynarsk
la source
6

Les voix utilisées par la fonction narration du mode lecteur Firefox dépendent de la plateforme sur laquelle vous l'exécutez. Sous Linux, firefox utilisera speech-dispatcherpour rendre le texte à la parole artificielle.

Donc, tout ce que vous avez configuré dans vos paramètres de répartiteur de parole ( /etc/speech-dispatcher/speechd.conf) doit être récupéré et utilisé par firefox. Il existe différents moteurs et voix disponibles pour le répartiteur vocal, dont certains peuvent être installés via des packages Ubuntu, par exemple speech-dispatcher-espeak-ngou speech-dispatcher-festival.

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

Certains paramètres sont disponibles via la about:configboîte de dialogue si vous recherchez "narrer":

entrez la description de l'image ici

J'ai expérimenté un peu avec différents paramètres dans les deux, about:configet speechd.conf, mais je n'ai rien pu faire fonctionner, sauf la valeur par défaut fournie avec Ubuntu. J'ai l'impression que l'interface entre Firefox et le répartiteur de parole n'est pas très stable, mais vous avez peut-être plus de chance d'expérimenter.

Ce gars: https://bbs.archlinux.org/viewtopic.php?id=217411 semble avoir eu plus de succès sur la configuration d'Archlinux pour utiliser festival comme sortie. J'ai essayé de reproduire cela sur Ubuntu 18.04 mais je n'ai jamais pu faire fonctionner Firefox avec.

Sebastian Stark
la source
1

Merci à Rafael Muynarsk d'avoir répondu pour m'avoir donné un coup de pied . Voici ce que j'ai fait

Installer les dépendances

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

Modifier la configuration

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

Désactivez la espeakconfiguration liée et activez-en festivalune

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

#DefaultModule espeak-ng
DefaultModule festival

Démarrer le festivalserveur

Sans cela, je n'ai eu que quelques syntences.

/usr/bin/festival --server

Redémarrez Firefox

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

Édouard Lopez
la source