Una semplice Talking Machine

Di seguito troverete alcuni script per come fare il text-to-speech su Linux, basandosi su di un servizio Google o usando il programma pico2wave

Come prova ho realizzato uno script che fa dire al computer l'ora e la data, ed un altro che legge le news dell'ANSA. Ne ha anche uno che legge il meteo, ma purtroppo il servizio meteo a cui mi appoggiavo ha chiuso l'utilizzo free delle API e quindi "è tutto da rifare"!

Il servizio Google

Google offre questo servizio di Text to Speech ma non bisogna "sfruculiarlo" troppo! In pratica non bisogna fargli troppe richieste al minuto altrimenti ci bannerà!

Questa è la URL che dobbiamo inviare a Google per farci convertire in speech la parola "Ciao":

http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=Ciao&client=tw-ob

Google però ci risponderà con uno stream audio, per cui, per poterlo riprodurre, useremo il programma mpg123:

mpg123 -0 -o alsa -q "http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=$NEXTURL&client=tw-ob"

La richiesta a Google è idonea per generare una conversione "Text to Speech" in Italiano. Notate le opzioni tl=it.

mpg123 -0 -o alsa -q "http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=$NEXTURL&client=tw-ob"

Lo script completo che ho usato è questo che ho trovato in Internet e che ho chiamato speech_IT.sh:

[Source not found]

Per usarlo vi faccio vedere come ho fatto lo script per dire la data e l'ora:

#!/bin/bash

dt=$(LC_TIME="it_IT.utf8" date '+sono le ore %H e %M minuti, di %A %d %B %Y')
./speech_IT.sh $dt

Un'altro modo per scaricare l'audio da Google è usando wget:

wget -q -U Mozilla -O output.mp3 "http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=Ciao&client=tw-ob"

Il programma pico2wave

Il programma pico2wave si installa come un qualsiasi altro programma. Il suo utilizzo è semplice, ed anche lui ci genererà un audio che poi faremo riprodurre da un'altro programma.

Questo è uno script che ho fatto e che utilizzo per la lettura delle ANSA, si chiama play_speech.sh:

[Source not found]

Le opzioni con cui eseguiamo pico2play ci permettono di definire la lingua -l=it-IT ed il file di output. In questo caso ho usato il programma aplay per la riproduzione.

E adesso ci facciamo leggere le News ANSA!

Di seguito vi riporto alcuni script: il primo scarica le prime dieci news dal sito ANSA e le salva in altrettanti files sotto la directory /tmp. Gli altri due script non fanno altro che leggercele usando in un caso i servizi Google e in un altro caso il programma pico2wave:

Programma ansa_reader.py

[Source not found]

Programma di lettura delle news usando i servizi Google

Questo script riproduce le news scaricate, una per volta. Usa lo script speech_IT.sh che abbiamo visto prima:

[Source not found]

Programma di lettura delle news usando pico2wave

Questo script riproduce le news scaricate, una per volta. Usa lo script play_speech.sh che abbiamo visto prima:

[Source not found]

Sorgenti dei script

I vari progammi sono su github: Talking Machine

Clemente Di Caprio (Sviluppo firmware)
Network administrator, Microcontroller fanatic, Embedded developer enthusiast, Boards Collector.
https://github.com/cledic
http://embeddednotes.org
https://www.youtube.com/results?search_query=cledic64