unnamed (3)

Did you know that, since the last update to Google Search, developers have been able to utilize offline voice recognition? Previously, any non-system app that wasn't an IME (Input Method Editor) that hoped to recognize your voice without a web connection needed a rather kludgy typing overlay. Since the update though, apps can hear and interpret not just your words, but essentially any command that doesn't explicitly require web access.

Utter!, taking advantage of the new possibility, claims to have become the first app with working offline voice recognition for Android Jelly Bean. After reaching out to Ben Randall, the app's developer, we've got a clearer picture of what it used to take to recognize speech offline, and what has changed.

I had implemented my own keyboard and  was switching between Google Voice Typing and the users default keyboard with an invisible edit text field and transparent Activity to get the  input. Dirty hack!
This was the only way to do it, as offline Voice Typing  could only be triggered by an IME or a system application (that was my  root hack) . The other type of recognition API … didn't trigger it and just failed with a server  error.

A lot of work wasted for me on the workaround! But at least I was ready for the implementation...

Randall went on to explain that Utter! now uses SpeechRecognizer, which has been updated allowing developers to use offline recognition in a range of applications, whereas Recognizerintent, the previous offline voice typing code, required a valid IME token.


Technical speak aside, Utter!'s implementation seems to work without a hitch. The app can do things like launch apps, place calls, send SMS messages, play music, and more just like it would if it were online. Of course, you'll need to have downloaded the relevant speech recognition files through Google's Search app.

If you're a developer looking to integrate offline voice recognition into your app, you can check out the SpeechRecognizer class here. If you're a regular user looking for a powerful, versatile voice assistant with new offline functionality, hit the widget below.

Thanks, Ben Randall

Liam Spradlin
Liam loves Android, design, user experience, and travel. He doesn't love ill-proportioned letter forms, advertisements made entirely of stock photography, and writing biographical snippets.

  • xriderx66

    Sounds like a very useful app!

  • HtcFlyerMan

    Utter ROCKS. http://forum.xda-developers.com/showthread.php?t=1508195

    The developer needs to implement more features to make it a SUPER-ROCKS ;-)
    (implement a "what we want first" vote for users)

  • DeadSOL

    I've used utter! It's fantastic!

  • Elias

    How is utter different/better than stock voice actions?

    • http://www.facebook.com/people/John-Charitos/536042829 John Charitos

      requires no internet , can be used through notfication drawer with a full running app.

    • Rosh

      also extremely customizable

    • http://www.facebook.com/amar.a.singh.7 NoIdentity Necessary

      Actually Utter! can be configured to launch or do actions in any app. And you can create your very own voice commands.

  • http://twitter.com/trlovejoy trlovejoy

    Can someone define and explain IME for non-developer types like me?

    • http://AndroidPolice.com/ Liam Spradlin

      IME stands for Input Method Editor - basically a way to enter text, like a keyboard. Check here for more info - http://developer.android.com/guide/topics/text/creating-input-method.html
      I'll update the post to clarify that a bit.

      • http://twitter.com/trlovejoy trlovejoy

        Ah, thanks, now that makes sense. I have been playing a bit with utter and the dev has built in a little bit of fun personality though not so over the top as siri.

  • Adam Lewis

    As a long time user of utter I suggest you go give it a shot. It already does a bunch of stuff but you can customize commands and make it superduper personal.

    For example, I say, "Make my day better" and it calls my girl, or I'll say, "Launch web server" and utter responds with "Preparing for awesomeness" and then launches KSWEB for me :D

    Plus, there are very few developers who are as patient and kind as Mr.Randall - go see his thread on xda and notice how it's one of the cleanest, non-flaming, productive threads ever. Gettin' stuff done!

    • Freak4Dell

      Yeah, I think Ben might be the best part about utter! Most developers are douchebags, but not Ben. I've been following utter! since the beginning, and I can't think of one instance where Ben has been rude or unhelpful. If there's a problem, he acknowledges it and fixes it. If it's a feature request, he says he'll look into it (and he does). He's a genuinely awesome guy.

  • xjakeyy

    This looks different. This is something Google should pick up and integrate with Google Now, because being honest it's a bit lacking at the moment (or at least in the UK). Going to try this out tomorrow when the parents aren't asleep - doh!

  • xhina

    I can't use it offline. T.T