Voice Recognition Plugin

General HouseBot discussion. Any issues that don't fit into any of the other topics belong here.
Post Reply
ScottBot
Site Admin
Posts: 2787
Joined: Thu Feb 13, 2003 6:46 pm
Location: Georgia (USA)
Contact:

Voice Recognition Plugin

Post by ScottBot »

If anyone is interested in testing a new Voice Recognition plugin for HouseBot, please download the attached plugin.



You will also need to make sure that your system has Microsoft speech support installed. You can download the full kit from here. Be sure to train the VR system before trying to use the plugin.



There is currently no online help, so here's a quick overview. The speech engine is driven by a 'grammar' file that is in XML format. This file obides by the Microsoft speech engine format and syntax. A sample grammar file is included with the plugin (HBGrammar.xml). The sample grammer file is copied into the HouseBot\Devices\Voice Recognition directory.



If the systems speech recognition has been property trained and setup, speaking into a microphone attached to the HouseBot server will change the Property values of the Voice Recognition device to match the speech received on the microphone. You can test by speaking "One", "Two", "Three", etc. if you use the HBGrammer.xml default grammer file. You can then used these values in Tasks to trigger specific actions.



Please report back on your results.



Thanks to Viet Hoang who wrote the original Voice Recognition plugin using the VB SDK. I though it was such a great addition, that I felt I needed to write one myself. :wink:
Scott
allanstevens
Member
Posts: 81
Joined: Thu Sep 01, 2005 7:56 am
Location: UK

Re: Voice Recognition Plugin

Post by allanstevens »

Is this plugin still available? I would like to control music while in the bath, and think this might be the answer. :D
ScottBot
Site Admin
Posts: 2787
Joined: Thu Feb 13, 2003 6:46 pm
Location: Georgia (USA)
Contact:

Re: Voice Recognition Plugin

Post by ScottBot »

It is included with the core HouseBot setup files. However, it is not pre-selected with the 'typical installation' setup option, so you will need to specifically select the 'Voice Recognition' option when re-running setup.
Scott
Richard Naninck
HouseBot Guru Extraordinaire
Posts: 1121
Joined: Tue Sep 28, 2004 7:49 am
Location: The Netherlands

Re: Voice Recognition Plugin

Post by Richard Naninck »

Finally after almost ten years of HouseBot I started using this plugin and it works great.
Using Windows 7 Ultimate 64 with Microsoft Anna. I bought a good microphone and a USB soundcard with gain control and microphone power and set it up in my theater. I can talk to the system from as far as 5 meters when there is no background noise and with a 100% hitrate. Right now I am using a conference mic that captures 180 degrees but I orderen an extra mic that goes 360 degrees. The USB sound card has two inputs so I am curious if having two mics in the system will enhance it even further or maybe degrade to whole thing. At least I can try the 180 and 360 degrees mics and see which one is best.
Mic: Samson CM10B and Samson CM11B
Sound Card: Alesis IO2

The sound card sits close to the PC and I had to use 30 meters of mic cable but there are no cutbacks while using such long cables. I tried a USB Cat 5 extender but the sound card didn't get enough power from it. Even when putting it behind a powered USB Hub.

I am in full control of the Windows Speech API thus able to switch it on or off or even putting it to sleep through vbscript. This is necessary because I don't want the mic open while playing a movie to prevent false inputs. Furthermore I have to address the system first by saying "Computer" and thereafter it starts processing the real command. Just like Star Trek :D

Having lots of fun with it because now I can start my theater without even touching the SWRemote.
ScottBot
Site Admin
Posts: 2787
Joined: Thu Feb 13, 2003 6:46 pm
Location: Georgia (USA)
Contact:

Re: Voice Recognition Plugin

Post by ScottBot »

5 meters; that's pretty good. I've always considered doing something like that in the theater, but figured either the range or accuracy of the recognition during a movie wouldn't be reliable. I guess making the commands very unique will help the false positives, but now you need to be careful when watching star trek :wink:
Scott
Richard Naninck
HouseBot Guru Extraordinaire
Posts: 1121
Joined: Tue Sep 28, 2004 7:49 am
Location: The Netherlands

