How to teach an AI to understand what the user is saying?

I'm currently working on an AI for linux, mac and iPhone. It already can control my room lights and tell me the weather and show me the news when I wakeup, but I want to make it able to really understand what I'm saying, so that it can give best results, for example, I want to program the command "lights on" and make it understand that when I say "turn on the lights" it's the same as "lights on"
It currently uses sphinx4 for speech to text, festival for text to speech, and it's written in python.

You will need to write the whole program from scratch. And then you will need to write the learning software. Then program it to communicate back to you so you can actually tell it that lights on means the same as turn on the lights. Before it can do that though it obviously needs to have inbuilt grammar and sentence construction. So you will need to write that. If you think what you have is anywhere near AI, you obviously have absolutely no understanding of AI and never will. Programming it to know tow terms mean the same thing is NOT any kind of intelligence. All it is dong is the same as a database looking up stored data.

Your answer is ridiculous, you just said in a very rude way something really stupid (common dude, make my computer able to learn just by listening me teaching it is the hardest way I can see to teach it NLP, and to do so, it would already need to understand NLP) and you didn't said what I need, which is not "what to do" it is "HOW TO DO". AND you can't say I don't know anything about Artificial intelligence just because natural language processing (NLP) its not considered by you intelligence.

Is sphinx4 very good at recongnizing your voice? I assume it would be fairly simple to make it so two different Strings have the same effect. I don't know any python but does it have 'logical OR' operators (like this: " || "). So you can say:
if (input == "turn on the lights" || input == "Lights on")
lights.turnOn();

-Not python.