from __future__ import print_function import speech_recognition import pyttsx speech_engine = pyttsx.init('nsss') speech_engine.setProperty('rate', 150) recognizer = speech_recognition.Recognizer() microphone = speech_recognition.Microphone() def listen(): with microphone as source: recognizer.adjust_for_ambient_noise(source) audio = recognizer.listen(source) print("Got it! Now to recognize it...") try: # recognizer.recognize_sphinx(audio) # == not very good out of the box value = recognizer.recognize_google(audio) return value except speech_recognition.UnknownValueError: print("Could not understand audio") except speech_recognition.RequestError as e: print("Recog Error; {0}".format(e)) return "" speech_engine.say('Say something!') # speech_engine.runAndWait() # hangs here... said = listen() print(said) # speech_engine.say('I heard you say ' + said) # speech_engine.runAndWait() # hangs here...