title: Python Speech Recognition listen_in_background on button press?
body: <p>Currently I'm trying to have the speech_recognition module listen in the background when the user pushes a button made with py qt. I have the initialization and callback methods in a class, however when I try and listen to the microphone it doesn't seem to be registering anything, not even outputting errors.</p>
  
  <pre><code>class VoiceRecognitionWidget(ScriptedLoadableModuleWidget):
      def callback(self, recognizer, audio):
          try: 
            print(recognizer.recognize_google(audio))
          # handles any api/voice errors  errors 
          except sr.RequestError: 
            print( "There was an issue in handling the request, please try again")
          except sr.UnknownValueError:
            print("Unable to Recognize speech")
  
      def onApplyButton(self):
          #self.displayLabel.setText("Listening for speech....")
  
          self.recognizer = sr.Recognizer()
          try: 
            self.microphone = sr.Microphone()
  
          except(IOError):
            print("ERROR: No default microphone. Check if microphone is plugged in or if you have a default microphone set in your sound settings.")
            self.errors.setText("ERROR: No default microphone. Check if your microphone is plugged in or if you have a default microphone set in your sound settings.")
  
          with self.microphone as source:
            self.recognizer.adjust_for_ambient_noise(source)
            # audio = self.recognizer.listen(source)
  
          stop_listening = self.recognizer.listen_in_background(self.microphone, self.callback)
  </code></pre>
  
  <p>The microphone works when I just listen to it normally when I press the button, it's just that when I try to have it continuously listen it doesn't seem to do anything. I also tried creating the recognizer and microphone in a function in the same class that initializes the whole GUI (not shown) but that didn't work either. Any help would be appreciated.</p>