Festival
Available languages for this page: it en
Ecco una breve discussione delle modifiche che sono state necessarie alle voci italiane di Festival, per ottenere il corretto funzionamento di ReadMyFeed.
Package contenente le modifiche
Il pacchetto festival-readmyfeed.tar.gz contiene le modifiche realizzate alla distribuzione italiana di Festival.
Installazione
Innanzitutto, occorre già disporre di una istallazione di Festival funzionante, e completa delle voci
mbrola
, ad esempio seguendo queste istruzioni. Quindi, dopo aver scaricato e scompresso il pacchetto indicato sopra, si potrà trovare uno script di nome install
, che occorre eseguire allo scopo di applicare tutte le modifiche ad una distribuzione di Festival preesistente. Il file deve essere eseguito con i privilegi di root, per poter sovrascrivere i files originali.
Modifiche apportate alle voci originali
I file originali di Festival non sono stati modificati se non dove strettamente necessario. Alcuni esempi di frasi che Festival non riusciva a leggere correttamente:
- Il primo ministro ha detto: «Dobbiamo diminuire le tasse»
- Una percentuale del 12,0023%
- Il sito di infocom: http://www.infocom.uniroma1.it
- Il nostro viaggio è terminato.Torneremo il prossimo anno.
per le quali sussistevano i seguenti problemi:
- veniva rigettata totalmente a causa delle virgolette non presenti nelle regole lts.
- gli zeri dopo la virgola venivano ignorati (12,0023% veniva letto come 12,23%)
- veniva rigettata a causa degli slash misti a testo e punteggiatura
- la punteggiatura (erronea) tra "terminato" e "Torneremo" causava la lettura lettera per lettera (spelling) delle due parole.
Inoltre, il markup SABLE veniva quasi completamente ignorato per l'Italiano, mentre ora è correttamente renderizzato.
Cosa è stato modificato/aggiunto
Le modifiche sono state fatte ad alcuni file nella cartella (Debian/Ubuntu):
/usr/share/festival/italian_scm
dove sono contenute le definizioni e le funzioni che gestiscono la lingua italiana. Tutte le modifiche all'italiano sono state riunite in un unico, nuovo, file:
/usr/share/festival/italian_sapientel.scm
per poter effettuare un confronto con le vecchie voci. Questo file viene infatti invocato da due nuove voci italiane:
/usr/share/festival/voices/italian/pc_mbrola_sapientel /usr/share/festival/voices/italian/lp_mbrola_sapientel
che, quando invocate, sovrascrivono le definizioni delle funzioni per l'italiano, andando ad utilizzare i file modificati.
Sono stati modificati anche altri file minori, propri della distribuzione originale di Festival, al fine di correggere alcuni bug e avere pieno supporto alla lingua italiana. Le modifiche apportate sono riassunte di seguito
languages.scm
Questo file non fa in realtà parte delle voci italiane, ma è necessario modificarlo per aggiungere la definizione della lingua italiana. In questo file viene controllata la presenza delle voci italiane e attivata quella più opportuna.
sable_mode.scm
Tale file controlla la modalità SABLE, non prevedeva la lingua italiana (che è stata aggiunta), e una diversa scala per i volumi delle voci italiane.
synthesis.scm
Questo file conteneva un bug che impediva la corretta gestione del volume da parte della modalità SABLE.
tts.scm
Sono state aggiunte due funzioni specifiche per il funzionamento con Asterisk, che riducono la frequenza delle forme d'onda ad 8khz.
italian_intonation.scm
Questo file contiene le funzioni che calcolano la posizione degli accenti all'interno di una frase. Utilizzano un sistema creato ad hoc per l'italiano, che ignora le informazioni prodotte dal linguaggio SABLE. Tale linguaggio, si appoggia al metodo di intonazione adottato per la lingua inglese, andando ad impiegare la variabile
int_lr_params
, caratteristica dell'intonazione basata sul modello a regressione lineare. Si sono semplicemente rimappati i valori (target) della frequenza fondamentale F0 sulle variabili impiegate per la lingua italiana. La stessa operazione è stata effettuata anche per la voce femminile.
italian_lexicon.scm
Questo file contiene termini aggiuntivi la cui pronuncia non può essere ricavata per mezzo di regole intonative, quali ad esempio eccezioni o parole straniere. Sono state aggiunte parole comunemente incontrate durante lo sviluppo del lettore vocale di feed RSS.
italian_lts.scm
Questo file contiene le grammatiche che riconoscono le parole italiane. Il file originale conteneva caratteri in codifica OEM misti a caratteri in codifica ISO8859-1 (o latin1). Nel nuovo file sono stati rimossi i caratteri OEM e sono stati aggiunti caratteri in codifica Windows-CP1252 (molto frequenti nelle pagine web). Questa codifica è compatibile con la codifica latin1 per quanto riguarda i caratteri visualizzabili, mentre non è vero il viceversa. Per questo motivo, le nuove voci (pc_mbrola_sapientel e lp_mbrola_sapientel) dichiarano la propria codifica come CP1252 invece di ISO-8859-1.
italian_mbrola.scm
Questo file definisce i percorsi per i file di mbrola ed è stato modificato per essere compatibile con Ubuntu.
italian_oredatetel.scm
In questo file sono presenti le grammatiche per riconoscere le date, gli orari, e altri tipi di stringhe miste (alfanumeriche). Sono state aggiunte alcune regole per gli anni, per i numeri con la percentuale, per i gradi primi e secondi, per le migliaia e i milioni scritti in forma mista e un altro paio di casi speciali, che gestiscono anche gli ordinali femminili quando possibile (incontrati su un quotidiano nazionale).
italian_phrasing.scm
Sono stati aggiunti dei caratteri di punteggiatura (virgolette doppie, ecc.).
italian_token.scm
Sono state aggiunte regole nuove per gestire gli ordinali femminili (file italian_oredatetel.scm), gli indirizzi internet, i numeri decimali (le regole non prevedevano il riconoscimento degli zeri, significativi, dopo la virgola) e le parole miste (parola+carattere non alfabetico+parola), in cui i termini vengono separati e cercati nel lessico prima di ricorrere alle regole generiche.