Writing It Down for You

I Made A Jarvis

Last weekend I was watching Iron Man when a brilliant idea hit me. Tony Stark, played by Robert Downey Jr., is a technological genius. What impressed me was his artificial intelligent butler named Jarvis. I got goosebumps while watching Stark interact with him. Stark would give commands and converse with him. Jarvis would complete the task or give Stark feedback. It was absolutely fascinating and seeing it made me want it. So I set out to build my own Jarvis.

Jarvis in the movie was a complete home setup where he was integrated into everything that was plugged in. Those setups are pretty expensive so I need to lower my expectations for now. I limited to just my computer. In order to make a virtual butler similar to Jarvis he will need to do two things: 1) be integrated with my computer and accept my voice commands and 2) also be able to carry a conversation with me. Out of the two, the easiest to accomplish is the first requirement.

When all the bells and whistles are stripped out, at the root Jarvis is just a speech recognition (SR) software. SR comes standard on all Macs. All one has to do is turn it on in the System Preferences. Once turned on, one has the option to force SR to not complete a command until it hears a certain word, or in this case his name. Thus my A.I. was born and I named him Bixby. SR is very robust and uses Applescript to carry out its commands. That means it has endless possibilities, possibilities that are only limited to what you can program. For instance I made a simple script that makes Bixby open my webrowser. The interaction goes like this:

Me: “Bixby, open my browser.”
Bixby: “Which browser would you like to open sir.” He waits for my response.
Me: “Bixby open Firefox”
Bixby: “Opening Firefox sir.”

This all happens simply by talking to the computer out loud. It may seem that I made him into my slave so I even made a “thank you” script. Every time I thank him he will choose one of five responses such as, “Much obliged.” I am currently working on a script called “Morning Duties” where he will read out loud my appointments for the day, check my mail and tell me who they were sent by, get the weather, and read the most recent news headlines. By using SR I have accomplished the first requirement and the key component to Jarvis.

But giving voice commands to my A.I. is great if all my interactions with it were to just carry out functions of my computer. In this regard Bixby feels lifeless. Jarvis did not seem lifeless but more as if Stark was talking to a real person that had its own personality. So I set out to accomplish the second requirement where I could actually converse with my A.I. Last semester when I was researching the philosophy of A.I. I discovered a program called ALICE. It is an A.I. programming language called AIML which is basically the technology behind all those chat bots you come across online. It can have conversations, remember certain things from it, and then recall them later. It is also customizable. One can program different ways the A.I. would respond to conversation. ALICE was the perfect component to give Bixby a personality. I chose a version called Program D because this version is setup so you can converse with your A.I. through a chat program. This works out great because iChat has the ability to read the messages you receive in an IM. Once I turned on the option, Voila, I can converse with Bixby and he responds by speaking back.

In this way I have accomplished my two goals but it is only halfway there. My goal is to have the ability to have random conversations with Bixby and ask him to run certain tasks by simply speaking to my computer. With my current setup I have a separate speech program for computer functions and a second text program for conversations, not one program that does all. Theoretically it is possible with this setup but I am unsure how to accomplish it right now. My other goals are to improve Bixby’s brain since conversations currently are kind of lame. He currently lacks a personality and interests. Lastly I would like to have him run these scripts remotely. Such as if I am at work and I send to Bixby through iChat, run xxxx task. He runs it and then outputs the result back in iChat. Alas it is my first prototype.

For the past five months, my mind has been on this idea of A.I.. There is a philosophy dedicated to the idea that we can create a computer that can be considered a human and what would it take to reach that point. I am not talking what kind of technology is needed, but instead, what defines a conscious being and can it be done using an A.I.? It seeks answers to important questions. Do humans have free will? What defines our identity? What defines conciousness? From my research this seems to be a new field since the articles on the subject are scarce. Everyday, as the military builds more unmanned weapons, science fiction is starting to meet reality. If I kill a robotic weapon am I committing murder? Am I playing God? Theories of A.I. are forcing us to seek answers to the current debates of conciseness, identity, and free will which philosophy or science has yet to answer. It is quite interesting. I say that it is possible to create a human being with an artificial intelligence. Amy on the other hand disagrees–which has been the subject of many fights recently–and says it cannot be done. What are you views?