Inizio  >  Docs  >  Linux  >  Trucchi veloci  >  Festival Speech syntesis  
Festival Speech syntesisFestival Speech syntesis

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:

sudo apt-get install festival \
festvox-italp16k festvox-itapc16k
(set! main-path "/usr/share/festival")
(set! load-path (cons main-path load-path))
(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:

festival
(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`;
  }
}

 

 
 

Torna sù