Sintetizzatore Vocale Google tts API Python Raspberry Pi

Premessa:

Come ci hanno chiesto molti dei nostri lettori, questa guida nasce da un’esigenza di rendere il raspberry pi un sintetizzatore vocale ottimale. Ci siamo sempre soffermati all’utilizzo di sintetizzatori vocali locali come espeak o altri programmi che non permettevano un’efficente sintetizzazione. Con questo articolo faremo parlare il nostro raspberry pi tramite il tts di Google richiamato tramite i moduli python. Avremo così quindi il top gamma della sintetizzazione vocale in tutte le lingue desiderate.

LISTA DEI MATERIALI:

ApiGoogleTTSRaspberryPiSintetizzatoreVocale

Procedimento:

Per cominciare andiamo a installare da terminale le librerie necessarie per python:

sudo apt-get install python-pycurl

successivamente installiamo mplayer che ci servirà per installare i drivers per la riproduzione del suono e per il salvataggio del file .mp3.

sudo apt-get install mplayer

Una volta effettuato i passi fondamentali andiamo a creare un file python che nel nostro caso chiameremo ttsgooglepython.py e andremo a copiarci:

#!/usr/bin/python

import urllib, pycurl, os

def downloadFile(url, fileName):
    fp = open(fileName, "wb")
    curl = pycurl.Curl()
    curl.setopt(pycurl.URL, url)
    curl.setopt(pycurl.WRITEDATA, fp)
    curl.perform()
    curl.close()
    fp.close()

def getGoogleSpeechURL(phrase):
    googleTranslateURL = "http://translate.google.com/translate_tts?tl=it&"
    parameters = {'q': phrase}
    data = urllib.urlencode(parameters)
    googleTranslateURL = "%s%s" % (googleTranslateURL,data)
    return googleTranslateURL

def speakSpeechFromText(phrase):
    googleSpeechURL = getGoogleSpeechURL(phrase)
    downloadFile(googleSpeechURL,"tts.mp3")
    os.system("mplayer tts.mp3 -af extrastereo=0 &")
    
speakSpeechFromText("Ciao mondo. Piacere di conoscerti.")

Spiegazione Skatch Passo Passo:

Per prima cosa abbiamo importato le librerie necessarie per il nostro progetto tra cui

  • urllib utile per richiamare la url di nostro interesse
  • os usata per richiamare il programma che deve riprodurre il testo convertito in file audio sulla Raspberry Pi
  • pycurl infine è il modulo che si occuppa della conversione del file in audio

Una volta importato le librerie definiamo tre funzioni:

  • downloadFile trasforma il testo ottenuto nella url in un file mp3.
  • getGoogleSpeechURL è la funzione che si occupa della traduzione del testo inserito nella funzione speakSpeechFromText. Si connette al google translate con argomento “it” nell’url per la traduzione in italiano. (ex. “es”  per spagnolo)
  • speakSpeechFromText Permette di inserire il testo da riprodurre e tramite il modulo os eseguirlo sugli altoparlanti del Raspberry Pi.

Buon Progetto.