Can you talk with your computer?
In my post on March 14 called ¿Puedes hablar con su computadora? (good grief, it’s been 5 and a half months!), I discussed an One Laptop Per Child XO program called Hablar Con Sara and how I thought one could add context to such a program and make if more effective. The objective is to put together a program that allows a foreign language student to practice conversation with their computer.
In March, I predicted I’d have a proto in 2 - 3 weeks. Ha! With everything else to do, the project got shoved to the bottom of the list. As I now have a little breathing room in my schedule, I realize I still want to do this project and think it has merit (see the original post for more details).
My original program idea was straightforward, if not simple. Put together a context - such as going to eat at a restaurant - and have the student move through the different phases with simulated conversations with the greeter, waitress, … Limit the vocabulary and provide a vocab list for the student to preview / review. I still think this is a great idea, but it’s quite a chunk to bite off all at once. So I’ve put together several simpler ideas to consider:
- Supply a context like a restaurant, but don’t try to sequence the events. Although this is somewhat simpler (no state machine for what part of the scenario is going on), it is very similar to the previous idea.
- Use a picture as context and try to provide a discussion / conversation with the student about the picture. In this program, a picture is supplied and the student is encouraged to discuss it with a picture of a kid on the screen. The student types in phrases to the program. The program parses the phrases for keywords and uses the results to speak back to the student. I think this program could be easily expanded to the programs above by using a sequence of pictures that represent eating at a restaurant, …
- Use a picture for context and try to provide a discussion / conversation with the student about the picture. Instead of allowing the student to construct phrases and type them into the computer, allow the student to pick from phrases that have been provided as buttons. This is really simple - but not allowing the student to construct his responses and comments really restricts the program from allowing any resemblance of real conversation.
Based on the included comments, you can probably tell that I’ve decided to start with the middle option. A simple task flow would be:
- Select a picture
- Put together 15 - 20 phrases about the picture
- Identify trigger words and tie them to the phrases
- Record the phrases
Interaction with the student is pretty simple
- Allow the student to enter a sentence
- Parse the sentence for trigger words
- Select a phrase that is triggered by the trigger word
- Play the audio file of the selected phrase
- Additionally, one might add a button that says “You start” or something similar to get the program to pick a conversation starter phrase.
So what would be a good development environment?
- Authorware - although I have Authorware (and like it a lot), I’m not using it because it requires a player that is not commonly found on most computers.
- Flash - Flash is a good development environment for such a program as this. And Flash is easily deployed on the internet. However, I prefer to use Open Source tools and think this program would actually be easier in Xerte as it doesn’t need animation.
- Scratch - I’d like to use Scratch for this… but how could you get user input. Then I found that in version 1.4 Scratch allows for users to enter a string. However, writing the Scratch code necessary to parse the string for key words turned out to be pretty hard… and it appeared to be pretty slow.
- Xerte - Xerte is similar to Authorware with Flash Actionscript as the scripting language. And it compiles to a standard Flash swf file for easy deployment on the internet. And it’s open source. See my earlier post on Xerte Xerte - eLearning Development Tool for more details. So Xerte it is!
So what’s the current status? (so am I going to take another 5 months before getting anything done ;-)… No, I should have something to post in a couple of weeks (yea, we’ve heard that before).
The logic of handling the user input is really pretty simple. I’ll post an early version of the code here for comments…
“Triggers = [
new Array(”rock”, 3, 5), // Trigger words and phrase indexes
…Unsolicited = new Array(4, 6); // Phrase indexes for unsolicited / unrecognized input
Phrases = [
“This picture was taken in southern Oklahoma.”, // 0 Phrases - need to be recorded
…triggerphrase = RSTextEntry.text;
selected = -1;
for(i=0; i<Triggers.length; i++)
{
if(triggerphrase.indexOf(Triggers[i][0]) > -1)
{
selected = Triggers[i][1];
}
}if(selected == -1)
{
selected = Unsolicited[0];
}
IDFeedback.setText(Phrases[selected]);”
There’s still some things to do, but code complexity certainly won’t be the constraining factor.
Any comments or suggestions would be appreciated. I guess I should quit writing about this project and get to work!
[…] I discussed in my earlier posts ¿Puedes hablar con su computadora? and Can you talk with your computer?, I want to build a simple program that will allow foreign language students to be able to practice […]
Pingback by LearningForward » Can you talk with your computer? (Part 2) — September 6, 2009 @ 6:44 am