# 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'
2018 Ⓒ TanzoLab