Odpowiedzi:
Udało mi się użyć festival
głosu jako domyślnego w przeglądarce Firefox .
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-dispatcher
używając polecenia spd-say
:
spd-say "Hello. How are you?"
Włączony Ubuntu
domyślny głos Texto To Speech (TTS), który speech-dispatcher
jest 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-say
po prostu używa się espeak
głosów jako wyjścia. I cóż, Firefox robi to samo, używa dowolnego głosu skonfigurowanego speech-dispatcher
jako 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-say
poleceniu, a kiedy to zrobimy, Firefox będzie TTS voice
domyślnie używał innego . Opiszę proces pracy z festival
gł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.conf
na 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:
AddModule "festival" "sd_festival" "festival.conf"
DefaultModule festival
Musimy działać festival
jako serwer, aby móc speech-dispatcher
go 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-say
będzie za pomocą festival
głosu jako wyjścia.
Uważam, że procedura uruchomienia nowych głosów Firefox
będzie zawsze taka sama:
Odkomentuj moduł nowego głosu TTS, który zainstalowaliśmy ( /etc/speech-dispatcher/speechd.conf
).
Ustaw nową domyślną linię dla głosu TTS, który chcemy ( /etc/speech-dispatcher/speechd.conf
).
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.conf
jest 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 mode
na Firefox . Chociaż nie wiem, jak to zrobić, wygląda na interesującą możliwość.
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-dispatcher
do 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-ng
Lub 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.conf
Linux.
Niektóre ustawienia są dostępne w about:config
oknie dialogowym, jeśli szukasz „narracji”:
Eksperymentowałem całkiem sporo z różnymi ustawieniami w obu about:config
i 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.
Dzięki Rafaelowi Muynarskowi za odpowiedź za rozpoczęcie mnie. Oto co zrobiłem
apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
festvox-{rablpc16k,kallpc16k,kdlpc16k}
są językami głosowymi dla języka angielskiegosox
, bez niego tylko część tekstu została przeczytanasudo vim /etc/speech-dispatcher/speechd.conf
Wyłącz espeak
związane z modelem config i włączyć festival
jeden
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival" "sd_festival" "festival.conf"
#DefaultModule espeak-ng
DefaultModule festival
festival
serwerBez tego mam tylko kilka syntez.
/usr/bin/festival --server
Następnie przejdź do trybu widoku czytnika i spróbuj.