Markdown source

# Una semplice Talking Machine

<h6>
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
</h6>

<img src="./tux_to_speech.jpg">

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":
<pre class="terminal">
http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=Ciao&client=tw-ob
</pre>


Google però ci risponderà con uno stream audio, per cui, per poterlo riprodurre, useremo il programma mpg123:
<pre class="terminal">
<B>mpg123 -0 -o alsa -q </B>"http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=$NEXTURL&client=tw-ob"
</pre>

La richiesta a Google è idonea per generare una conversione "Text to Speech" in Italiano. Notate le opzioni **tl=it**.
<pre class="terminal">
mpg123 -0 -o alsa -q "http://translate.google.com/translate_tts?<B>tl=it</B>&ie=UTF-8&q=$NEXTURL&client=tw-ob"
</pre>

Lo script completo che ho usato è questo che ho trovato in Internet e che ho chiamato **speech_IT.sh**:
@source='speech_IT.sh'

Per usarlo vi faccio vedere come ho fatto lo script per dire la data e l'ora:
<pre class="prettyprint">
#!/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
</pre>

Un'altro modo per scaricare l'audio da Google è usando **wget**:
<pre class="terminal">
wget -q -U Mozilla -O output.mp3 "http://translate.google.com/translate_tts?tl=it&ie=UTF-8&q=Ciao&client=tw-ob"
</pre>

## 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='play_speech.sh'

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='ansa_reader.py'

### 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='play_ansa_google.sh'

### 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='play_ansa.sh'

## Sorgenti dei script
I vari progammi sono su github:
[Talking Machine](https://github.com/cledic/talking_machine)

@include='bio_clemente_dicaprio'

The TanzoLab Project

Il TanzoLab è una iniziativa senza fini di lucro, nata da un'idea di Sergio Tanzilli socio fondatore di Acme Systems srl nel Novembre 2015, per trasferire ad appassionati di elettronica e informatica, professionisti e aziende nel settore, le conoscenze necessarie per poter creare prodotti embedded adatti per la produzione industriale.

Le attività del TanzoLab si svolgono ogni lunedi sera, salvo casi speciali, dalle ore 18:30 presso i locali della Acme Systems srl e consistono in:

  • Talk monotematici a cura di professionisti in vari settori tecnologici
  • Workshop pratici su elettronica embedded, produzione e informatica
  • Progettazione e realizzazione di nuovi prodotti embedded per l'IT

Le attività vengono coordinate tramite questo sito, in cui vengono pubblicati tutti i lavori svolti o in via di sviluppo, e tramite un gruppo Telegram con cui per interagire direttamente via chat con gli altri membri.