Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- #-*- mode: python; coding: utf-8 -*-
- import urllib, urllib2
- from os import path
- def get_tts_mp3( lang, sent, fname=None ):
- print "Retrieving .mp3 for sentence: %s" % sent
- baseurl = "http://translate.google.com/translate_tts"
- values = { 'q': sent, 'tl': lang }
- data = urllib.urlencode(values)
- request = urllib2.Request(baseurl, data)
- request.add_header("User-Agent", "Mozilla/5.0 (X11; U; Linux i686) Gecko/20071127 Firefox/2.0.0.11" )
- response = urllib2.urlopen(request)
- if( fname==None ):
- fname = "_".join(sent.split())
- ofp = open(fname,"wb")
- ofp.write(response.read())
- print "Saved to file: %s" % fname
- return
- def parse_list_from_file( lang, infile ):
- ifp = open(infile)
- for line in ifp:
- line = line.strip()
- get_tts_mp3( lang, line, fname=line+".mp3" )
- ifp.close()
- return
- if __name__=="__main__":
- import sys, argparse
- example = "%s --lang ja --sent 日本語は難しい --fname outfile.mp3" % sys.argv[0]
- parser = argparse.ArgumentParser( description=example )
- parser.add_argument('--lang', "-a", help='Input language abbreviation: Korean=kr, Japanese=ja, English=en, etc.', required=True )
- parser.add_argument('--sent', "-s", help='An input sentence to synthesize.', default=None )
- parser.add_argument('--slist', "-l", help='A file with a list of sentences to synthesize, one per line.', default=None )
- parser.add_argument('--fname', "-f", help='Output filename, defaults to the input sentence .mp3', default=None )
- args = parser.parse_args()
- if not args.sent==None:
- get_tts_mp3( args.lang, args.sent, args.fname )
- elif not args.slist==None:
- parse_list_from_file( args.lang, args.slist )
- else:
- print "Please supply either a value for either --sent or --slist."
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement