[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]


Capitolo 643.   Sintesi vocale

La sintesi vocale si ottiene a partire da campioni fonetici, utilizzati attraverso un programma che sia in grado di interpretare un testo e di tradurlo nella sequenza di fonemi adatti a una certa lingua.

643.1   eSpeak

eSpeak(1) è un programma molto semplice per la lettura automatica di un testo per varie lingue. Si utilizza senza bisogno di grafica, oppure viene attivato attraverso programmi frontali. A ogni modo, il programma principale può ricevere il testo da sintetizzare in tre modi alternativi:

espeak [opzioni] [-v linguaggio] testo
espeak [opzioni] [-v linguaggio] < testo
espeak [opzioni] [-v linguaggio] -f file_testo

Come si vede, si può fornire il testo come ultimo argomento, oppure attraverso lo standard input, oppure con l'opzione -f, all'interno di un file. Inoltre, un'altra opzione fondamentale è -v, con la quale si specifica il linguaggio secondo cui va sintetizzato il testo.

La codifica del testo atteso da eSpeak UTF-8, oppure, una codifica a 8 bit appropriata al linguaggio scelto.

Segue la descrizione di alcuni esempi elementari:

643.1.1   Scelta del linguaggio

Non sono disponibili le regole di sintesi per tutte le lingue esistenti e non è detto che la sigla usata per la selezione debba corrispondere agli standard; inoltre nel caso della lingua inglese si può anche scegliere tra intonazioni differenti. Pertanto, è bene sapere tra cosa si può scegliere:

espeak --voices[Invio]

Pty Language Age/Gender VoiceName     File       Other Langs
 5  af             M  afrikaans       af         
 5  cy                welsh-test      cy         
 5  de             M  german          de         
 5  el             M  greek_test      el         
 1  en-uk          M  english         en/en      
 1  en-uk          F  female          en/en-f    
 2  en-uk          M  en/en7          en/en7     
 3  en-uk        55M  en/en4          en/en4     
 4  en-uk        70M  old             en/en8     
 5  en-uk          M  blocked         en/en6     
 5  en-uk             default         default    
 5  en-uk          M  echo            en/en1     
 5  en-uk             fuzzy           en/en2     
 1  en-uk-north    F  en/en-n-f       en/en-n-f  
 1  en-uk-north    M  lancashire      en/en-n    (en-uk 3)
 5  en-uk-rp       M  english_rp      en/en-rp   (en-uk 4)
 4  en-uk-wmids    M  english_wmids   en/en-wm   
 5  eo             M  esperanto       eo         
 5  es             M  spanish_test    es         
 5  fi                finnish-test    fi         
 5  it             M  italian         it         
 5  pl             M  polish_test     pl         
 5  ru             M  russian_test    ru         

Come si vede, l'opzione --voices consente di avere un elenco di ciò che è disponibile. Nel caso della lingua inglese, la scelta è interessante: tra le altre cose è disponibile anche un tono femminile:

espeak -v en-f "My dear, I love you so much!"[Invio]

643.1.2   Modifica dell'intonazione e della cadenza

A parte la scelta della lingua, ci sono diverse opzioni che possono servire per migliorare la comprensibilità del testo letto. La cosa forse più importante è la velocità di lettura, che si controlla con l'opzione -s (speed):

espeak -s 120 -v it "Sostituisci il dischetto!"[Invio]

L'argomento dell'opzione rappresenta la quantità di parole al minuto. Essendo il valore predefinito pari a 160, in questo esempio si ottiene una lettura leggermente più lenta del solito.

Oltre alla velocità di lettura, anche il tono di voce (l'intonazione) può essere regolato, questa volta con l'opzione -p (pitch), che attende un argomento composto da un numero che va da 0 a 99: più è grande, più acuto è il tono di voce. Il tono predefinito corrisponde al valore 50, pertanto, l'esempio seguente sintetizza il testo con il tono più acuto possibile:

espeak -p 99 -v it "Mamma, me lo compri?"[Invio]

643.1.3   Controllo dell'input e dell'output

In condizioni normali, eSpeak legge un testo puro e semplice, sintetizzandolo attraverso l'adattatore audio. Diversamente, con l'opzione -m (markup), che si usa senza argomenti, è possibile fornire anche un file HTML, come si vede nell'esempio seguente:

espeak -v it -m -f testo.html[Invio]

È anche possibile produrre un file WAV-RIFF, senza emettere alcun suono attraverso l'adattatore audio, con l'opzione -w (wave). Nell'esempio seguente il file testo.txt viene sintetizzato nel file testo.wav:

espeak -v it -f testo.txt -w testo.wav[Invio]

643.2   Riferimenti

Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>


1) eSpeak   GNU GPL


Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome sintesi_vocale.htm

[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]

Valid ISO-HTML!

CSS validator!