Sfatando il mito del correttore ortografico

Sfatando il mito del correttore ortografico

Come ci può aiutare la sintesi vocale

SPAZIOd Team

(04 Dicembre 2014)

Quante volte vi è capitato di scrivere una parola e di accorgervi in seguito che era sbagliata?

Il correttore ortografico e grammaticale, presente nei più comuni programmi di scrittura (come Microsoft Office, Open office, …) facilita il riconoscimento di alcuni errori, ma non offre nessuna garanzia sull’efficacia del controllo, poiché non tutti gli errori vengono segnalati e non tutte le parole indicate come sbagliate lo sono davvero.

La sintesi vocale permette di scoprire possibili errori ortografici e può essere usata sia come riscontro immediato sia come revisione successiva.

Ma se consideraimo: 

  • La casa è rossa.
  • La casa e rossa.
  • La casa e rosa.
  • La cassa e rossa.

Per i correttori le  frasi sono ortograficamente corrette e non vengono segnalati errori di tipo grammaticale.

Provate ad ascoltare, senza leggere queste frasi:

  • Io sono andato ha letto alle sette.
  • Io sono andato a letto alle sete.
  • Io sono andato all'etto alle sette.
  • Io sono andato alletto alle sete.
  • Io sono andato a l'etto alle sette.

(nota: se usate Google Chrome e avete installato Chrome Speak o SpeakIt! basta selezionare il testo, premere il tasto destro del mouse e premere Speak. Per Mozilla Firefox Speak It, Text to Voiceecc. Internet Explorer - Microsoft​ non ha un plugin specifico per il TTS)

Che fare?

Un aiuto c'è lo da la sintesi vocale oppure il software della sintesi vocale.

Modificare la sintesi vocale.

Un gruppo di voci che sono modificabili dall'utente sono quelle di IVONA (purtroppo non sono gratuite, ma è disponibile una versione di prova gratuita).

Oltre variare la velocità e l’intonazione della voce, esistono diversi modi per modificare il comportamento della sintesi vocale. Un modo è modificare i file, e l'altro utilizzare i comandi del TTS. Modificare direttamente i file, e' conveniente perche' in questo modo sono indipendenti dal software TTS e quindi ogni altro programma che usa la voce ha le variazioni apportate.

Nel caso di IVONA i due file che ci interessano sono lexicon.pls e italian-ivona.lex (per la lingua italiana).  

Il file lexicon.pls (PLS) è praticamente un dizionario e può essere utilizzato con le voci di Ivona o qualsiasi voce TTS che supporta un dizionario PLS. Il PLS è superiore in molti modi al dizionario tradizionale usato da molte voci TTS.

Il PLS permette di specificare la pronuncia di una parola (utilizzando x-SAMPA o IPA). Poiché il PLS è case-sensitive consente una maggiore flessibilità per le voci.

Il file (lexicon.pls o italian-ivona.lex) si può aprire e modificare con Notepad o altri text editor ma deve essere salvato, con lo stesso nome ed estensionenel formato UTF-8.

Il file lexicon.pls ha una struttura molto semplice:

<?xml version="1.0" encoding="UTF-8"?>
<lexicon version="1.0" xmlns="http://www.w3.org/2005/01/pronunciation-lexicon"  alphabet="ipa" xml:lang="it">
   <lexeme>
     <grapheme>rossa</grapheme>
     <phoneme>'ros:a​</phoneme>
   </lexeme>
   <lexeme>
     <grapheme>rosa</grapheme>
     <phoneme>'rɔza​</phoneme>
   </lexeme>
......
</lexicon>

Nella prima parte del file viene semplicemente definito che l'alfabeto fonetico utilizzato è l'IPA (International Phonetic Alphabet) e la lingua è l'italiano.

È consigliabile utilizzare IPA, perché la maggior parte dei termini scritti con l'alfabeto fonetico internazionale​ si possono trovare in internet (Wikizionario, Vocalolario Treccani, ....) o sul vecchio dizionario di carta. Esistono comunque dei convertitori di trascrizioni IPA e SAMPA.

La parte del file che ci interessa è:

<lexeme>
     <grapheme>rossa</grapheme>
     <phoneme>'ros:a</phoneme>
</lexeme>

Ora, ad esempio, se voglio che la voce (sintesi vocale) pronunci rossa in modo non convenzionale, cioe' che la doppia esse di rossa sia piu' lunga del normale, posso giocare in questo modo (lo so che  faccio inorridire un linguista, ma...).

<lexeme>
     <grapheme>rossa</grapheme>
     <phoneme>
'ross:a</phoneme>
</lexeme>

In questo modo dico al programma che quando incontra la parola "rossa" la legga con una esse in piu' (IPA di rossa è = 'ros:a), in modo da diferenziarla ulteriormente dal termine "rosa".

La stessa modifica si può fare per tutti i termini che assumono un significato diverso se hanno una consonante doppia e non (adeso, adesso, bara, barra, bare, barre, base, basse, ecc.).

Un altro termine che ha generato problemi è stato il perche (ovviamente senza l'accento sulla e). La soluzione che è stata adottata e dopo alcuni mesi ha dato risultati soddisfacenti è stata le seguente:

<lexeme>
     <grapheme>perche</grapheme>
     <grapheme>Perche</grapheme>    
     <phoneme>'metti la'tʃ:ɛnto sulla :ɛe</phoneme>
</lexeme>

In questo modo quando il programma incontra "Perche" o "perche" legge a voce alta: Metti l'accento sulla e.

Il commento è stato: Ma papà, anche il computer me lo dice adesso!

Lo stesso procedimento si puo' adottare per:  "ano" - fai il medico?, o "anno" - anno solare, in modo tale da diversificarli da "hanno", che rimane invariato. Altro esempio: scema o schema. Scema a chi?

Il file PLS è utile anche per inserire nomi propri, termini tecnici, scientifici e giuridici, numeri romani e parole composte complesse che la sintesi vocale pronuncia male. 

Formule chimiche -  Ad esempio  H2SO4  verebbe letto acca due SO quattro. In questo caso è stato utilizzato l'elemento <alias> che viene utilizzato per gli acronimi. 

<lexeme>
     <grapheme>H2SO4</grapheme>
     <alias>acca due esse o quattro​</alias>
</lexeme>

Elementi chimici. Essendo attualmente 118, e vari hanno come simbolo delle parole o delle lettere la situazione è un po più complessa, devono essere inseriti manualmente. 

Nomi con numeri romani: Giovanni Paolo II è letto come  Giovanni Paolo ii (non secondo).

<lexeme>
     <grapheme>Giovanni Paolo II</grapheme>
     <alias>Giovanni Paolo secondo​</alias>
</lexeme>

Un po' di matematica.

<lexeme> <grapheme>/</grapheme>
<phoneme>tutto diviso</phoneme>
</lexeme>                     
<lexeme> <grapheme>√</grapheme>
<phoneme>radice quadrata</phoneme>
</lexeme> 
<lexeme> <grapheme>-</grapheme>
<phoneme>meno</phoneme>
</lexeme>
<lexeme> <grapheme>^2</grapheme>
<phoneme>al kwa'drato</phoneme>
</lexeme>
<lexeme> <grapheme>*</grapheme>
<phoneme>per</phoneme>
</lexeme>        
<lexeme> <grapheme>^</grapheme>
<phoneme>elevato a</phoneme>
</lexeme>
<lexeme>
<grapheme>π</grapheme>
<phoneme>pi 'grɛko</phoneme>
</lexeme>

 

Il file italian-ivona.lex da la possibilità di usare le Regular expression.