Google.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import speech_recognition as sr
  2. from core.OrderListener import OrderListener
  3. class Google(OrderListener):
  4. def __init__(self, main_controller=None, **kwargs):
  5. OrderListener.__init__(self, main_controller)
  6. """
  7. Start recording the microphone
  8. :return:
  9. """
  10. # obtain audio from the microphone
  11. r = sr.Recognizer()
  12. with sr.Microphone() as source:
  13. # listen for 1 second to calibrate the energy threshold for ambient noise levels
  14. r.adjust_for_ambient_noise(source)
  15. print("Say something!")
  16. audio = r.listen(source)
  17. # recognize speech using Google Speech Recognition
  18. try:
  19. # for testing purposes, we're just using the default API key
  20. # to use another API key, use `r.recognize_google(audio, key="GOOGLE_SPEECH_RECOGNITION_API_KEY")`
  21. # instead of `r.recognize_google(audio)`
  22. key = kwargs.get('key', None)
  23. language = kwargs.get('language', "en-US")
  24. show_all = kwargs.get('show_all', False)
  25. captured_audio = r.recognize_google(audio, key=key, language=language, show_all=show_all)
  26. print "Google Speech Recognition thinks you said %s" % captured_audio
  27. self._analyse_audio(captured_audio)
  28. except sr.UnknownValueError:
  29. print("Google Speech Recognition could not understand audio")
  30. except sr.RequestError as e:
  31. print("Could not request results from Google Speech Recognition service; {0}".format(e))
  32. def _analyse_audio(self, audio):
  33. self.main_controller.analyse_order(audio)