几个星期前,我能够让它终于奏效了。有时候我得到了这个错误400,但是在Python中使用try并重复请求两到三次,直到它工作就足够了。现在它不断重复请求,每次出现同样的错误我都会回来。
这是我的代码。有没有人经历过同样的事情?
def stt_google_wav(audio_fname):
print "Sending ", audio_fname
#Convert to flac first
filename = audio_fname
del_flac = False
if 'flac' not in filename:
del_flac = True
print "Converting to flac"
print FLAC_CONV + filename
os.system(FLAC_CONV + ' ' + filename)
filename = filename.split('.')[0] + '.flac'
f = open(filename, 'rb')
flac_cont = f.read()
f.close()
# Headers. A common Chromium (Linux) User-Agent
hrs = {"User-Agent": "Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.7 (KHTML, like Gecko) Chrome/16.0.912.63 Safari/535.7",
'Content-type': 'audio/x-flac; rate=16000'}
req = urllib2.Request(GOOGLE_SPEECH_URL, data=flac_cont, headers=hrs)
print "Sending request to Google TTS"
#print "response", response
while True:
try:
p = urllib2.urlopen(req)
response = p.read()
res = eval(response)['hypotheses']
except:
print "Couldn't parse service response"
res = None
continue
break
if del_flac:
os.remove(filename) # Remove temp file
return res