Interpreting human speech
This seems like a very difficult task, but I think I can do it. I am creating a home automation system, and wish to give it some smart speech recognition capabilities.
-The interpreter will receive a string from the speech recognition software (Nuance Dragon).
-The interpreter needs to be able to react to the input (string) by executing commands, such as shutting off the lights, speaking the weather or news, and other tasks.
Currently I have a system that works like this:
- A list if currently executable actions is loaded, and each action has one or more phrase associated with it. This list changes dynamically.
- Each associated phrase is loaded into a file.
- Nuance Dragon passes a string to my program.
- The string is passed to a Levenshtein algorithm, which selects the closest match from the current phrases file. This corrects for any mis-recognitions, or if I speak a phrase slightly differently.
- The string that matched the spoken phrase closest is passed on to a decider, which looks at the current possible actions, and executes the one that contains the string in its list of associated phrases.
The problem with system is that it is difficult to add new commands, and it isn't very smart. I need a way to communicate with my system like a would with a fellow human, and if this is impossible, something close. I don't expect it to be able to show emotion, or talk to it about my day, but simply command to to do things in a normal way.
If you would like to see the source to my current system, just ask.
Re: Interpreting human speech
I found some great information here: https://www.coursera.org/course/nlp Solved.