Not completely on-topic but also not completely off-topic: I threw together a crude proof of concept last weekend to control my X10 stuff via voice from my Android phone.
I installed the Tasker app on my phone, which is a sort of simplified GUI-driven scripting language designed around automating the Android experience. I created a task that prompts the user to speak and saves the recognized speech into a variable. It then does an HTTP POST to my server and sends the content of the variable as a POST parameter. It communicates with the server via HTTPS (TLS 1.2) and uses HTTP Basic authentication on top of that, so I am not too concerned about the data going over the Internet. On the server side, I am running nginx to handle the HTTPS connection, which tunnels the traffic to Quick 'n Easy Web Server, which I have configured with an instance (which I have heavily modified) of the AutoIt CGI project as a CGI helper. On the back end, the HTTP POST coming from my phone is handed off to an AutoIt script I wrote which does a simple string comparison on the input in a simple Switch block, since this is just a proof of concept. It controls X10 via AHCMD.EXE from the ActiveHome SDK. There are much better ways of doing the latter, but again, proof of concept. I'm using an XTB-232 to send the commands to the powerline. The script can send a response back as a simple string of unicode text. Normally, that response would be read by a browser. In this case, it is read by my task running in Tasker on the phone and stored in another variable. That response is then spoken back and displayed on the screen.
The end result is that I can tap an icon on my phone's home screen and say, "Turn on all the outside lights." In about a second, all my outside lights are on and the phone displays and speaks back, "All of the outside lights are now on." It doesn't do much more than that currently, and since it is doing a direct string comparison, it only recognizes predefined full sentences verbatim.
I could have stuck to using my wireless LAN only and obviated the need for the secure HTTPS/TLS part, making the server configuration simpler. I also could have easily used a scripting language more commonly used with CGI scripts for the web, such as ASP or PHP, making it a more commonly accessible solution. Regardless of the minutia, the purpose of this post is to show that it can actually be very simple to build a speech solution that works without even buying any new gadgets! The Tasker task for this demo can be done in 5 actions; the AutoIt script can be done in 20 lines.
I plan to write a more complex speech parser (probably similar to what has been done with BVC, though I've never used it to confirm) and integrate this with another project I've been writing for home automation that already gives me much better flexibility and control over X10 than I ever had with AHP. I haven't yet decided whether I will put in the effort to make it useful to and available to others. Before anyone volunteers to tell me, I am aware that some of this can be done with solutions that are already available, but I decided I will only be happy if I build it myself and have complete control over the results.