Re: Voice Recognition Plugin

Post by Richard Naninck »

Yesterday I hooked up the new 360 degrees mic together with the 180 degrees but it didn't get better. What did get (much) better however is when putting just one mic in the corner far away. It seems that corners capture voice pretty well and now with just one 360 degrees mic I can almost whisper. I will try to put both mics in a corner to see if that makes it even better but I am already happy with the one mic in the corner result. I can turn up the receivers volume to 30 out of 100 before loosing recognition so it will not be of help during a movie. I still stop the recognition when Meedio's playstate turns to play preventing Star Trek from having effect on my system :D :D

Since I am probably going to end up with an extra mic now I am going to research how I can instantiate two SAPI's so each room can have its own so jamming the mic in one room will not harm the result in another.

Ultimately a system like VoicePod but then own built from Raspberry's (orso) where multiple sapi's can run handing over a room number and recognised data string to a HouseBot property over socket would be super. You would then be able to control everything from all rooms in the house simultaniously and seperately.

For now, my theater and office can work next to each other I guess sharing the same audio input device because at now time will both rooms be occupied at the same time.
Richard Naninck
HouseBot Guru Extraordinaire
Posts: 1121
Joined: Tue Sep 28, 2004 7:49 am
Location: The Netherlands

Re: Voice Recognition Plugin

Post by Richard Naninck »

Would it be possible to own the speech recognition exclusive in HouseBot so that Windows doesn't open all kinds of stuff when HouseBot doesn't recognize a word, but Windows does?

For example: When I say "Start" while that word is not in the Grammar file, the Windows Start Menu opens. I would rather not have this happen since it can minimize my SWRemote as well or open windows in the background. Sometimes it even pops a Windows displaying several options and hangs the HouseBot recognition until "Cancel" is called for.

When I put the words "start" and "cancel" in the grammar file, they are not recognized. I had hoped I could beat Windows to it but still the Start Menu pops and the words do not show up in the Speech property.

I guess the SharedRecoContext is used rather than InProc?!

Speech Recognition is still very usefull since I turn it on and off in a smart way, but it would be nice if Windows would leave it alone.
ScottBot
Site Admin
Posts: 2787
Joined: Thu Feb 13, 2003 6:46 pm
Location: Georgia (USA)
Contact:

Re: Voice Recognition Plugin

Post by ScottBot »

I guess the SharedRecoContext is used rather than InProc?!
Correct. I suppose there could be an option/property as to which recognizer to use for the plugin.

Have you tried disabling the default speech profile in the advanced speech properties setup?
Scott
Richard Naninck
HouseBot Guru Extraordinaire
Posts: 1121
Joined: Tue Sep 28, 2004 7:49 am
Location: The Netherlands

Re: Voice Recognition Plugin

Post by Richard Naninck »

I see only one profile and it has my name and it is enabled. That is the profile I trained.
When opening MS Word this doesn't happen because the dictation mode is enabled. I guess this can only be done from within the HB plugin.
It would be very nice to be able to choose the InProc recognizer because I don't want anything else from WSR than just controlling HouseBot.

I am also following www.theubi.com and hope that the API will provide a way to provide the recognized tekst to HouseBot. This would make speech recognition room independent and it also provides a way to connect to the internet via Google to get other info than just sensory info from your own setup.
Richard Naninck
HouseBot Guru Extraordinaire
Posts: 1121
Joined: Tue Sep 28, 2004 7:49 am
Location: The Netherlands

Re: Voice Recognition Plugin

Post by Richard Naninck »

If InProc were to be used, a Property to switch WSR on and off (no sleeping) would be nice to to be able to turn off WSR to prevent HouseBot from recognizing while it shouldn't and free up some resources maybe.. That's what I do now with the SharedRecoContext.


EDIT: Maybe test with the Grammar priority. I read somewhere that if the priority superseeds that of the Windows Grammar, the standard Windows commands like "Start" and "Cancel" could be used in the HouseBot grammar because of its higher priority. If this is true, a simple Property holding the grammar Priority could fix this.. Just thinking out loud and realizing that this info maybe ten years overdue :D
Post Reply