Wie kann ich die von Firefox Reader View (Narrator) in Ubuntu verwendete Stimme ändern?

13

** Wie man die Stimme des Firefox-Lesers in Ubuntu ändert **

Die Standardstimme sowie alle alternativen Stimmen sind sehr schwer zu verstehen.

Ich kann keine Dokumentation zur Verkabelung dieser Funktion finden.

VJ Ranga
quelle

Antworten:

11

Ich habe es geschafft, die festivalStimme in Firefox als Standard zu verwenden .

Bildbeschreibung hier eingeben

Dazu müssen wir einige Konfigurationen in der Datei ändern /etc/speech-dispatcher/speechd.conf. Aber zuerst muss ich die Grundidee erklären, wie es funktioniert. speech-dispatcherMit dem folgenden Befehl können wir immer sehen, welche Stimme die Standardstimme ist spd-say:

spd-say "Hello. How are you?"

Auf Ubuntu, dass die Standard - Texto - To - Speech (TTS) Stimme kommt speech-dispatcherist espeak . Wir hören also genau dieselbe Stimme, wenn wir diesen anderen Befehl verwenden:

espeak "Hello. How are you?"

Dies geschieht, weil spd-saynur espeakStimmen als Ausgabe verwendet werden. Und nun, Firefox macht dasselbe, es verwendet jede Stimme, die speech-dispatcherals Ausgabe konfiguriert ist , um Webseiten im Reader-Ansichtsmodus zu lesen ( Ctrl+Alt+R).

Wir müssen hier also die Stimme ändern, die im spd-sayBefehl ausgegeben wird, und wenn wir das tun, wird Firefox auch eine andere TTS voiceals Standard verwenden. Ich werde den Prozess beschreiben, wie er mit der festivalStimme funktioniert , aber ich glaube, der Vorgang ist der gleiche, wenn Sie einen anderen ausführen möchten TTS voice. Zuerst müssen wir das Festival installieren :

sudo apt-get install festival

Wir können seine Stimme in der Befehlszeile testen, indem wir Folgendes eingeben:

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

Jetzt müssen wir die Datei ändern speechd.conf. Also tippen wir sudo vi /etc/speech-dispatcher/speechd.confauf dem Terminal und um die Zeile 205 sehen wir die folgenden kommentierten Konfigurationen:

#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

Hier müssen zwei Änderungen vorgenommen werden:

  1. Kommentiere die Zeile aus AddModule "festival" "sd_festival" "festival.conf"
  2. Fügen Sie die Zeile hinzu DefaultModule festival

Wir müssen festivalals Server laufen , um speech-dispatcherihn als Standard verwenden zu können. Wir können das tun, indem wir die folgende Zeile am Ende der Datei einfügen, die geöffnet ist, wenn wir den Befehl verwenden sudo crontab -e:

@reboot /usr/bin/festival --server

Jetzt ist es geschafft !! Nach dem Neustart des Systems Firefox und spd-saywird die festivalStimme als Ausgabe verwenden.


zusätzliche Information

Ich glaube, dass das Verfahren, um neue Stimmen zum FirefoxLaufen zu bringen, immer dasselbe sein wird:

  1. Kommentieren Sie das Modul der neuen TTS-Stimme aus, die wir installiert haben ( /etc/speech-dispatcher/speechd.conf).

  2. Legen Sie eine neue Standardleitung für die gewünschte TTS-Stimme fest ( /etc/speech-dispatcher/speechd.conf).

  3. Führen Sie einen Server an dem Port aus, der in den Dateien im Ordner angegeben ist /etc/speech-dispatcher/modules/.

Was mich darauf aufmerksam gemacht hat, ist, dass es dort ein Modul für die Ivona- Stimmen gibt. Ivona ist ein Markenprodukt und heute der einzige Weg , es zu benutzen (soweit ich weiß) ist als Pay-as-you-go - Service auf AWS, aber ihre Stimmen sind wirklich gut und sie klingen sehr natürlich.

Die Datei /etc/speech-dispatcher/modules/ivona.confist so konfiguriert , auf einen Server auf dem Port 9123. Ich denke , vielleicht hört es gibt einen Weg , um einen lokalen Server auszuführen, die Ivona bekommt Stimmen mit meiner AWS APIs(ich bin nicht sicher, aber vielleicht einen Teil der Verwendung dieser Node.js App das ist bereits entwickelt) ... und wenn das möglich ist, bedeutet dies , dass es auch möglich, Ivona auf Ubuntu läuft als die Standardstimme des Systems und folglich mit dem Einsatz reader view modeauf Firefox . Obwohl ich jetzt nicht weiß, wie es geht, sieht es nach einer interessanten Möglichkeit aus.

Rafael Muynarsk
quelle
6

Die von der Kommentarfunktion des Firefox-Lesemodus verwendeten Stimmen hängen von der Plattform ab, auf der Sie sie ausführen. Unter Linux wird Firefox speech-dispatcherzum Rendern von Text in künstlicher Sprache verwendet.

Was auch immer Sie in Ihren Einstellungen für den Sprachverteiler ( /etc/speech-dispatcher/speechd.conf) konfiguriert haben, sollte von Firefox aufgenommen und verwendet werden. Für Speech-Dispatcher stehen verschiedene Engines und Voices zur Verfügung, von denen einige über Ubuntu-Pakete installiert werden können, z . B. speech-dispatcher-espeak-ngoder speech-dispatcher-festival.

Die Auswahl von Stimmen / Sprachen über die Benutzeroberfläche von Firefox Reader wird nur eingeschränkt unterstützt. Die meisten Einstellungen müssen jedoch auf der Betriebssystemseite vorgenommen werden, die speechd.confunter Linux ausgeführt wird.

Einige Einstellungen sind über den about:configDialog verfügbar, wenn Sie nach "Erzählen" suchen:

Bildbeschreibung hier eingeben

Ich experimentierte ziemlich viel mit unterschiedlichen Einstellungen in beide, about:configund speechd.conf, konnte aber nichts an der Arbeit , aber den Standard , die mit Ubuntu kommt. Ich habe das Gefühl, dass die Schnittstelle zwischen Firefox und Speech-Dispatcher nicht sehr stabil ist, aber vielleicht haben Sie mehr Glück beim Experimentieren.

Dieser Typ: https://bbs.archlinux.org/viewtopic.php?id=217411 hat offenbar mehr Erfolg damit gehabt, Archlinux so zu konfigurieren, dass Festival als Ausgabe verwendet wird. Ich habe versucht, dies auf Ubuntu 18.04 zu reproduzieren, konnte aber nie Firefox zum Laufen bringen.

Sebastian Stark
quelle
1

Vielen Dank an Rafael Muynarsk für den Kickstart. Hier ist was ich getan habe

Abhängigkeiten installieren

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
  • festvox-{rablpc16k,kallpc16k,kdlpc16k} sind Sprachsprachen für Englisch
  • soxOhne sie wurde nur ein Teil des Textes gelesen

Konfiguration bearbeiten

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

Deaktivieren Sie die espeakzugehörige Konfiguration und aktivieren Sie festivaleine

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

#DefaultModule espeak-ng
DefaultModule festival

Starten Sie den festivalServer

Ohne das habe ich nur ein paar Zusammenhänge.

/usr/bin/festival --server

Starten Sie Firefox neu

Wechseln Sie dann in den Reader-Ansichtsmodus und probieren Sie es aus.

Édouard Lopez
quelle