Strojove cteni textu pomoci Google prekladace (Text-to-Speech)

Pro zabavu jsem si postavil z Arduina jednoduchou RFID ctecku (MIFARE 13,56MHz). Po prilozeni cipu firmware v Arduinu precte ID karty (blok 0) a posle ho pres seriovy port do PC. Protoze sledovat vypis v PuTTY byla nuda, dodelal jsem strojove cteni.

A to byla dobra vyzva! Po chvili hledani jsem se rozhodl zneuzit Google prekladac.

RFID ctecku jste mohli videt na Open hardware hackathonu, DevFestu 2014, DevFestu 2015 a pak take pri otevreni GeekLabu v Jicine. 

Zdrojaky RFID ctecky jsou na GitHubu a ukazkove video na YouTube.

Protoze cteni je snadne a dalo by se vyuzit i na jine veci, vytvoril jsem si cteci skript. Ten je take na GitHubu. A takhle vypada:

#! /usr/bin/python

# https://github.com/tuxmartin/google-translator-text-to-speech
# !!! Pouze pro vyukove ucely! Na 99,9% porusuje licenci Googlu !!!

"""
Pouziti:

	$ echo "test 123" | python googleTextToSpeech.py cs
	$ echo "test 123" | python googleTextToSpeech.py en

Pokud neni zadany jazyk, pouzije se cestina.

Je nutne mit nainstalovany "wget" a "madplay" prehravac!
http://packages.ubuntu.com/search?keywords=madplay
"""

import sys
from subprocess import call
import urllib

try:
	jazyk = sys.argv[1]	
	#print "Jazyk pro cteni = ", jazyk
except IndexError:
	jazyk = "cs"
	print "Nebyl zadan jazyk pro cteni! Pouzivam vychozi = ", jazyk

text = ""
for line in sys.stdin:
#	print line
	text += line		

cti = urllib.quote_plus(text)

userAgent = "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0";
prikaz = "wget -q -U \"" + userAgent + "\" -O - \"http://translate.google.com/translate_tts?ie=UTF-8&tl="+ jazyk +"&q=" + cti + "&total=1&idx=0&client=t\" | madplay -q -"
#print prikaz
call(["/bin/sh", "-c", prikaz])

Pouzivejte prosim zdrojak z GitHubu, ten budu casem vylepsovat a opravovat 🙂

Jak to funguje?

Google na webu v prekladaci nabizi moznost nechat si precist zadany text. Jako vystup vytvori MP3 soubor a posle ho prohlizeci. A to je cele. Vyse uvedeny skript dela nekolik veci:

  • precte text ze standardniho vstupu
  • prevede ho na URL format (url encode)
  • sestavi kompletni URL vcetne textu pro preklad
  • prida identifikaci Firefoxu (Google odmita pracovat s „wget“ user-agentem)
  • wgetem stahne URL
  • google vrati mp3 a tu pres rouru posle madplay prehravaci
  • ten ji prehraje a cely program konci

Skript se neda pouzivat moc casto. Google totiz po chvili zacne vracet chybovy kod (asi 503). Po zobrazeni v prohlizeci se je videt hlaska o podezrele aktivite v siti.

Skript je pouze pro vyukove ucely, nikoliv k beznemu pouzivani!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *