[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
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.
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:
$
espeak -v it "Ciao, come stai?"
[Invio]
Legge e sintetizza, attraverso l'adattatore audio, il testo «Ciao, come stai?»
$
echo "Ciao, come stai?" | espeak -v it
[Invio]
Fa esattamente la stessa cosa dell'esempio precedente.
$
espeak -v it -f testo.txt
[Invio]
Legge e sintetizza quanto contenuto nel file testo.txt
.
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]
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]
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]
eSpeak
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
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]