NuoveRegoleSviluppate
Introduzione
Durante lo sviluppo del lettore vocale di feed RSS, sono emerse le limitazioni delle regole originali delle voci italiane di Festival, che troppo spesso non erano in grado di riconoscere grammaticalmente le frasi comunemente incontrate sui quotidiani online, facendone quindi fallire la lettura.
Per questo motivo, sono stati modificati i seguenti file (riportati qui in ordine alfabetico) che contengono le regole per le voci italiane, normalmente presenti nella cartella /usr/share/festival/italian_scm su sistemi Debian/Ubuntu:
italian_intonation.scm italian_lexicon.scm italian_lts.scm italian_mbrola.scm italian_oredatetel.scm italian_phrasing.scm italian_token.scm
In più i seguenti file (presenti in /usr/share/festival/) generici:
languages.scm sable_mode.scm syntesis.scm tts.scm
Tutte le modifiche sono state inserite all'interno di un unico file (italian_sapientel.scm). Tale file viene richiamato da due nuove voci (pc_mbrola_sapientel e lp_mbrola_sapientel), basate quasi totalmente sulle voci mbrola originali (pc_mbrola e lp_mbrola), che non sono state modificate al fine di poter confrontare le differenze tra le due versioni. Si rimanda al codice sorgente per i dettagli delle modifiche; le modifiche sono rintracciabili cercando le iniziali dell'autore "E.E." tra i commenti.
Il file 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.
Il file 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.
Il file synthesis.scm
Questo file conteneva un bug che impediva la corretta gestione del volume da parte della modalità SABLE.
Il file tts.scm
Sono state aggiunte due funzioni specifiche per il funzionamento con Asterisk, che riducono la frequenza delle forme d'onda ad 8khz.
Il file 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.
Il file 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.
Il file 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.
Il file italian_mbrola.scm
Questo file definisce i percorsi per i file di mbrola ed è stato modificato per essere compatibile con Ubuntu.
Il file 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).
Il file italian_phrasing.scm
Sono stati aggiunti dei caratteri di punteggiatura (virgolette doppie, ecc.).
Il file 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.
Pagine che puntano a questa: