7
votes

I'm building a web application and plan on using both speechRecognition and navigator.getUserMedia for audio input.

I noticed that my desktop browser (Chrome on Mac, v. 31.0.1650.63) asks twice for permission to use the microphone. While this may be a little bit annoying for the user, both voice recognition and audio input seem to work.

However, if I open the same page on Android (Nexus 7, Android v4.4.2; Chrome v31.0.1650.59), it asks twice for permission to use my microphone, but I can only use one of the two (whichever was started first). Sometimes, I also get a speech recognition error: "not-allowed" error, even though I gave permission to access the microphone.

I made a jsFiddle, here: http://jsfiddle.net/5xBpW/

My question is: Is there a way to perform speech recognition on an input stream? Or is there any other way to have both functionalities work on Chrome for Android?

1
Given that getUserMedia is still fairly experimental on Android and speechRecognition is experimental all over, this sounds like an excellent bug report. It doesn't seem to be logged already.apsillers

1 Answers

1
votes

Have you considered other tools? There is an exciting new tool / product from Nuance (founded by Ray K, now head of Google Engineering) that translates voice data into actions using proprietary learning algorithms eg machine intelligence.

This tool understands context and can apply that to specific actions so the user doesn't have to use an exact phrase:

https://developer.nuance.com/public/index.php?task=mix

Tour: https://developer.nuance.com/views/templates/mix/howDoesMixWork/phone/index.html

The downside is that you are relying on a third party, but since the API you are looking at is also experimental this could be of interest.