Hmm wait. Let's be sure we get the context right.
You are using webkitSpeechRecognition()in a HTML/JS page/site which you access using Chrome for Android?
If this is the case, the situation is a bit different.
On Chrome Desktop, the Speech API implementation (at least the client part) is fully baked in Chrome [1] and hits directly the Google Speech WebService. This means that if you bundle your own version of Chrome, you need an API key as explained
here.
On Android, instead, the Speech API implementation [2] is essentially a shim layer towards the Android API (
android.speech.RecognitionService). The audio is captured / processed / exchanged entirely by the Android framework. The story here gets a bit more complex. The short version is that AFAIK no API keys should be required on Android, unless:
(a) you're using a custom Android rom, and the rom doens't have the right API keys.
(b very unlikely) The backend that implements (inside the Android rom) the android.speech.RecognitionService is customized (the vendor can replace it) and has some weird limitation like the one you're experiencing AND you are forcing the Web Speech API to use the non-standard backend (i.e. forcing the enable-speech-recognition switch).
Long story:
Android defines the API for speech recognition, hence the contract interface but doesn't necessarily provide a backend implementation. On most Android devices the backend that implements the android.speech.RecognitionService is provided by the Voice Search / Now app. The implementation of web speech inside Chrome for Android
looks for that package.
Now, I might miss something at this point, but as far as I know, the Android API shouldn't be subjected on any limitation. Also 50 req/day sounds a very low limit. Can you provide more context?