My application records audio using MediaRecorder class in AsyncTask and also use Google API transform speech to text - Recognizer Intent - using the code from this question
Late Answer, but for the first Exception, You have to destroy Your SpeechRecognizer after this what You want has done, for example (in onStop() or onDestroy() or directly after You don´t need the SpeechRecognizer anymore):
if (YourSpeechRecognizer != null)
{
YourSpeechRecognizer.stopListening();
YourSpeechRecognizer.cancel();
YourSpeechRecognizer.destroy();
}