Index
Configurare Festival in italiano
http://www.ufic.it/blogs/2007/02/13/configurare-festival-in-italiano/
Nota: Questo post è solo un aggiornamento (su richiesta) di uno già esistente nel mio vecchio blog.
Tempo fa ho creato un pacchetto DEB per installare Festival in italiano.
Attualmente quel pacchetto è irreperibile, ma visto che mi è stato chiesto da molti, scrivo qui la procedura manuale per far sì che il proprio programma Festival parli in italiano.
Al momento ho pochissimo tempo libero, per cui non ho la possibilità nemmeno di testare quanto ho scritto qui (ma ho preso tutto da miei vecchi appunti, in seguito ad installazioni perfettamente funzionanti).
Festival è un sistema di sintesi vocale per Linux: prende in pasto del testo scritto e lo legge. Può essere utilizzato per vari scopi, dai più stupendamente idioti ai più seri: in particolare, unito a uno screen reader come Gnopernicus, può rendere possibile l’utilizzo di Linux a persone non vedenti. Spero di poter parlare di Gnopernicus in futuro…
Ecco i passi per installare Festival e farlo funzionare in italiano, usando Ubuntu o comunque una versione di Linux derivata da Debian:
- Installa il pacchetto tramite apt-get (e le due traduzioni in italiano, la prima al femminile, la seconda al maschile):
sudo apt-get install festival \
festvox-italp16k festvox-itapc16k
- Crea nella cartella home personale il file .festivalvarsrc con il seguente contenuto:
(set! main-path "/usr/share/festival")
(set! load-path (cons main-path load-path))
- Inserisci il seguente testo nel file .festivalrc (nella cartella home personale):
(set! main-path "/usr/share/festival")
(set! libdir main-path)
(set! lexdir (path-append libdir "dicts"))
(set! voice_default 'voice_lp_diphone)
(set! default_after_synth_hooks
(list
(lambda (utt)
(utt.wave.rescale utt 1.5 t))))
A questo punto si può provare il funzionamento:
- Avvia festival:
festival
- Fagli dire qualcosa:
(SayText "La vispa Teresa correa tra l'erbetta");
Sentite una “calda” (!) voce femminile che declama i versi? Perfetto: il vostro Linux ora parla in italiano .
Lascio a voi scoprire come e in quanti modi potete ora utlizzare Festival…
Se festival, dovuto agli accenti presenti nel testo, ritorna un errore del tipo:
LTS_Ruleset italian_downcase: no rule matches:
LTS_Ruleset: # *here* � � #
Provvedete alla ricodifica del testo, un modo semplice per farlo da linea di commando è:
1-installare il pacchetto recode:
# yum install recode
2-convertire il testo:
# recode utf8..lat1 testo_da_convertire.txt testo_convertito.txt
3-leggere:
$ festival –tts testo_convertito.txt
4-potete leggere anche in questo modo:
$ echo “Si può così configurare” | recode utf8..lat1 | festival –tts
ps. fate attenzione ai trattini prima dell’opzione “tts” sono due – - e non solo uno.
creare una azione per nautilus Text2Speech
gedit .gnome2/nautilus-scripts/Text2Speech
#!/usr/bin/perl -w
use strict;
my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});
foreach my $file (@files)
{
if ( -e $file )
{
`cat '$file'| recode utf8..lat1 |festival --tts`;
}
}
chmod +x .gnome2/nautilus-scripts/Text2Speech
gedit .gnome2/nautilus-scripts/Text2SpeechEN
#!/usr/bin/perl -w
use strict;
my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});
foreach my $file (@files)
{
if ( -e $file )
{
`cat '$file'| recode utf8..lat1 |festival --tts --language english`;
}
}
gedit .gnome2/nautilus-scripts/Text2SpeechIT
#!/usr/bin/perl -w
use strict;
my @files = split("\n", $ENV{NAUTILUS_SCRIPT_SELECTED_FILE_PATHS});
foreach my $file (@files)
{
if ( -e $file )
{
`cat '$file'| recode utf8..lat1 |festival --tts --language italian`;
}
}