Installazione Mbrola Festival
Da Faber Libertatis.
Autore: Gianluca Moro
In questo documento intendo riportare i passi seguiti per installare un sistema di sintesi vocale su linux: le operazioni sono state eseguite su un sistema Linux Fedora Core 3; per osservazioni contattate l'autore giammy@giammy.com
Indice della pagina |
Mbrola
Mbrola rappresenta un sistema di sintesi vocale a partire da fonemi base: non si tratta dunque di un sistema TTS (Text To Speech), in grado cioè di avere un testo come input e leggerlo a voce alta. L'approccio scelto è molto più flessibile: il sistema consente di definire un dizionario di fonemi, descrivendone la pronuncia. La potenza del sistema sta proprio nel fatto che sono diponibili molti dizionari diversi, sia per lingua, che, all'interno della stessa lingua, per tipo di voce.
Sono al momento in cui scrivo disponibili una trentina di dizionari diversi, tra cui inglese e italiano: la possibilità di gestire più lingue diverse era uno degli obiettivi del progetto: gli autori sono: "TCTS Lab of the Faculté Polytechnique de Mons (Belgium)", come licenza, l'utilizzo è libero "for non-commercial, non-military purposes"
Installazione
- Scaricare il pacchetto da http://tcts.fpms.ac.be/synthesis/mbrola.html (versione per linux-i386)
- scaricare i pacchetti delle lingue (it3 e it4), o quelli desiderati (l'installazione base ha una voce inglese)
- Scompattare Mbrola in una directory mbrola e, all'interno della stessa, scompattare it3 e it4.
- L'eseguibile per linux su i386 e' mbrola-linux-i386: copiarlo in una direcotry che si trova nel PATH, con il nome mbrola
- Per verificarlo, posizionarsi nella directory it4, creata dalla scompattazione della linga it4 e dare il comando:
mbrola it4 TEST/sent1.pho output.wav
mbrola it4 TEST/sent1.pho - | \ sox -t raw -sw -r 16000 - -t raw -Ub -r 8000 - > /dev/audio
Si dovrebbe sentire una frase di test.
Festival
Una volta che mbrola è funzionante si tratta di installare un sistema per la traduzione del testo in fonemi: Festival http://www.cstr.ed.ac.uk/projects/festival/ è un sistema di questo tipo, per cui sono state sviluppate le voci italiani, compatibili con mbrola (da parte di un gruppo dell'Università di Padova e del CNR).
Installazione
- Scaricare i file necessari (rispetto a quanto descritto nel file INSTALL, c'e' la versione 1.95 nel sito indicato) dal sito: http://www.cstr.ed.ac.uk/downloads/festival/1.95/
- festival-1.95-beta.tar.gz
- speech_tools-1.2.95-beta.tar.gz
- festlex_CMU.tar.gz
- festlex_OALD.tar.gz
- festlex_POSLEX.tar.gz
- festvox_cmu_us_awb_arctic_hts.tar.gz
- festvox_don.tar.gz
- festvox_kallpc16k.tar.gz
- festvox_kedlpc16k.tar.gz
- festvox_rablpc16k.tar.gz
Espanso tutto nella directory di lavoro: crea 2 directory: speech_tools e festival.
- Scaricare la voce compatibile con Festival in italiano dal sito seguente http://www.pd.istc.cnr.it/FESTIVAL/home/default.htm sul link ``FULL DOWNLOAD (scarica il file Italian-FESTIVAL.zip) unzipparlo nella stessa directory di lavoro (festival)
- Prima si compila speech_tools:
cd speech_tools ./configure gmake gmake test
- poi si compila festival:
cd festival ./configure gmake gmake test
- Per provarlo: lanciare bin/festival (apre un interprete scheme: dare il seguente comando) (SayText "Hello World")
- lanciare il comando
# echo chao | ./festival --tts
Se il computer dice Hello World, siamo a cavallo, se no siamo a piedi ...
- Se siamo a cavallo, cerchiamo di parlare italiano!
- copiare l'eseguibile mbrola in festival/lib/etc/unknown_RedHatLinux/mbrola
- copia la directory della lingua it3 in festival/lib/voices/italian/pc_mbrola/it3/
- Aggiungere al file festival/lib/siteinit.scm: (set! voice_default 'voice_pc_mbrola)
- testarlo, tramite i comandi
festival> (voice\_pc\_mbrola) festival> (SayText "gera ora che te disessi chelcossa")
ovvero
echo "gera ora che te disessi chelcossa" | festival --tts
Emacspeak
Si tratta ora di integrare questo sistema in modo da usarlo negli applicativi: per ora ho testato solo Emacspeak, una estensione di Emacs, che consente di far leggere al computer quanto mostrato a video.
Ho provato EMacspeak con un server per comunicare con Festival, scaricato da CVS con i seguenti comandi:
cvs -d:pserver:anonymous@cvs.espeakf.sourceforge.net:/cvsroot/espeakf login cvs -z3 -d:pserver:anonymous@cvs.espeakf.sourceforge.net:/cvsroot/espeakf co espeakf
ed installato, settando anche le 2 variabili DTK*:
make install export DTK_TCL=perl export DTK_PROGRAM=espeakf.pl
per testarlo ho lanciato il programma (che era già installato nella Fedora)
# emacspeak
Il programma legge quanto viene mostrato nella finestra dell'editor.
Da fare
Testare KDE 3.4, che dovrebbe integrare sintesi e riconoscimento vocale nel desktop.
Riferimenti
Ho trovato alcuni riferimenti ad altro software, che devo ancora provare:
- http://www.telenovela-world.com/ spade/linux/howto/Accessibility-HOWTO/visual.html con molti altri link
- http://www.linux-speakup.org/
- http://applications.linux.com/applications/05/01/18/2148234.shtml?tid=39 un articolo che descrive vari progetti


