Voice Recognition recommendation for Pi, MQTT, Openhab

I have a Pi 3 with Openhab and MQTT installed and everything seems to be working great. I would like to install voice recognition now, but I’m not sure which option to go with. The 2 that I know of are wit.ai and HABDroid. Maybe there are others?

My wife and I both have iPhones. I prefer to run as much of the server software locally and I see that wit.ai requires an account. I’m not very fond of relying on an online service. Whether my ISP is down or sluggish, or maybe a server on the way to wit.ai may be sluggish. I don’t know how wit.ai works, but I really do prefer to run local server software if possible.

As for HABDroid, I can’t find any reference that says whether it is compatible with IoS. I do want Android compatibility, but my wife and I will be using iPhones, laptops, etc.

I’ve tried to help myself before posting, but I don’t want to jump into installing/configuring without exploring other options if they exist.

Anyone have any beginner links for voice recognition? Any other (potentially better) options than HABDroid and wit.ai?

Thanks!

There is an official iOS app. Search the App Store for openHAB and you will find it. However note that voice recognition through the app phones (HABdroid or the iOS app) requires you to open the app and press a button before starting the voice recognition. After spending about five minutes with it I quickly decided it was more of a hassle than an advantage. If I already have the app open to the sitemap I can just press the UI element instead of the voice element.

On Android with Tasker and AutoVoice you can get “always on” voice commands working but that doesn’t help with iOS.

Assuming you want an Amazon Echo like experience (i.e. always listening, no interaction required to start talking to the voice recognition) you are in for a challenge. Voice recognition is not something that is easy to implement. I recommend searching this forum for “voice” and you will find several threads with lots of discussion about how various people are implementing voice. wit.at seems familiar so I’m sure it has at least been part of the discussion at some point.

I agree that it would be a hassle to press buttons in order to send a voice command. The Echo looks interesting for sure, but I would prefer something that’s open source. I did do a search for ‘voice’ and got several results. I’ll go through them in more detail and see if I can find some clues.

Thanks for point out Echo to me!

if you need IOS, just look at Homekit support in forum. There is Siri supported as well

Hello!

I was wondering if Tasker + AutoVoice “always on” combination is really “always on”, or you have to unlock the screen/turn screen on to use it? I’ve looked through the Google Now options, and the only option to make it listen when the screen is locked/off is connecting a phone to a charger. Are there any other options for “always on” or a voice triggered applications to use with OpenHAB (Android or Windows)?

Best regards,
Davor

Hi Davor,

I haven’t ran into tasker or autovoice, do you have links?

You have them on Google play, but trial/free versions are not very usable.


Best regards,
Davor

I’ve performed a lot of search queries on Google and never noticed this come up. Very interesting and based on some of the YouTube videos I just watched it looks like this combination provides always on speech recognition.

I’m going to get this option setup. Not sure how quickly I can get it done, but I’ll reply to this post with my results and any gotchas.

Thanks for this info!

1 Like

After watching another YouTube video I had another option pop up. Anyone heard of Hound?

http://www.technobuffalo.com/videos/hound-voice-search-overview/

I don’t know yet if this is an always on solution or if it will work with Openhab speech recognition, but I do like how it will handle complex phrases.

For me it is really always on. The phone can be in my pocket and I can command it. But I have a Moto X PE (and before that have the original Moto X) and support for always listening is one of its major advertised features. I thought that since Android Lollypop other devices could support talking to it even when the screen is off too but it appears I’m mistaken. According to this it is only supported by Nexus 6, Nexus 9, and Samsung Note 4. Motorola has their own app to support it.

You might find some further advice from this forum thread.

http://forums.androidcentral.com/lg-g4/537629-ok-google-screen-off.html

It’s not. But if you have Google Now always listening you can say “OK Google start Hound” and when it loads say “OK Hound”. Personally I’d rather just use Google Now.

Doesn’t looks like it. As far as I can tell from their description and the comments on the app store it has a fixed set of things it interfaces with and OH/generic REST is not one of them.

One thing to note about how AutoVoice works. When you do a Google Now query your voice is converted to text and then that text is processed. If you say something that Google Now can’t handle on its own it will perform a web search. AutoVoice works by intercepting that web search text and trying to match it to one of your configured AutoVoice triggers.

The AutoVoice triggers support regular expressions to match the text which I’ve found to be more than adequate to support most simple home automation commands. After all, there is a relatively limited number of ways to say “turn on the lights”. But admittedly I have little use for voice commanding as even saying OK Google <pause> Open the Garage is more awkward than just pressing a garage door remote button. Voice commands look cool but in my experience are rarely more convenient than traditional approaches.

