Provato Festival su Maverick 10.10, TextToSpeech da terminale
November 22, 2010 Appunti Cerebrali, Ubuntu No CommentsMentre cercavo un software per il riconoscimento vocale tipo Simon mi sono imbattuto in Festival che permette di leggere testi. Non è quello che cercavo, ma la curiosità mi ha spinto a provarlo. Premesso che il gioco non vale la candela perché è tutto da console e la qualità audio è buona, ma non eccelsa.
Prima di tutto bisogna scaricare i pacchetti del programma e per fare prima andiamo in gestore pacchetti e scriviamo festival in alto a destra dentro il modulo Cerca:
Mettete il segno di spunta su festival, in automatico verranno risolte le dipendenze. Selezionare anche i seguenti pacchetti per le voci italiane:
festvox-italp16k
festvox-italpc16k
rispettivamente voce femminile e maschile
Già che ci siete installate anche il pacchetto
recode
servirà per i testi accentati
Fate Applica.
Ok il programma è installato
Per farlo funzionare con Pulseaudio si deve modificare un file in questo modo:
sudo gedit /usr/share/festival/festival.scm
ok andate in fondo al testo e incollate questa stringa:
(Parameter.set 'Audio_Method 'esdaudio)
Salvate e chiudete.
Ora per provare festival ci sono più sistemi sempre da terminale.
Il programma si lancia da terminale con
festival
l’output sarà:
festival>
ora prima di tutto impariamo a uscire dal programma:
festival>(quit)
si scrive (quit) e si preme Enter, le parentesi sono fondamentali altrimenti il comando non funziona e non vi fa uscire.
Di default la lingua impostata è quella inglese, ma avendo installato anche l’italiana ecco come selezionarla e farla parlare:
festival>(voice_pc_diphone)
pc_diphone
festival>(SayText "ciao ecco una prova di lettura")
#<Utterance 0xb7010e08>
se volete utilizzare quella femminile:
festival> (voice_lp_diphone)
lp_diphone
festival> (SayText "ciao ecco una prova di lettura")
#<Utterance 0xb6e89978>
Ok, questo non è certamente un sistema pratico però è per familiarizzare con il programma. Per far leggere una frase o un testo senza dover fare tutte le volte questa menata basterà digitare in console:
echo "Ciao ecco un'altra prova" | festival --tts
la voce però sarà quella inglese, per attivare di default quella italiana m o f si devono creare due file nella cartella home personale, saranno due file nascosti:
.festivalrc
.festivalvarsrc
Ho visto che però ne basta anche uno solo.
Per crearlo copiate e incollate questo comando nel terminale:
echo "(set! voice_default voice_lp_diphone)" > .festivalrc
in questo modo avrete di default la voce femminile, se volete quella maschile modificate il file .festivalrc cambiando voice_lp_diphone con voice_pc_diphone
Se usate festival ricordate che tutto quello che digiterete resterà annotato nel file storico (nascosto premere CTRL+H) di festival nella vostra home:
.festival_history
Ecco come far leggere un testo
festival --tts /home/utente/Documenti/testoprova.txt
p.s. ho notato che se incontra delle lettere accentate il programma si interrompe. Cercherò di capire come risolvere anche se vista la scomodità dell’utilizzo conviene attendere e scegliere qualcosa con una GUI decente.
Aggiornamento: Ho trovato un sistema per risolvere il problema degli accenti su questo sito:
1 – si converte il file txt con recode
recode utf8..lat1 testo_da_convertire.txt testo_convertito.txt
2 – oppure nella stringa per lanciare festival si aggiunge il parametro di conversione testo
echo “Perché è così complicato?” | recode utf8..lat1 | festival --tts
In questo modo funzionano anche gli accenti
Se non vi piace Festival perché troppo complesso, in effetti…, potete utilizzare espeak. Se trovo qualcosa di interessante lo posterò nel blog.
Usate Gespeak che è un front-end comodo per espeak, si installa da Ubuntu Software Center. In aggiunta, chi vuole può installare anche mbrola da Gestione Pacchetti per avere più scelte di lingua italiana. Nulla di incredibile, siamo ancora lontani dalla qualità che sto cercando.