Error Code 6 means Error Speech Timeout, while Audio Recording Error has value 3 (see here: https://developer.android.com/reference/android/speech/SpeechRecognizer.html).
Assuming that you have Error Speech Timeout, you can do the following:
public void OnError(SpeechRecognizerError error) {
String errorMessage = error.ToString();
if (errorMessage.Contains ("SpeechTimeout"))
{ this.OnDestroy();
this.OnCreate();
}
}
This will allow you to restart your SpeechRecognizer.
On the other hand, if you are having difficulties with Audio Recording Error, I'd be glad to find the solution, since I'm facing the same problem.