I’m not even sure that I’ve explained my need accurately.

My home has several different types of devices that I want to be able to use when sending home automation voice commands. My wife has an iPhone 5, I have an iPhone 6+. We both have laptops/desktops with Windows 10. She also has an Android tablet.

The WiFi AP, DNS, DHCP, MQTT broker, and OpenHab are all running on a Raspberry Pi 3. I have a mic dongle plugged into one of the Pi’s USB ports.

I’ve looked at Jasper, Amazon Echo and a few others.

What I am trying to figure out in general is how to get this Pi listening through its USB mic to take voice commands. (What software is required?) It (or another Pi) should be setup to be always on like an Echo. No other computer or phone should be required, although it seems to be an option? Of course, the phones/PCs will be able to pull up an Openhab (or similar) UI using a web interface.

The thing that is confusing me is how to eliminate Android/IoS/etc requirements. I want it to be an option. I don’t want to be forced into touching a device to send commands.

We have an Xbox One with Kinect - it reminds me of a couple of my kids when they were younger. I have to repeat myself over and over and sometimes it doesn’t listen at all, but I bring it up just in case there is some cool idea of using it with an Xbox app to send commands. Somebody will create one one of these days - Microsoft will likely have an ‘Alexus’ service tied into Xbox soon.

What are your thoughts on how a RPi 3 can be setup to be always on and listening? Are there other options like Jasper that you are aware of?

As far as I know there is no universal and uniform solution. I know some people have experimented with Jarvis running on a RasPi to middling success. Others have been successful using Echo to drive OH. That might give you some voice command capability for the room. Unfortunately on the devices you will likely be facing separate solutions for each base OS type.

I’ve not looked that much into this beyond reading the many postings on voice controlling on this forum. But so far I have yet to read about any solution that seemed complete, flexible, and supported across multiple platforms.

My solution instead of PI listening, is to use another Android/iOS device, always powered up and hidden somewhere in the shelf and listening to Voice commands all the time.
As for Mic I would setup Bluetooth Conferencing Speaker, like Jabra 510 or similar in the middle of the room or on cell, paired with this device.
The problem is so far - I tried such combination with iPhone - Siri doesn’t seem to be always listening over Bluetooth Mic unfortunately. Perhaps with Android it would be better, but I had no time to check it. Or maybe there is some App or workaround.

This is about the same conclusion I have come to as well. Jarvis looked promising at first, but the problem to me seems to be that by the time you purchase a quality mic that will pick up throughout a room, a speaker, a RasPi, power, packaging, plus your time to put it all together… you’re probably pretty close to the cost of an Echo.

I’ve been seriously tempted lately by the Echo (not just for automation, but it doesn’t hurt), but have yet to justify the price. The Dot seems to be a good alternative, particularly for a bedroom or living room where you might not need the better speaker or may already have a soundbar or speakers to tie into.

The jump to “whole home” is still something that the Echo doesn’t solve. At least not eloquently. I’m actually surprised that Amazon hasn’t provided a better, more seamless, experience with multiple Echo’s. Hopefully it’s coming.

I do have my measly two bed lamps working with Homekit which seems to work pretty well. I wish you could tone down Siri’s response, however.

Be aware that the Dot is not always listening. You have to push a button to get its attention. That vastly reduces its suitability in my opinion.

Lots of people are working in this space though. I’m sure there will be other options before long.

I believe that is the Tap that you are thinking of. My understanding is that the Dot is exactly like the full Exho except that it has only a bear bones speaker but also includes an aux out and bluetooth audio output.

Today Apple did announce that Siri is available for third party apps. “Local proxy” will be not necessary anymore.

And new Home app: http://www.theverge.com/2016/6/13/11925440/apple-home-app-launch-as-homekit-grows

Hello!

I’m working on some kind of simple voice recognition application in Python. It should be able to recognize custom wake up word, send command to OpenHAB, and reply with some TTS engine (Ivona, Google). Since I’ve encountered Python for the first time a week ago, it might take me a week or two to have something useful, but as soon as I have at least a skeleton of the app that could post recognized words to OpenHAB item, I will upload it to github and post a link here. I hope that it will help some of the people looking for simple, always on voice recognition for OpenHAB.

Best regards,
Davor

Indeed. My mistake. I miss remembered.