Risposte:
Sono riuscito a utilizzare la festival
voce come impostazione predefinita su Firefox .
Per fare ciò, dobbiamo cambiare alcune configurazioni sul file /etc/speech-dispatcher/speechd.conf
. Ma prima, devo spiegare l'idea di base su come funziona. Possiamo sempre vedere quale voce è quella predefinita usata speech-dispatcher
usando il comando spd-say
:
spd-say "Hello. How are you?"
Su Ubuntu
, il Texto To Speech (TTS) voce predefinita che viene fornito con speech-dispatcher
è eSpeak . Quindi sentiamo esattamente la stessa voce quando usiamo questo altro comando:
espeak "Hello. How are you?"
Ciò accade perché spd-say
utilizza solo le espeak
voci come output. E bene, Firefox fa lo stesso, usa qualunque voce sia configurata speech-dispatcher
come output per leggere le pagine web nella modalità di visualizzazione del lettore ( Ctrl+Alt+R
).
Quindi, ciò che dobbiamo fare qui è cambiare la voce che arriva come output nel spd-say
comando e, una volta fatto, Firefox userà anche un diverso TTS voice
come predefinito. Descriverò il processo per farlo funzionare con la festival
voce, ma credo che la procedura sia la stessa se si desidera eseguirne una diversa TTS voice
. Innanzitutto, dobbiamo installare festival :
sudo apt-get install festival
Possiamo testare la sua voce nella riga di comando digitando:
echo "Hello. How are you?" | festival --tts
Ora dobbiamo cambiare il file speechd.conf
. Quindi digitiamo sudo vi /etc/speech-dispatcher/speechd.conf
sul terminale e intorno alla linea 205 vedremo il seguente pezzo di configurazioni commentate:
#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
È necessario apportare due modifiche qui:
AddModule "festival" "sd_festival" "festival.conf"
DefaultModule festival
Dobbiamo eseguire festival
come server per speech-dispatcher
poterlo utilizzare come predefinito. Possiamo farlo aggiungendo la seguente riga alla fine del file che è aperto quando usiamo il comando sudo crontab -e
:
@reboot /usr/bin/festival --server
Adesso è fatto !! Dopo aver riavviato il sistema Firefox e spd-say
utilizzerà la festival
voce come output.
Credo che la procedura per far funzionare le nuove voci Firefox
sarà sempre la stessa:
Rimuovi il commento dal modulo della nuova voce TTS che abbiamo installato ( /etc/speech-dispatcher/speechd.conf
).
Imposta una nuova linea predefinita per la voce TTS che vogliamo ( /etc/speech-dispatcher/speechd.conf
).
Esegui un server sulla porta specificata nei file all'interno della cartella /etc/speech-dispatcher/modules/
.
Ciò che ha attirato la mia attenzione su questo è che c'è un modulo per le voci Ivona lì. Ivona è un prodotto proprietario e oggi l'unico modo per usarlo (per quanto ne so) è come un servizio pay-as-you-go on AWS
, ma le sue voci sono davvero buoni e il suono molto naturale.
Il file /etc/speech-dispatcher/modules/ivona.conf
è configurato per ascoltare un server sulla porta 9123. Penso che forse ci sia un modo per eseguire un server locale che ottiene le voci Ivona usando il mio AWS APIs
(non sono sicuro, ma forse usando una parte di questa app Node.js che è già sviluppato) ... e se questo è possibile, significa che è anche possibile eseguire Ivona su Ubuntu come la voce di default del sistema e di conseguenza utilizzare con il reader view mode
su Firefox . Anche se non so come farlo ora, sembra una possibilità interessante.
Le voci utilizzate dalla funzione narrate della modalità lettore di Firefox dipendono dalla piattaforma su cui la si esegue. Su Linux, Firefox userà speech-dispatcher
per rendere il testo in linguaggio artificiale.
Quindi, qualunque cosa tu abbia configurato nelle impostazioni del tuo voice-dispatcher ( /etc/speech-dispatcher/speechd.conf
) dovrebbe essere raccolto e usato da Firefox. Ci sono vari motori e voci disponibili per speech-dispatcher, alcuni dei quali possono essere installati tramite pacchetti di Ubuntu, per esempio speech-dispatcher-espeak-ng
o speech-dispatcher-festival
.
C'è un supporto limitato per la selezione di voci / lingue all'interno della GUI del lettore Firefox, ma la maggior parte delle impostazioni deve essere effettuata dal lato del sistema operativo, che è speechd.conf
su Linux.
Alcune impostazioni sono disponibili tramite la about:config
finestra di dialogo se si cerca "narrazione":
Ho sperimentato un po 'con impostazioni diverse in entrambi about:config
e speechd.conf
, ma non sono riuscito a far funzionare nulla, ma l'impostazione predefinita fornita con Ubuntu. La sensazione che ho è che l'interfaccia tra firefox e speech-dispatcher non sia molto stabile, ma forse sei più fortunato a sperimentare.
Questo ragazzo: https://bbs.archlinux.org/viewtopic.php?id=217411 sembra aver avuto più successo su Archlinux configurando cose per usare il festival come output. Ho provato a riprodurlo su Ubuntu 18.04 ma non sono mai riuscito a far funzionare Firefox con esso.
Grazie a Rafael Muynarsk per avermi risposto per avermi dato il calcio d'inizio . Ecco cosa ho fatto
apt install festival speech-dispatcher-festival festvox-{rablpc16k,kallpc16k,kdlpc16k} sox
festvox-{rablpc16k,kallpc16k,kdlpc16k}
sono lingue vocali per l'inglesesox
, senza di essa solo una parte del testo è stata lettasudo vim /etc/speech-dispatcher/speechd.conf
Disabilitare la espeak
configurazione correlata e abilitarne festival
una
#AddModule "espeak-ng" "sd_espeak-ng" "espeak-ng.conf"
AddModule "festival" "sd_festival" "festival.conf"
#DefaultModule espeak-ng
DefaultModule festival
festival
serverSenza di essa ho avuto solo alcune sintesi.
/usr/bin/festival --server
Quindi vai in modalità visualizzazione lettore e provalo.