Festival parla in Italiano, con Fedora 10

MBROLA è un sistema di sintesi vocale che parte da fonemi base per ricostruire le frasi.
Viene fornito in formato binario e purtroppo esiste solamente la versione a AMD64 per sistemi a 64bit e sul mio fedora 10 a 64bit non ne vuole sapere di funzionare.
Per fortuna il kernel di fedora supporta anche gli applicativi a 32bit per cui per usare mbrola basta andare sul sito del progetto e scaricare la versione linux-i386 di mbrola, ovviamente se si possiede un sistema a 32bit o 64bit, comunque cercare il pacchetto corrispondente alla propria architettura.

Per essere sicuri che il programma funzioni possiamo procedere con i vari test da utente normale, per cui procedendo con ordine:

  1. scaricare dal progetto mbrola l’applicativo corrispondente all’architettura del proprio sistema operativo;
  2. scaricare, dalla pagina di download del progetto mbrola, le lingue it3 (maschile) e it4 (femminile)
  3. scompattare il pacchetto mbrola scaricato in una cartella a piacimento per es. mbrola, la stessa cosa per i pacchetti it3 e it4:
    $ cd directory_dove_sono_presenti_pacchetti_zip
    $ ll -h
    totale 11M
    -rw-rw-r-- 1 mario mario 5,2M 24 mag 19:55 it3-010304.zip
    -rw-rw-r-- 1 mario mario 4,9M 24 mag 19:55 it4-010926.zip
    -rw-rw-r-- 1 mario mario 303K 24 mag 19:55 mbr301h.zip
    $ mkdir mbrolaTEST
    $ unzip file_zip -d mbrolaTEST # sostituire file_zip per ogni pacchetto zip scaricato
    $ cd mbrolaTEST

    Il pacchetto mbr301h.zip conteneva vari file che elenco qui di seguito:

    mbrola206a-linux-ppc
    mbrola302b-linux-ppc
    mbrola-linux-alpha
    mbrola-linux-i386
    mbrola_linux_libc5
    mbrola-SuSElinux-ultra1.dat
    readme.txt

    L’eseguibile che a me interessa è mbrola-linux-i386 di conseguenza per vedere il corretto funzionamento dell’eseguibile scelto gli do i permessi di esecuzione e controllo se riesco a creare un file audio di test con i seguenti comandi:

    $ chmod +x mbrola-linux-i386
    $ ./mbrola-linux-i386 it4/it4 it4/TEST/sent1.pho sent1.wav
    $ ./mbrola-linux-i386 it4/it4 it4/TEST/sent2.pho sent2.wav

    Sono 2 file audio che sono stati creati all’interno della directory in cui si trova mbrola-linux-i386.
    Per sentire se producono qualche suono posso utilizzare mplayer, o qualsiasi altro lettore multimediale:

    $ mplayer sent1.wav sent2.wav

    Se tutto è andato per il verso giusto si ascolterà una voce femminile italiana(per quella maschile basta sostituire it4 con it3) che dice delle informazioni interessanti.

Dunque è tutto pronto e si può procedere con l’installazione vera e propria di mbrola per festival.

  1. Scaricare le voci per mbrola dal sito web di festival in italiano: festvox_lp_mbrola.tar.gz(la voce femminile) e festvox_pc_mbrola.tar.gz(la voce maschile);
  2. Autenticarsi come root e seguire i seguenti passaggi per installare mbrola:
    $ su -
    [password di root]
    # cp /percorso_al_file_mbrola_testato/mbrola-linux-i386 /usr/share/festival/lib/etc/mbrola

    (sostituire mbrola-linux-i386 con l’eseguibile che funziona per la propria architettura)

  3. Installare le voci italiane precedentemente scaricate con i seguenti comandi, fare molta attenzione:
    # cd /usr/share/
    # tar xvfz /percorso_alla_voce_scaricata/festvox_lp_mbrola.tar.gz
    # tar xvfz /percorso_alla_voce_scaricata/festvox_pc_mbrola.tar.gz
  4. Ora bisogna solo installare le lingue italiane, sempre come utente amministratore:
    # mkdir /usr/share/festival/lib/voices/italian/italian
    # cp -r /percorso_al_file_mbrola_testato_con_i_pacchetti_italiani/it3 /usr/share/festival/lib/voices/italian/italian/
    # cp -r /percorso_al_file_mbrola_testato_con_i_pacchetti_italiani/it4 /usr/share/festival/lib/voices/italian/italian/
  5. Per fare in modo che la voce principale di festival sia mbrola basta modificare il file di configurazione di festival con il proprio editor preferito:
    # vim /etc/festival/siteinit.scm

    E modificare la riga precedentemente inserita:

    (set! voice_default 'voice_lp_diphone)

    come segue per avere una voce femminile:

    (set! voice_default 'voice_lp_mbrola)

    per quella maschile invece:

    (set! voice_default 'voice_pc_mbrola)
  6. In teoria dovrebbe essere tutto a posto, si può provare a vedere se festival legge qualcosa tramite mbrola con questo comando da utente normale:
    $ echo tutto funziona correttamente con festival | festival --tts

Per le conclusioni e riferimenti utili andare alla pagina successiva.

Privacy Preference Center