Jak mogę zmienić głos używany przez przeglądarkę Firefox Reader View (Narrator) w Ubuntu?

13

** jak zmienić głos widoku czytnika Firefox w Ubuntu **

Głos domyślny oraz wszystkie głosy alternatywne są bardzo trudne do zrozumienia.

Nie mogę znaleźć żadnej dokumentacji dotyczącej podłączenia tej funkcji.

VJ Ranga
źródło

Odpowiedzi:

11

Udało mi się użyć festivalgłosu jako domyślnego w przeglądarce Firefox .

wprowadź opis zdjęcia tutaj

W tym celu musimy zmienić niektóre konfiguracje pliku /etc/speech-dispatcher/speechd.conf. Ale najpierw muszę wyjaśnić podstawową ideę tego, jak to działa. Zawsze możemy zobaczyć, który głos jest domyślny, speech-dispatcherużywając polecenia spd-say:

spd-say "Hello. How are you?"

Włączony Ubuntudomyślny głos Texto To Speech (TTS), który speech-dispatcherjest w zestawie, to espeak . Tak więc słyszymy dokładnie ten sam głos, gdy używamy tego innego polecenia:

espeak "Hello. How are you?"

Dzieje się tak, ponieważ spd-saypo prostu używa się espeakgłosów jako wyjścia. I cóż, Firefox robi to samo, używa dowolnego głosu skonfigurowanego speech-dispatcherjako dane wyjściowe do czytania stron internetowych w trybie widoku czytnika ( Ctrl+Alt+R).

Musimy więc zmienić głos, który pojawia się w spd-saypoleceniu, a kiedy to zrobimy, Firefox będzie TTS voicedomyślnie używał innego . Opiszę proces pracy z festivalgłosem, ale uważam, że procedura jest taka sama, jeśli chcesz uruchomić inną TTS voice. Najpierw musimy zainstalować festiwal :

sudo apt-get install festival

Możemy przetestować jego głos w linii poleceń, wpisując:

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

Teraz musimy zmienić plik speechd.conf. Więc piszemy sudo vi /etc/speech-dispatcher/speechd.confna terminalu i wokół linii 205 zobaczymy następujący fragment skomentowanych konfiguracji:

#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

W tym miejscu należy wprowadzić dwie zmiany:

  1. Odkomentuj linię AddModule "festival" "sd_festival" "festival.conf"
  2. Dodaj linię DefaultModule festival

Musimy działać festivaljako serwer, aby móc speech-dispatchergo używać jako domyślnego. Możemy to zrobić, dodając następujący wiersz na końcu pliku, który jest otwarty, gdy używamy polecenia sudo crontab -e:

@reboot /usr/bin/festival --server

Teraz gotowe! Po ponownym uruchomieniu systemu Firefox i spd-saybędzie za pomocą festivalgłosu jako wyjścia.


Dodatkowe informacje

Uważam, że procedura uruchomienia nowych głosów Firefoxbędzie zawsze taka sama:

  1. Odkomentuj moduł nowego głosu TTS, który zainstalowaliśmy ( /etc/speech-dispatcher/speechd.conf).

  2. Ustaw nową domyślną linię dla głosu TTS, który chcemy ( /etc/speech-dispatcher/speechd.conf).

  3. Uruchom serwer na porcie określonym w plikach w folderze /etc/speech-dispatcher/modules/.

Zwróciłem na to uwagę, że jest tam moduł dla głosów Ivona . Ivona jest zastrzeżonym produktem i dziś jedynym sposobem, aby go używać (o ile wiem) to jako usługę pay-as-you-go na AWS, ale jego głosy są naprawdę dobre i brzmią bardzo naturalnie.

Plik /etc/speech-dispatcher/modules/ivona.confjest skonfigurowany do nasłuchiwania serwera na porcie 9123. Myślę, że może jest sposób na uruchomienie lokalnego serwera, który odbiera głosy Ivona za pomocą mojego AWS APIs(nie jestem pewien, ale być może za pomocą części tej aplikacji Node.js że już opracowane) ... a jeśli to możliwe, to znaczy, że jest to również możliwe, aby uruchomić Ivona na Ubuntu jako domyślnego głosu systemu, a tym samym korzystać z reader view modena Firefox . Chociaż nie wiem, jak to zrobić, wygląda na interesującą możliwość.

Rafael Muynarsk
źródło
6

Głosy używane przez funkcję narracji w trybie czytnika firefox zależą od platformy, na której są uruchomione. W Linuksie Firefox używa speech-dispatcherdo renderowania tekstu w sztucznej mowie.

Wszystko, co skonfigurowałeś w ustawieniach dyspozytora mowy ( /etc/speech-dispatcher/speechd.conf), powinno zostać odebrane i wykorzystane przez Firefox. Do dyspozytora mowy dostępne są różne silniki i głosy, niektóre z nich można zainstalować za pośrednictwem pakietów Ubuntu, np . speech-dispatcher-espeak-ngLub speech-dispatcher-festival.

Obsługa wybierania głosów / języków w GUI czytnika Firefox jest ograniczona, ale większość ustawień należy wprowadzić po stronie systemu operacyjnego, czyli speechd.confLinux.

Niektóre ustawienia są dostępne w about:configoknie dialogowym, jeśli szukasz „narracji”:

wprowadź opis zdjęcia tutaj

Eksperymentowałem całkiem sporo z różnymi ustawieniami w obu about:configi speechd.conf, ale nie mogłem nic zrobić, oprócz domyślnego systemu Ubuntu. Mam wrażenie, że interfejs między firefoxem a dyspozytorem mowy nie jest zbyt stabilny, ale być może masz więcej szczęścia w eksperymentowaniu.

Wygląda na to, że ten facet: https://bbs.archlinux.org/viewtopic.php?id=217411 odniósł większy sukces w Archlinuxie, konfigurując rzeczy do wykorzystania jako wyjścia. Próbowałem odtworzyć to na Ubuntu 18.04, ale nigdy nie udało mi się uruchomić Firefoksa.

Sebastian Stark
źródło
1

Dzięki Rafaelowi Muynarskowi za odpowiedź za rozpoczęcie mnie. Oto co zrobiłem

Zainstaluj zależności

apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
  • festvox-{rablpc16k,kallpc16k,kdlpc16k} są językami głosowymi dla języka angielskiego
  • sox, bez niego tylko część tekstu została przeczytana

Edytuj konfigurację

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

Wyłącz espeakzwiązane z modelem config i włączyć festivaljeden

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

#DefaultModule espeak-ng
DefaultModule festival

Uruchom festivalserwer

Bez tego mam tylko kilka syntez.

/usr/bin/festival --server

Uruchom ponownie Firefox

Następnie przejdź do trybu widoku czytnika i spróbuj.

Édouard Lopez
źródło