Well, I haven't gone that far in making anything similar. But just think about voice as soundwaves with certain patterns. Typically you record the same sound/s repreatedly and try to find changes in frequency, amplitude, etc and see if there is a correllation. Then look for certain spot/s that change. Then you try to make a record of those spots that change as a pattern to look for. Then the next time the system hears that same sound it looks it up in a table and tries to match it.
There are numerous ways that chips do this. Most require lots of A/D sampling and lots of processing power.
Now unless you're planning on spending most of your controllers cycles trying to do this you might be better off on connecting a chip that will do most of that work for you and let the controller decide what to do with the results instead.
Michael