1

Right now I am using RecognizerIntent and RecognitionListener but the device still waits till the end of speech to change speech to text. I want it so that the device types the word as soon as the speaker says it for a seamless experience.

Is there a way to do this?

I have to override different methods implemented under RecognitionListener right now like onBeginningOfSpeech and onEndOfSpeech only after which the onResults is called but I want to transcribe the speech word by word.

Gaston Flores
  • 2,457
  • 3
  • 23
  • 42
Arnav Jain
  • 11
  • 2
  • What code do you already have (What language)? – André Schild Jul 29 '16 at 18:57
  • Keep in mind that Google's speech recognizer uses the *context* of the words to help improve accuracy, so having the words at the end helps figure out the words at the beginning. There is a company called Nuance that has products that do this type of on-the-fly speech recognition, but I don't know if they have a cloud-based service. – kris larson Jul 30 '16 at 03:37
  • @AndréSchild I'm writing the code in java. – Arnav Jain Jul 30 '16 at 08:09
  • @krislarson Yes I know that the recognizer uses the context to improve accuracy but as you might have noticed while using google translate's voice input, it does both, on the fly translation as well as refactoring the previously transcribed words in that sentence based on context. Would you happen to know how that's done? I'm basically trying to build an application to help the deaf listen to what others are saying with speech to text which would be very inconvenient if the speaker had to wait everytime after speaking for the device to convert his speech to text. I wanted it to be seamless – Arnav Jain Jul 30 '16 at 08:13
  • Apparently Google just put their cloud-based speech recognition API in beta. There is a free trial but I couldn't find Android integration, you'd have to implement the API yourself. And it does do streaming recognition. https://cloud.google.com/speech/ – kris larson Jul 30 '16 at 14:14
  • @krislarson Thanks I'll look into it. – Arnav Jain Jul 30 '16 at 15:37
  • 1
    You need to use the partial and unstable results, which you'll get before `onEndOfSpeech()` http://stackoverflow.com/a/37033162/1256219 – brandall Jul 30 '16 at 16:03

0 Answers0