PDA

View Full Version : Talk to my robot?



robotech
06-02-2009, 12:40 PM
Anyone know of any software that enables me to talk to my robot like question and answer, etc?

Adrenalynn
06-02-2009, 01:40 PM
Welcome to the forum!

You can use voice recognition software [Dragon Naturally Speaking comes to mind], but you'll need to write the AI. Have a look at A.L.I.C.E.

nbdeveloper
06-03-2009, 10:37 AM
Here is a link to the ALICE site with a list of ALICE interpreters. Maybe you can find an implimentation in a language you already know:

http://www.alicebot.org/downloads/programs.html



I'm a .Net developer and I found:

http://ntoll.org/article/program-20

...but I haven't taken a look at it yet. Downloading now though...might be "fun".

nbdeveloper
06-08-2009, 10:32 AM
Ok, ALICE is pretty cool.

In the .Net port there is a project called AIMLGUI. I opened the solution (had to upgrade to VS 2008 - no issues) and ran the application.

The UI is a chat interface where the "bot" is instantiated and responds based on a library (xml) behind the scenes. Within 5 minutes you can be talking to an AI personality on your computer.

The code couldn't be any easier either...




private void processInputFromUser()
{
/* instantiated at class level

private Bot myBot;
private User myUser;
private Request lastRequest = null;
private Result lastResult = null;

*/

if (this.myBot.isAcceptingUserInput)
{
string rawInput = this.richTextBoxInput.Text;
this.richTextBoxInput.Text = string.Empty;
this.richTextBoxOutput.AppendText("You: " + rawInput + Environment.NewLine);
Request myRequest = new Request(rawInput, this.myUser, this.myBot);
Result myResult = this.myBot.Chat(myRequest);
this.lastRequest = myRequest;
this.lastResult = myResult;
this.richTextBoxOutput.AppendText("Bot: " + myResult.Output + Environment.NewLine + Environment.NewLine);
if (this.toolStripMenuItemSpeech.Checked)
{
SpVoice objSpeech = new SpVoice();
objSpeech.Speak(myResult.Output, SpeechVoiceSpeakFlags.SVSFlagsAsync);
objSpeech.SynchronousSpeakTimeout = 20;
objSpeech.Rate = 4;
}
}
else
{
this.richTextBoxInput.Text = string.Empty;
this.richTextBoxOutput.AppendText("Bot not accepting user input." + Environment.NewLine);
}
}


The example also uses Microsoft text to speach so if you've got your speakes on it will read off the responses. Prett cool!

nbdeveloper
06-08-2009, 10:33 AM
Welcome to the forum!

You can use voice recognition software [Dragon Naturally Speaking comes to mind], but you'll need to write the AI. Have a look at A.L.I.C.E.

Great suggestion. Thanks!

Adrenalynn
06-08-2009, 11:42 AM
Sure!

I should also point out that Microsoft has SAPI for speech, but it's pretty primitive compared to something like Naturally Speaking.

robotech
06-08-2009, 01:07 PM
Alice uses a predefined question and answe database. All you will say or ask already has a corresponding response. I am looking for something that makes the robot almost know nothing yet but learns from the current conversation and use what he learned for future conversations.

Something like

Conversation today:

You: Do you read any books?
Robot: I don't know any books.
You: I like reading the Chronicles of Narnia
Robot: Ok

After 2 days
You: Do you know any books?
Robot, Yes i know the Chronicles of Narnia

Adrenalynn
06-08-2009, 01:14 PM
When you get that working universally, you'll be the wealthiest person on the planet - please keep us peons in mind! :)

lnxfergy
06-08-2009, 01:56 PM
Alice uses a predefined question and answe database. All you will say or ask already has a corresponding response. I am looking for something that makes the robot almost know nothing yet but learns from the current conversation and use what he learned for future conversations.

Something like

Conversation today:

You: Do you read any books?
Robot: I don't know any books.
You: I like reading the Chronicles of Narnia
Robot: Ok

After 2 days
You: Do you know any books?
Robot, Yes i know the Chronicles of Narnia

I'm actually working on a project just like this. Sponsered by the EU. 17 universities on 3 continents, probably > 200 people involved... in over 2 years, it's accomplished almost nothing towards making a system like this. It's *almost* easy to make a system like this in a very small domain... but of course you have to deal with the problems of ASR sucking (forget people with accents, use only common words, and oh, if the radio is on, robot dies...), knowledge representation and fuzzy matching.... fun stuff.

Really, what you're describing could be termed "AI Complete"... and of course AI has such a great track record in providing successes

-Fergs

nbdeveloper
06-08-2009, 02:35 PM
Really, what you're describing could be termed "AI Complete"...

-Fergs

IMO "AI complete" would mean it could replicate itself to an equal or greater degree. That would be a neat trick.

I wasnt sure what you meant by "ASR sucking" so I Googled it. I figure you meant "Automatic Speech Recognition" but the first result that came up was good for a laugh.

lnxfergy
06-08-2009, 02:48 PM
AI-complete has nothing to do with opinions, it has a very specific meaning: you'd rarely have someone tell you "IMO NP-hard really means...."

AI-complete really means that the machine "understands" what it is dealing with -- that you can't really solve the particular problem using "chinese room" tricks. As for recreating itself... um, it's taken humanity what, like 10000y to even begin thinking they could clone themselves..... and even then, ethics get in the way...

-Fergs

nbdeveloper
06-08-2009, 05:05 PM
AI-complete has nothing to do with opinions, it has a very specific meaning: you'd rarely have someone tell you "IMO NP-hard really means...."

AI-complete really means that the machine "understands" what it is dealing with -- that you can't really solve the particular problem using "chinese room" tricks. As for recreating itself... um, it's taken humanity what, like 10000y to even begin thinking they could clone themselves..... and even then, ethics get in the way...

-Fergs

I appologize. I didn't know the term meant something specific and have only an anecdotal understanding of turing completeness. I do understand the point you are making though.

I shouldnt have usd "IMO" and I don't normally. I've always felt "IMO" was a bit hoity-toity and I try not to use it. Sorry about that. I am sparkling new to robotics, and the only claim I can make in regards to AI is that I own a movie called "AI".

Did you find the Google reference funny?

lnxfergy
06-08-2009, 05:14 PM
I shouldnt have usd "IMO" and I don't normally. I've always felt "IMO" was a bit hoity-toity and I try not to use it. Sorry about that. I am sparkling new to robotics, and the only claim I can make in regards to AI is that I own a movie called "AI".

Actually, IMO is perfectly acceptable in areas where particular terms aren't nailed down.. or when something is not necessarily fact (or highly controversial).. for instance I frequently tell people "IMO, the basic stamp is not a real micro controller"...:veryhappy:
-Fergs