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:
- Raspberry Pi
- Micro SD
- Cavo Ethernet
- Miniature WiFi opzionale
- Casse Audio
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.