Thought I would run through a little project I did with Indigo, just in case someone else might find it interesting...
A while back I kinda decided it would be nice to be able to control my Home Audio by Voice. I mainly used iTunes, but wanted to complicate matters by having the system 'listening' all the time (not having to press buttons or tilt smart phones).
This led me on a journey of 'Boundary Mics' and 'Gated Mixers', but I eventually got things working on a Win7 NUC platform running an application called VoxCommando, using a decent (stereo) USB Mic.
The problem you face with having a system that 'always listens' is that when the Audio source starts to play, the voice recognition system becomes deaf So placement of the Mic is important. I have VoxCommando set up with a 'prefix' command eg 'Computer'. Its sits there lisenting for only this command (therefore it doesn't get confused with any backgroud audio such as the TV).
Once it receives this voice command, it will soft mute any audio playing, and wait for subsequent a command.
The voice recognition engine is based on Win7 and works quite well - but the application is only available on Windows - Boooo
So what about Indigo??? I thought I would expand the voice recognition to issue commands to say turn on lights etc, but the problem I faced is getting the Windows PC talking to the Mac Mini running Indigo.
I found the Network plugin that Perry the Cynic wrote. Using TCP in, it can listen on a port and run actions within Indigo based on 'strings', so I set this up in Indigo and tested it by telnetting to the loopback address on a defined port (I had Growl send a msg to my iPhone when this happened) - It worked - yay
Now I had to do something similar on the Win7 box. VoxCommando can integrate with another application called EventGhost. This in turn has a simliar plug-in to send a TCP command to a port, however, as I found out, the plug-in didn't quite do what I wanted to I had to write a little Python script (which EventGhost supports within the appplication) to make the TCP connection to Indigo and issue a string command.
If anyone is a bit lost I will try to simplify....
I say a cmd -> VoxCommando interprets this and sends cmd to EventGhost (VoxCommando and EventGhost run on the Win7 PC)
EventGhost actions the cmd by creating a TCP connection (via the Python script to my Mac Mini) -> Indigo listens via TCP-In and waits for a 'string' to be sent, and then actions a response (in my case a Growl notifcation)
There's still a bit of work to be done, but I am pleased not only with the function, but also the speed that the sequence happens.
Now I just have to train it for my wife's 'northern' accent lol
Vangelis