I know this may sound crazy, but this is the program I'm working on:
My program basically creates an enviroment where the user can talk to the computer, the computer responds based on "emotions" (which are actually carefully determined numbers). I have been working on this for a while, and I am confident it is possible.
The first step is to make it understand English and sentences, recognize words the same way a human does:by remembering the part of speech, and the emotion tied to it, and the importance it has. Emotion and Importance are determined by numbers.
To make it understand English entirely is almost impossible, so instead, I'm making it understand definitions and simpler words that can define things. One problem is finding these "basic words", if anyone can help me, I'd appreciate it.
The next thing to do is once it understands the words, to the sentences they're part of to determine what it means. Averaging the emotion and importance numbers and storing them in arrays works nicely, and storing the words of the sentence in an array and defining them may also work (I hope). Once it finds the meaning, it can then use a personality code (with a lot of "if" statements) to determine the numbers of the response. Then it passes through the grammar code, which transforms the numbers into sentences, which are then outputted.
The next step is to create the personality code, basically determining what to say to the user based on what the user and computer are talking about. I'm having some difficulty with this.
Finally, the last step is to create a function where if the subject of a sentence is "You" or "computer" and the sentence is not a question it will respond with "yes" and perform the verb, or "no, i cannot" and not perform it. Basically, the user could say "Computer, create a text file" and it should say something like "Yes, Sir". This is also difficult.
If you think you can help, send me an email. I won't try to explain the method that each part uses to work here, but if you can offer help (like from years of expertise in C++) I would greatly appreciate it.
PS: UPDATE : This is based on TEXT input, not sound.