3

I googled around and found the regular speech-api from google. But I think this isn't what I need. I need continious voice recognition and the ability to launch other actions when a specific word is spoken. Is there anything in the android sdk that I can use?

If not: Is it possible to implement third-party libraries? (If yes: which - and what do I have to think about when implement a third-party-library?)

Edit: I thought about this again. I have to recognize just one 'word' (that probably won't be in googles-speech-databases). I have the chance to record it. That means, I'm able to continiously match the incoming audio-stream against my recording. That should work without a database. But I'm new to android-development. Do you have suggestions for APIs to use for recording and matching the recorded? Or is there any better way to continiously wait for a specifig 'word' to occur and then process any further actions?

btw: if that wasn't clear described: the app should continue to record and watch for the word to occure again when the reaction is done.

AKA
  • 318
  • 3
  • 15
wullxz
  • 17,830
  • 8
  • 32
  • 51
  • 1
    I guess you can: 1. Capture voice on the cellphone. 2. Stream the captured voice to a server 3. Use Sphinx or Microsoft recognizer or other speech engine to recognize speech 4. Have cellphone retrieve text results and use that to trigger an action on the phone – Michael Levy May 18 '11 at 13:53
  • Thanks for your comment Michael. I thought about this problem these days and got another idea. I'll add it to my question. It would be nice if you've some tips for me :) – wullxz May 19 '11 at 07:24
  • 2
    http://developer.android.com/reference/android/media/AudioRecord.html will let you record audio from the device. If you are only looking to match one and only one word, I don't that traditional speech recognition services are right for you. Perhaps you can do some local signal processing try to match the sound. Except for some dusty books from grad school, I'm not much help here. You could look at http://sites.google.com/site/piotrwendykier/software/jtransforms – Michael Levy May 19 '11 at 13:35
  • Thanks Michael. I see: I have to learn some maths :D – wullxz May 19 '11 at 18:29
  • ah. I think you found http://stackoverflow.com/questions/3148603/continuous-speech-recognition-android – Michael Levy May 19 '11 at 21:55
  • Yes, but I think my need is a little bit different. I need that 'word' to be recognized and the recognize-action to be done quickly with as little time as possible between 'word' and action. I didn't understand FFT (and that library you linked) yet (also because I'm from germany and have to lookup several words etc.) but it has to do with quick calculation of that audio-stream in order to get sth. to compare, right? (please correct me if I'm wrong) – wullxz May 19 '11 at 23:25

1 Answers1

2

Is there anything in the android sdk that I can use?

No, sorry.

CommonsWare
  • 986,068
  • 189
  • 2,389
  • 2,491
  • Yeah, just what I thought. It's because the android-sdk-speech-api works with intents, right? Do you have any hint for another solution? – wullxz May 17 '11 at 10:48
  • @wullxz: There are very few speech recognition technologies. Most, including Google's, require the audio to be transferred to a server for processing. I will be stunned if there is a solution to your problem that runs on Android that you can afford. – CommonsWare May 17 '11 at 10:50
  • I saw another thread where someone tried to create an offline speech-recognition. There was written, that it could work if the dictionary doesn't need much space (i.e. for verry less words to be recognized). In fact, I just have to recognize one word in my app. That should be solvable. – wullxz May 17 '11 at 10:54
  • @wullxz: That certainly has potential, though I am not familiar with any code that would help you. – CommonsWare May 17 '11 at 11:09