eSpeak

Come usare il sintetizzatore vocale con le voci realistiche di Mbrola

Sistema Operativo:Linux
Lingua:In italiano
Prezzo:gratuito GNU GPL
Dimensione:22.000 KB
Click:51
Commenti:Leggi | Scrivi (3)
Feed:Xml
downloadScarica dal sito originale
Alternativo
Quando si parla di sintetizzatori vocali si pensa spesso a una sorta di "giocattolo informatico" utile per qualche grassa risata con gli amici facendogli pronunciare frasi buffe o insulti goliardici. Ciò non toglie che tale tecnologia possa essere utilizzata anche in modo serio, per lavorare o assemblare progetti basati su Raspberry Pi. Grazie alla sintesi vocale si può costruire dinamicamente un file audio da riprodurre durante una telefonata, su un sito Web, oppure con un Raspberry Pi. L'esempio più banale è un orologio che legge l'ora. Esistono tanti tipi di simulatori vocali, il problema è che molti di essi producono una voce poco realistica, se non addirittura sgradevole all'ascolto.
Il simulatore eSpeak è interessante proprio perché può funzionare con le voci Mbrola. Si tratta di voci prodotte, per quasi tutte le lingue conosciute, utilizzando un apposito algoritmo che tenta di mimare il modo di parlare degli esseri umani. Il suo utilizzo è più semplice di quanto si possa immaginare, visto che per leggere un testo basta un solo comando dal terminale di GNU/Linux. Si possono anche realizzare degli script per far parlare il proprio computer in determinate occasioni.


Prima di tutto si deve installare Mbrola, l'algoritmo fonetico sviluppato dal politecnico di Mons, in Belgio. Su un computer dotato di Ubuntu si può dare direttamente il comando sudo apt-get install mbrola.
Su un sistema Raspbian, come quello che normalmente si usa su un Raspberry Pi, si devono invece dare i seguenti comandi:

wget http://steinerdatenbank.de/software/mbrola3.0.1h_armhf.deb
dpkg -i wget mbrola3.0.1h_armhf.deb


Ora è necessario installare le voci: ne esistono molte; l'elenco completo si può consultare sul sito ufficiale. Le voci italiane possono essere installate direttamente da un terminale con il comando sudo apt-get install mbrola-it3 mbrola-it4.
Sviluppate da ricercatori del CNR, it3 è la voce maschile e it4 quella femminile.


Ora si può installare il traduttore fonetico, ovvero il programma di Text To Speech che nel nostro caso è eSpeak. A tal fine è sufficiente dare il comando sudo apt-get install espeak.
Un'alternativa è Festival, ma le sue ultime versioni non sono compatibili con le voci di Mbrola.


Prima di provare eSpeak ci si deve assicurare che l'audio del computer sia abilitato. Su un Raspberry Pi potrebbe essere necessario dare il comando sudo raspi-config ed entrare nel menu avanzato per modificare l'uscita audio predefinita. Infatti, l'uscita predefinita è solitamente l'HDMI, mentre si potrebbe voler utilizzare il classico jack analogico.


Ora si può finalmente provare il simulatore vocale con un comando di questo tipo:

espeak -v mb-it4 -s 150 -p 50 -w /tmp/temp.wav "Ciao a tutti, io sono un computer ma potete chiamarmi Anna." && aplay /tmp/temp.wav

Il comando seleziona la voce it4, ovvero quella femminile italiana, imposta una velocitàdi 150 parole al minuto e un timbro pari al 50 per cento. Il risultato della lettura del testo tra doppi apici viene scritto nel file /tmp/temp.wav. Questo file viene poi riprodotto immediatamente con il comando aplay, che è un semplice riproduttore audio ALSA a riga di comando.


Č ovviamente possibile realizzare uno script per sfruttare la cosa, per esempio realizzando un orologio parlante che dichiara l'ora ogni 10 minuti (600 secondi):

while true
do
hour=$(date +"%T" | cut -d ":" -f1)
minutes=$(date +"%T" | cut -d ":" -f2)
message="Ciao, sono le ore "$hour" e "$minutes" minuti."
espeak -v mb-it4 -s 150 -p 50 -w /tmp/temp.wav "$message" && aplay /tmp/temp.wav
sleep 600
done

Lo script si può scaricare anche da questa pagina Web. Naturalmente è possibile specificare un file di testo da leggere con l'opzione -f, quindi si può scaricare un file da Internet con curl e leggerlo direttamente con espeak (meglio se eliminando prima le parti inutili).

Luca Tringali
3 Commenti alla Notizia eSpeak
Ordina