コード例 #1
0
    def post(self):        
        
		#print '_______________', self.request.files
		body = self.request.files['recording'][0]['body']
		query_type = self.get_argument("mode")

		filename = str(int(random.random()*1000000))
		file = open('tempfiles/' + filename + '.wav', 'w')
		file.write(body)
		file.close()

		command = '/opt/sox-14.4.0/sox tempfiles/'+ filename + '.wav ' + 'tempfiles/' + filename + '.flac'
	#	print 'command: ', command

		r = envoy.run(command)
		if r.status_code != 0:
			print 'bad status code ', r.status_code


		url = 'http://www.google.com/speech-api/v1/recognize?lang=en-us&client=chromium'
		headers={'Content-Type': 'audio/x-flac; rate=16000'}
		r = requests.post(url, 
				files={'eiffel.flac' : open('tempfiles/' + filename + '.flac' , 'rb')},
					headers=headers)

		#print r.json
		
		os.remove('tempfiles/' + filename + '.wav')
		os.remove('tempfiles/' + filename + '.flac')

		if r.status_code != 200 or r.json is None or not r.json['hypotheses']:
			self.write(json.dumps({'status': 'failed'}))
			return
		utterance = r.json['hypotheses'][0]['utterance']
		print utterance
		keyword = NaiveWordSelector.topKeyword(utterance.split(' '))
		print keyword

		query_types = ["Image","Web","Wikipedia","Analytical"]
		if query_type not in query_types:
		    query_type = query_types[random.randint(0,len(query_types))]

		if query_type=="Image":
		    background_size = "contain"
		    image = image_search(keyword)		
		    self.write(loader.load("image.html").generate(image_url=image['url'],background_size=background_size,query_type=query_type))
		elif query_type=="Web":
		    url = lucky_search(keyword)
		    self.write(loader.load("redirect.html").generate(url=url,query_type=query_type))
		elif query_type=="Wikipedia":
		    url = wikipedia_search(keyword)
		    self.write(loader.load("redirect.html").generate(url=url,query_type=query_type))
		elif query_type=="Analytical":
		    results,image_url,desc = wolframalpha_search(keyword)
		    self.write(loader.load("wolframalpha.html").generate(results=results,keyword=keyword,image_url=image_url,desc=desc,query_type=query_type))
コード例 #2
0
ファイル: server.py プロジェクト: systemizer/magicmirror
 def get(self):
     keyword = self.get_argument("keyword")
     url = wikipedia_search(keyword)
     self.write(loader.load("redirect.html").generate(url=url,query_type=None))